FIX Protocol과 고성능(High Performance)

1.
정치는 살아있는 생물이라고 합니다. 기술은 어떨까요? 역시나 끊임없이 변화합니다. 태어나기도 하고 사라지기도 합니다. 기술표준도 마찬가지입니다. 이것을 보여주는 대표가 FIX Protocol이 아닐까 합니다.

FIX Protocol은 많은 이해당사자들의 요구를 수용하다보니까 무겁습니다. 시스템에 부담을 주더라도 표준으로 얻을 수 있는 이익이 더 크다고 판단해서 내렸던 결정으로 보입니다. 그런데 Low Latency가 대세가 된 시대가 왔습니다. FIX는 갈림길에 섰습니다. FIX 참여자들은 새로운 길을 만들기 보다는 FIX를 고쳐서 계속 사용하는 것이 이익이라는 결정을 내렸습니다. 그리고 FIX를 계속 변화시켜왔습니다.

Low Latency시대의 FIX
환골탈태 FIX protocol
FIX와 시세 – ITCH 그리고 SBE

이런 흐름의 완결판일까요? FIX가 중요한 변화를 시작하였습니다. 첫째는 조직의 변화입니다. 고성능그룹이 확대하여 FAST를 주도했던 시장정보그룹을 포함하기로 했습니다.

One of the drivers for this has been to confirm the importance that high performance has within the FIX family of standards. FIX Protocol has become a standard for the way the world trades and is used by thousands of firms every day to complete millions of transactions, enabling the industry to minimise the cost of trading, maximise operational efficiencies and achieve increased transparency.
The next generation of the FIX Protocol will fully support high performance on all levels (application, presentation, session) with the objective to offer an open standard that can replace today’s proprietary interfaces for high performance trading and market data.
The existing High Performance Working Group (HPWG) will be extended with additional subgroups and include the initiatives previously conducted by the Market Data Optimization Working Group (MDOWG). The new HPWG will report directly into the FIX Global Technical Committee (GTC).
FIX Trading Community focuses on High Performance중에서

둘째는 고성능을 지원하는 차세대 FIX 프로토콜을 발표하였습니다.

FIX Application level optimization

support of “lean” messages
optimize FIX application level semantics for high performance applications
FIX Presentation level optimization

support encodings to optimize encoding/decoding speed versus bandwidth usage
support basic historical data management (applied to template-based feeds)
FIX Session level optimization

support quick recovery options
support additional recovery models
provide ability to negotiate advanced features, such as encoding, session recovery level
High Performance Specifications중에서

문서중 데이타 건수를 줄이기 위한 Order State와 관련한 정리가 있습니다.

Each FIX ExecutionReport(35=8) message contains two fields which are used to communicate both the current state of the order as understood by its submitter (OrdStatus(39)) and the purpose of the message (ExecType(150)). A third field (ExecTypeReason(tbd2431)) provides additional information for a subset of use cases, especially for unsolicited restatements or cancellations of orders. In FIX 4.x all order state transitions are explicit and require a separate message for each event or state change, e.g. a new order always needs to be confirmed acknowledged first with OrdStatus = 0 (New) and ExecType = 0 (New), even if it is immediately executed and the ExecutionReport(35=8) message represents an intermediate status that was superseded by another status within the same matching engine transaction at the execution venue.
A fundamental requirement is to reduce the number of messages from both sides representing a single business transaction. This requires the definition of values for OrdStatus(39) and ExecType(150) in the context of a given use case which involves one or more individual events.
As of FIX 5.0 SP1 it is possible to reduce the number of ExecutionReport(35=8) messages for some use cases. This is described in Volume 7 – FIX Usage Notes of the FIX 5.0 SP2 Specification (see Order State Change Matrices for Exchanges, starting on page 191). Part of the documentation is the following order state change diagram which includes dotted lines representing the optimizations that were introduced with FIX 5.0 SP1

PDF로 제공하는 자료에 들어있는 그림입니다.

fixflow

2.
FIX가 고성능에 대응하는 방법이 다릅니다. IPC, RDMA, TOE 등의 기술로 Low Latency를 말하지만 FIX는 데이타 건수를 줄이고 데이타 크기를 줄이는 방식을 택하였습니다. 사이즈를 줄이는 대표적인 방법이 SBE입니다. 이번에 올라온 문서입니다.

Download (PDF, 1.38MB)

FIX는 트레이딩을 위한 표준입니다. 한국에서 트레이딩을 위한 표준도구는 HTS와 MTS입니다. 그중 역사가 오랜 것이 HTS입니다. 지난 10여년간 HTS의 표준개발방법으로 정착한 것이 FID입니다.

한국 DMA와 HTS의 미래는 규제에 달렸다

FID개발방법론이 대용량, 고성능시대에 적합한 방법인지 계속 의문을 갖는 날입니다.위의 글에서 소개한 로이터의 방법과 많이 다릅니다. 시장이 늘어나고 상품이 늘어나고 데이타가 늘어나고 클라이언트와 서버의 성능이 나날이 늘어가는 조건에서 FIX개발방법론이 살아남을 수 있을까요? 발상의 전환이 필요하지 않을까 합니다.

Leave a Comment

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

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