외국제품을 통해 본 Low Latency Trading System 개발 사례

1.
메일로 몇 분들이 HFT 시스템구축을 어떻게 할지를 문의해왔습니다. ASIC와 관련된 일을 하시는 분이었고 다른 분은 트레이더로써 소규모투자로 HFT를 구축할 수 있는 방법이 궁금한 분이었습니다.

최근 제가 본 몇가지 자료중 두분이 참고할 수 있는 – 생각의 지평을 넓힐 수 있는 – 사례를 소개하려고 합니다.

첫째는 In-Process Model이라는 이름의 제품. SpryWare라는 회사가 공급하는 제품을 HFT와 Low Latency에 맞추어재설계한 제품입니다. Embeded MIS(Market Information Server)입니다.

SpryWare, a provider of Ultra Low Latency feed handlers and direct market data technology, earlier this week announced their latest version of their direct feed handler technology, with an In-Process solution, breaking well in to the single digit microsecond latency arena. The SpryWare Embedded MIS (Embedded Market information Server), deploys as a full In-Process solution, bringing SpryWare’s feed handlers directly into the client trading application.

In-Process Model이란 하나의 프로세스(소프트웨어적인 의미의 프로세스)로 시세 및 주문까지를 처리하는 방법을 적용하였다는 뜻입니다. 보통 국내 시스템이 TCP/IP를 기반으로 한 Client/Server구조를 채택한 모델과 다르다는 뜻입니다. 우리를 기준으로 말하면 시세FEP에서 Multicast로 받은 시세데이타를 서버가 시세처리 및 알고리즘에 의한 주문 생성을 하나의 프로세스로 한다는 뜻입니다.

This technology combines market data acquisition, normalisation, and delivery with algorithmic trading engines into a single process. Gone are the delays associated with network hop latency, middleware distribution bottlenecks, double copies of data, and context switching overhead.

생각해보면 특별하지 않습니다.

그렇지만 숫자를 보면 특별합니다.Spryware가 OPRA를 이용하여 만든 벤치마크 자료입니다.Embeded MIS가 아닌 MIS와 관련된 Benchmark입니다. E to E 방식입니다. 우리로 말하면 DMA Trading과 같은 구조입니다. 거래소와 주문시스템이 직접 접속한 경우입니다. OPRA데이타를 장중 48세션을 통해 받았습니다. 초당 평균 890,712를 처리하였고 이때 CPU 점유율은 28.53%입니다.환경은 윈도우서버 2008입니다.

Chicago, IL, June 23, 2009 SpryWare, a technology provider of standardized market data via direct exchange feeds, today released its latest ticker plant latency report, resulting in an average latency of just 63 microseconds (?s). The extremely low latency was run in an end-to-end test from financial exchange feed to client application. The test was performed using a live OPRA feed from its 48 data channels during market hours on June 9, 2009, on just a single Microsoft Windows 2008™ server.

For the test SpryWare used a single server with 2 Intel Xeon? X5570 processors with 4 cores each. Running on Microsoft Windows Server 2008™ SP2 Standard Edition x64, the server showed only 28.53 percent CPU utilization at 890,712 OPRA messages per second (fully arbitrated for an aggregate 1,781,424). A total of 27,994,860 OPRA samples were taken during heavy trading morning hours.

MIS를 주문까지를 탑재한 제품이 Embeded MIS입니다.

제품 소개서를 보면 두가지 기술을 적용하였습니다.
첫번째 기술은 MultiCore를 위한 기술입니다. MPI와 같은 플랫폼을 기반으로 개발하지 않았을까 합니다.

Anyone can simply install their legacy software on a multi-processor, multi-core machine and claim they support a multi-core architecture just because it runs. ?That does not mean their software is taking full advantage of the power that is available to them. ?We designed the MIS to be multi-core aware from day one. ?This means we have streamlined parallel paths of execution so the machine is fully utilizing all the available power available.

두번째는 하드웨어와 관련되어 TOE제품을 사용하였습니다.

We are excited to offer the Embedded MIS to our new and existing clients” says Daniel May, Director of SpryWare. “By leveraging the same easy to use SpryWare API, existing SpryWare compatible applications can run with little or no modification. Combining the new SpryWare Embedded MIS with new multi core processors from Intel, and dual 10GbE network cards from SolarFlare, has allowed us to create a technology stack that is unbeatable in latency, performance, and scalability” continues Daniel May.

그러면 어떤 TOE제품일까요? Solarflare사 제품입니다.

10 Gbps throughput (full-duplex) insures that the full 10G bandwidth is available to critical applications Offloads for critical compute-intensive tasks to insure that minimum burden is placed on the server CPU, freeing up processor cycles for customer applications

2.
다음으로 FPGA Model입니다.In-FPGA Trading Systems라는 회사입니다. In-FPGA Trading System은 위에서 소개한 제품이 하나의 FPGA에 통합되어 있다고 생각하면 됩니다.

?A hardware-accelerated automated trading reference design that performs NASDAQ ITCH feed handling and outbound OUCH order entry running on 10Gb Ethernet, with under two microseconds of latency.

The in-FPGA approach is to integrate all three core trading functions: feed handling, trade trigger logic and analytics, and outbound order entry into a single FPGA, with little or no need for a host CPU. The in-FPGA solution therefore allows traders to reach new levels of response time latency. Because an FPGA is the core of the trading platform, all trading logic is implemented directly in hardware. Implementing all needed functions in hardware provides acceleration by eliminating the overhead of shared resources including buses and operating systems.

In-FPGA는 그동안 CPU기반의 시스템 혹은 FPGA기반의 NIC카드를 사용한 CPU기반의 시스템 모두 Low Latency를 구현하지 못하고 있다고 주장합니다. ?E-to-E 환경에서 시세를 받아 주문을 내는데 걸리는 시간이 2 microsecond라고 합니다.

The in-FPGA system allows traders to achieve response latencies that are a fraction of what can be achieved using CPU-based systems. Visitors to the show will be able to see actual hardware used for market data decoding and outbound order entry, with all functionality performed entirely in high performance Field Programmable Gate Array (FPGA) logic. The resulting system achieves sub 2-microsecond latency today, with expected improvements in throughput being made throughout 2010. These FPGA-based reference platforms will operate at several times the speed of larger microprocessor based servers.

어떤 제품으로 구현했는지 살펴보겠습니다.
Impulse Accelerated Technologies가 개발한 C-to-FPGA compiler를 채택했습니다 C개발자가 FPGA프로그램을 개발할 수 있도록 하는 환경입니다. ?Altera Stratix IV FPGA를 사용하고 있습니다.

FPGA-based trading can respond to market data an order of magnitude faster than Linux based servers, and 2-5 times faster than hybrid CPU/FPGA systems. Much of the gain comes from simplifying the hardware path, consolidating processing on one hardware chip and eliminating high latency paths. What makes this most exciting for traders is that they can implement their trade trigger logic in C-language using Impulse C, rather than having to learn hardware description languages such as Verilog or VHDL, or having to pass their models off to hardware engineers for translation.

3.
HFT를 개발하는데 도움을 요청하셨던 분을 지난 주에 뵈었습니다.퀀트이자 트레이더인 후배와 같이 만났습니다. 이러저런 이야기를 하면서 두가지를 말씀드렸습니다.

?HFT는 모두가 선택할 수 있는 매매환경은 아니다. 너무 비싼 매매환경이다. 다만 남들보다 시세를 빨리 받을 수 있는 Low Latency환경을 구축하는 것은 매우 중요하다.

HFT는 전략이 아니다. 전략을 구현하기 위한 하나의 환경이다. 따라서 자신의 자산규모, 전산기술등을 고려하여 자신에 맞는 전략을 찾는 것이 중요하다. 전략을 전산언어로 구현하여 자동매매를 하면 그것이 알고리즘트레이딩아니냐?

앞서 두가지 사례에서 공통적으로 가르키는 바가 있습니다. Low Latency입니다. HFT도 역시 Low Latency의 산물입니다. ‘어떻게 Low Latency를 구현할까’가 중요합니다. 또하나 End-To-End Trading을 지향하고 있습니다. Low Latency를 위한 당연한 선택입니다. DMA Trading입니다.

국내에 프랍용 시스템을 개발공급하는 몇몇 회사가 있습니다. 들리는 소문에 따르면 ?Low Latency Trading System을 개발하기 위한 투자를 한다고 하네요. KRX가 알고리즘트레이딩, HFT와 관련된 정책을 수립하기 시작한 시점과 맞물려 좋은 결과가 있으면 합니다.

회사를 그만 두니까 이런 표현을 쓸 수 있네요.(^^)
제가 다니던 회사의 모기업이 이들 회사와 경쟁관계였으니까….

6 Comments

  1. lee

    HFT에서 중요한 것은 네트워크인데 대부분 같은 데이터센터 내에 존재해야 이득이 있는데 이 부분은 어떻게 생각하시는지요? 나와 있는 하드웨어들이 어떻게 하든 네트워크에 소비되는 오버헤드를 최소한으로 줄이려는 것이기 때문에 주고 받는 양쪽이 모두 동일한 프로토콜을 사용해야 유효하다고 하겠죠.

    Reply
    1. smallake

      HFT를 생각하면 Co-Location Service를 떠올립니다. Low Latency라는 관점에서 보면 당연합니다. 다만 이렇게 생각합니다.

      KRX가 코로케이션서비스를 제공한다고 합시다. 그러면 일정한 비용을 부담할 수 있는 트레이더는 다 참여하겠죠?만약 KRX가 거부하거나 차별한 형평의 원칙을 어기는 처사입니다. 따라서 코로케이션은 비슷하게 경쟁하는 – 전략이 비슷한 트레이더 끼리는 상주입니다. 변수가 아니라고 생각합니다.

      남는 문제는 네트워크 I/O를 최소화하는 방법,알고리즘을 최적화하여 프로세싱을 빠르게 하는 방법등등 어플리케이션과 전산화된 전략입니다. 이것이 경쟁요소가 아닐까 합니다.

      오버헤드를 줄이는 방법은 KRX메시지를 그대로 사용해서 프로세싱을 하면 최상일 수 있습니다. KRX가 주는 시세포맷을 그대로 사용하여 처리를 한다고 하면 지연을 최소화할 수 있다고 생각합니다.

      Spryware를 보면 Normalization이라는 말을 사용하는데 이는 각 거래소마다 포맷이 다르기때문에 하나로 통일하기 위해 필요한 과정입니다. 우리의 경우 한국거래소데이타만을 사용할 경우엔 불필요할 수 있습니다. 다만 해외지수데이타를 받고 외환데이타도 받아 처리하는 전략을 구성한다고 하면 또 다르지 않을까요?

      지연을 줄이는 정답은 없습니다. 환경과 경우를 고려하여 최적화된 답을 찾는 과정이라고 생각합니다. 아마도 그래도 트레이더별로 특화된 IT가 필요할 수 있습니다.

      Reply
  2. 최석민

    글감사합니다. 갠적으로 도움이 되었습니다..그리고 후배님도 소개도 시켜주시고 그날 많은 도움받았습니다.^^

    그리고 새롭게 시작하신 사업 건승하길 진심으로 빌께요!

    혹시 추후에 제가 좀 도움드릴수있는일이면 연락주시고요!!

    즐건밤되세요

    Reply
    1. smallake

      도움이 되었다고 하니 좋습니다.

      쉽지 않겠지만 하시는 일이 잘되시길 바랍니다.건강하시고.

      Reply
  3. 김준배

    우연히 서핑하다 방문했습니다.
    좋은글들이 많습니다.
    저도 기회가 된다면 한번….
    감사합니다

    Reply
    1. smallake (Post author)

      감사합니다. (^^)

      Reply

Leave a Comment

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

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