News & Events
[알고리즘 트레이딩/전략편] 35. Bid-Ask Bouncing (BAB) 척도
- 2019년 1월 11일
- Posted by: 인사이트캠퍼스
- Category: 금융/AI/IT 기사
알고리즘 트레이딩 (Algorithmic Trading) – 전략 (35)
Bid-Ask Bouncing (BAB) 척도
마켓메이킹 전략에는 정보기반 거래자의 유해성 주문 (Order flow toxicity) 위험과 재고 발생 위험이 존재한다. 두 위험은 모두 Bid-Ask Bouncing (BAB) 척도와 밀접한 관계가 있다. BAB는 주가가 오르거나 내리지 않고 최우선 호가 (Bid / Ask)에서 지속적으로 주문이 체결되는 것을 말한다. BAB가 지속적으로 발생하려면 최우선 호가의 잔량이 풍부하거나 (순) 지정가 주문의 유입량이 많아야 한다 (유동성이 풍부해야 함).
마켓메이킹 전략은 BAB rate이 높은 구간에서는 위험이 감소하고, BAB rate이 낮은 구간에서는 위험이 증가한다. 따라서 마켓메이킹 전략의 성과를 개선하기 위해서는 BAB를 측정하고 관리하는 것이 필요하다.
실제 시장 데이터를 이용해서 BAB의 특성을 관찰해 보자. 아래 데이터는 2013년 1월 14일의 KOSPI200 지수 선물의 체결 틱 데이터이다 (호가 틱 데이터는 제외하고 체결 틱만 분석함). 이 데이터에는 체결 가격, 체결 수량, 체결 방향 (Buy or Sell) 그리고 Mid-price가 기록되어 있다. 참고로, 이 시기는 Exture+ 이전이라, 체결 방향 (부호)은 Lee-Ready (1991) 방식으로 분류하였다.
위의 데이터에서 체결 가격 (transaction)을 차트로 그려보면 아래 그림과 같다. [그림 A]는 10시 1분의 1분간 틱 차트를 그린 것이다. 육안으로 보면 BAB가 발생하는 구간을 볼 수 있다. 그런데 이 차트는 주문의 연속성으로 인해 어디까지가 BAB 구간인지 구분이 잘 되지 않는다. 주문의 연속성은 주로 분할 주문 (Split Order)으로 발생한다. 만약 이 분할 주문이 한 주체의 연속 주문이라면 이것을 동일한 주문으로 취급할 수도 있다. 연속 주문을 한 주문으로 취급해서 다시 틱 차트를 그리면 [그림 B]가 된다.
[그림 B]는 2 분간 틱 차트로 [그림 A] 보다 BAB 구간이 더 잘 구분된다. 구간 A ~ C 까지는 1 tick size (0.05 pt)의 BAB가 지속되고 있고, 구간 D 는 2 tick size (0.10 pt)의 BAB가 지속되고 있다. 그럼 이 그림에서 BAB 율을 어떻게 측정하면 좋을까? 우선적으로 생각할 수 있는 것은 직접 Bouncing 개수를 세어보는 것이다. 구간 A는 10 번의 Bouncing이 발생했고, 구간 B는 8번의 Bouncing이 발생했다 (왕복 기준). 또 다른 방법은 체결 가격의 ACF (Autocorrelation Function)를 계산해 보는 것이다. BAB가 높다면 lag=1 일 때보다 lag=2 일 때의 자기상관계수가 더 높을 것이다. 즉, lag=2 일 때의 자기상관계수를 측정하여 BAB rate으로 사용하는 것을 생각해 볼 수 있다. 그러나 이 방법도 어디까지를 BAB 구간으로 봐야할지 애매하다. 구간 A, B, C를 BAB 구간으로 봐야할지, 구간 D 전체를 하나의 BAB 구간으로 봐야할지 애매하다.
틱 차트가 아닌 다른 방법으로 BAB rate을 측정할 수는 없을까? BAB가 지속적으로 발생하면 Mid-price는 변하지 않는다. 따라서 단위 시간 당 Mid-price의 변화율을 측정하면 BAB의 척도로 사용할 수 있다. 만약 단위 시간 당 Mid-price가 빈번히 변하면 BAB rate이 낮은 것이고, Mid-price가 잘 변하지 않으면 BAB rate이 높은 것이다.
아래 그림은 위의 틱 데이터를 이용해서 체결 틱이 몇 번 발생한 후에 Mid-price가 변했는지를 측정한 것이다. 첫 번째 라인은 3 체결 틱 만에 Mid-price가 바뀐 것이고 두 번째 라인은 체결 틱이 발생하자마자 Mid-price가 바뀐 것이다 (장 개장 직후라 Mid-price가 빈번히 바뀌었다).
Tick time 기준으로 볼 때 Mid-price가 바뀔 때 까지 발생한 틱 수 (여기서는 cnt로 표현함)는 Mid-price가 바뀔 때까지의 시간 간격이므로 지수분포를 형성한다. 2013-01-14일의 경우는 cnt의 일일 평균이 6.87 이었다. 즉, 평균적으로 체결 틱이 6.87번 발생할 때마다 Mid-price가 한 번씩 바뀐 것이다. cnt가 높을수록 BAB rate이 높은 것이고, cnt가 낮을수록 BAB rate이 낮은 것이다. 따라서 cnt를 BAB rate의 대용치로 사용할 수 있다.
아래 그림은 30분 간격으로 평균적인 cnt (여기서는 t_cnt 라고 썼음) 및 체결 수량을 측정한 결과이다. 09:00 ~ 09:30 까지는 총 1,111개의 체결 틱이 발생했으며, 틱 당 평균 체결 수량은 3.44개였고, 6.63 틱 마다 Mid-price가 한 번씩 변경되었다. 11:00 ~ 11:30 구간에서 t_cnt = 10으로 Mid-price가 가장 천천히 변경되었다. 즉, 이 구간에서 BAB rate이 가장 높았다.
[그림 A]는 30분 동안 발생한 총 체결 틱의 변화를 그린 것이다. 장 초반에는 체결 틱이 많이 발생하고, 중반으로 갈수록 감소하다가, 후반으로 가면 다시 약간 증가한다. 이 모양은 대부분 U-자형을 그린다 (변동성, 거래량 모두 동일함). [그림 B]는 t_cnt의 변화를 그린 것이다. 가장 높은 지점은 11:00~11:30 동안이었고, 가장 낮은 지점은 14:00~14:30 동안이었다. [그림 C]는 체결 틱 당 발생한 체결 수량의 변화이다. 장 후반으로 갈수록 틱 당 체결 수량은 증가하고 있다. 즉, 장 후반으로 갈수록 주문이 분할되는 정도가 약해지고 있다.
위의 분석을 이용하면 BAB를 고려한 마켓메이킹 전략을 만들어 볼 수 있다. 지속적으로 시장을 관찰하여 [그림 B]의 데이터를 수집한다. 그러면 시간 대 별로 BAB의 평균적인 분포를 만들 수 있다. 이 분포를 BAB Profile이라 하자. 현재의 t_cnt는 BAB profile 보다 위나 아래에 있을 것이다. 즉, BAB profile을 균형점으로 t_cnt가 위, 아래로 분포한다. 현재의 t_cnt가 BAB profile 보다 위에 있으면 더욱 적극적으로 마켓메이킹 전략을 수행하고, BAB profile 아래에 있다면 소극적으로 전략을 수행한다.
고전적으로는 시계열 분석으로 BAB profile을 기준으로 앞으로의 t_cnt 분포를 예측해 볼 수도 있고, Machine Learning (혹은 Data mining) 기법으로 예측해 볼 수도 있을 것이다. 재고관리 전략과 더불어 BAB profiling 전략을 가미한다면 마켓메이킹 전략의 성과는 더욱 개선될 것으로 생각된다.