CME FIX/FAST Market Data Adaptor

FIX Antenna .NET Programmer's Guide

FIX over FAST is an optimized version of the FIX Protocol that can leverage high performance Market Data solutions. See About FAST.

Using FIX over FAST Protocol

There is nothing complex with switching your application to FAST protocol, you need only to use a different FixEngineCreateFastSession method to create com.b2bits.FIXAntennaSession objects.

See the example below:

Session session = FixEngine.Instance.CreateFastSession("SenderCompID", "TargetCompID", FixVersion.FIX44, templateFileName);

templateFileName is a parameter that specifies absolute or relative (see EngineRoot parameter in FixAntenna Configuration) path to the FAST template file.

FAST template is a file that identifies an ordered collection of fields and optionally includes notation corresponding to the field encoding and transfer encoding rules. As far as collection of fields is identified in template, the size of each message can be reduced because we will not repeat the same information in each message.

Please visit this link for a full list of specifications and implementation guides for the FAST Protocol.

CME (Chicago Mercantile Exchange) Market Data

While a developer can use FIX over FAST Protocol to connect to any system that supports this protocol, in reality different implementation complexities can be encountered due to specific settings or implementation details required to know to work with certain Exchange.

One of the most difficult challenges is the amount of data that should be processed by such type of applications, because an exchange can trade a huge number of instruments, and prices change quickly during the trading sessions.

FixAntenna.NET library includes specific solution for CME (Chicago Mercantile Exchange), that consists of classes of the com.b2bits.FIXAntenna.Globex namespace and FixEngineCreateMDApplication method.

The usual workflow is the following:

1. Initialize MDAppParams object. You need to set Templates and ConfigXML properties to refer to the existing files with FAST templates and CME configuration options.

2. Create a class that implements MDAppListener instance.

3. Create an instance of the com.b2bits.FIXAntenna.GlobexMDApplication class using FixEngineCreateMDApplication method. See code below:

C#
using com.b2bits.FIXAntenna;
using com.b2bits.FIXAntenna.Globex;

//...
// create MDAppParams objects to initialize the MDApplication
MDAppParams param = new MDAppParams();
// define location of the FAST template file
// this templates should confirm FAST 1.1 specification that can be obtained from fixprotocol.org
param.Templates = "templates.xml";
// this is a configuration specific to CME implementation
// it should define channels, UDP connections and products included into channels 
param.ConfigXML = "config.xml";
// mdAppListener should be an instnce of a class that implements MDAppListener
MDApplication mdApplication = engine.CreateMDApplication(mdAppListener, param);

/// subscribe to new instrument
/// symbol is a short product code on the CME, like 'G6J'
mdApp_.Subscribe(symbol);

4. In a class that implements MDAppListener interface, method Process(FixMessage msg) will be fired each time when MDApplication receives a message with the information related to the subscribed instrument.

5. You can subscribe/unsubscribe to any number of instruments.

As you see, MDApplication is a convenient way to work with CME Market Data without having to care about FIX Sessions, and processing all incoming messages in order to get only a few that you are interested in. MDApplication does this work for you and delivers to your application only messages that you have been subscribed to.

Currently, only the solution for CME is included by default in FixAntenna.NET library, and there is also a console sample CMEGlobexClient that demonstrates how it works.

There is also another sample ICE that contains FIX customization settings to be used to write applications able to connect with Intercontinental Exchange (ICE)

Note Note

There are more solutions and products available that were implemented by B2BITs team using C++ or Java versions of FixAntenna and they can also be ported to .NET upon customer's requests. Please visit B2BITs web site web site for a complete list of products or contact our sales department: sales@btobits.com.

See Also

Other Resources