FEP접수 혹은 매매체결큐 순서

1.
 몇 일전 DMA 지연측정을 위한 방법 시론이라는 글을 포스팅했습니다. 이 때 풀리지 않는 의문점이 있었습니다.  “거래소는 ‘시간우선의 원칙’을 어떻게 시스템화하였는가”라는 의문도 그중 하나입니다.

 KRX도 밝히고 있고 대부분의 거래소들이 채택하고 있는 매매체결의 원칙은 ‘가격/시간의 원칙’입니다. 그리고 매매체결은 ‘시간우선의 원칙’에 따라 호가주문을 처리합니다. 이 때 ‘시간우선’의 기준을 무엇으로 할지는 중요합니다. 저처럼 FEP접수시간으로 해야 한다고 주장하는 사람도 있지만 매매체결프로세스에 도착하는 순서라고 주장하는 분도 있습니다. 이와 관련한 토론을 할 기회가 있었습니다. 예상하시겠지만 당연히 공식적인 자리가 아니라 술자리였습니다. 오랜 시간 매매체결시스템을 개발하였던 분입니다. 과거형입니다. 당연히 현직은 아닙니다.

  우선 증권사 FEP가 가지고 있는 거래소FEP의 주소가 스위치 혹은 라우터인지 아닌지를 물어보았습니다. ‘라우터’라고 합니다. 예상했던 바와 같습니다.  다른 궁금증을 질문하였습니다.  “KRX는 시간우선의 기준으로 무엇으로 하고 매매체결시스템을 구축하였나”는 질문에는 ‘매매체결 프로세스의 큐순서’라고 하더군요.

 나름 역사가 있는 이야기였습니다. 최초 매매체결시스템은 현재 Exture와 달랐습니다. 메임프레임으로 시스템을 구성하였습니다. 그리고 X.25로 회원사와 연결하였습니다. 이 시절 시스템은 단순하였다고 합니다. 메임프레임이니까 유닉스장비처럼 여러대를 두어야 할 이유가 없었습니다. 하나의 메인프레임으로 FEP를 처리하고 매매체결을 담당하는 메인프레임에서 호가주문을 처리하는 구조인 듯 합니다. 이런 구조일 경우 FEP에 주문이 도달한 순서와 매매체결프로세스가 주문을 처리하는 순서는 같습니다.

 FEP순서=매매체결순서=동일한 시간우선의 원칙

(*)이상은 저의 추론입니다. 사실과 부합하지 않을 수 있습니다.
 
그런데 2006년 현재 Exture를 구축하면서 시스템적인 변화를 합니다. 아주 긴 논쟁을 겪은 후 메인프레임에서 유닉스로 다운사이징을 합니다. 또한 X.25를 버리고 TCP/IP를 회원사 접속 표준으로 선택합니다. 이 때 과거와 달리 여러대의 서버(FEP)로  주문전달기능을 수행합니다. 복수의 주문전달서버와 단수의 매매체결프로세스가 TCP/IP로 연결하는 구조가 탄생합니다. 어떤 기준으로 호가처리순서를 정하느냐에 따라 전산적인 요건이 달라집니다. 만약 주문전달서버가 주문을 접수하는 순서를 기준으로 한다면 시간동기화가 무척 중요합니다. 아울러 매매체결프로세스가  호가주문을 시간순으로 재정립하는 프로세스도 추가하여야 합니다. 반대로 매매체결프로세스가 접수하는 순서를 기준으로 하면 고민할 일이 별로 없습니다. 그냥 주문전달프로세스는 받은 순서대로 주문접수 프로세스에 전하고 체결프로세스는 처리합니다. 아마도 현재 Exture는 후자를 기준으로 하고 있는 듯 합니다.

2.
 Exture를 개통하고 세월이 흐르면서 두가지 문제가 등장하였습니다. 첫째는 거래량이 폭증하면서 매매체결속도가 늘려지기 시작하였습니다. 둘째는 동일시간대 주문간의 경쟁이 치열해지면서 ‘보다 빨리’ 주문을 내고 싶어 합니다. 이에 대해 KRX는 대응책을 마련하였고 그것이 Exture+입니다. 체결속도는 두자리 마이크로초이내입니다.첫번째 요구에 대한 대응입니다.

 모든 증권사의 주문은 KRX를 향합니다. KRX가 개설한 특정한 상품을 처리하는 특정한 매매체결프로세스를 항합니다. 마치 수많은 정자들이 자궁안에서 난자를 향해 돌진하는 모습과 비슷합니다.  정자들은 주어진 환경에서 자유롭게 길을 찾아서 수정을 할 수 있습니다. 그렇지만 주문은 아닙니다. 내가 주문을 내는 순간, 어떤 경로를 거처셔 갈지가 정해집니다.  덧붙여 각각의 경로는 모두 다릅니다. 차이가 있습니다. 증권사안에서는 같은 경로라고 하여도 거래소의 경로가 다르면 다른 값이 나옵니다. 밀리초일 수도 있고 마이크로초일 수 있습니다. 최근 증가하고 있는 주문들의 경쟁은 마이크로초수준입니다. 마이크로초차이로  손해를 볼 확률이 높아집니다. 아무리 내 주문이 몇 마이크로초만큼 빨라도 거래소내 주문전달과정에서 늦어지면 불이익을 받습니다. 시스템적인 불공정입니다.

 매매체결시 ‘시간우선의 원칙’을 어떻게 적용하여야 할까요? 현재의 원칙은 ‘매매체결프로세스가 접수하는 순서’입니다. 아무리 거래소주문전달프로세스에 빨리 주문을 보내도 거래소 내부조건에 따라 매매체결프로세스에 늦게 도착하면 불이익을 받는 구조입니다.  앞서 술자리에서 순서 재조립(Re-Ordering)을 이야기했습니다. 술 상대가 반박을 하더군요.

 “어떤 시간기준으로 재조립을 하여야 하냐?1밀리초, 2밀로? 아니면 50마이크로?”

 타당한 질문입니다. 만약 주문접달프로세스 접수시간을 기준으로 한다고 하면 토론할 가치가 있습니다. 또한 공정성을 위해서 투자할 가치가 있다고 생각합니다. 만약 재조립때문에 매매체결시간이 늘어난다고 하여도 투명한 시장을 위해 지불할 비용이라고 생각합니다.

Leave a Comment

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

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