CME MDP 시세 수신 개발

2019. 12. 17. 16:36FEP

CME는 서울에 목동/상암 IDC 센터를 통해서 iLink FIX를 통해 직접 주문내고, MDP 시세도 수신받을 수 있도록 CME 허브(Hub)를 구축해 놓았다. CME와의 시세수신 계약이 끝나고 시세를 수신할 수 있도록 네트웍 구성이 완료되면 멀티캐스트 형태의 시세를 수신 받아서 개발할 수 있다. 개발환경은 인터넷 VPN으로 되어 있고, 운영은 전용선을 구축하면 된다.

 

시세 개발을 위해서는 먼저 환경설정 파일을 다운로드 받아야 한다. http://ftp.cmegroup.com 에서 다운 받아볼 수 있다. anonymous 계정으로 오픈되어 있다. FTP 사이트에서 SBEFix 디렉토리에 들어가 보면 Cert, CertAutoCertPlus, NRAutoCertPlus, NRCert, Production 디렉토리가 있다. Cert(Certificate)는 ASIS 개발 환경을 의미하고, NRCert(New Release Certificate)는 TOBE 개발환경을 의미한다. Production은 운영환경을 의미한다. 

 

 

NRCert에 있던 것이 운영환경으로 이행이 되면, Cert에도 최신으로 업데이트 되고, Production도 변경되게 된다. 그러므로, Cert와 Production은 Template 입장에서는 비슷하다고 보면 된다. (Template는 동일하지만, config는 다름). AutoCertPlus는 자동으로 구성되는 환경이라고 보면 된다. 주문이던 시세이던 최초 구축 또는 제도변경으로 인한 변경 적용을 위해 CME에서 Certificate를 받도록 요구하는 경우가 있다. 이때 웹화면에서 자유롭게 Certificate를 받을 수 있게 자동화된 형태로 구축된 웹사이트가 있다. (https://autocert.cmegroup.com) 로그인을 위해서는 아이디와 계정이 필요한데 CME의 계좌 관리자(Account Manager)에게 문의하면 된다.

 

일반적으로 브로커들과 FIX 세션을 생성할 때에는 해당 브로커의 담당자와 스케줄을 정해서 적합성테스트(Certificate)를 진행하는 경우가 많다. 그런면에서 CME는 시스템을 잘 갖춰 놓았다고 볼 수 있다.

 

제도 개편 등으로 개발환경에 선 적용이 되면, CME에서 NRCert에 환경설정정보 및 Template 파일을 올려놓게 된다. 회원사들은 NRCert에서 필요한 파일들을 다운로드 받아서 개발을 시작하면 된다. 살펴봐야할 파일은 Configuration/config.xml과 Templates/templates_FixBinary.xml이다. config.xml은 아이피, 포트, 채널정보가 들어있는 설정파일이고, templates_FixBinary.xml은 SBE(Simple Binary Encoding) 파싱을 위한 템플릿 파일이다. 새로운 버전이 생기면 templates_FixBinary_v10.xml와 같은 식의 파일이 생성되어 있는 것을 확인해볼 수 있다.

 

템플릿 파일을 다운로드 받으면, 해당 템플릿 기반으로 SBE 파싱을 위한 cpp 클래스 헤더 파일들을 생성할 수 있다. 헤더 파일 생성을 위해서는 오픈소스로 되어 있는 sbe-all-1.4.2-RC4.jar를 사용할 수 있다.

https://jar-download.com/artifacts/uk.co.real-logic/sbe-samples/1.4.2-RC4/source-code

 

헤더파일을 생성할 수 있는 스크립트는 다음과 같이 할 수 있다. (java 1.8 이상 사용)

java -Dsbe.target.language=cpp -Dsbe.generate.ir=true -Dsbe.output.dir=$HOME/gensrc -Dsbe.keyword.append.token=_ -jar sbe-all-1.4.2-RC4.jar templates_FixBinary.xml

위 프로그램 실행이 되면 템플릿에 기반한 SBE 파싱을 위한 클래스들이 정의된 헤더(*.h) 파일들이 생성되어 있는 것을 확인할 수 있다. 생성된 헤더 파일을 include 하여 시세 수신을 개발하기 시작하면 된다. 수신된 MDP 데이터 전문에는  템플릿 버전이 포함되어 있는데 그 버전을 확인하고, 파싱을 진행하도록 코딩하는 것이 좋다.

'FEP' 카테고리의 다른 글

FEP(대외접속) 이야기  (1) 2019.12.09