Overview
FIX dictionary is an XML-file which describes FIX messages, fields and groups. FIX dictionary can be:
- self-sufficient dictionary which describes the FIX protocol;
- additional dictionary which describes changes to be applied to another existing dictionary.
One or more FIX protocols are required for FIX session work.
FIX dictionaries are combined into parsers. Parsers are used to validate incoming messages, i.e. they check if messages satisfy defined protocols.
When FIX Antenna is started, all dictionaries from DictionariesFilesList are loaded. If dictionaries are standard, predefined standard parsers (like FIX40; FIX41; FIX42; FIX43; FIX44; FIXT11) are created basing on them. If any dictionary from DictionariesFilesList is custom, parser is not automatically created and therefore such parsers should be listed manually in AdditionalParsersList parameter.
Overall there should be one session protocol (protocol which describes messages of session level) and one or more application protocols (protocols which describe messages of application level) defined in common parsers list (i.e. in standard parsers list and additional parsers list together).
Description for all standard FIX protocols can be found on fixopaedia.
How to manage list of dictionaries in FIXAntenna based applications
List of dictionaries to be used by FIXAntenna based applications can be managed using DictionariesFilesList property in engine.properties
configuration file.
This parameter contains a list of names of XML files with definitions and extensions of the FIX protocols delimited by semicolon.
It may contain both standard and custom dictionaries:
DictionariesFilesList = ../../data/fixdic40.xml;../../data/fixdic41.xml;../../data/fixdic42.xml;../../data/fixdic43.xml;../../data/fixdic44.xml;../../data/fixdic50.xml;../../data/fixdic50sp1.xml;../../data/fixdic50sp2.xml;../../data/fixdict11.xml;../../data/additional_dict.xml
Dictionary customization
As mentioned above, dictionaries can be customized for needs of particular exchange.
Refer to How to use custom dictionaries with FIXEdge article for details.
How to check that dictionary doesn't have errors
Simple Client can be used in order to check that the dictionary doesn't have errors.
Below is step-by-step instruction how to check the dictionary with the help of Simple Client:
- Open the folder with SimpleClient;
- Specify prepared dictionary in DictionariesFilesList property in
engine.properties
configuration file Simple Client refers on; - Run the Simple Client;
- Check the results of launch:
- If specified dictionary doesn't have errors, Simple Client will be launched successfully;
- If specified dictionary has any error, Simple Client won't be started and the message with the reason will appear: