항셍 틱 데이터를 실시간으로 받아오면서 5분 봉을 만드는 코드를 구성했는데
장이 끝나고 비교해보면 묘하게 틱 데이터가 누락되는 것 같기도 하고 가격이 밀리기도 하고 당겨지기도 하는 것 같은 이상한 기분이 들어서 차트를 열어놓고 하나씩 비교해봤다.
일단 항셍은 9시 15분에 장이 시작되고 거래가 집중되는데 그 바로 1분 전인 14분부터 동시호가가 1분 동안 진행된다. 당연하지만 이 동시호가에 거래되는 가격은 모두 동일하다. 아래는 키움증권과 이베스트투자증권의 HTS에서의 1분 봉이고 최초 9시 14분에 거래된 88 계약의 가격은 모두 21,366원이다.
그런데 언뜻 보면 두 차트가 동일해 보이지만 9시 15분부터 분봉을 유심히 관찰해보면 약간씩 차이가 발생하기 시작한다.
5분 봉으로 비교해보면 확연한 차이가 발생하는 것을 볼 수 있다.
1분 봉에서는 첫 번째 봉이 동시호가 시간대의 거래만이 포함되어 나타나나 5분 봉에서는 두 증권사의 HTS에서 다르게 표현되는데 키움증권의 경우 5분 봉도 여전히 1분 봉처럼 동시호가대의 거래량만 포함하고 있지만 이베스트투자증권의 경우 윗꼬리가 달려있는 음봉으로 표현되고 거래량도 88 계약이 아니라 107 계약이다. 말도 안 되지만 동시호가 시간 대 이후의 거래량을 포함하고 있는 것이다!!!
이 차이가 뭘까? 한참을 고민하다가 틱 차트를 열어서 봤는데 한숨이 나왔다. 예를 들어 가상의 A봉과 B봉의 시간대를 정의하고 이 A와 B의 경계점에서 발생되는 틱 데이터들이 어디에 포함되는지 살펴보면 아래와 같다.
A봉: 10시 0분 ~ 10시 5분 (5분간)
B봉: 10시 5분 ~ 10시 10분 (5분간)
거래시간 | 키움증권 | 이베스트투자증권 |
10시 4분 59초 | A봉 | A봉 |
10시 5분 0초 | B봉 | A봉 |
10시 5분 0.000001초 | B봉 | A봉 |
10시 5분 0.999999초 | B봉 | A봉 |
10시 5분 1초 | B봉 | B봉 |
이베스트투자증권의 HTS에서 항셍 분봉은 10시 5분 0.999999초를 이전봉(A봉)으로 인식한다. 10시 5분 1초가 되어야만 다음 봉이 된다. HTS는 물론 API 또한 마찬가지로 이 방법을 따르고 있다. 개인적으로 이건 잘못된 표현방법이라고 생각한다. 새해는 1월 1일이 되는 그 시점부터 시작되는 것이지 1월 1일 1초부터 시작된다는 것은 좀 아니지 않나?
'Python, API' 카테고리의 다른 글
DataFrame의 Loop속도 비교 (iloc, iat, iterrows, itertuples) (0) | 2022.11.13 |
---|---|
[XINGAPI] 주식차트조회(일주월) - t8413 (0) | 2022.07.07 |
[XINGAPI] 해외선물 실시간 주문접수/응답/체결 정보 가져오기 - TC1/TC2/TC3 (0) | 2022.06.30 |
[XINGAPI] 해외선물 분봉데이터 조회 - o3123 (0) | 2022.06.29 |
[XINGAPI] 해외선물 실시간체결정보 가져오기 - OVC (2) | 2022.06.29 |