커뮤니티

문의 드립니다.~~~~

프로필 이미지
예스요
2023-01-02 17:49:47
753
글번호 165025
답변완료
수고하십니다. 다음식의 자세한 주석을 부탁드립니다. 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;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-01-03 13:06:10

안녕하세요. 예스스탁 입니다. 해외선물에서 거래 시작(StartTime) 시간과 종료 시간(EndTime)을 지정하고, 타분봉 지표를 사용하는 수식으로 보입니다. 현재 90분봉을 보고 있다는 가정하고 설명드리겠습니다. 가독성을 위해 랭귀지 편집기에 복사해서 확인하시고, 기타 단위 만족시 진입은 첨부 이미지를 참고해주세요. # 현재 23:00:00시라 가정하고, EndTime이 00:30:00라면, 다음 봉이 날짜가 바뀌며 00:30:00으로 바로 도달하는 경우 if (NextBarSdate != sdate and NextBarStime >= EndTime) or # 현재 18:30:00시라 가정하고, EndTime이 19:00:00라면, # 현재 봉 날짜와 다음 봉 날짜가 같고, 다음봉 시간은 20:00:00으로 EndTime보다 크고, 현재 봉(18:30:00)은 EndTime보다 작은 경우 # 즉, 다음 봉에서 EndTime에 도달하는 경우 (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; // 진입 차단 # 위와 동일하게 StartTime에 도달했는지 확인 if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { Tcond = true; // 진입 허용 S1 = TimeToMinutes(NextBarStime); // 진입 허용 시간이 19:30:00인 경우 1170으로 변환 D1 = NextBarSdate; // 진입 허용이 떨어진 봉의 날짜 저장 } if D1 > 0 then { if NextBarSdate == D1 Then // 다음 봉의 날짜와 진입 허용 날짜가 같으면 = 날짜가 안바뀌었으면 TM = TimeToMinutes(NextBarStime)-S1; // 현재 시간이 21:00:00이라면 = 1260-1170 = 진입 허용 후 90분 지남 Else // 날짜가 바뀌었으면 TM = TimeToMinutes(NextBarStime)+1440-S1; // 현재 시간이 00:30:00이라면 = 30+1440-1170 = 진입 허용 후 300분 지남 TF = TM%ntime; // 진입 후 지난 시간을 사용자가 ntime에 지정한 분 단위로 나누어 나머지를 구함 # 사용자가 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 // 10분 단위 만족시 진입 (NextBarSdate == sdate and ntime == 1 and TM > TM[1]) Then // 1분 단위 설정 만족시 진입 { var1 = NextBarOpen; 즐거운 하루 보내세요. > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 수고하십니다. 다음식의 자세한 주석을 부탁드립니다. 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;