ATS시대와 트레이딩시스템(2)

1.
지난 번 ATS시대와 트레이딩시스템(1)은 누구나 짐작하고 예상하는 바를 이야기했습니다. 데이타가 늘어나지만 어떻게 늘어날지를 예상하여 전사적으로 대비하여야 한다가 핵심입니다. 두번째는 데이타의 내용입니다. 전산적으로 이야기하면 Market Data Management System과 관련된 내용입니다.

트레이딩 라이프 사이클(Trading Life Cycle)이라는 말을 사용합니다. Pre-Trade, Trade, Post-Trade로 이어집니다. 시장정보를 중심에 놓고 바라보면 각 단계에서 시장정보는 매우 중요한 역할을 합니다. Pre-Trade단계에서 중요한 부분은 리서치입니다. 정확한 시장정보를 분석하여 투자자가 판단할 수 있는 자료를 제공하여야 합니다. 이 때 틱데이타와 종가데이타의 누적데이타가 중요합니다. Trade단계에서 실시간 틱데이타가 중요합니다. Post-Trade단계는 평가가 중요합니다. Reference Data가 정확하여야 합니다. 투자자의 P/L뿐 아니라 다양한 상품들을 – 파생상품까지 포함하여 – 평가를 하여야 하기때문입니다.

보통 시장정보를 관리한다고 하면 이상과 같은 요구에 부합하여야 합니다. ?우리는 보통 시장정보를 말할 때 분배만을 중심에 놓고 이야기하는 경향이 있습니다만 시장정보의 수집, 분배, 가공, 저장을 아울러야 합니다. 증권사가 시장정보에 대한 정책이 어떤지 잘 모르지만 짐작하건데 분배가 중심인 듯 합니다. 분배라고 하더라도 시세스위치에서 Multicast그룹별로 시세를 분배하는 것정도가 아닐까 합니다. 가공의 경우 HTS를 중심으로 트레이딩시스템이 구축되어 있기때문에 흔히 BP/AP라고 하는 어플리케이션 개발영역에서 이루어집니다.

2.
ATS의 시대가 도래하면 시장정보의 수집, 분배, 가공, 저장들이 복잡해 집니다. 우선 수집부터 달라집니다. KRX/코스콤이 제공하는 KoscomDATA 서비스만 이용하면 끝 입니다. 그런데 ATS의 갯수가 늘어나면 늘어나는 만큼 수집을 하여야 하는 대상이 늘어납니다. 네트워크 구성부터 검토하여야 합니다. 물론 Koscom과 ATS들이 별도의 계약을 하여 현재의 시설을 통해 시세서비스를 받을 수 있도록 하는 방안이 나올 수 있습니다. 그렇지만 최선의 방안인지 아닌지에 따라 대안을 모색할 수도 있습니다. 최선인지 아닌지의 기준은 속도입니다. 누구나 생각하듯이 ATS가 주된 고객을 HFT로 생각하고 Low Latency가 중요하기때문에 시세의 레이턴시는 무척이나 투자자에게 중요합니다. 더구나 STOCKnet이라는 독점적인 환경을 통해서 서비스를 받아야 하지만 ATS가 경쟁적인 분배환경을 만든다면 선택은 더 넓어집니다.
어떤 네트워크사업자를 통하여 시세를 받을 것인가는 사실 복잡하지 않습니다. 가격 및 성능을 고려하여 선택하면 그 뿐입니다. 복잡한 문제는 ATS들이 제공하는 시세포맷입니다.?현재 KRX의 시세는 체결, 호가(OrderBook 용약정보) 및 가공정보등으로 구성되어 있습니다. UDP로 제공하고 있는 KRX의 주문접속프로토콜과 달리 Session Control과 관련된 정의는 없습니다. 가장 많이 사용하는 정보는 체결과 호가입니다. 현재 트레이딩시스템은 KRX가 제공하는 시세포맷을 기준으로 시장정보를 가공하고 있습니다. 시세정보를 처리하신 분들은 아시니까 자세한 내용은 생략하도록 하겠습니다. 이제 ATS가 하나 생겼다고 합시다. BATS가 한국에 진출하여 BATS Korea라는 이름으로 합작법인을 설립했다고 하죠. 당연히 BATS Korea는 자신들의 매매체결시스템을 그대로 도입합니다. 일정한 정도 감독규정을 준수하기 위한 변경을 하겠죠. 시세란 주문과 분리된 것이 아니기때문에 시세와 주문은 거의 동일합니다. 다만 주문은 P2P이지만 시세는 Broadcasting하다는 점이 다릅니다. BATS가 제공하는 시세포맷중 체결과 호가와 관계된 부분만 보도록 하겠습니다.BATS가 제공하는 시세는 여러가지 종류가 있지만 Multicast PITCH를 놓고 이야기를 하겠습니다. 아래가 Multicast PITCH의 신규주문(호가)과 관련된 시세전문입니다.

KRX의 호가정보와 많이 다르죠. 덧붙여 신규, 정정, 취소주문이 발생할 때마다 호가데이타로 내려옵니다. KRX는 신규,정정,취소주문이 발생하면 자체로 가공을 하여 10단계 호가정보를 주는 것과 다릅니다. 개별 정보를 가지고 호가 및 호가별 잔량을 구성하여야 합니다. 따라서 KRX와 같은 별도의 호가정보가 없습니다.? 시세데이타를 구성하기 위한 기본규칙이 KRX와 다릅니다. 더구나 Timestamp도 나노초입니다. 시세데이타가 전혀 다른 철학위에서 제공합니다. KRX와 완전히 다릅니다. KRX를 기준으로 만들어진 가공프로세스로는 처리할 수 없을 듯 합니다.

HTS를 기준으로 KRX와 BAST Korea를 처리한다고 할 때 AS-IS를 기준으로 할 때 어떤 그림이 그려질지 상상을 해보죠. HTS는 각각 BP라고 하는 독립된 시세처리부가 있습니다. 포트별로 시세를 받아서 메모리를 구성합니다. KRX는 현재에서 변화가 없습니다. BATS Korea는 복잡하지 않습니다. Korean PITCH 포맷을 시세를 보냅니다. 증권사는 받아서 특정한 포트로 시세를 보냅니다. 별다르지 않습니다. 받은 시세를 전문에 따라 가공프로그램을 개발합니다. BATS Korea만의 독립된 시세메모리를 구성하였습니다. 배치를 구성하여 KRX식으로 다양한 가공정보를 만들었습니다.? 문제가 남았습니다. 통합메모리를 구성하여야 합니다. 최소한 호가 및 호가잔량을 통합으로 구성하여야 합니다. Centralized Order Book입니다. 그런데 KRX와 BATS Korea가 다릅니다. 날 코딩을 하면 되지만 TCO를 고려하지 않을 수 없습니다. 더불어 ATS가 계속 늘어나면 날 수록 소스코드는 걸레가 되어갑니다. 대안이 필요합니다.

3.
방법은 무수히 많습니다. 그렇지만 추상화하면 시세가공부를 어디에 둘 지, 시세가공을 어떻게 할지가 중요합니다. 현재와 같은 방식으로 하면? 트레이딩시스템이 시세가공을 담당합니다. 그렇지만 하나의 트레이딩시스템만이 아니라 여러가지 트레이딩시스템이 시세를 사용합니다. 덧붙여 후선부서나 리서치부서에서도 시세를 사용합니다. 시세를 사용하는 시스템의 수만큼 가공하는 모듈이 존재합니다.

시세가공을 분배부분에서 하는 방법도 있습니다. 스위칭장비에서 바로 시세를 분배하지 않고 별도의 시세분배시스템을 구축하여 하나의 포맷으로 변환한 다음 메시징이나 별도의 스위치를 통해 분배할 수 있습니다. Consolidated Feeding입니다. 앞서 방법은 Direct Feeding이라고 합니다. Consolidated Feeding을 하더라도 완전히 다른 프로토콜이기때문에 어디를 기준으로 할지도 쉽지 않습니다. BATS Korea의 PITCH는 시세데이타도 순번을 관리하여야 합니다. 주문과 동일한 전문이기때문입니다.? 또한 ATS를 포함하여 시세를 제공하는 기관이 늘어나면 늘어나는 만큼 시세소스와 연결하기 위한 게이트웨어로써 Feed Handler가 필요합니다. Feed Handler도 거래소와 ATS별로 따로 만들 수도 있지만 공통 프레임워크를 개발하려면 또다른 비용이 발생합니다. 하여튼 Feed Hanlder들이 모여서 통합시세시스템을 구성합니다. Ticker Plant라고 합니다. 이럴 경우 어떤 트레이딩 시스템이든 아니면 시세를 필요로 하는 시스템이든 상관없이 하나의 API를 통하여 시세를 처리할 수 있습니다. 증권사 내부에 시세분배시스템을 두는 경우입니다.? 그렇지만 초기투자가 만만하지 않습니다. 변화의 폭도 너무 커서 의사결정이 쉽지않을 듯 합니다.? 그래도 저는 이 방식이 더 효율적이라고 생각합니다. 그래서 통합프레임워크의 Feed Handler를 개발하였고 – 다음주 초에 시험판을 냅니다(^^) – 독립된 메시징제품을 개발하였습니다.

가장 손쉬운 방법은 코스콤이 통합사업자역할을 하는 것입니다.? 중소 증권사입장에서 가장 선호하는 방식입니다. 코스콤이 각 거래소 및 ATS로부터 시세를 받아서 로이터와 같은 사업자처럼 통합시세서비스를 구축합니다. 그리고 Stocknet과 KRX의 포맷을 분배를 합니다. 말로는 간단합니다. 그렇지만 kRX와 BATS Korea의 프로토콜은 질적인 차이가 있습니다. 어디를 중심으로 하느냐에 따라 다양한 기술적인 이슈가 등장합니다.

물론 어떤 방법을 선택할지는 각 사의 몫입니다.

4.
이제 시각은 한국자본시장을 벗어나서 해외시장까지로 넓혀보도록 하겠습니다. 현재 증권사가 취급하는 상품은 아주 다양합니다. 국내주식,파생상품, 해외주식, 파생상품 및 채권 나아가 FX까지 넓습니다. 각 상품마다 시세가 있습니다. 전사적으로 관리할 필요성을 없을까요?

먼저 시장정보와 관련된 프로토콜이 어떤 것이 있는지 알아보도록 하겠습니다. ?아래 그림은 TipOff Market Data Protocol Map입니다.

위의 그림을 보시면 Transport와 Reliability는 충분히 이해가 되리라 생각합니다. 반면 Content와 Semantic은 생소하지 않을까 합니다. 그래서 위키에서 Communication Protocol과 관련된 부분중 일부를 인용합니다.

Getting the data across a network is only part of the problem for a protocol. The data received has to be evaluated in the context of the progress of the conversation, so a protocol has to specify rules describing the context. These kind of rules are said to express the syntax of the communications. Other rules determine whether the data is meaningful for the context in which the exchange takes place. These kind of rules are said to express the semantics of the communications. Both intuitive descriptions as well as more formal specifications in the form of finite state machine models are used to describe the expected interactions of the protocol.

사실 좀 복잡합니다.Rendevous나 Reuters의 제품을 거의 사용하지 않는 우리나라의 경우 생소합니다.그럼 이런 관점을 실제로 Market Data System을 설계할 때 어떻게 적용하는지 Reuters를 통하여 알아보도록 하겠습니다.Reuters Market Data System의 구성입니다.

(출처:Reuters Market Data System)
이를 구성하기 위하여 앞서의 Map에 기초하여 전자적인 마켓데이타관리방법론을 구축하였습니다 .

물론 이런 방법론이 필요없다고 생각할 수 있습니다. 그렇지만 트레이더들의 전략이 발전하고 속도와 관련된 여러가지 이슈들이 해결되면 Cross-Border Multi-Asset전략들을 사용하는 트레이더가 등장할 수 있습니다. 그런데 증권사는 각 상품별로 알아서 시세인터페이스를 처리하라고 하면 비용이 너무 많이 발생합니다.

얼마전 Activ Financial의 한국지사분이 찾아온 적이 있습니다. 모 증권사에서 DMA서비스를 받고 있는 해외기관이 증권사가 제공하는 시세가 아니라 자신들이 제공하는 시세를 사용하고 있다고 하더군요. 이유가 무엇일까요? 다른 시장에서 사용하고 있는 알고리즘을 수정하지 않고 그대로 사용하기 위함입니다. Active에서 제공하는 시세포맷을 개발된 전략입니다. 어떤 시장을 가도 변경할 이유가 없습니다. Subscribe만 변경하면 됩니다. 국내 트레이들도 – 최소한 프랍트레이더들이라도 – 이런 요구를 하면 어떻게 하여야 할까요?

시세소스가 늘어나고 IB로 거래하는 상품이 다양화하면 할 수도록 시세데이타, 마켓데이타를 어떻게 관리하는가는 무척 중요한 증권IT의 과제입니다. 또한 마켓데이타의 관리는 Best Execution이라는 법조항때문에 더욱더 중요해집니다.

2 Comments

  1. yosnoop

    Sesion -> Session, Subscibe -> Subscribe. 엔지니어이다보니 이런것만 눈에 들어오는 군요. 마켓테이터의 경우 로이터만 사용하는 저희로썬 몰랐던 이런 고민들이 존재할 수 있겠군요. 잘 읽었습니다.

    Reply
    1. smallake

      수정하겠습니다….감사합니다.(^^)

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.