OnixS C++ FIX Engine 2.79.1.0
FIX Dialects

Modules

 Editing Dialects Descriptions
 Session-level Dialects

Detailed Description

It is a common feature of the FIX protocol to support customizations of session 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, the OnixS C++ 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). The OnixS C++ FIX Engine supports dialect descriptions as part of its configuration settings. In particular, Dialect configuration parameter specifies a path to the dialect definitions.

Support of FIX Dialects by the Engine

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.

The OnixS C++ 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.

Note:

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.

Example

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://onixs.biz/fix/dialects"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://onixs.biz/fix/dialects http://onixs.biz/fix/dialects/dialects-2_8.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>