커뮤니티

부탁드립니다.

프로필 이미지
즐겁게
2021-04-28 11:17:30
1734
글번호 148478
답변완료
항상 감사드립니다. 미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서, 미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서, 아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데, 가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다. If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 이 코딩에 간단한 무언가를 더 첨부해서, 05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면 대단히 감사하겠습니다.
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2021-04-28 15:12:31

안녕하세요 예스스탁입니다. 진입식에 시간제한 조건을 지정하셔야 합니다. var : Tcond(false); if (sdate != sdate[1] and stime >= 055000) or (sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then Tcond = False; if Bdate != Bdate[1] Then Tcond = true; if Tcond == true Then { 진입수식 } If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 항상 감사드립니다. 미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서, 미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서, 아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데, 가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다. If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 이 코딩에 간단한 무언가를 더 첨부해서, 05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면 대단히 감사하겠습니다.
프로필 이미지

즐겁게

2021-04-29 10:42:32

답변 주셔서 대단히 감사합니다. 작은 추가 질문 올리고자 합니다. if Bdate != Bdate[1] 이 것의 의미를 설명해 주시면 대단히 감사하겠습니다. ((YLHelp.docx 등에서 찾아 봐도, bDate 영업일(Business date) 라는 설명 외에는 사용례라든지 등이 보이지 않아서 질문 올립니다)) 대단히 감사합니다! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다. > 안녕하세요 예스스탁입니다. 진입식에 시간제한 조건을 지정하셔야 합니다. var : Tcond(false); if (sdate != sdate[1] and stime >= 055000) or (sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then Tcond = False; if Bdate != Bdate[1] Then Tcond = true; if Tcond == true Then { 진입수식 } If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 항상 감사드립니다. 미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서, 미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서, 아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데, 가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다. If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 이 코딩에 간단한 무언가를 더 첨부해서, 05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면 대단히 감사하겠습니다.
프로필 이미지

예스스탁 예스스탁 답변

2021-04-29 16:48:40

안녕하세요 예스스탁입니다. plot1(sdate); plot2(bdate); 위 지표수식을 차트에 적용해 보시면 sdate는 0시를 기준으로 날짜가 변경되고 bdate는 특정시간에 변경되는 것을 보실수 있습니다. 각 거래소마다 새로운 영업일을 시작하는 기준시간이 있습니다. 예를들어 국내거래소는 9시이고 CME의 경우 우리나라시간으로 8시(썸머타임 7시)입니다. Bdate는 영업일변경시간을 기준으로 변경되는 날짜이고 sdate는 0시 기준 변경되는 날짜입니다. if sdate != sdate[1] then 위 조건식은 0시기준으로 오늘 첫봉을 표현하는 식이고 if bdate != bdate[1] then 위 조건식은 영업일변경기기준으로 오늘 첫봉을 표현하는 식입니다. 국내종목은 야간장이 없어 위 2개의 날짜의 구분없이 사용하지만 해외선물의 경우에는 bdate를 사용해야 합니다. 그러므로 일반적으로 모든식에 당일 첫봉을 bdate != bdate[1]로 표현합니다. 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : Re : Re : 부탁드립니다. > 답변 주셔서 대단히 감사합니다. 작은 추가 질문 올리고자 합니다. if Bdate != Bdate[1] 이 것의 의미를 설명해 주시면 대단히 감사하겠습니다. ((YLHelp.docx 등에서 찾아 봐도, bDate 영업일(Business date) 라는 설명 외에는 사용례라든지 등이 보이지 않아서 질문 올립니다)) 대단히 감사합니다! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다. > 안녕하세요 예스스탁입니다. 진입식에 시간제한 조건을 지정하셔야 합니다. var : Tcond(false); if (sdate != sdate[1] and stime >= 055000) or (sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then Tcond = False; if Bdate != Bdate[1] Then Tcond = true; if Tcond == true Then { 진입수식 } If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 항상 감사드립니다. 미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서, 미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서, 아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데, 가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다. If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 이 코딩에 간단한 무언가를 더 첨부해서, 05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면 대단히 감사하겠습니다.