# 트레이딩 시스템, 퀀트 트레이딩의 실체화
퀀트 트레이딩을 퀀트 트레이딩답게 만들어주는 요소는 단연코 이전에 언급했던 두 가지 엔진, 즉 백테스팅 엔진과 매매체결 엔진이다. 퀀트 트레이딩의 목적은 결국 트레이딩을 위한 아이디어 구상부터 직접적인 매매 행위까지를 가능한 한 계량화하고 자동화시켜 최대한 합리적인 방식으로 플레이를 지속해나가기 위함이다.
이 중에서도 매매체결 엔진을 제작하여 이를 활용해 실제 트레이딩의 전 과정을 자동화하는 것은 매우 중요하다. 왜냐하면 결국 우리 인간의 본성은 합리성과는 거리가 멀며, 특히나 시장을 코앞에 마주하고 있는 인간의 뇌는 도파민과 아드레날린으로 범벅이 되기 때문에 이성적인 판단과는 거리가 먼 행동들은 자꾸 저지를 수밖에 없기 때문이다. 한 치의 오차도 없이 어떠한 실수도 저지르지 않는다는 점에서 매매체결 엔진은 퀀트 트레이딩 비즈니스의 안정성을 담보해 주는 핵심적인 부분이라 할 수 있다. 여기서는 퀀트 트레이딩을 실체화시켜주는 바로 이러한 알고리즘 트레이딩 시스템의 설계구조를 한번 세밀히 들여다보고자 한다.
# 트레이딩 시스템의 설계구조 들여다보기
매매체결 엔진을 실무에서는 조금 깔쌈한 말로 OMS라 부른다. OMS는 Order Management System의 약자로 한국말로 풀어쓰자면 '주문 관리 시스템' 정도가 된다. 이러한 OMS 시스템을 설계하는 방식에는 물론 여러 가지 방법이 있겠지만 팩터 포트폴리오를 운용하는 퀀트 트레이더는 다음과 같은 OMS 설계 구조를 따르는 것이 일반적이다.
보다 구체적으로 OMS의 구성 요소에 대해 하나하나 살펴보기 전에, 우선 나 같은 경우는 해외파생을 가지고 퀀트 트레이딩을 하고 있기에 트레이딩 플랫폼으로 블룸버그 단말기(Bloomberg Terminal)를 사용하고 있다. 블룸버그에는 EMSX API라고 하는 알고리즘 트레이딩 전용 API가 잘 구비되어 있어 자체 OMS에 대한 구현을 손쉽게 할 수 있다. 트레이딩 플랫폼에 대한 선택은 어떤 시장인지, 어떤 자산인지에 따라 천차만별이다.
1) 데이터 핸들러
OMS 프로세스의 가장 첫 번째 관문 역할을 하고 있는 녀석은 바로 실시간 시장 데이터를 수집하는 데이터 핸들러이다. 이 데이터 핸들러는 API를 통해 실시간으로 시장으로부터 데이터를 수신하며 이렇게 수신 받은 데이터를 시그널 생성기와 데이터베이스로 보낸다. 데이터베이스에 계속해서 쌓인 이러한 데이터는 향후 새로운 전략 개발을 위한 백테스팅에 사용된다. 데이터는 곧 돈이다. 그렇기에 비용을 아끼고 싶다면 미리미리 데이터를 수집해놓자!
2) 시그널 생성기
두 번째 유닛인 시그널 생성기는 데이터 핸들러로부터 시장 데이터를 받아 트레이딩 시그널을 생성하는 역할을 담당한다. 여기서 말하는 트레이딩 시그널이란 개별 전략의 시그널들을 의미한다. 팩터 포트폴리오는 당연히 여러 가지 팩터 전략들을 가지고 있기 때문에 동일 시점의 데이터라 하더라도 어떤 전략은 그걸 보고 롱 포지션을 취하라 할 수 있으며 또 다른 전략은 반대로 숏 포지션을 취하라 할 수도 있다. 그렇기에 시그널 생성기는 각 전략들로부터 각각의 트레이딩 시그널을 산출해 포트폴리오 관리자에게 전달한다.
3) 포트폴리오 관리자
포트폴리오 관리자 유닛은 여러 전략들로부터 받은 트레이딩 시그널들을 포트폴리오 관점에서 취합해 각 자산에 대한 최종적인 매매 시그널을 산출하는 역할을 한다. 안정적인 팩터 포트폴리오를 구성하기 위한 여러 배분 모형들이 바로 여기서 제 역할을 하게 된다. 각 전략들의 시그널들은 배분 모형을 거쳐 포트폴리오의 목표에 맞게 다시 재조정되며, 이후 동일한 자산의 시그널들이 네팅되면 그제서야 실제 매매가 되어야 할 최종적인 시그널이 만들어진다.
4) 주문 체결 알고리즘
네 번째 유닛인 주문 체결 알고리즘은 포트폴리오 관리자로부터 수신한 최종 시그널을 기반으로 실제 주문을 내는 유닛이다. 사실 시장에서 실제로 매매를 한다는 것은 백테스팅처럼 그렇게 쉬운 일은 아니다. 왜냐하면 시장의 유동성 정도에 따라 시장은 내 포지션을 쉽게 받아줄 수도 그렇지 않을 수도 있기 때문이다. 특히나 이러한 유동성에 따른 포지션 구축 이슈는 체결시켜야 할 사이즈가 크면 클수록 더 심각해진다. 따라서 주문 체결 알고리즘은 최종 시그널을 실제 포지션으로 치환하는 과정에서 시장에 충격을 최소화하는 방식을 택해야 한다. TWAP 주문이나 VWAP 주문 같은 주문 방식은 바로 이러한 방법들의 대표적인 예시이며, 만약 시장미시구조에 정통하다면 호가 흐름 불균형(QFI, Quote Flow Imbalance)이나 체결 흐름 불균형(TFI, Trade Flow Imbalance) 같은 미시구조적 특성에 기반해 자체적인 주문 전략을 구현하여 입힐 수도 있다. 또한 주문 체결 알고리즘은 주문과 관련한 세심한 디테일에 초점을 맞춰야 하는 부분이기도 하다. 가령 실제 체결을 위해서는 주문 시간 체크, 롤오버 스케줄, 휴일 처리 등의 자질구레한 이슈들이 자동적으로 처리될 수 있도록 구현해야 한다.
5) 트레이딩 북
마지막 유닛인 트레이딩 북은 기체결된 거래 내역들을 기록해놓는 포지션 파일을 의미한다. 트레이더의 장부는 펀드라는 용어보다는 북(Book)이라는 용어를 사용하는데, 그 이유는 전통적으로 셀사이드의 트레이더가 장기적인 투자의 관점보다는 마켓 메이커나 딜러 처럼 재고 관리(Inventory Management) 차원에서 포지션을 기록해왔기 때문이다. 이러한 트레이딩 북에는 거래 내역의 세부 사항들, 즉 거래 시각, 티커, 체결 가격, 체결량, 만기, 승수 등이 기재되어 있으며 실제 주문은 최종 시그널과 보유 포지션을 네팅시킨 차이만큼이 나가게 된다. 또한 트레이딩 북을 통해 실시간으로 전략별 손익과 보유 포지션, 민감도, 위험 지표 등을 계산하고 모니터링할 수 있다.
# 설계구조에 대한 고민
퀀트 트레이더라면 누구나 OMS 시스템의 설계구조를 어떻게 가져가야 하는가에 대한 지속적인 고민을 하게 된다. 그 이유는 OMS야말로 시장에서 실제 매매를 일으키는 주체이기에 그 구조의 안정성이 확보되지 못하면 자칫 주문 사고로 이어질 수 있는 위험을 지니고 있기 때문이다. 또한 알고리즘이 각 거래소가 정해놓은 규정들을 잘 준수하도록 로직이 설계되었는가를 항상 체크해야 한다. 스포츠의 룰을 지키지 않으면 경기장에서 퇴장을 당하는 것처럼 시장에서도 시장이 정한 룰을 지키지 않으면 거래를 할 수 없게 된다. 알고리즘 트레이딩 시스템을 설계하고 구현하는 데 있어 꼼꼼함과 엄밀성이 요구되는 이유다.