커뮤니티

전략실행차트와 시뮬차트에서의 수급 수치가 다릅니다

프로필 이미지
kimura
2023-07-01 14:12:26
1545
글번호 219134
답변완료
안녕하세요, 제가 예스트레이더에서 참조데이터의 수급을 활용한 (예:1분봉에서의 개인콜금액, 외인 풋금액 등등) 매매로직을 만들어서 시뮬레이션 차트에서 백테스팅을 했습니다. 아주 잘되더군요. 그래서 그 로직 그대로 전략실행차트(실시간) 에서 며칠 해보니 예상한 결과대로 안나오는 날이 있었습니다. 왜 그런가 봤더니 1분봉에서의 수급 참조데이터가, 실시간차트에서 나오는 값과 시뮬차트에서 나오는 값이 다른 것 이었습니다. (MessageLog로 직접 비교 확인했음) 예를 들어 6월28일 1분봉에서의 수급참조데이터를 각각 실차트와 시뮬차트를 비교해보면 2023-06-28 09:01:00 실시간차트(개콜금=0, 개풋금=0) / 시뮬차트(개콜금=1, 개풋금=1) ... 2023-06-28 09:15:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:16:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:17:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:18:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) ... 2023-06-28 09:25:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=1) 이 외에도 28일에만, 오후 2시 27분까지, 틀린 수급 데이터가 50개나 더 있습니다. (물론 시뮬차트와 실시간 차트의 수급데이터가 완전히 같은 날도 있긴 합니다) 이거 시뮬차트에서 한 백테스팅이, 실시간 차트에서 서로 다른 값을 내보내어 오류가 나니(= 시뮬차트에서의 진입타이밍과 실시간 차트에서의 진입타이밍이 완전히 다르게 나옴) 당췌 어떻게 해야할지 모르겠습니다. 이거 예스트레이더 쪽에서 당장 수정가능한지요? * 제가 보니, 주로 선물/콜/풋 금액에서 (개인이건 외인이건 기관이건간에) 오류가 나는것 같은데, 차라리 이 수급의 금액 단위를 억단위가 아니라 백만단위로 출력해주시면 (그렇게 HTS에서 접근가능하게 업데이트 해주시면) 이런 데이터 싱크 불일치 문제를 근본적으로 해결할 수 있지 않나 생각합니다. 감사합니다 ----------------------------------------- 추가의뢰 1분봉 참조데이터 에서의 개인/기관/외인의 콜금액 풋금액을 제가 찬찬히 살펴보니 HTS버그라 할 수 있는 부분이 또 발견되었습니다. 제가 이해하기론, 예스의 콜금액, 풋금액은, 백만단위의 콜금액 풋금액을 정수2째자리에서 반올림해서 나온 억단위 금액이라고 알고 있는데 * 예를들자면 예스트레이더에서: 91(백만단위) 의 경우 => 1(억) 148(백만단위) 의 경우 => 1(억) 255(백만단위) 의 경우 => 3(억) 337(백만단위) 의 경우 => 3(억) -639(백만단위) 의 경우 => -6(억), -1050(백만단위) 의 경우 => -11(억) 이렇게 표시됩니다. 뭐 아주 당연한 것이겠지요. 그런데 문제는 이상하게도 이 콜풋 금액이 백만단위에서 -99 ~ -1 로 떨어질때는, 반올림을 하지않고 무조건 0(억원)으로 나온다는 것 입니다. (백만단위 금액은 대신과 키움HTS에서 모두 1분봉상의 데이터 추출하여 교차확인했습니다) 예를 들어, 2023-06-30일 외인 콜풋금액을 보자면, 2023-06-30 09:03:00 >>> -70 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 2023-06-30 11:04:00 >>> -27 (외인 풋금액 백만단위) => 예스표기는 0 (정상으로 표기) 2023-06-30 11:05:00 >>> -54 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 즉, 콜풋금액이 백만단위에서 -99 ~ -1 사이에 있으면, 원래는 Round 처리 되어야 할 것이, 무조건 Ceil 처리로 되버린단 말입니다. 이 범위 외의 금액들을 모두 정상적인 라운딩 처리를 하는데, 왜 -99에서 -1 사이의 금액은 무조건 0으로 씰링처리 하는지 모르겠습니다. 뭔가 예스트레이더에서 오류가 있는 것 같은데... 이 문제를 검토해보시고, 수정가능하면 빨리 부탁드리겠습니다. (그래야 제가 백테스팅을 제대로 할 수 있을테니까요 - 그래서 다시 부탁인데 부디 백만단위의 수급금액이 표시될 수 있게 참조데이터 에 넣어주시면 참 감사하겠습니다) 그럼 수고하십시오. 긴 글 읽어주셔서 감사합니다.
예스트레이더 (iM증권)
답변 3
프로필 이미지

kimura

2023-07-04 09:32:18

답변이 며칠지나도록 안달려 재문의 드립니다. 제가 여기 질의한 내용을 예스 측에서 검토하고 계신지요? 아니면 제가 한 질의에 오류가 있나요? (참고로 저는 NH트레이더를 사용하고 있습니다) 감사합니다. > kimura 님이 쓴 글입니다. > 제목 : 전략실행차트와 시뮬차트에서의 수급 수치가 다릅니다 > 안녕하세요, 제가 예스트레이더에서 참조데이터의 수급을 활용한 (예:1분봉에서의 개인콜금액, 외인 풋금액 등등) 매매로직을 만들어서 시뮬레이션 차트에서 백테스팅을 했습니다. 아주 잘되더군요. 그래서 그 로직 그대로 전략실행차트(실시간) 에서 며칠 해보니 예상한 결과대로 안나오는 날이 있었습니다. 왜 그런가 봤더니 1분봉에서의 수급 참조데이터가, 실시간차트에서 나오는 값과 시뮬차트에서 나오는 값이 다른 것 이었습니다. (MessageLog로 직접 비교 확인했음) 예를 들어 6월28일 1분봉에서의 수급참조데이터를 각각 실차트와 시뮬차트를 비교해보면 2023-06-28 09:01:00 실시간차트(개콜금=0, 개풋금=0) / 시뮬차트(개콜금=1, 개풋금=1) ... 2023-06-28 09:15:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:16:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:17:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:18:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) ... 2023-06-28 09:25:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=1) 이 외에도 28일에만, 오후 2시 27분까지, 틀린 수급 데이터가 50개나 더 있습니다. (물론 시뮬차트와 실시간 차트의 수급데이터가 완전히 같은 날도 있긴 합니다) 이거 시뮬차트에서 한 백테스팅이, 실시간 차트에서 서로 다른 값을 내보내어 오류가 나니(= 시뮬차트에서의 진입타이밍과 실시간 차트에서의 진입타이밍이 완전히 다르게 나옴) 당췌 어떻게 해야할지 모르겠습니다. 이거 예스트레이더 쪽에서 당장 수정가능한지요? * 제가 보니, 주로 선물/콜/풋 금액에서 (개인이건 외인이건 기관이건간에) 오류가 나는것 같은데, 차라리 이 수급의 금액 단위를 억단위가 아니라 백만단위로 출력해주시면 (그렇게 HTS에서 접근가능하게 업데이트 해주시면) 이런 데이터 싱크 불일치 문제를 근본적으로 해결할 수 있지 않나 생각합니다. 감사합니다 ----------------------------------------- 추가의뢰 1분봉 참조데이터 에서의 개인/기관/외인의 콜금액 풋금액을 제가 찬찬히 살펴보니 HTS버그라 할 수 있는 부분이 또 발견되었습니다. 제가 이해하기론, 예스의 콜금액, 풋금액은, 백만단위의 콜금액 풋금액을 정수2째자리에서 반올림해서 나온 억단위 금액이라고 알고 있는데 * 예를들자면 예스트레이더에서: 91(백만단위) 의 경우 => 1(억) 148(백만단위) 의 경우 => 1(억) 255(백만단위) 의 경우 => 3(억) 337(백만단위) 의 경우 => 3(억) -639(백만단위) 의 경우 => -6(억), -1050(백만단위) 의 경우 => -11(억) 이렇게 표시됩니다. 뭐 아주 당연한 것이겠지요. 그런데 문제는 이상하게도 이 콜풋 금액이 백만단위에서 -99 ~ -1 로 떨어질때는, 반올림을 하지않고 무조건 0(억원)으로 나온다는 것 입니다. (백만단위 금액은 대신과 키움HTS에서 모두 1분봉상의 데이터 추출하여 교차확인했습니다) 예를 들어, 2023-06-30일 외인 콜풋금액을 보자면, 2023-06-30 09:03:00 >>> -70 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 2023-06-30 11:04:00 >>> -27 (외인 풋금액 백만단위) => 예스표기는 0 (정상으로 표기) 2023-06-30 11:05:00 >>> -54 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 즉, 콜풋금액이 백만단위에서 -99 ~ -1 사이에 있으면, 원래는 Round 처리 되어야 할 것이, 무조건 Ceil 처리로 되버린단 말입니다. 이 범위 외의 금액들을 모두 정상적인 라운딩 처리를 하는데, 왜 -99에서 -1 사이의 금액은 무조건 0으로 씰링처리 하는지 모르겠습니다. 뭔가 예스트레이더에서 오류가 있는 것 같은데... 이 문제를 검토해보시고, 수정가능하면 빨리 부탁드리겠습니다. (그래야 제가 백테스팅을 제대로 할 수 있을테니까요 - 그래서 다시 부탁인데 부디 백만단위의 수급금액이 표시될 수 있게 참조데이터 에 넣어주시면 참 감사하겠습니다) 그럼 수고하십시오. 긴 글 읽어주셔서 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2023-07-05 17:28:13

안녕하세요? 예스스탁입니다. 답변이 늦어져서 죄송합니다. 말씀하신 현상은 확인하였고, 현재 원인 분석 중에 있습니다. 원인 파악이후에 다시 글 올리도록 하겠습니다. 감사합니다. > kimura 님이 쓴 글입니다. > 제목 : 전략실행차트와 시뮬차트에서의 수급 수치가 다릅니다 > 안녕하세요, 제가 예스트레이더에서 참조데이터의 수급을 활용한 (예:1분봉에서의 개인콜금액, 외인 풋금액 등등) 매매로직을 만들어서 시뮬레이션 차트에서 백테스팅을 했습니다. 아주 잘되더군요. 그래서 그 로직 그대로 전략실행차트(실시간) 에서 며칠 해보니 예상한 결과대로 안나오는 날이 있었습니다. 왜 그런가 봤더니 1분봉에서의 수급 참조데이터가, 실시간차트에서 나오는 값과 시뮬차트에서 나오는 값이 다른 것 이었습니다. (MessageLog로 직접 비교 확인했음) 예를 들어 6월28일 1분봉에서의 수급참조데이터를 각각 실차트와 시뮬차트를 비교해보면 2023-06-28 09:01:00 실시간차트(개콜금=0, 개풋금=0) / 시뮬차트(개콜금=1, 개풋금=1) ... 2023-06-28 09:15:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:16:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:17:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:18:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) ... 2023-06-28 09:25:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=1) 이 외에도 28일에만, 오후 2시 27분까지, 틀린 수급 데이터가 50개나 더 있습니다. (물론 시뮬차트와 실시간 차트의 수급데이터가 완전히 같은 날도 있긴 합니다) 이거 시뮬차트에서 한 백테스팅이, 실시간 차트에서 서로 다른 값을 내보내어 오류가 나니(= 시뮬차트에서의 진입타이밍과 실시간 차트에서의 진입타이밍이 완전히 다르게 나옴) 당췌 어떻게 해야할지 모르겠습니다. 이거 예스트레이더 쪽에서 당장 수정가능한지요? * 제가 보니, 주로 선물/콜/풋 금액에서 (개인이건 외인이건 기관이건간에) 오류가 나는것 같은데, 차라리 이 수급의 금액 단위를 억단위가 아니라 백만단위로 출력해주시면 (그렇게 HTS에서 접근가능하게 업데이트 해주시면) 이런 데이터 싱크 불일치 문제를 근본적으로 해결할 수 있지 않나 생각합니다. 감사합니다 ----------------------------------------- 추가의뢰 1분봉 참조데이터 에서의 개인/기관/외인의 콜금액 풋금액을 제가 찬찬히 살펴보니 HTS버그라 할 수 있는 부분이 또 발견되었습니다. 제가 이해하기론, 예스의 콜금액, 풋금액은, 백만단위의 콜금액 풋금액을 정수2째자리에서 반올림해서 나온 억단위 금액이라고 알고 있는데 * 예를들자면 예스트레이더에서: 91(백만단위) 의 경우 => 1(억) 148(백만단위) 의 경우 => 1(억) 255(백만단위) 의 경우 => 3(억) 337(백만단위) 의 경우 => 3(억) -639(백만단위) 의 경우 => -6(억), -1050(백만단위) 의 경우 => -11(억) 이렇게 표시됩니다. 뭐 아주 당연한 것이겠지요. 그런데 문제는 이상하게도 이 콜풋 금액이 백만단위에서 -99 ~ -1 로 떨어질때는, 반올림을 하지않고 무조건 0(억원)으로 나온다는 것 입니다. (백만단위 금액은 대신과 키움HTS에서 모두 1분봉상의 데이터 추출하여 교차확인했습니다) 예를 들어, 2023-06-30일 외인 콜풋금액을 보자면, 2023-06-30 09:03:00 >>> -70 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 2023-06-30 11:04:00 >>> -27 (외인 풋금액 백만단위) => 예스표기는 0 (정상으로 표기) 2023-06-30 11:05:00 >>> -54 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 즉, 콜풋금액이 백만단위에서 -99 ~ -1 사이에 있으면, 원래는 Round 처리 되어야 할 것이, 무조건 Ceil 처리로 되버린단 말입니다. 이 범위 외의 금액들을 모두 정상적인 라운딩 처리를 하는데, 왜 -99에서 -1 사이의 금액은 무조건 0으로 씰링처리 하는지 모르겠습니다. 뭔가 예스트레이더에서 오류가 있는 것 같은데... 이 문제를 검토해보시고, 수정가능하면 빨리 부탁드리겠습니다. (그래야 제가 백테스팅을 제대로 할 수 있을테니까요 - 그래서 다시 부탁인데 부디 백만단위의 수급금액이 표시될 수 있게 참조데이터 에 넣어주시면 참 감사하겠습니다) 그럼 수고하십시오. 긴 글 읽어주셔서 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2023-07-07 15:54:15

안녕하세요? 예스스탁입니다. 말씀하신 내용으로 확인 결과 반올림 처리 문제로 인하여 실시간 차트와 시뮬레이션 차트의 데이터가 다르게 나오는 것을 확인하였습니다. 이 부분에 대해서는 이번달 말까지 수정하여 반영할 수 있도록 하겠습니다. 그리고 말씀하신 -99~0 사이의 반올림 처리도 같이 수정 반영하겠습니다. 다만, 백만단위 데이터는 제공해 드릴 수 없는점 양해 부탁드리겠습니다. 사용에 불편을 드려 죄송합니다. 최대한 빨리 반영될 수 있도록 하겠습니다. 감사합니다. > kimura 님이 쓴 글입니다. > 제목 : 제가 제기한 수급문제가 검토되고 있는지요? > 답변이 며칠지나도록 안달려 재문의 드립니다. 제가 여기 질의한 내용을 예스 측에서 검토하고 계신지요? 아니면 제가 한 질의에 오류가 있나요? (참고로 저는 NH트레이더를 사용하고 있습니다) 감사합니다. > kimura 님이 쓴 글입니다. > 제목 : 전략실행차트와 시뮬차트에서의 수급 수치가 다릅니다 > 안녕하세요, 제가 예스트레이더에서 참조데이터의 수급을 활용한 (예:1분봉에서의 개인콜금액, 외인 풋금액 등등) 매매로직을 만들어서 시뮬레이션 차트에서 백테스팅을 했습니다. 아주 잘되더군요. 그래서 그 로직 그대로 전략실행차트(실시간) 에서 며칠 해보니 예상한 결과대로 안나오는 날이 있었습니다. 왜 그런가 봤더니 1분봉에서의 수급 참조데이터가, 실시간차트에서 나오는 값과 시뮬차트에서 나오는 값이 다른 것 이었습니다. (MessageLog로 직접 비교 확인했음) 예를 들어 6월28일 1분봉에서의 수급참조데이터를 각각 실차트와 시뮬차트를 비교해보면 2023-06-28 09:01:00 실시간차트(개콜금=0, 개풋금=0) / 시뮬차트(개콜금=1, 개풋금=1) ... 2023-06-28 09:15:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:16:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:17:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) 2023-06-28 09:18:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=-1) ... 2023-06-28 09:25:00 실시간차트(외풋금=0) / 시뮬차트(외풋금=1) 이 외에도 28일에만, 오후 2시 27분까지, 틀린 수급 데이터가 50개나 더 있습니다. (물론 시뮬차트와 실시간 차트의 수급데이터가 완전히 같은 날도 있긴 합니다) 이거 시뮬차트에서 한 백테스팅이, 실시간 차트에서 서로 다른 값을 내보내어 오류가 나니(= 시뮬차트에서의 진입타이밍과 실시간 차트에서의 진입타이밍이 완전히 다르게 나옴) 당췌 어떻게 해야할지 모르겠습니다. 이거 예스트레이더 쪽에서 당장 수정가능한지요? * 제가 보니, 주로 선물/콜/풋 금액에서 (개인이건 외인이건 기관이건간에) 오류가 나는것 같은데, 차라리 이 수급의 금액 단위를 억단위가 아니라 백만단위로 출력해주시면 (그렇게 HTS에서 접근가능하게 업데이트 해주시면) 이런 데이터 싱크 불일치 문제를 근본적으로 해결할 수 있지 않나 생각합니다. 감사합니다 ----------------------------------------- 추가의뢰 1분봉 참조데이터 에서의 개인/기관/외인의 콜금액 풋금액을 제가 찬찬히 살펴보니 HTS버그라 할 수 있는 부분이 또 발견되었습니다. 제가 이해하기론, 예스의 콜금액, 풋금액은, 백만단위의 콜금액 풋금액을 정수2째자리에서 반올림해서 나온 억단위 금액이라고 알고 있는데 * 예를들자면 예스트레이더에서: 91(백만단위) 의 경우 => 1(억) 148(백만단위) 의 경우 => 1(억) 255(백만단위) 의 경우 => 3(억) 337(백만단위) 의 경우 => 3(억) -639(백만단위) 의 경우 => -6(억), -1050(백만단위) 의 경우 => -11(억) 이렇게 표시됩니다. 뭐 아주 당연한 것이겠지요. 그런데 문제는 이상하게도 이 콜풋 금액이 백만단위에서 -99 ~ -1 로 떨어질때는, 반올림을 하지않고 무조건 0(억원)으로 나온다는 것 입니다. (백만단위 금액은 대신과 키움HTS에서 모두 1분봉상의 데이터 추출하여 교차확인했습니다) 예를 들어, 2023-06-30일 외인 콜풋금액을 보자면, 2023-06-30 09:03:00 >>> -70 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 2023-06-30 11:04:00 >>> -27 (외인 풋금액 백만단위) => 예스표기는 0 (정상으로 표기) 2023-06-30 11:05:00 >>> -54 (외인 풋금액 백만단위) => 예스표기는 0 (원래 -1나와야 함) 즉, 콜풋금액이 백만단위에서 -99 ~ -1 사이에 있으면, 원래는 Round 처리 되어야 할 것이, 무조건 Ceil 처리로 되버린단 말입니다. 이 범위 외의 금액들을 모두 정상적인 라운딩 처리를 하는데, 왜 -99에서 -1 사이의 금액은 무조건 0으로 씰링처리 하는지 모르겠습니다. 뭔가 예스트레이더에서 오류가 있는 것 같은데... 이 문제를 검토해보시고, 수정가능하면 빨리 부탁드리겠습니다. (그래야 제가 백테스팅을 제대로 할 수 있을테니까요 - 그래서 다시 부탁인데 부디 백만단위의 수급금액이 표시될 수 있게 참조데이터 에 넣어주시면 참 감사하겠습니다) 그럼 수고하십시오. 긴 글 읽어주셔서 감사합니다.