|Typed FIX messages||Table of Content||Dialect Description|
It is a common feature of the FIX protocol to support customizations of application-level 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, OnixS .NET FIX Engine exposes the concept of FIX dialects.
A FIX dialect represents a customized dictionary of a single FIX messaging specification (or put simply, a FIX variant version).
OnixS .NET FIX Engine supports dialect descriptions as a part of its configuration settings.
In particular, Dialect configuration parameter specifies a path to the dialect definitions.
The Dialect Property could also be used to specify the location of the FIX Dialect description file.
EngineSettings settings = new EngineSettings(); settings.Dialect = "IceTradeCaptureFixDialect.xml"; Engine.Init(settings);
The definition of a single FIX dialect is implemented by describing changes to the standard FIX version(s). Dialect customization consists of the ability to expand the set of messages with new messages, to enlarge messages and repeating groups with new fields and subgroups. It is also possible to replace regular fields with repeating groups and vice versa. However, there is no way to exclude any message, tag and/or group as they are from containing entity, i.e. the base formal FIX standards.
OnixS .NET FIX Engine supports dialects for the local use of a single specific FIX session, as well as the capability to replace the standard FIX dictionaries with dialect implementations that are used everywhere in the Engine.
|Ready to use FIX dialect description files, as well as venue specific trading and market data client samples are available from OnixS for many FIX destinations (CME, ICE, Hotspot, Currenex, EFX, Lava, 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 dialect description file looks like the following example:
<?xml version="1.0" encoding="utf-8"?> <!-- Root of dialects descriptions. May contain engine-wise as well as per-session dialects descriptions. --> <Dialect xmlns="http://ref.onixs.biz/fix/dialects" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ref.onixs.biz/fix/dialects http://ref.onixs.biz/fix/dialects/dialects-2_14.xsd"> <!-- FIX field defines single dialect description. Attribute 'version' defines version of FIX messaging specification which is being customized. --> <FIX version="4.0"> <!-- Changes into single message structure go here (as well as new messages definitions). --> <Message type="D"> <!-- Tags and groups which enlarge or modify message. --> <Field tag="526" name="SecondaryClOrdID"/> </Message> </FIX> </Dialect>
|QuickFIX XML data dialect file format is supported too, please see the Using QuickFIX Dialects page for details.|