It is a common feature of the FIX protocol to support customizations of FIX messages. This primarily consists of the ability to add user-defined fields. However, in real-life, a lot of firms, venues or vendors prefer to make much more significant changes to the messaging specifications. To satisfy these requirements, C++ FIX Engine exposes the concept of FIX Dictionary.
A FIX Dictionary represents a customized dictionary of a FIX messaging specification (or put simply, a FIX variant version). The FIX Engine supports XML-based dictionaries descriptions as a part of its configuration settings via the OnixS::FIX::EngineSettings::dictionaryFile configuration parameter.
More than one XML FIX Dictionary file could be specified using the '|' symbol as the file name delimiter.
Support of FIX Dictionaries by the Engine
The definition of a single FIX dictionary is implemented by describing changes to the standard FIX version(s).
The OnixS C++ FIX Engine supports dictionaries for the local use of a single specific FIX Session, as well as the capability to replace the standard FIX dictionaries with dictionaries implementations, that are used everywhere in the Engine.
- Ready to use FIX dictionary description files, as well as venue specific trading and market data client samples are available from OnixS for many FIX destinations (CME, ICAP, ICE, Hotspot, Currenex, EFX, Barclays Capital, FIMAT, FXall, GAIN, Goldman, ICAP, Montreal Exchange (MX), Trading Technologies (TT) and more...) upon request. Also you can find the base dialect xml files of all FIX protocol versions in the FIX Engine distributions package, these files can help to create your own dialect xml files when you need the knowledge of standard FIX message structures.
A basic dictionary description file looks like the following example:
<?xml version="1.0" encoding="utf-8"?>
Root of dictionaries descriptions.
May contain engine-wise, as well as per-session dictionaries descriptions.
FIX field defines single dictionary description.
Attribute 'version' defines the version of FIX messaging specification, which is being customized.
<!-- Changes into single message structure go here (as well as new messages definitions). -->
<!-- Tags and groups which enlarge or modify message. -->
<Field tag="526" name="SecondaryClOrdID"/>
- QuickFIX XML data dictionary file format is supported too, please see the Using QuickFIX Dictionaries page for details.
- See also
- Editing Dictionaries Descriptions | Session-level Dictionaries