매매체결엔진 퀀트컵

1.
작년 Tower Research Capital이 10만불을 걸고 프로그램경진대회를 하였습니다. Quantcup이라는 이름으로 진행한 첫 대회의 주제는 Price-Time Matching Engine이었습니다.

QuantCup: a quant trading themed programming contest

우선 주최측이 기본소스를 제공하였습니다. 참가자는 주최즉이 제공한 소스중 engine.c를 수정하여 score_feed.h의 데이타를 가장 빨리 처리하는 개발자가 우승하는 방식입니다. 제공한 소스의 기본값은 14,500입니다. 대회 결과 437.9를 보인 voyager가 우승하였다고 합니다. 차이가 엄청나죠.(^^) 왜 이런 결과가 나왔는지 직접 확인해보시길 바랍니다. 그러면 주최측 소스와 우승자의 소스를 보시죠. 먼저 주최측 소스입니다.

다음은 우승자의 소스입니다.

2.
우승자는 아닙니다만 또다른 분이 소스를 올려놓았습니다. 아래를 가시면 주최측이 제공한 전체소스도 같이 확인할 수 있습니다. engine.c를 제외하면 주최측이 제공한 소스입니다.

Edmund Horner’s various projects and free stuff

 

3.
왜 이런 경진대회를 했을까요? 아마도 주문시스템을 구축할 때 가장 기본이 되는 것이 Limit Order Book관리이기때문입니다. 해외의 호가시세를 받아서 호가잔량정보를 만드려면 LOB기술이 필수적입니다. 따라서 LOB의 성능이 주문시스템의 성능에 큰 영향을 줍니다.

위의 소스들은 Limit Orde Book을 관리하기 위하여 double link list를 사용하였습니다. 이와 관련하여 재미있는 설문조사가 있습니다. LinkedIn의 어떤 분이 하는 조사입니다.

What is your favorite data structure when writing high-performance trading software?

HFT시스템을 구축할 때 어떤 방식으로 자료관리를 하는지에 대한 질문입니다. Hash Table or Hash Map이 14 (51%), Red?black Tree 2 (7%), Ring Buffer 9 (33%), Bloom filter 1 (3%), Soft Heap (0%)입니다.

아마 국내의 경우 Hash Table을 많이 사용할 듯 합니다. 물론 다른 경우도 있겠죠.

Leave a Comment

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

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