News & Events
[알고리즘 트레이딩/전략편] 43. Market Manipulation의 측정
- 2019년 1월 11일
- Posted by: 인사이트캠퍼스
- Category: 금융/AI/IT 기사
알고리즘 트레이딩 (Algorithmic Trading) – 전략 43
Market Manipulation의 측정
거래 시장의 허수 주문을 검출하고 그 정도를 측정해 볼 수 있을까? 측정할 수만 있다면 현재의 거래 시장을 이해하는 데 큰 도움이 될 것이다. 그러나 거래소에서 공개하는 시세데이터만으로는 이를 측정하는 데 한계가 있다. 누군가 특정 호가에 지정가 주문을 내고 곧바로 취소 주문을 냈다고 해서 이것을 Market Manipulation 행위라고 단정할 수는 없다. 누구든지 시장의 변화에 따라 자신의 결정을 수시로 바꿀 수 있기 때문이다 (참여자의 권리). 만약, 누군가 반복적이고 상습적으로 이런 행위를 한다면 그 때는 의심해 볼 수 있다. 그런데 시세데이터만으로는 이런 행위가 동일 주체에 의한 것인지, 다수 참여자들의 정상적인 변심에 의한 것인지 판단할 수 없다.
Market Manipulation의 측정을 위해서는, 개별 주문의 행위를 일일이 분석할 수 없으므로 (공개 데이터의 한계), 거래 시장의 변화를 통계적으로 분석할 수밖에 없다. 장시간 거래 시장의 변화를 관찰하여 (데이터 구축), 일반적인 모습을 파악한 후 (일반적인 지정가 주문 유입률, 주문 취소율, 잔량의 분포, 체결률 등), 현재 시장의 모습이 일반적인 수준에서 얼마나 벗어나 있는지 등을 분석해 보면 간접적으로 추정해 볼 수 있다 (ex : 판별 분석 등, Classification).
개별 종목의 경우 특정 세력이 시장을 점령해서, 시세를 조작하고, 참여자들을 유인한다는 등의 뉴스를 가끔 접하게 된다. 이들은 자신이 원하는데로 주가 차트의 모양을 만들어 나가기도 하고, 작전을 위해 장시간 사전 작업을 벌인다는 이야기도 많이 하고 있다. 주가 차트만 가지고는 이들의 행위를 파악하기 어렵겠지만 호가창의 행위를 분석해 보면 이를 검출해 볼 수 있을 것이다. 예를 들어 개별 종목 1,000개 정도의 호가창을 관찰해서 일반적인 행태에서 과도하게 벗어나 있는 종목들을 발췌할 수 있고, 이런 종목들을 대상으로 세부적으로 분석해 보면 소위 작전 세력들에 대한 사전 작전 징후 등을 추정해 볼 수 있을 것이다.
이번 시간에는 여러 행위 중 유인성 유동성 (Ghost Liquidity)의 존재를 검출하는 방법에 대해 살펴보기로 한다. 이전 시간에 언급한 데로 유인성 유동성은 최우선 호가에 지정가 주문을 넣고, 다시 취소하는 행위를 반복하는 것을 말한다. 이런 행위는 꾸준히 발생하는 것이 아니라 특정 시간에 일정 기간 동안 일시적으로 나타났다 사라진다고 알려져 있다. 이 행위를 직접 관찰하기는 어려우므로, 최우선 호가의 변화를 관찰하여 간접적으로 측정하는 방법을 사용해 보기로 한다. 즉, 어떤 순간에 최우선 호가가 과도하게 흔들리고 있는지를 측정해 보는 것이다.
아래 측정 방법은 Arze Karam의 “An Empirical detection of HFT strategies [preliminary], 2015” 에 소개된 내용의 일부이다. 이 자료는 널리 참조되는 문서는 아니고, 측정 방법도 크게 의미 있는 것은 아니지만, 하나의 아이디어로 참조할만한 것으로 보인다. 이 문서에는 Quote Stuffing과 Momentum Ignition을 측정하는 방법을 소개하고 있다. Quote Stuffing의 경우는 최우선 Bid/Ask 호가의 흔들림의 정도를 측정하고, Momentum Ignition의 경우는 순간적인 주가의 Peak를 측정한다.
최우선 Bid/Ask 가격의 흔들림은 위의 3가지 경우가 있을 수 있다. [그림-1]은 최우선 Bid 가격은 일정한 반면 최우선 Ask 가격이 흔들리고 있다. [그림-2]는 Bid 가격만 흔들리고, [그림-3]은 Bid, Ask 모두 흔들리는 모습이다. 사실 이 현상은 Quote Stuffing 현상이라기보다는 유인성 유동성 (Ghost Liquidity) 현상에 더 가깝다. Quote Stuffing은 순간적인 트래픽 유발 행위로 최우선 호가에서 발생하기는 어렵다. 최우선 호가보다 먼 호가에서 발생할 가능성이 더 크다. 반면 유인성 유동성은 최우선 호가에서 발생할 가능성이 크다. 스프레드를 좁게 보이게 하려면 최우선 호가를 공략해야 하기 때문이다. 따라서 위의 자료에서는 Quote Stuffing 이라는 표현을 썼지만, 유인성 유동성에 대한 측정으로 보는 것이 더 타당해 보인다.
일정 기간 동안 최우선 호가가 흔들리는 정도는 위의 수식으로 측정해 볼 수 있다. 식 1)은 1 ~ j 기간 동안 Ask 가격의 변화를 누적한 것이다. [그림-1]의 경우 Ask 가격은 총 12 단위만큼 변화하였다 (CarryAsk = 12). 식 2)는 j 기간 동안의 최종 가격 변화를 의미한다. [그림-1]의 경우 처음 Ask 가격과, 마지막 Ask 가격이 동일하므로, 최종 가격 변화는 0 이다 (BigAsk = 0). 식 3)과 식 4)는 동일한 방법으로 Bid 측을 측정한 것이다.
식 5)는 Ask측의 D-ratio를 정의한 것이다. 우선 (CarryAsk / BigAsk) 는 Ask 가격의 최종 변화에 대해 Ask 가격이 얼마나 많이 흔들렸는지를 의미한다 (흔들림의 정도). 만약 Ask 가격이 10초 동안 계속 1단위씩 증가했다면 (A = 1, 2, 3 … 10 : A1=1, A10=10), CarryAsk = 9, BigAsk = 9 로 (CarryAsk / BigAsk) = 1 이다. 이 경우는 호가의 흔들림이 없었다는 것을 의미한다. 만약 Ask 가격이 10초 동안 1단위씩 오르락내리락 했다면 (A = 1, 2, 1, 2 … 2 : A1 = 1, A10 = 2), CarryAsk = 9, BigAsk = 1 (CarryAsk / BigAsk) = 9 이다. 이 경우는 앞의 경우보다 9배 정도로 흔들림이 컸다는 것을 의미한다.
식 5)의 Dask 는 Bid측 흔들림의 정도에 비해 Ask측의 흔들림이 얼마나 큰 가를 측정한 것이고, 식 6)은 반대로 Ask측 흔들림에 대한 Bid측의 흔들림의 정도를 측정한 것이다 (상대적 흔들림). 식 7)은 단순히 Ask측과 Bid측의 흔들림의 정도를 합한 척도이다. 여기서 분모가 0 인 경우는 이 호가창의 최소 Tick Size로 대체한다.
위의 측정 방식으로 일정 기간 동안 Dask, Dbid, D를 측정해서 일정 분포를 크게 벗어나는 경우가 얼마나 빈번히 발생하는지 측정해보면 유인성 유동성의 존재를 간접적으로나마 추정해 볼 수 있다. 직관적인 이해를 위해서는 실제 시장 데이터로 이 분포를 측정해서 분포의 모양과 이상치 (Outlier)의 존재 등을 관찰해 볼 필요가 있다. 측정 방법이 어렵지 않기 때문에, 증권사의 API 서비스를 이용해서도 쉽게 측정해 볼 수 있다. 이 부분에 대해서는 다음 시간에 자세히 살펴보기로 한다.
[출처]43. Market Manipulation의 측정|작성자아마퀀트