HFT (High Frequency Trading) Antenna is a C++ library that is designed as a solution for low latency FIX message routing. It incorporates advantages of Linux specific features and the best message routing practices. 

The 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, fewer physical cores are required to support more sessions;
  • usage of socket dispatcher optimized for Solarflare OpenOnload;
  • usage of Memory Cached Message Storage, which reduces latency jitter;
  • usage of the FIX message object pool, reducing the number of memory allocations.

The HFT Antenna has open architecture. The session layer and encoding of messages are pluggable so binary protocols can be added.

Currently the FIX Performance Session Layer (FIXP) is supported. A generic C++ code generator, used to create a parser for processing SBE message(s) template of specific venue, allows the creation of low latency encoding and decoding modules.

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

Features

Feature Description
High throughput / low latency
  • The highest performing FIX engine in existence, targeted at routing from multiple sessions to multiple sessions. See details on the  Benchmarks page.
  • Ability to process FIX message in parallel from a single FIX session in the user pool
  • Ability to auto-merge multiple outgoing FIX messages into a single TCP packet for a very intensive out stream
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 a session
  • Fair wire order delivery for incoming messages 
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 a low latency dispatcher optimized for Solarflare OpenOnload
  • Supports the following storage types that guarantee that a 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 that do not use any persistence. This significantly increases performance while forgoing 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 threads: message is written to memory and then stored to the log by dedicated logger thread.
  • Provides API for persistence management - user can choose whether to save incoming message
  • Provides API for message "cookie" - storage can store user information attached to the FIX message.
  • Globalmsg counter assigns unique ids to each message and restores message order. This facilitates the event sourcing design of user applications.
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 that are joined in a bunch before sending
  • Ability to configure CPU affinity to enable the binding and unbinding of 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
  • Ability to pause the reading of incoming messages from a selected session to control speed
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 UI for monitoring session statuses and parameters in real time on desktop app or web browser
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 iteration through FIX message tags
  • Provides TagVisitor interface that can be invoked during FIX message parsing and helps collect message tags in a side structure used by user application
  • Provides ability to use standard FIX Antenna C++ FIX message type (albeit with less performance)
  • Dictionary agnostic LiteFixMessage object with a fast, low-level API
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

Specifics and Limitations

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

Supported Compilers

Supported architectures

  • x86-64

Supported operating systems and compilers:

  • Windows, MS Visual C++ 2015
  • Red Hat/CentOS 7 Linux, GNU C++ ABI C++98/ABI C++11
Can't find your platform?

APIs

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

  • Create multiple FIX sessions (initiators and acceptors)
  • Open and close FIX sessions
  • Form LiteFixMessage messages
  • Parse LiteFixMessage messages
  • Send and receive LiteFixMessage messages
  • Set sequence numbers
  • Read messages from FIX session logs 
full list of HFT FIX Antenna APIs

Use cases

Order Router

The FIX Antenna HFT can be used as a FIX Engine in Order Routers, whose main responsibility is to deliver orders from end-users to Exchanges as soon as possible, with minimum latency.

FIX Engine in Order Router

By nature, FIX Antenna HFT's stable, deterministic latency aims at routing from multiple sessions to multiple sessions, and can be used in an Order Router application in the 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

The key parts of FIX Gateway are:

  • Fast session level
  • Effective threads model for processing incoming messages
    • Achieved by using FIX Antenna HFT's flexible and high-performing message processing mechanism
  • Ability of handling spikes in load
  • Effective utilization of CPU cores

By relying on the FIX Antenna HFT FIX Engine API the developer can focus on application development.

Pre-Trade Risk Check Module

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

Pre-Trade Risk Check Module

The Risk Check Module performs pre-trade activities and calculates risk checks, restricting the actions of one or more traders at the same time. By nature, these pre-trade activities become an additional step for an order to reach the exchange or client, which can 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.

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