How to configure FIX version for the session in FIX Antenna C++

Overview

For a FIX session to work, one or more FIX protocols are required.

To make sure incoming messages satisfy the defined protocols, the messages are checked and validated by parsers. Parsers contain combinations of FIX dictionaries.

Message types

Message types include:

Out-of-the-box standard dictionaries

When using out-of-the-box standard dictionaries, list files with dictionaries in the DictionariesFilesList parameter in the engine.properties file.

This parameter contains a list of XML file names with standard FIX protocol dictionaries delimited by semicolon.

Dictionary versions

Out-of-the-box standard dictionary versions include:

  • FIX4x = All-in-one versions of FIX protocol (session & application level messages).

    If needed, FIX4x can be used along with the FIXT1.1 session-level FIX version.

  • FIX5x, FIXLatest = Application-level versions of FIX protocol that should be used with FIXT1.1 for session-level messages.

Assigning a parser

The parser identifies the FIX dictionary used for a given session, i.e. the value of the 'id' parameter in the dictionary XML file.

To assign a parser to a specific session:

  • In the engine.properties file, add the parser 'idto the ParserVersion parameter (Session.<SenderCompID>/<TargetCompID>.ParserVersion).
    OR
  • In the code, use the createSession() function.

Example

The diagram below describes how to use the out-of-the-box standard dictionary versions FIX4x and FIX5x.

User-defined custom dictionaries

Custom protocol based on FIX4x

To use a custom protocol version based on the all-in-one FIX4x, register the custom dictionary in the DictionariesFilesList and AdditionalParsersList parameters in the engine.properties file.

Example

The following diagram illustrates an example of a session using a custom dictionary (FIX44Custom.xml) based on the FIX44 FIX protocol version.

  • id="FIX44Custom" - The version name defined by the user that should be used as the ParserVersion parameter for the session.
  • fixversion="4.4" - The reference to the basic FIX protocol version.

Custom protocol based on FIX5x

To use a custom protocol version based on the application-only FIX5x, register the custom dictionary in the DictionariesFilesList and AdditionalParsersList parameters in the engine.properties file.

Example

The following diagram illustrates an example of a session using a custom dictionary (myfixparser.xml) based on the FIX50 FIX protocol version.

  • id="MYFIXPARSER" - The version name defined by the user that should be used as the ParserVersion parameter for the session.
  • fixversion="5.0" - A reference to the basic FIX protocol version.

The diagram also illustrates using multiple application protocol versions for one session.