커뮤니티

문의드립니다.

프로필 이미지
카르마다
2023-07-13 13:04:23
1453
글번호 170586
답변완료
수고많으십니다. [문의 1] var : StartTime(090000),EndTime(200000); var : Tcond(False),Xcond(False); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; Xcond = False; IF Endtime <= starttime Then { SetStopEndofday(0); } } if TotalTrades > TotalTrades[1] Then { if IsExitName("bl",1) == true or IsExitName("sl",1) == true Then Xcond = true; } if Tcond == true and Xcond == False Then { { 진입식 } } 이렇게 시간제한 수식을 쓰고 있는데 9시부터 18시까지만 신호가 나오고 만일 18시 전에 나온 신호가 청산이 안되었다면 20시에 최종 청산되게 수정 부탁드립니다. [문의 2] 신호가 나오고나서 손절이든 익절이든 횡보든 청산식에 따라 청산되고나서 바로 재진입되는 부분을 없애고 싶습니다. 같은 방향 신호든 다른 방향 신호든 예를들어 10봉까지는 안나오게 제어하고 싶고 봉수는 직접 조절하고 싶습니다. (가능하고 복잡하지 않다면 같은 방향과 다른 방향봉수를 각각 제어하고 싶습니다) 이부분은 주석도 부탁 드리겠습니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-07-13 16:47:21

안녕하세요 예스스탁입니다. 1 var : StartTime(090000),EndTime(180000),Xtime(200000); var : Tcond(False),Xcond(False); IF Xtime > starttime Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; Xcond = False; IF Xtime <= starttime Then { SetStopEndofday(0); } } if TotalTrades > TotalTrades[1] Then { if IsExitName("bl",1) == true or IsExitName("sl",1) == true Then Xcond = true; } if Tcond == true and Xcond == False Then { { 진입식 } } 2 input : N(10); #현재 무포지션이고 #전체 첫거래이거나 #두번째 거래부터는 청산후 N봉이후에 if MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= N)) Then { #매수조건 만족하면 매수 if 매수조건 Then Buy(); #매도조건 만족하면 매도 if 매조조건 Then Sell(); } 3 input : N1(10),N2(10); #현재 무포지션이고 #전체 첫거래이거나 #두번째 거래부터는 직전거래가 매수포지션이면 청산후 N1봉이후에 #두번째 거래부터는 직전거래가 매도포지션이면 청산후 N2봉이후에 if MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and MarketPosition(1) == 1 and BarsSinceExit(1) >= N1) or (TotalTrades >= 1 and MarketPosition(1) == -1 and BarsSinceExit(1) >= N2)) Then { #매수조건 만족하면 매수 if 매수조건 Then Buy(); } #현재 무포지션이고 #전체 첫거래이거나 #두번째 거래부터는 직전거래가 매수포지션이면 청산후 N2봉이후에 #두번째 거래부터는 직전거래가 매도포지션이면 청산후 N1봉이후에 if MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and MarketPosition(1) == 1 and BarsSinceExit(1) >= N2) or (TotalTrades >= 1 and MarketPosition(1) == -1 and BarsSinceExit(1) >= N1)) Then { #매도조건 만족하면 매도 if 매조조건 Then Sell(); } 즐거운 하루되세요 > 카르마다 님이 쓴 글입니다. > 제목 : 문의드립니다. > 수고많으십니다. [문의 1] var : StartTime(090000),EndTime(200000); var : Tcond(False),Xcond(False); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; Xcond = False; IF Endtime <= starttime Then { SetStopEndofday(0); } } if TotalTrades > TotalTrades[1] Then { if IsExitName("bl",1) == true or IsExitName("sl",1) == true Then Xcond = true; } if Tcond == true and Xcond == False Then { { 진입식 } } 이렇게 시간제한 수식을 쓰고 있는데 9시부터 18시까지만 신호가 나오고 만일 18시 전에 나온 신호가 청산이 안되었다면 20시에 최종 청산되게 수정 부탁드립니다. [문의 2] 신호가 나오고나서 손절이든 익절이든 횡보든 청산식에 따라 청산되고나서 바로 재진입되는 부분을 없애고 싶습니다. 같은 방향 신호든 다른 방향 신호든 예를들어 10봉까지는 안나오게 제어하고 싶고 봉수는 직접 조절하고 싶습니다. (가능하고 복잡하지 않다면 같은 방향과 다른 방향봉수를 각각 제어하고 싶습니다) 이부분은 주석도 부탁 드리겠습니다. 감사합니다.