커뮤니티

문의드립니다.

프로필 이미지
eiger
2025-04-21 11:01:03
267
글번호 190277
답변완료

첨부 이미지

안녕하세요. 특정시간 09:00~13:00의 고점 저점을 16:00이후에 돌파시 진입하도록 작성했는데 제대로 신호가 나오지 않는데 제가 작성한 코드 점검 부탁드립니다. 종목은 나스닥 입니다 var: ST(160000), ET(060000), baselineST(090000), baselineET(130000); var: HH(0), LL(0), Tcond(False), BlineCond(false); if sTime >= baselineST && sTime <= baselineET && BlineCond == false then { HH = TimeHigh(baselineST,baselineET); LL = Timelow(baselineST,baselineET); } else { BlineCond = false; } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then Tcond = true; if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < ET) Then Tcond = False; Condition1 = CrossUp(C,HH) ; Condition2 = CrossDown(C,LL) ; If Tcond && condition1 && MarketPosition != 1 Then { Buy(); } If Tcond && condition2 && MarketPosition != -1 Then { Sell(); } SetStopEndOfday(ET);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-04-21 15:02:40

안녕하세요 예스스탁입니다. 당일청산은 지정한 시간에 포지션이 있으면 청산을 하고 이후 밤 0시까지 진입을 막게 됩니다. 해외선물에서 새벽에 청산할 경우 날짜가 넘어가는 0시봉에 셋팅하고 영업일 변경시간에 해제되게 해주셔야 합니다. 아래수식 하단에 변경된 내용 참고하시기 바랍니다. var: ST(160000), ET(060000), baselineST(090000), baselineET(130000); var: HH(0), LL(0), Tcond(False), BlineCond(false); if sTime >= baselineST && sTime <= baselineET && BlineCond == false then { HH = TimeHigh(baselineST,baselineET); LL = Timelow(baselineST,baselineET); } else { BlineCond = false; } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then Tcond = true; if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < ET) Then Tcond = False; Condition1 = CrossUp(C,HH) ; Condition2 = CrossDown(C,LL) ; If Tcond && condition1 && MarketPosition != 1 Then { Buy(); } If Tcond && condition2 && MarketPosition != -1 Then { Sell(); } #0시 당일청산 셋팅 if sDate != sDate[1] Then SetStopEndOfday(ET); #영업일 변경되면 해제 if Bdate != Bdate[1] Then SetStopEndofday(0); 즐거운 하루되세요 > eiger 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요. 특정시간 09:00~13:00의 고점 저점을 16:00이후에 돌파시 진입하도록 작성했는데 제대로 신호가 나오지 않는데 제가 작성한 코드 점검 부탁드립니다. 종목은 나스닥 입니다 var: ST(160000), ET(060000), baselineST(090000), baselineET(130000); var: HH(0), LL(0), Tcond(False), BlineCond(false); if sTime >= baselineST && sTime <= baselineET && BlineCond == false then { HH = TimeHigh(baselineST,baselineET); LL = Timelow(baselineST,baselineET); } else { BlineCond = false; } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then Tcond = true; if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < ET) Then Tcond = False; Condition1 = CrossUp(C,HH) ; Condition2 = CrossDown(C,LL) ; If Tcond && condition1 && MarketPosition != 1 Then { Buy(); } If Tcond && condition2 && MarketPosition != -1 Then { Sell(); } SetStopEndOfday(ET);