호가창과 틱데이터

by 퀀트대디

시장 미시구조의 기본은 뭐니뭐니해도 호가창을 건드리는 것에서 시작한다. 호가창(Limit Order Book)이란 말 그대로 시장에 현재 나와 있는 모든 호가들을 한눈에 보여주는 창, 즉 화면을 의미한다.

order_book.PNG 호가창의 예시 (출처: Bloomberg)

시장에 주문을 내는 방법에는 크게 두 가지, 시장가 주문과 지정가 주문이 있다. 시장가 주문(Market Order)은 주문을 던지는 즉시 바로 체결될 수 있도록 가격에 상관없이 반대편 최우선 호가에 무조건 체결을 시키는 공격적인 스타일의 주문을 의미하며, 지정가 주문(Limit Order)은 내가 지정한 바로 그 가격에서만 거래를 체결시키도록 하는 방어적 스타일의 주문을 의미한다.


시장가 주문을 내게 되면 시장의 유동성을 잡아먹게 되고 그 즉시 체결이 발생하기 때문에 이는 결국 유동성 수요자(Liquidity Taker)의 주문이라고 할 수 있으며, 반대로 지정가 주문은 시장에 유동성을 공급하는 주문이기에 해당 주문은 유동성 공급자(Liquidity Provider)의 주문이라고 할 수 있다. 결국 앞서 말한 호가창은 유동성 공급자들에 의해 제출된 모든 지정가 주문들이 집적되어 있는 공간을 의미한다.


틱데이터(Tick Data)는 이러한 호가창에서 발생하는 모든 사건들에 대한 정보가 담겨있는 가장 높은 해상도의 장중 데이터셋을 의미한다. 주문 방식에 시장가 주문과 지정가 주문, 두 가지 종류의 주문이 있는 것처럼 틱데이터 또한 체결 데이터와 호가 데이터, 이 두 종류의 데이터로 구성되어 있다.


우선 체결 데이터(Trade Data)는 시장에서 매수와 매도가 만나 실제 매칭이 되어 발생한 거래에 대한 정보가 들어있는 데이터다. 여기엔 일반적으로 거래가 발생한 시각, 거래 가격, 거래량과 같은 정보가 포함된다.

trade_data.PNG 체결 데이터 전문 예시 (출처: Bloomberg)

호가 데이터(Quote Data)란 호가창 상황의 변화를 포착하는 데이터를 의미하는데, 이러한 호가 데이터는 지정가 주문의 유입과 취소, 체결 발생에 의한 유동성 소멸을 실시간으로 반영하게 된다. 이러한 호가 데이터가 체결 데이터 보다 상대적으로 다루기 좀 더 번거로운 이유는 호가창이라는 것이 최우선 호가에 대한 데이터뿐만 아니라 중간 가격으로부터 멀리 떨어져 있는 호가들에 대한 데이터까지를 전부 포함하기 때문이다. 시장에서 흔히 이야기하는 틱데이터의 레벨(Level)이라는 것은 결국 이러한 호가 데이터의 복잡성 정도에 따라 레벨을 붙인 것이다.


Level I : 최우선 매수/매도 호가 및 잔량

Level II : 호가창 전체를 포함하고 있는 데이터셋, 가령 매수/매도 5~20 호가 및 잔량

Level III : 호가 출처 정보까지 담겨있는 가장 원시적인 데이터셋

image.png 틱데이터의 레벨 구분 (출처: BMLL)
quote_data.PNG 호가 데이터 전문 예시 (출처: Bloomberg)

실시간 틱데이터를 스트리밍하는 모듈을 제작하게 되면 체결 데이터와 호가 데이터로 구성된 전체 틱데이터가 위에서 보았던 그림들과 같이 전문 형태로 수신되게 된다. 우리가 일반적으로 보고 있는 가격 차트라는 것은 사실 이러한 틱데이터를 일간 단위로 끊어서 일봉이라는 형태로 적층시킨 결과물에 불과하다.


즉, 틱데이터는 금융시장 데이터 중 가장 작은 단위의 원자와도 같은 데이터라고 할 수 있으며, 이러한 틱데이터를 구성하고 있는 체결 데이터와 호가 데이터는 기계를 만들기 위해 필요한 볼트와 너트에 비유될 수 있다. 장중 트레이딩과 시장 미시구조로 진입을 하게 되면 우리는 그동안 우리에게 주어진 일봉이나 분봉 차트가 아닌 달러바나 거래량바 같이 시장의 미시 구조적 정보를 보다 잘 담을 수 있는 형태로 재조립해서 사용하게 된다. 유의미한 시장 미시구조적 특성을 발견하는 일은 결국 이러한 재조립을 어떻게 할 것인가에서부터 출발한다. 마치 머신러닝에서의 데이터 전처리와 같다고 할까나. 정말 중요하지만 정말로 귀찮은?

keyword
매거진의 이전글입문용으로 좋은 시장미시구조 서적 Best 5