OnixS C++ FIX Engine  4.12.0
API Documentation
FIX Dictionary

Inner Contents

 Editing Dictionaries Descriptions
 
 Session-level Dictionaries
 
 Dictionary Exploration
 
 Using QuickFIX Data Dictionary
 

Detailed Description

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 the 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.

For example:

EngineSettings settings;
settings.dictionaryFile("dictionary/CmeTradingFixDictionary.xml");
Engine::init(settings);

More than one XML FIX Dictionary file could be specified using the '|' symbol as the file name delimiter.

For example:

EngineSettings settings;
settings.dictionaryFile("dictionary/CmeTradingFixDictionary.xml|dictionary/IceTradingFixDictionary.xml");
Engine::init(settings);

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.

Note
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, ICE, Trading Technologies (TT), etc. 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.

Example

A basic dictionary description file looks like the following example:

1 <?xml version="1.0" encoding="utf-8"?>
2 
3 
4 <Dialect
5  xmlns="https://ref.onixs.biz/fix/dialects"
6  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7  xsi:schemaLocation="https://ref.onixs.biz/fix/dialects https://ref.onixs.biz/fix/dialects/dialects-2.15.xsd">
8 
9 
10  <FIX version="4.0">
11 
12  <Message type="D">
13 
14  <Field tag="526" name="SecondaryClOrdID"/>
15  </Message>
16  </FIX>
17 </Dialect>
Note
QuickFIX XML data dictionary file format is supported too, please see the Using QuickFIX Data Dictionary page for details.
See also
Editing Dictionaries Descriptions | Session-level Dictionaries