커뮤니티

68568 관련.

프로필 이미지
군고구마
2020-07-30 14:21:21
1424
글번호 141106
답변완료
사진 첨부한 친절한 설명 감사드립니다. 작성 수식의 신호타입이 onclose가 아니면, 모두 if조건만족하면 다음봉에 나오는 신호타입이므로 첫봉에는 신호가 발생할수 없다고 하셨는데, 아래 식은 제가 시뮬레시션한 시스템식인데, 이건 첫봉에 신호가 나올수 없다는 말씀이죠? 첫봉에도 신호가 나오게 하려면 onclose 타입으로 바꿔야 하는 건가요? onclose로 바꾸면 제가 원하는 조건만족시 즉시진입같은 아래 방식이 안될거 같은데요? 방법이 없을까요? (추가질문: 아래식과 같은 atstop신호타입은, 시뮬레시션할때 슬리피지는 몇틱 정도로 설정해야 하는지요?) . . . input : StartTime(070000),EndTime(055000); var : Tcond(false); 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 { SetStopEndofday(0); Tcond = true; } if Tcond == true then { buy("b",AtStop,NextBarOpen+(H-L)); ExitLong("bx1",AtStop,NextBarOpen); sell("s",AtStop,NextBarOpen-(H-L)); ExitShort("sx1",AtStop,NextBarOpen); if MarketPosition == 1 Then ExitLong("bx2",AtMarket); if MarketPosition == -1 Then ExitShort("sx2",AtMarket); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-07-30 14:41:07

안녕하세요 예스스탁입니다. 1 buy("b",AtStop,NextBarOpen+(H-L)); 작성하신 신호는 봉완성시(다음봉시가수신)에 다음봉시가+(완성봉의고가-저가)의 가격으로 셋팅하고 다음봉에서 해당 가격이상의 신호가 발생하면 즉시 매수신호가 발생합니다. 해당 내용이 첫봉에 신호가 발생하면 (H-L)는 첫봉의 값이 아닌 StartTime으로 지정한 봉의 앞봉의 값이 됩니다. 만약 첫봉의 신호가 해당 값을 이용하셔도 되면 아래와 같이 수정해 사용하시면 됩니다. 봉완성이 다음봉 시가가 수신될때 입니다. 다음봉시가는 NextBarOpen, 다음봉시작날짜는 NextBarSdate,다음봉시작시간은 NextBarStime입니다. 시작시간의 체크를 위 위 함수를 이용하게 수정하시면 StartTime전봉이 완성될때 Tcond가 false이었다가 true가 되어 값이 셋티되고 첫봉에서 신호가 발생할수 있습니다. 물론 고가와 저가는 StartTime 전봉의 고가와 저가입니다. 해당 내용외에는 별도로 처리할 방법이 없습니다. input : StartTime(070000),EndTime(055000); var : Tcond(false); 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 (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { SetStopEndofday(0); Tcond = true; } if Tcond == true then { buy("b",AtStop,NextBarOpen+(H-L)); ExitLong("bx1",AtStop,NextBarOpen); sell("s",AtStop,NextBarOpen-(H-L)); ExitShort("sx1",AtStop,NextBarOpen); if MarketPosition == 1 Then ExitLong("bx2",AtMarket); if MarketPosition == -1 Then ExitShort("sx2",AtMarket); } 2 슬리피지는 정확히 체크되는 부분이 아닙니다. 리포트상 손익에 비용으로 추가는 부분으로 일반적으로 1틱정도 지정해서 결과보시면 될것 같습니다 즐거운 하루되세요 > 군고구마 님이 쓴 글입니다. > 제목 : 68568 관련. > 사진 첨부한 친절한 설명 감사드립니다. 작성 수식의 신호타입이 onclose가 아니면, 모두 if조건만족하면 다음봉에 나오는 신호타입이므로 첫봉에는 신호가 발생할수 없다고 하셨는데, 아래 식은 제가 시뮬레시션한 시스템식인데, 이건 첫봉에 신호가 나올수 없다는 말씀이죠? 첫봉에도 신호가 나오게 하려면 onclose 타입으로 바꿔야 하는 건가요? onclose로 바꾸면 제가 원하는 조건만족시 즉시진입같은 아래 방식이 안될거 같은데요? 방법이 없을까요? (추가질문: 아래식과 같은 atstop신호타입은, 시뮬레시션할때 슬리피지는 몇틱 정도로 설정해야 하는지요?) . . . input : StartTime(070000),EndTime(055000); var : Tcond(false); 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 { SetStopEndofday(0); Tcond = true; } if Tcond == true then { buy("b",AtStop,NextBarOpen+(H-L)); ExitLong("bx1",AtStop,NextBarOpen); sell("s",AtStop,NextBarOpen-(H-L)); ExitShort("sx1",AtStop,NextBarOpen); if MarketPosition == 1 Then ExitLong("bx2",AtMarket); if MarketPosition == -1 Then ExitShort("sx2",AtMarket); }