커뮤니티

질문드려요~

프로필 이미지
예트7
2020-12-11 09:50:58
659
글번호 144598
답변완료
안녕하세요 아래의 식에서 조건부 당일청산 부분의 수식이 맞게 되었는지 궁금합니다. 그리고 sdate != sdate[1] 와 bdate != bdate[1] 는 의미와 용도가 어떻게 다른가요? 좋은 하루 보내세요~~^^ input : shortPeriod(5), longPeriod(20); //10분봉 사용 value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then Buy(); # 매도/매수청산 If CrossDown(value1, value2) Then Sell(); #조건부 당일청산 input : p1(60), p2(120); var : Sma(0), Lma(0); Sma = ma(c, p1); Lma = ma(c, p2); Condition10 = Sma > Sma[1] and Sma > Lma; //상승추세 조건 Condition11 = Sma < Sma[1] and Sma < Lma; //하락추세 조건 if sDate != sDate[1] Then { if (Condition10 == False and MarketPosition >= 1) or (Condition11 == False and MarketPosition <= -1) Then SetStopEndofday(152000); } if Bdate != Bdate[1] Then SetStopEndofday(0); #해제
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-12-11 13:42:57

안녕하세요 예스스탁입니다. 1 작성하신 식은 첫봉기준으로 강제청산이 셋팅되거나 안되거나 하는 식입니다. 영업일 변경되면 당일청산을 우선 해제하고 첫봉이 매수포지션이고 condition10조건이 만족하면 당일 15시20분에 청산 첫봉이 매도포지션이고 condition11조건이 만족하면 당일 15시20분에 청산 하는 내용입니다. 올려주신 내용이 당일 진입청산을 반복하다가 15시 20분에 매수포지션이고 condition10조건이 만족하면 청산 매도포지션이고 condition11조건이 만족하면 청산하게 하시려면 아래와 같이 작성해 사용하셔야 합니다. 또한 진입도 15시 20분 이후에는 발생하지 않게 시간조건을 추가하셔야 합니다. input : shortPeriod(5), longPeriod(20); //10분봉 사용 value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); if sTime < 152000 Then { If CrossUP(value1, value2) Then Buy(); If CrossDown(value1, value2) Then Sell(); } #조건부 당일청산 input : p1(60), p2(120); var : Sma(0), Lma(0); Sma = ma(c, p1); Lma = ma(c, p2); Condition10 = Sma > Sma[1] and Sma > Lma; //상승추세 조건 Condition11 = Sma < Sma[1] and Sma < Lma; //하락추세 조건 if (Condition10 == False and MarketPosition >= 1) or (Condition11 == False and MarketPosition <= -1) Then SetStopEndofday(152000); Else SetStopEndofday(0); #해제 2 sdate는 0시를 기준으로 변경되는 달력상 날짜입니다. bdate는 거래소의 영업일 변경시간을 기준으로 날짜가 변경됩니다. 예를 들어 해외선물의 경우 하루영업일의 시작이 08시(썸머타임시 07시)이므로 Bdate는 8시를 기준으로 날짜가 변경되게 됩니다. 그래서 당일 시고저종가나 당일진입횟수등을 계산할때 bdate !=bdate[1]가 사용됩니다. 국내거래소도 09시가 영업일 변경시간인데 프로그램에 야간거래를 할수 있는는 종목이 없어 sdate와 bdate가 혼재되서 사용됩니다. bdate로 모두 통일해 사용하시면 됩니다. 즐거운 하루되세요 > 예트7 님이 쓴 글입니다. > 제목 : 질문드려요~ > 안녕하세요 아래의 식에서 조건부 당일청산 부분의 수식이 맞게 되었는지 궁금합니다. 그리고 sdate != sdate[1] 와 bdate != bdate[1] 는 의미와 용도가 어떻게 다른가요? 좋은 하루 보내세요~~^^ input : shortPeriod(5), longPeriod(20); //10분봉 사용 value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); # 매수/매도청산 If CrossUP(value1, value2) Then Buy(); # 매도/매수청산 If CrossDown(value1, value2) Then Sell(); #조건부 당일청산 input : p1(60), p2(120); var : Sma(0), Lma(0); Sma = ma(c, p1); Lma = ma(c, p2); Condition10 = Sma > Sma[1] and Sma > Lma; //상승추세 조건 Condition11 = Sma < Sma[1] and Sma < Lma; //하락추세 조건 if sDate != sDate[1] Then { if (Condition10 == False and MarketPosition >= 1) or (Condition11 == False and MarketPosition <= -1) Then SetStopEndofday(152000); } if Bdate != Bdate[1] Then SetStopEndofday(0); #해제