1.
한동안 제가 서비스하고 있는 ZeroAOS를 소개하지 않았습니다. 작년 말 ZeroM을 ZeroAOS로부터 떼어내는 작업을 시작한 이후 ZeroAOS 1.0은 중단한 상태라 할 수 있는 일이 별로 없었습니다. 여기에 여의도를 휩쓸고 있는 불황으로 홍보를 한다고 해서 달라질 것이 없다고 생각했습니다. 망중한이라고 해야 할까요? 겉으로는 조용하지만 안에서는 ZeroAOS 2.0을 작업을 계속 진행하였습니다. ZeroM을 대체하는 프로젝트인 ZeroBUS를 진행하였습니다. userspace IPC를 기반으로 합니다. ZeroBUS를 마무리하고 이를 ZeroAOS에 적용하는 일을 하였습니다. ZeroM과 다른 방식으로 인터페이스를 해야 하므로 긴 시간이 필요합니다. 이 과정에서 ZeroM으로 인하여 불필요하게 들어갔던 프로세스들은 모두 걷어냈습니다. 재개발의 마지막단계. 시험입니다. 시험은 증권사 고객과 함께 했습니다. FEP와 통신하는 ZeroBOG를 개발하고 단순하지만 가상거래소도 만들었습니다. 증권사 FEP에 접속하여 코스콤 테스트장에 연결하는 시험까지 정상적으로 마무리.
사내에서 개발장비로 사용하고 있는 X.86장비를 그대로 이용하여 Latency 측정을 했습니다. 이전보다 최소 15%이상 성능을 높혔습니다. Low Latency를 위하여 하드웨어 설정을 하면 절대적인 숫자도 작아지겠지만 ZeroAOS 1.0보다 성능이 좋아짐에 만족을 합니다.
2.
ZeroAOS 2.0을 준비하면서 몇 가지 시도를 해보았습니다. Quantopian 설립자에게 메일을 보냈습니다. Quantopian Korea를 만들 생각이 있는지를 물어보았습니다. 해외로 사업을 넓힐 생각이 없다고 합니다. 이런 질문을 보낸 이유는 Quantopian이 보유한 알고리즘때문입니다. ZeorAOS를 만들고 있는 이음 네트워크에 금융공학과 트레이딩전략을 담당하는 정식 파트너는 없습니다. 몇 분 협력을 요청했지만 실패했습니다. 저는 ZeroAOS를 단순히 자동매매를 위한 시스템으로 기획하지 않았습니다. 다양한 매매알고리즘을 자유롭게 올려서 운용할 수 있는 콘테이너(Container)로 생각했습니다. 알고리즘은 Latency에 민감한 것부터 복잡한 것까지 다양합니다. 그렇지만 이를 직접 개발하여 블랙박스식으로 판매할 생각도 능력도 없습니다. 그렇지만 ZeroAOS 2.0를 잘 활용하려면 매매알고리즘이 필요합니다. 그래서 Quantopian을 생각했습니다.
그러다가 더 고민을 해보니까 Quantopian은 커뮤너티입니다. Python으로 매매알고리즘을 개발하는 아마추어 퀀트들이 모인 곳입니다. 결국 ZeroAOS와 Python을 어떻게 통합할 것인가는 화두로 옮겨졌습니다. Quantopian의 플랫폼을 보면 가장 아래에 Python이 있지만 그 보다 더 중요한 부분은 Pandas입니다. Python Data Analysis Library이며 아주 강력한 도구입니다.
R도 훌륭하지만 Python도 데이타분석을 위한 도구로 훌륭합니다. 데이타분석에 기반한 매매전략이 보편화하는 요즘, 생산성과 성능을 고려할 때 Python은 매우 훌륭한 선택으로 보입니다.
Python data tools just keep getting better
그래서 Python을 C언어와 통합할 수 있는 방법으로 SWIG가 있지만 Pandas도 힘들어보입니다. Numpy처럼 C API가 있지도 않습니다. 그래서 이것저것 고민을 해보았습니다.
가장 먼저 떠오른 방법은 Zeroaos와 Python전략을 TCP/IP 혹은 IPC로 연결하는 것입니다. 단순히 socket programming을 하는 것이 가능하네요.
Python socket – network programming tutorial
‘ Historical Data + Steaming Data + Python + Pandas’ 더하기 socket이라는 그림이 가능할지 더 살펴야 합니다.
또다른 방법은 C언어로 개발하는 방법입니다.A Brief Tour of Some Other Useful C Libraries이 소개한 GNU Scientific Library (GSL)와 Apophenia로 가능할지 살펴보았습니다. 어찌되었든 Modeling With Data을 공부하여야 합니다.(^^)
솔직히 C언어로 가는 길은 어려워보입니다. 시간때문입니다. 가장 쉬운 방법은 ZeroAOS와 Quantopian Framework를 소켓으로 연결하는 것같지만 속으로 보면 넘어야할 고개가 많아 보입니다.
한국 알고리즘트레이딩이 발전하려면 커뮤너티가 필요합니다. 그렇지만 거의 불가능해보입니다. HTS API를 위한 커뮤너티도 부실해보입니다. 저의 입장에서 활성하는 방법은 Quantopian의 활용입니다. ZeroAOS와 Python의 통합입니다. ZeroAOS 2.0이 단순 숫자가 아니라 질적 변화이기 위해 고민하는 부분입니다.