EPAM Systems has created a FIX-to-Exchange framework acting as a FIX compliant layer between a proprietary exchange API and the FIX protocol based world. FIX compliance, together with the requirements for low latency and high availability, are cornerstones of the framework's architecture. The framework can be used to create FIX gateways to exchanges, alternative trading systems, multilateral trading facilities, dark pools and internalization engines for all asset classes.
Framework Components
The FIX-to-Exchange Framework provides a set of components that customizable for specific needs and specific exchange APIs.
- Adapter to Exchange API. Hides the Exchange API from other components of the framework with a general interface that accepts transactions and returns executions. The adapter also fully maintains connectivity to the exchange, notifying the Mediator about connectivity events.
- FIX Adapter. This is the front FIX interface for FIX clients. Based on a high-performance FIX engine (FIX Antenna C++), it provides both low-latency FIX connectivity between the framework and the FIX world and full-featured, object-oriented interface to FIX messages for other components of the framework.
- Mapper to internal Market Data (MD) structures. Maps market data received from the Exchange to an internal data structure.
- Mapper to FIX MD. Maps market data from internal structures to FIX market data messages according to subscriptions.
- Transactions Mapper. Maps a request from FIX clients to the appropriate transaction in terms of the exchange API, and sends it to the Exchange API Adapter. The immediate result of the transaction is mapped back to FIX execution and sent to the FIX Adapter. The current state is updated in the Data Cache. Mapping rules can be adjusted for the needs of the particular exchange.
- Executions Mapper. Maps the executions received from the Exchange API Adapter to the appropriate FIX message and sends it to the FIX Adapter. If necessary, it can retrieve additional information to enrich the message from the Data Cache and store its state into it. Mapping rules can be adjusted for the needs of the particular exchange.
- Market Data Cache. High performance market data storage, optimized for multithreading use. It allows the efficient creation of data subsets for each individual subscription of FIX clients. All information is stored in the memory for high performance read/write access.
- Subscriptions Manager. Stores individual subscriptions of FIX clients and provides subscription information to the Mapper to FIX MD.
- Orders Data Cache. A high performance storage of the states of orders, trades, and other trading objects, optimized for multithreading use. Most of the information is stored in the memory for high performance read/write access. Only the information that is required for restoring the object's state following system failure is persisted.
- Mediator. The central component of the framework. It is the nexus between the other components of the framework. It controls all of its interactions via a set of events and callbacks.
FIX Messages
The framework supports the full range of market data and order-flow messages, including:
- Market Data Request (V)
- Market Data - Snapshot/Full Refresh (W)
- Market Data - Incremental Refresh (X)
- Market Data Request Reject (Y)
- Security Definition Request (c)
- Security Definition (d)
- Security Status Request (e)
- Security Status (f)
- New Order - Single (D)
- New Order - Multileg (AB)
- Order Cancel/Replace Request (G)
- Multileg Order Cancel/Replace Request (AC)
- Order Cancel Request (F)
- Order Cancel Reject (9)
- Order Mass Cancel Request (q)
- Order Mass Cancel Report (r)
- Order Status Request (H)
- Order Mass Status Request (AF)
- Execution Report (8)
The set of messages can be extended by customizing the mappers and Data Cache appropriately. Market Data is available in both FIX and FAST formats over both TCP unicast and UDP multicast protocols.
Technologies
- C++ - C++ with Boost libraries was chosen to implement the platform-independent, highly efficient framework components
- FIX Antenna C++ - EPAM B2BITS' high performance, rich featured FIX Antenna C++ was used as a FIX engine for implementing the FIX part of the framework
- Failover in both cluster and non-cluster configuration is supported
- Both unicast TCP-based and multicast UDP-based reliable market data delivery is supported
Our Services
We offer project management, customization and implementation of the framework including:
- Requirements definition study, business planning, custom development, design for the deployment platform
- Integration, configuration and testing
- 24x7 support, global help desk, system and application training
Successful Implementations
Financial and Energy Exchange Group (FEX), Australia
- Adaptor to NASDAQ OMX X-stream Client API
- FIX 4.4
- Failover using Primary and Backup Systems
- Market Data (TCP unicast) and Transactional servers
- Red Hat Linux x64
MICEX Group, Russia
- Adaptor to MICEX MTE API (an early version of CompuShare's software that is specifically tailored to the conditions of the Russian market)
- FIX 4.2, FIX 4.4, FIX 5.0SP2, FAST
- Market Data (TCP unicast and UDP multicast) and Transactional servers
- OpenSUSE Linux x32, x64