알고리즘 실행 입문 - 제9부: 스마트 라우터

게시자: 오더X

가장 주문(child order)이 적절한 거래소를 찾는 방법: IOC(즉시집행 주거나취소)를 사용하여 투명 거래상장의 호가창을 휩쓸기, 지정가 주문 큐 모델링, 그리고 다크풀 내에서 안전하게 거래하기.

Smart order routing across venues

이 시리즈의 모든 알고리즘은 결국 동일한 출력, 즉 어딘가로 전송되어야 하는 자식 주문을 생성합니다. 수십 개의 주식 거래소나 각기 자체 호가창을 가진 수십 개의 암호화폐 거래소로 파편화된 시장에서 그 "어딘가"를 결정하는 것은 진정한 최적화 문제입니다. 스마트 오더 라우터(SOR)가 이 문제를 해결합니다. 이는 스케줄링 로직 아래에 위치합니다. 상위 알고리즘이 가격, 수량, 타이밍을 결정하면 라우터가 목적지를 결정합니다.

시장가 주문, 호가창에 노출되는 수동적(display-passive) 주문, 다크 풀 주문은 각기 다른 문제에 직면하기 때문에 라우터는 일반적으로 다음 세 가지 서브 엔진으로 구성됩니다.

  1. 즉시 체결을 요구하는 주문을 위한 시장가 오더 라우터,

  2. 호가창에 노출된 대기 주문을 위한 지정가 오더 라우터, 그리고

  3. 숨겨진 유동성을 위한 다크 애그리게이터입니다.

시장가 오더 라우터

분할 및 스윕 (Splitting and Sweeping)

질서 있게 지금 즉시 실행해야 하는 주문이 주어지면, 라우터는 모든 거래소의 통합 호가창을 비교하고 주문을 분할하여 최적의 평균 가격을 확보합니다. 거래소 C에 19.99달러에 100단위가 있고 거래소 A에 20.00달러에 100단위가 있다면, 200단위 매수 주문은 100/100으로 분할되어 들어갑니다. 이는 어느 한쪽 호가창만 쓸어담는(sweep) 것보다 더 나은 평균 가격을 보장합니다. 암호화폐에서는 이 계산에 거래소별 수수료(taker fee)도 반영해야 합니다. 수수료가 높은 거래소에서 표면적으로 더 나은 가격은 수수료를 차감한 후에는 더 나쁜 거래가 되는 경우가 많습니다.

인플라이트 문제 (The In-Flight Problem)

주문이 전송되는 밀리초(ms) 단위의 시간 동안 호가가 사라질 수 있습니다. 목표 호가가 사라진 후 도달한 일반 시장가 주문은 남아있는 가격이 얼마든 호가창을 쫓아가며 체결(chase)되므로, 라우터는 대신 목표 가격 근처에 고정된 IOC 시장성 지정가 주문을 보냅니다. 유동성이 사라지면 호가창을 훑으며(walking) 불리하게 체결되는 대신 주문이 취소되어 돌아옵니다. 또한 라우터는 분할된 주문들의 도달 타이밍을 동기화합니다. 한쪽 주문이 눈에 띄게 일찍 도착하면, 다른 시장 참여자들이 스윕의 시작을 감지하고 나머지 주문이 도착하기 전에 다른 모든 거래소의 호가를 빼버릴(fade) 수 있기 때문입니다.

숨겨진 유동성 탐색하기

거래소에는 호가창에 표시되지 않는 미드포인트(midpoint) 주문이나 리저브(reserve) 유동성이 존재할 수 있습니다. 라우터는 미드포인트 가격이나 그 부근으로 작은 IOC 주문을 보내는 핑(pinging)을 통해 이를 찾아냅니다. 소액 주문의 경우, 여러 거래소에 핑을 돌리는 비용이 저렴합니다. 하지만 대량 주문의 경우, 작은 체결이 연속으로 발생하는 것 자체가 신호가 됩니다. 일련의 부분 체결은 대형 투자자가 거래 중이라는 사실을 시장에 알리는 꼴이 됩니다. 이에 대한 방어책은 주문에 최소 수용 수량(MAQ, Minimum Acceptable Quantity)을 설정하는 것입니다. 즉, "일정 규모 이상으로만 체결해 달라"고 요청하여 체결 확률을 일부 희생하는 대신 정보 노출을 방지하는 것입니다.

라우터 vs. 전략

유용한 경계선: 시장가 오더 라우터는 실시간 스냅샷을 기반으로 작동하는 빠르고 과거 기억이 없는(memoryless) 도구입니다. 기회주의적 알고리즘(파트 7)은 라우터 에 존재하는 전략적 계층으로, 애초에 진입할 가치가 있는지 여부를 결정합니다.

지정가 오더 라우터

최적의 대기열 선택하기

비시장성 주문(예: 매도 호가 20.00달러 대비 19.98달러에 매수 주문 제출)의 경우, "어느 거래소에서 이 주문이 가장 먼저 체결될 것인가?"가 핵심 질문이 됩니다. 직관적으로는 대기열이 가장 짧은 곳을 선택하겠지만, 올바른 사고 모델은 마트의 계산대 줄입니다. 중요한 것은 대기열의 길이가 아니라 대기열 길이를 처리 속도로 나눈 값입니다. 분당 1,000단위가 거래되는 곳에서 내 앞에 500단위가 대기 중인 거래소가, 분당 10단위가 거래되는 곳에서 내 앞에 100단위가 대기 중인 거래소보다 낫습니다.

두 가지 복잡한 변수가 이 문제를 진정으로 어렵게 만듭니다. 첫째, 답은 주문 규모에 따라 달라집니다. 소액 주문은 단일 대기열의 맨 앞부분만 신경 쓰면 되지만, 대형 주문은 대기열이 더 길게 시작하더라도 궁극적으로 가장 깊고 지속적인 거래 흐름을 가진 거래소를 필요로 합니다. 둘째, 수수료 구조가 행동을 왜곡합니다. 인버티드(taker-maker) 거래소는 수수료를 깎아주는 혜택으로 테이커들을 끌어들이기 때문에, 표시된 호가 깊이 대비 대기열이 더 빨리 소진됩니다(수수료 모델에 대한 파트 2 참조).

대기열 이론에서 기계 학습 모델로

단순한 대기열 이론 공식은 이러한 현실을 많이 놓치기 때문에, 실제 프로덕션 라우터는 경험적 데이터에 의존합니다. 스프레드, 변동성, 거래소 시장 점유율, 호가 깊이 등의 피처를 활용한 로지스틱 회귀 체결 확률 모델을 사용하며, 저렴한 유동성이 소진됨에 따라 테이커 흐름이 거래소 간에 어떻게 이동하는지와 같은 체제 변화(regime effects)를 포착하기 위해 비선형 모델(그래디언트 부스팅 트리, 신경망)을 점점 더 많이 도입하고 있습니다. 수수료가 변경되거나 새로운 참여자가 진입할 때마다 거래소의 역학 관계가 바뀌기 때문에 이러한 모델은 지속적으로 재학습됩니다.

다크 애그리게이터

미드포인트 경제학

다크 애그리게이터는 숨겨진 거래소(다크 풀) 전체에 걸쳐 대기 중인 노출을 관리합니다. 이들 거래소에서는 보통 미드포인트(midpoint, 중간가)에서 체결이 이루어집니다. 매수자와 매도자가 스프레드를 절반씩 나누어 가지며 사전 정보는 전혀 노출되지 않습니다. 모델링할 수 있는 가시적인 대기열이 없기 때문에, 애그리게이터는 과거의 체결률과 실시간 피드백을 기반으로 물량을 배분합니다. 즉, 최근 어떤 풀에서 어느 정도 규모로, 어떤 상대방과 체결이 발생했는지를 기준으로 삼습니다.

핑, 포스트, 파운스 (Ping, Post, Pounce)

전형적인 배분 사이클은 다음과 같습니다. 먼저 모든 풀에 IOC 주문으로 핑(ping)을 보내 숨어있는 대기 매매 의사를 확인합니다. 그 후 가장 유망한 순서로 순위가 매겨진 풀에 잔여 수량을 게시(post)합니다. 그리고 게시된 주문이 갑자기 전량 체결되면 즉시 더 큰 규모로 덮칩니다(pounce). 전량 체결이 발생했다는 것은 일반적으로 거래 상대방에게 배후에 더 많은 물량이 있음을 의미하기 때문입니다.

어둠 속에서 안전 지키기

다크 거래에도 포식자가 존재합니다. 적대적인 상대방은 기관의 주문 규모를 알아내고 그보다 먼저 거래하기 위해 자체적인 핑 캠페인을 실행합니다. 방어책은 다층적으로 구성됩니다.

  • MAQ: 상대방이 일정 규모 이상으로만 체결하도록 강제하여, 탐색 비용을 비싸게 만들어 함부로 간보지 못하게 합니다.

  • 거래 상대방 티어링 (Tiering): 많은 풀에서 참여자들이 매칭 대상을 "무해한" 세그먼트(순수 기관 물량)로 제한하고 단기 차익을 노리는 날카로운 참가자들을 배제할 수 있도록 지원합니다.

  • 조건부 주문 (Conditional Orders): 여러 풀에 동시에 의미 있는 규모의 주문을 올려두면서 중복 체결(overfill)(5개 풀에서 각각 남은 수량 전체가 체결되어 버리는 현상) 위험을 방지하기 위해, 애그리게이터는 구속력이 없는 조건부 주문을 게시합니다. 특정 풀에서 매칭이 발견되면 가체결 안내(invitation to firm up)를 보내오고, 라우터는 그때서야 실제 남은 수량에 맞춰 진짜 주문을 전송합니다. 이때 규율이 중요합니다. 가체결 제안을 반복적으로 거절(fall-down)하면 패널티를 받거나 퇴출당할 수 있으며, 조건부 주문 자체도 수량을 탐색하려는 낚시꾼들에게 악용될 수 있기 때문에 평판이 좋은 풀일수록 양방향을 엄격히 규제합니다.

라우터는 실행 스택의 "어디서(where)"를 완성합니다. 남은 전술적 질문은 각 하위 주문의 가격, 수량, 노출 방식을 "어떻게(how)" 처리할 것인가이며, 이는 파트 11의 주문 제출 로직에서 다룹니다. 그리고 거래소들이 시세(tape)나 청산소를 공유하지 않을 때 라우팅이 어떻게 변화하는지에 대해서는 파트 14의 암호화폐 실행을 참조하십시오.

새로운 거래 방식이
여기에 있습니다.

OrderX는 세련된 트레이더들이 그동안 기다려온 도구인 구조화된 실행, 통합 시스템 및 내장된 인텔리전스를 제공합니다.