커뮤니티

동일한 수식을 사용하나 신호가 다르게 나옵니다

프로필 이미지
엠씨용가
2022-08-15 00:42:31
1552
글번호 161502
답변완료

첨부 이미지

안녕하세요, 동일한 전략을 한국투자증권 예스트레이더와 이베스트 예스트레이더에 적용시켰는데 다른 신호가 발생합니다. 정확히 말씀드리면 summer time 여부에 따라 토요일 새벽 청산 시간을 달리하는것인데요. 한국투자증권은 제가 작성한 대로 나오나, 이베스트에서는 시그널이 발생하지 않고 있습니다. 왜 그런가 확인해보니 이베스트 5분봉 에서는 썸머타임이 0 으로 되어 있습니다. 그리고 일봉에서 썸머타임 코드를 적용해보니 썸머타임 기간에 1로 제대로 나옵니다. 즉 썸머타임 코드가 분봉에서는 제대로 실행이 안되고 일봉에서만 제대로 실행된다는 것인데요, 왜 이렇게 되는걸가요? 그리고 이베스트 예스트레이더에서 1) 썸머타임이 true이고 dayofweek(date) == 6면 54500에 청산. 2) 썸머타임이 false 이고 dayofweek(date) == 6이면 64500에 청산 하는 코드를 작성해주시면 감사하겠습니다. 참고로 이베스트는 차트속성 들어가서 기준시간을 서울/도쿄로 수정했고 썸머타임 코드는 아래와 같습니다. var : summer(0); if bdate != bdate[1] Then{ if stime <= 70000 Then summer = 1; Else summer = 0; } plot1(summer);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-08-16 15:00:49

안녕하세요 예스스탁입니다. 1 stime <= 70000 위 조건때문에 2개회사의 조건판별이 다르게 됩니다. 증권사나 선물사 별로 stime의 시간기준이 다른경우가 있습니다. 한국투자증권의 경우 70000,70500과 같이 시작시간이 00초로 시작하지만 이베스트의 경우에는 70001, 70501과 같이 시작시간이 01초로 시작됩니다. 2개 회사 모두 동일한 로직으로 썸머타임 판변하시기 위해서는 수식을 아래와 같이 변경하시면 됩니다. var : summer(0); if bdate != bdate[1] Then{ if stime < 80000 Then summer = 1; Else summer = 0; } plot1(summer); 2 var : summer(0); if sdate != sDate[1] and dayofweek(date) == 6 Then { if summer == 1 Then SetStopEndofday(54500); Else SetStopEndofday(64500); } if bdate != bdate[1] Then { SetStopEndofday(0); if stime < 80000 Then summer = 1; Else summer = 0; } plot1(summer); 즐거운 하루되세요 > 엠씨용가 님이 쓴 글입니다. > 제목 : 동일한 수식을 사용하나 신호가 다르게 나옵니다 > 안녕하세요, 동일한 전략을 한국투자증권 예스트레이더와 이베스트 예스트레이더에 적용시켰는데 다른 신호가 발생합니다. 정확히 말씀드리면 summer time 여부에 따라 토요일 새벽 청산 시간을 달리하는것인데요. 한국투자증권은 제가 작성한 대로 나오나, 이베스트에서는 시그널이 발생하지 않고 있습니다. 왜 그런가 확인해보니 이베스트 5분봉 에서는 썸머타임이 0 으로 되어 있습니다. 그리고 일봉에서 썸머타임 코드를 적용해보니 썸머타임 기간에 1로 제대로 나옵니다. 즉 썸머타임 코드가 분봉에서는 제대로 실행이 안되고 일봉에서만 제대로 실행된다는 것인데요, 왜 이렇게 되는걸가요? 그리고 이베스트 예스트레이더에서 1) 썸머타임이 true이고 dayofweek(date) == 6면 54500에 청산. 2) 썸머타임이 false 이고 dayofweek(date) == 6이면 64500에 청산 하는 코드를 작성해주시면 감사하겠습니다. 참고로 이베스트는 차트속성 들어가서 기준시간을 서울/도쿄로 수정했고 썸머타임 코드는 아래와 같습니다. var : summer(0); if bdate != bdate[1] Then{ if stime <= 70000 Then summer = 1; Else summer = 0; } plot1(summer);