커뮤니티

문의 드립니다.~~~~

프로필 이미지
예스요
2023-02-07 22:04:43
940
글번호 166084
답변완료
슈고하십니다 아래식 조건으로 시뮬레이션챠트로 매매 결과를 검토하는 중 실제에서는 설정된 봉시간내에 먼저 손절값에 도달한 후에 익절값에 다시 도달했을시는 손절이 되어 표기될 매매가 익절로 바뀌어 표기가 되어 (실제는 손절인데 익절로 표기) 정확한 결과 값을 알 수 없게 되는데 정확한 결과 값을 가지려면 어떻게 해야 하나요.. input : ntime(60); input : StartTime(70000),EndTime(50000); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0),BBdn(0); Array : CC[100](0); var : Tcond(false); if (NextBarSdate != sdate and NextBarStime >= EndTime) or (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { Tcond = true; S1 = TimeToMinutes(NextBarStime); D1 = NextBarSdate; } if D1 > 0 then { if NextBarSdate == D1 Then TM = TimeToMinutes(NextBarStime)-S1; Else TM = TimeToMinutes(NextBarStime)+1440-S1; TF = TM%ntime; if NextBarSdate != sdate or (NextBarSdate == sdate and ntime > 1 and TF < TF[1]) or (NextBarSdate == sdate and ntime > 1 and TM >= TM[1]+ntime) or (NextBarSdate == sdate and ntime == 1 and TM > TM[1]) Then { var1 = NextBarOpen; } if Tcond == true and MarketPosition <= 0 Then Buy("시작매수",AtStop,var1+PriceScale*10); if Tcond == true and MarketPosition >= 0 Then Sell("시작매도",AtStop,var1-PriceScale*10); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } SetStopProfittarget(PriceScale*10,PointStop); SetStopLoss(PriceScale*10,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-02-08 14:30:25

안녕하세요 예스스탁입니다. 차트의 과거봉에는 모든 거래에 대한 체결정보가 있지 않습니다. 시고저종가만으로 봉을 그리게 되어 봉 내부의 정확한 움직임을 알수 없습니다. 그래서 차트의 과거봉은 움직임에 대한 가설을 만들고 해당 가설과 같이 움직인것으로 보고 신호를 발생합니다. 이에 따라 봉미완성시에 여러개의 신호가 발생할 수 있으면 신호발생 순서가 실제와 다른 경우가 생길 수 있습니다. 올려주신 내용은 수식으로 별도로 처리할 방법이 업습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 슈고하십니다 아래식 조건으로 시뮬레이션챠트로 매매 결과를 검토하는 중 실제에서는 설정된 봉시간내에 먼저 손절값에 도달한 후에 익절값에 다시 도달했을시는 손절이 되어 표기될 매매가 익절로 바뀌어 표기가 되어 (실제는 손절인데 익절로 표기) 정확한 결과 값을 알 수 없게 되는데 정확한 결과 값을 가지려면 어떻게 해야 하나요.. input : ntime(60); input : StartTime(70000),EndTime(50000); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0),BBdn(0); Array : CC[100](0); var : Tcond(false); if (NextBarSdate != sdate and NextBarStime >= EndTime) or (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { Tcond = true; S1 = TimeToMinutes(NextBarStime); D1 = NextBarSdate; } if D1 > 0 then { if NextBarSdate == D1 Then TM = TimeToMinutes(NextBarStime)-S1; Else TM = TimeToMinutes(NextBarStime)+1440-S1; TF = TM%ntime; if NextBarSdate != sdate or (NextBarSdate == sdate and ntime > 1 and TF < TF[1]) or (NextBarSdate == sdate and ntime > 1 and TM >= TM[1]+ntime) or (NextBarSdate == sdate and ntime == 1 and TM > TM[1]) Then { var1 = NextBarOpen; } if Tcond == true and MarketPosition <= 0 Then Buy("시작매수",AtStop,var1+PriceScale*10); if Tcond == true and MarketPosition >= 0 Then Sell("시작매도",AtStop,var1-PriceScale*10); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { IF Endtime <= starttime Then { SetStopEndofday(0); } } SetStopProfittarget(PriceScale*10,PointStop); SetStopLoss(PriceScale*10,PointStop);