DMA와 시세 레이턴시 측정

1.
한국거래소는 시장데이타를 아래와 같이 판매합니다.

개인투자자(Private individuals): KRX의 실시간 또는 지연시세정보(20분 혹은 종가)를 참고하고자 하는 개인투자자의 경우 증권선물사의 HTS 및 기타 언론사 및 정보벤더의 정보단말기 또는 포털사이트와 같은 웹사이트 등에서 확인하실 수 있습니다.

정보사업자 ∙ 기관투자자 등 전문투자자(Professional subscribers/Vendors): 전문투자자의 경우 KRX의 시세분배 영업 대행사인 코스콤과 이용계약 체결 후 데이터를 직간접적으로 수신 가능하며, 자세한 사항은 코스콤 데이터 홈페이지를 참조하시거나 아래 코스콤 영업2부로 문의하시기 바랍니다.

위 설명처럼 전문투자자는 코스콤을 통해 시세를 구입하여야 합니다. 코스콤이 구축한 시세분배시스템은 아래와 같은 구조입니다.

코스콤이 정한 시세정책을 보면 증권사나 DMA용 고객들이 사용하는 시세를 비조회용이라고 분류합니다.

비조회형 정보이용은 다음과 같이 분류된다.

(1) 트레이딩 목적 이용 : 자동 또는 반자동의 주문/호가 생성, 스마트오더라우팅(최선조건주문처리), 시장 조성(마켓메이킹), 알고리즘매매, 프로그램매매, 고빈도매매 등의 목적으로 실시간정보 이용
(2) 기타 비조회형 정보이용 : 다음 용도의 비조회형 어플리케이션을 통한 실시간정보 이용
․ 위험관리
․ 계량분석
․ 포트폴리오관리
․ 가공지표 산출 등

코스콤은 스톡넷을 운용하고 있는데 자본시장의 주문 및 시세를 전달하는 네트워크입니다. DMA를 이용하는 모든 트레이더는 금융회사가 스톡넷을 통해 받은 시세데이타를 이용하고 있습니다.

2.
시세데이타를 둘러싼 주변이야기를 했지만 아주 단순하게 도식화하면 DMA트레이더는 아래와 같은 흐름으로 시세데이타를 받습니다.

KRX 매매체결시스템 —주문/체결–> 코스콤시세분배시스템 –시세(호가,체결등)–> 코스콤시세스위치(코스콤 서울/부산)—> 증권사시스템스위치(코스콤)–> 증권사 자체스위치 —> (증권사DMA스위치)–> DMA서버

얼마 전 고객의 요구로 시세레이턴시를 측정하였습니다. 타 증권사와 비교하는 측정이 아니라 “증권사 자체스위치 —> (증권사DMA스위치)–> DMA서버”와 관련한 다양한 경우를 놓고 어떤 환경이 좀더 빠른지를 확인하는 작업이었습니다. 최초 생각한 모델은 다음과 같습니다.

첫째 시세전문중 거래소 시간이 들어간 전문을 복수로 선택한다.
둘째 시세수신프로세스가 동작하는 동안 첫째에서 선택한 전문을 모두 기록한다.
셋째 둘째의 데이타중 DMA서버수신시간,시세일련번호,종목코드,전문ID,거래소시간을 추출한다.
넷째 셋째 데이타를 이용하여 평균,중간,90분위,99분위를 구한다.

ZeroAOS중 ZeroFeeder의 경우 Log를 On/Off할 수있기때문에 관련한 로그를 남기고 위 작업을 하였습니다. 그런데 비교 날자를 같은 날로 하자고 해서 모델을 변경하였습니다. 그래서 tcpdump로 변경하였고 시간도 30분정도로 하였습니다. 종목도 전 종목을 하지 않고 특정한 종목을 선택하였습니다. tcpdump가 아니라 pf_ring라이브러리를 이용한 tcpdump로 할 생각도 했지만 컴파일 환경을 만들 수 없어서 포기하고 기본명령어로 하였습니다.

대략 40만건의 B601데이타를 수집하였습니다. 2가지 경우라 80만건의 데이타였습니다. 원 데이타를 보니까 B601S전문의 경우 일련번호가 정상적으로 내려오지만 특정한 경우 일련번호 없이 내려오는 데이타가 있더군요. 이 때 예외없이 레이턴시가 커집니다.

하여튼 통계를 내서 99백분위값이 두자리 밀리초정도였습니다. 시세데이타에 포함된 거래소시간이 매매체결시스템의 시간이라고 한다면 “KRX 매매체결시스템 —주문/체결–> 코스콤시세분배시스템 –시세(호가,체결등)–> 코스콤시세스위치(코스콤 서울/부산)—> 증권사시스템스위치(코스콤)–> 증권사 자체스위치 —> (증권사DMA스위치)–> DMA서버”에 걸리는 시간이 두자리 밀리초입니다. 평균값으로 보면 한자리 밀리초인 점을 고려하면 어디선가 Jitter가 있다고 생각합니다.

이상의 값을 각 금융회사마다 다를 듯 합니다. 각 금융회사가 측정해서 공표하지 않기때문입니다. 제가 생각하기에 최소한 코스콤은 증권사에 있는 코스콤 시세스위치에 시세가 도달하는 시간이 어떤지를 각 증권사별로 공고해야 하지 않을까 합니다. 그래야 코스콤이 시세서비스 레이턴시품질을 균일하게 하기 때문입니다.

앞서 DMA트레이더는 시세데이타흐름에서 할 수 있는 선택은 딱 2가지입니다.

첫째는 코스콤과 계약하여 직접 시세를 수신합니다. 외국계 투자자들이 주로 합니다. 이런 선택을 하는 경우 “증권사시스템스위치(코스콤)–> 증권사 자체스위치 —> (증권사DMA스위치)–> DMA서버”부분이 달라집니다.
둘째는 금융회사를 바꿉니다. 이런 선택을 하는 경우 “코스콤시세스위치(코스콤 서울/부산)—> 증권사시스템스위치(코스콤)–> 증권사 자체스위치”부분이 달라집니다.

국내투자자들중 첫째를 선택할 수 있는 곳이 많지 않을 듯 합니다. 대부분 둘째입니다. 물론 이 또한 쉽지 않습니다. 여러 금융회사의 DMA서비스를 이용하여야 비교측정이 가능합니다.

DMA트레이더들이 늘어나고 있습니다. 주식시장에 DMA를 통해 진출하는 트레이더들이 많다고 합니다. 이 분들이 생각하는 전략의 대부분은 시간이 중요합니다.

시간이 중요한 시스템을 구축하려면 우선 시간동기화가 중요합니다. 가능하면 PTP를 사용하여야 합니다. PTP도 두가지가 가능합니다. Hardware Timestamping과 Software Timestamping이 있는데 Hardware Timestamping만 지원하면 linuxptp와 같은 소프트웨어의 도움을 받아야 합니다. 다음은 시세레이턴시입니다. 가능하면 여러 증권사와 계약하여 서로 비교하는 것을 추천합니다. 여러가지 전략을 운용한다고 하면 가장 민간한 전략을 가장 빠른 곳에서 하는 것이 좋을 듯 합니다.

그런데 한번 측정한 값이 항상 같을까요? 제가 아는 한 그렇지 않습니다. 매달 한번정도는 측정해서 서로 비교해보시길 권합니다.

Leave a Comment

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

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