FIX Engine — FIX Antenna HFT

HFT Antenna is a C++ library which is designed as a solution for low latency FIX message routing. 'HFT' means high frequency trading. It incorporates advantages of Linux specific features and the best message routing practices. 

HFT Antenna FIX Engine is optimized for stable deterministic latency for routing from multiple sessions to multiple sessions. This is achieved by:

  • effective utilization of CPU cores: less number of physical cores is required to support more sessions;
  • usage of new socket dispatcher optimized for Solarflare OpenOnload;
  • usage of new Memory Cached Message Storage which reduces latency jitter;
  • usage of FIX message object pool which reduces the number of memory allocations.

 Our products come with a 24x7 support provided worldwide and availability of "on demand" software escrow.

Feature Description
High throughput / low latency

The highest performing FIX engine in existence aimed for the cases of routing from multiple sessions to multiple sessions. See details on the Benchmarks page.

Supports standard FIX 4.X
FIX standard compliance: FIX 4.0, 4.1, 4.2, 4.3, 4.4
  • Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
  • Message validation for standard FIX Antenna C++ FIX message type (well-formedness, required and conditionally required fields, fields order, types, etc)
  • Customizable FIX protocol with user-defined tags and message types. Create your own FIX dialect e.g. defined extra field for a message, change "required" attribute, etc. in a friendly XML format
  • Guaranteed delivery
    • Relies on the store and forward technique
    • Flat files are used for persistence to achieve maximum performance
Multiple session management
  • Supports hundreds of concurrent sessions on a single instance on recommended hardware. Number of concurrent sessions can be increased if more CPUs are added
  • Each session can be configured separately. FIX Dialect can be configured for session
Highly customizable FIX session level
  • Different modes of handling sequence number during logon and reconnect
  • Intraday logout tolerance
  • Custom logon message
  • Force sequence number reset on logon
Security
  • Standard FIX authorization utilizing username and password fields in FIX Logon message
  • Auto-accept incoming sessions (to simplify development and testing) and auto-decline non pre-configured sessions
Reliability vs. performance
  • Uses low latency dispatcher optimized for Solarflare OpenOnload
  • Supports the following storage types which guarantee that session can recover its state after connection failure:
    • Persistent - stores data to the flat files
    • Memory Cached Message Storage - tracks the last processed SeqNum from IN and OUT index files
  • Supports transient sessions, which do not use any persistence. This significantly increases performance giving up recovery. Applicable when recovery is not required (e.g. for market data) or when persistence is done by the application, which uses the FIX Antenna engine
  • Provides ability to enable async logging for the threads: message is written to the memory and then dedicated logger thread stores it to the log.
  • Provides API for persistence management - user can discard saving of incoming message or save it later
  • Provides API for message "cookie" - storage can store user information attached to the FIX message.
Performance tuning
  • Ability to enable or disable Nagle's algorithm to minimize latency or maximize throughput
  • Ability to configure (or turn off) the number of messages to be joined in a bunch before sending
  • Ability to configure CPU affinity to enable the binding and unbinding a thread to a CPU or a range of CPUs, so that the thread will execute only on the designated CPUs rather than any CPU
Monitoring and administration
  • Built-in support of command console (telnet and local)
  • Utilizing FIX session and the same FIX listen port for administrative session
  • Friendly XML-based DSL for administrative instructions: easy to read, easy to extend
  • Public API to override and/or extend existing administrative instructions
  • Rich monitoring and administration GUI out of the box
Message composition API
  • Supports new message type - LiteFixMessage:
    • LiteFixMessage API is similar to FIX Antenna Java message API as both share the same design principles of the new FIX message
    • LiteFixMessage objects can be stored in the message pool
    • LiteFixMessage allows to iterate through FIX message tags
  • Provides TagVisitor interface that can be invoked during FIX message parsing and helps to collect message tags in a side structure used by user application
  • Provides ability to use standard FIX Antenna C++ FIX message type (with less performance though)
Integration

Is supplied as a shared object dynamic library(.so) for Linux

Packaging

The package includes:

  • Binaries
  • Header files
  • Programmer's Guide
  • API Guide
  • Samples and benchmarks
  • Software escrow is available on demand
Feature FIX Antenna C++

FIX Antenna HFT

Windows OS   
Linux OS
x32  
x64
FIX 4.X
FIX 5.X   
Multiple FIX sessions
Standard FIX routing (OnBehalfOf + DeliverTo)   
FAST   
FIX dialects support
FIXML support   
All asset classes
Sessions-initiators
Sessions-acceptors
Customizable message validation   
Message encryption   
Login/password encryption   
Recovery after failure
Persistent sessions
Transient sessions
Later delivery when connection is not established
Reject message when connection is not established   
C++ API
Java API   
.NET API   
FIX integrated control center   ✓
FIX/FIXML conversion   
Low latency
High throughput
Reset sequence number on each Logon (ICE mode)   
Ignore sequence number too low at Logon   
Backup connections   
Username and password in Logon
Pre-configured to work with multiple exchanges   
CME Globex market data interface   
Async and parallel processing of incoming messages   
Async logging   
Built-in support of command console (telnet and local)   
Message "cookie"   
Out-of-band Drop Copy service   

Supported architectures

  • x86-64

Supported operating systems and compilers:

  • Red Hat/CentOS 6 Linux, GNU C++ v4.4
  • Red Hat/CentOS 7 Linux, GNU C++ v4.8
  • Red Hat/CentOS 7 Linux, GNU C++ v6.3

If you cannot find your platform above, please contact sales@b2bits.com for more information.

 

HFT FIX Antenna provides the following main APIs for trading applications to:

  • Create multiple FIX sessions (initiators and acceptors)
  • Open and close FIX session
  • Form LiteFixMessage message
  • Parse LiteFixMessage message
  • Send and receive LiteFixMessage messages
  • Set sequence numbers
  • Read messages from FIX session logs 

See the full list of HFT FIX Antenna APIs.

 

Use Cases

Order Router

FIX Antenna HFT can be used as a FIX Engine in Order Routers, which main responsibility is to deliver the order from end-user to Exchange as soon as possible with minimum latency.

Order Router.png

By its nature FIX Antenna HFT with its stable deterministic latency aims to serve routing from multiple sessions to multiple sessions and can be used in Order Router application in a most effective way.

FIX Gateway

FIX Antenna HFT can be used under the hood of the FIX Gateway designed to support hundreds of sessions with multiple users per session, to perform authentication and validation and to transmit data from the source to the application and from the application to counterparties.

FIX Gateway.png

The most essential parts of such FIX Gateway should be a fast session level and effective model of threads for processing incoming messages which can be fully achieved by using FIX Antenna HFT capabilities with its flexible and high-performance message processing mechanism, ability of handling spikes in load and effective utilization of CPU cores. In that way, relying on the FIX Antenna HFT FIX Engine, all the main efforts can be directed to the application level.

Pre-Trade Risk Check Module

FIX Antenna HFT is used as a FIX Engine in one of the B2BITS products - Pre-Trade Risk Check Module (RCM).

ptrcm.jpg

Risk Check Module performs pre-trade activities and calculates risk checks restricting actions of one or multiple traders at the same time. By their nature these pre-trade activities become an additional step for order to reach the exchange or client, which can obviously affect the latency.

Using capabilities of the FIX Antenna HFT Pre-Trade Risk Check Module ensures low latency pre-trade risk checks and order routing.

In this way Pre-Trade Risk Check Module can be used by the Exchanges in order to remove the load in terms of Risks & Limits checks and focus on other high-priority activities like order matching, market data processing, etc. In its turn, buy-side firms can also use Pre-Trade Risk Check Module being sure that all the pre-trade risk checks are performed with minimal latency impact.