매매체결시스템의 속살

1.
국내에 매매체결시스템을 사용하는 회사가 몇 곳이 있을까요? 한국거래소(KRX) 한 곳? 틀렸습니다. 파생상품중개를 제외한면 세곳입니다. 한국거래소, 서울외국환중개, 한국자금중개.

서울외국환중개와 한국자금중개는 FX Spot거래를 중개해주는 회사들입니다. 중개시스템이라고 하지만 내용으로 보면 한국거래소의 매매체결시스템과 동일합니다. 몇 달전 외국환중개와 자금중개가 차세대시스템 발주를 했습니다. 이 때 핵심은 매매체결과 관련된 기능을 대폭 개선하는 일이었습니다. ?얼마전에 있었던 자금중개 차세대시스템 제안에 참여할 기회가 있어 매매체결시스템을 분석정리할 기회를 가졌습니다.

제안내용을 살짝 소개하겠습니다. 모든 거래소는 매매체결의 원칙이 있습니다.

가격 우선과 시간 우선 원칙이 있다. 가격 우선 원칙은 매수 주문의 경우 가격이 높은 주문이 낮은 주문보다 우선한다. 매도 주문은 반대로 가격이 낮은 주문이 먼저 체결된다. 시간 우선 원칙은 동일한 가격의 주문이라면 먼저 접수한 주문이 나중에 접수한 주문보다 먼저 체결되는 것이다. 

한국거래소는 각 증권사별 접속세션을 할당합니다. 50개 증권사라고 하고 각 증권사당 10개 세션이 할당되어 있다고 가정하면 500개 세션에서 데이타가 들어옵니다. 초당 10건정도로 가정하면 초당 5000건의 데이타를 받아서 시간우선의 원칙을 적용하여야 합니다. 한국자금중개와 같은 중개사들도 비슷합니다. 한국거래소 매매체결시스템은 증권사 매매시스템을 통해 고객과 연결되지만 중개사 시스템은 각 기관의 딜러와 직접 연결되어 있다는 점만 다릅니다.이상과 같이 트레이더 혹은 딜러로 부터 주문을 받는 시스템을 접수시스템입니다. 시간우선의 원칙이 접수시스템에서 중요합니다. 요즘 Low Latency가 중요한 이유도 여기에 있습니다. 아래 자료를 보시면 Queue를 이용해 구성하였습니다.

아래는 제안했던 시스템의 전체구성 및 흐름도입니다.

수신-접수-집계-체결-분배-송신의 흐름으로 매매체결이 이루어집니다. 고성능을 구현하려면 쉽지 않다는 생각을 했습니다.

2.
얼마전 코스콤이 해외수출용으로 매칭엔진을 발주하였습니다. KRX에서 운영하고 있는 Exture도 물론 코스콤이 개발하였지만 매매 Framework와 관련된 몇몇 핵심기술을 ?소유하고 있지 않습니다. 그래서 수출을 할 경우 원가가 매우 높고 가격 경쟁력이 취약합니다. 그래서 KRX에서 운영하고 있는 Exture의 수출용 버전을 개발하기 위하여 발주를 하였습니다. 발주를 위한 제안요청서를 보면 매칭시스템 구성을 어떻게 하고 있는지 상상하실 수 있습니다.

몇가지 요청을 분석해 보았습니다.

첫째 메시징부분을 자체개발하지 않고 패키지를 도입한다는 부분입니다. Low Latency Messaging이 아주 중요합니다. 고성능 매칭엔진을 개발한다고 하면 당연히 이 부분을 자체개발하여야 하는데 하지 않는 점이 이해가 되지 않았습니다.

둘째 메모리DB를 자체 개발한다고 한 부분입니다. 이미 후지쯔가 TSE를 개발할 때도 메모리DB를 자체적으로 개발한 적이 있었습니다. 앞서 제안서 일부에서 표현되었지만 DB성능이 매매체결의 성능을 좌우하는 열쇠중 하나입니다.

셋째 네트워크에선 InfiniBand 지원을 포함하였습니다. Ethernet과 함께 IB도 지원하도록 하였습니다. Framwork을 설계할 때 결정하겠지만 OpenFabric을 사용하는 방향으로 갈 듯 합니다.

넷째 OS가 Linux로 지정되었습니다. 이점은 아주 중대한 변화입니다. 비록 저가형 시스템이지만 매매체결시스템은 가장 중요한 시스템입니다. 리눅스를 기본OS로 결정하였다는 점은 한국에서 의미가 있습니다.

그런데 RFP를 읽어가면서 두가지 의문이 들더군요.

첫째는 모든 소스를 코스콤이 소유한다는 점입니다. 코스콤이 소유할 수 있습니다. 예전에 저도 코스콤에 소스를 제공하고 저작권을 공동 소유한 경험이 있기때문입니다. 그런데 예산을 보면 쉽지 않아 보입니다.

둘째는 이상과 같은 시스템을 구축하는데 잡아놓은 예산이 4.56억입니다. 알티베이스가 메모리DB를 개발판매하고 있습니다. 이 회사의 일년 매출이 정확히 모르지만 몇 백억쯤 되지 않을까 합니다. 이런 정도의 매출이 기대되는 소스를 4.56억중 일부금액으로 구매한다고 하면 누가 참여할지 궁금합니다. 더구나 IB까지 지원하는 고속의 프레임워크까지 개발하면서.

3.
만약 한국의 KRX가 독점이 아니고 과거 ECN과 같은 거래소가 많이 생겼으면 매매체결시스템이 좀더 보편적인 시스템으로 발전하지 않았을까 합니다. 현재 코스콤외에 별도의 노하우가 없는 상황입니다. 세계를 놓고 보면 거래소시스템이 가야할 길은 점점 험난합니다. Latency경쟁의 최일선에 놓입니다. 막중한 책임입니다.(^^)

뱀발(蛇足).
요즘 갑들은 이상합니다. 발주를 해서 콘소시엄으로 제안을 받으면 평가해서 주사업자를 선택하면 됩니다. 주사업자를 선택한다는 말은 주사업자와 함께 제안한 콘소시엄을 선택한다는 뜻입니다. 그런데 주사업자만 선택하고 콘소시엄을 갑 입맛대로 재구성을 합니다. 협력업체를 낙동간 오리알로 만듭니다. 저와 관계된 프로젝트만 세번 목격을 했습니다.

제안서를 작성할 때 비용도 주지 않으면서 너무한다는 생각이 듭니다.물론 그 장단에 놀아나는 을도 마찬가지지만.

2 Comments

  1. 맥스

    매매체결의 가격>시간>수량 우선의 원칙이 적용된다면… KRX에서 주문의 우선순위를 위해 시간을 일정 간격으로 나눠서 그 안에서 다시 가격 우선의 원칙을 적용한다는 이야기인가요? 1ms 단위(예를 들어)로 주문을 리스트업한 뒤에, 거기서 가격 순으로 정렬한다는 거 같은데… 수량 원칙도 적용하려면 뭔가 시간 단위가 있긴 해야할 거 같은데… 궁금합니다. -0-

    p.s 근데 정말 본문의 뱀발 내용 웃기네요… 장난하는 것도 아니고… 제안서 장당 1000만원씩 줄 것도 아니면서.

    Reply
    1. smallake

      복잡한 내용은 아닙니다.

      First In, First Out이라는 뜻입니다. 누군가 삼성전자주식은 1만원에 만주를 팔았다고 가정하죠. A와 B가 동시에 주문을 냈다고 생각하지만 KRX에 전문을 접수할 때 Timestamp상으로 B가 A보다 먼저 도착했다고 하면 B가 삼성전자주식을 매수해야 합니다. 그런데 A가 먼저 체결되었다고 하면 시간우선의 원칙을 위배합니다.

      문제는 위에서 적은 것처럼 주문을 받는 파이프(유닉스에서 pipe가 아닙니다)가 여럿있습니다. 문제는 천 여개 정도라면 머리가 복잡해지죠. 마이크로초 혹은 나노초단위로 전문의 순서를 정해야 하니까…

      사족은 사실입니다. 이제 IT세계가 웃기는 짜장입니다. 어제 트위터에 이런 글을 올렸습니다.

      “현대차 정몽구의 몽니? 현대건설 인수실패를 이유로 외환은행, 동양증권과 거래단절을 선언했습니다. 금융권 IT제안을 하다보면 대형사들이 예금을 무기로 낙찰받았다는 소문이 많았는데 사실인가 봅니다. 내가 하면 로맨스. 남이 하면 불륜이라는 생각인가 봅니다”

      뭐…이런 일이 작지 않겠죠?

      Reply

Leave a Comment

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

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