A new format of Version property is available since FIXEdge 5.9.
Preparing a custom dictionary
Examples of dictionary modifications can be found in the FIX and FIXML Dictionaries Customization Guide.
Protocol customizations in FIX Antenna based products can be done as:
- Basic standalone dictionaries - the dictionaries describing a full list of the tags, messages, and message structure
- Additional dictionaries - the dictionary containing only incremental changes and updates for the basic dictionaries. An additional dictionary requires a basic one with a full message structure description. Using additional dictionaries is a convenient way to support FIX protocol customizations which slightly differ from the FIX standard.
Examples of the basic and additional dictionaries can be found in FIX Antenna or FIXEdge packages.
Create a standalone dictionary
- Pick required FIX version (FIX.4.4, FIXT.1.1, FIX.5.0.SP2, etc)
- Get corresponded common dictionary file (fixdic44.xml, fixdict11.xml, fixdic50sp2.xml) and save with new name e.g. fixdic44Custom.xml
QuickFIX formatted dictionaries use a capitalized file name without an extension at the end as a dictionary ID.
Change dictionary id, E.g. to FIX44Custom :
- add other modifications if they are needed.
Create an additional dictionary modifying all sessions using a specified version
Modifications from the additional dictionaries can be applied to all sessions with the certain FIX Protocol version
The example below shows how to apply a dictionary to all sessions using version FIX44
Here are attributes id="FIX44" fixversion="4.4" determine basic version of FIX protocol for modification
Create an additional dictionary modifying only to specified sessions
Modifications from the additional dictionaries can be applied only for specific sessions and the FIX Protocol for the basic dictionary remains unchanged so the rest sessions wouldn't be affected by dictionaries customization.
The example below shows how to define a custom version of protocol FIX44 - FIX44Custom and do not affect sessions which use version FIX44:
Here are the attributes:
- id="FIX44Custom" - Version name defined by the user that should be used as Version parameter for the session.
- parent_id="FIX44" fixversion="4.4" - reference to basic FIX protocol version
Register the custom dictionaries in the configuration.
Add paths to custom dictionaries files to DictionariesFilesList property in the engine.properties file
for a standalone version of dictionaries
or for a variant with additional dictionaries
Define custom parsers for sessions
Custom parsers are used in case if the customization for certain sessions should be applied to the basic dictionary.
In the case of modification FIX50+ protocols, a transport-level protocol can be also specified in the parser name.
The format is the following: [UNIQUE_PARSER_NAME@][FIXT_PROTOCOL1:]APP_PROTCOL1[,APP_PROTCOL2...]
AdditionalParsersList = CustomParserName1@FIXT11:FIX50Custom
5. Configure FIX session to use a custom dictionary
Modify Version property of session in the configuration.
in FIXEdge.properties for FIXEdge
in engine.properties for FIX Antenna C++
Please be aware that if you change the dictionary on-fly, FIXEdge must be restarted in order to apply the changes.