FIX and FAST Engines

The financial markets are going global. As traders try to expand their trading horizons they discover the many proprietary protocols offered by the various exchanges create a barrier to expansion. Their internal systems have to support many exchanges and their older protocols, all of which are trying to achieve essentially the same thing. That is: get quotes, history, buy or sell etc.  

Competition for clients, amongst brokers, focuses on both cost and speed of trades. As Internet based, electronic trading expands, trading houses have to offer trades and other various added-value services at competitive price points. This requires a low transaction cost and more control over the end to end trading activity.

The FIX Protocol Organization (also known as FPL) developed FIX to help create a common protocol for trading. This can level the playing field.

As Exchanges adopt FIX it become easier (and cheaper) for financial houses to connect their trading systems to multiple exchanges with far less problems than in the past. The barriers to entry are now being lowered.

A FIX engine does the following:

  • connects with and initiates the session protocol.
  • manages the messages from the trading applications.
  • provides administrative functions.

As a natural follow on to FIX, FPL developed a standard for optimizing the distribution of messages containing market data, or feeds. This was called by the acronym  FAST, meaning "FIX Adapted for STreaming". By optimizing data representation on the network (and avoiding the resending of previously sent data) it can support the high-throughput, low latency data communications between financial institutions that is in such high demand these days.  FAST is a global technology standard that offers significant compression capabillities for the transport of high-volume market data feeds to be consumed by ultra low latency applications. Although FAST is being applied in finance the techniques have general applicability in any situation that demands large quantities of information be delivered in a timely manner. Testing by users has shown the overhead incurred by encoding and decoding is more than offset by the reduced latency and consumption of bandwidth.  

A FAST engine does the following:

  • initiates and controls the exchange and processing of FAST encoded messages.
  • encodes and decodes messages as appropriate.
  • manages the utilization of templates employed in encoding/decoding

FPL provides a free reference implementation of FAST.  However it is not considered suitable for production use. (There is no support for template management and interpretation. Field definitions are hard coded into the sample programs. Neither is there any support for session management or any other necessary supporting infrastructure.) 

OCI has developed a one day class "Introduction to FAST" to help clients rapidly spin up their development and management teams.  


QuickFIX is an open source project providing an implementation of a FIX engine supporting both C++ and native mode Java versions (QuickFIX/J). QuickFIX also supports FIX metadata in XML. The cost savings from switching to an open-source zero-cost license product can fund the development of a more open architectural framework for your next (more flexible) generation of trading systems.

Note: the QuickFIX license model follows that of Apache. It is a generous model, in that you can create derivatives for your own use, without placing those changes back into the open source. However from a practical standpoint it is in your best interest to make sure mainstream changes go back where they can be supported by the community. Any modifications that you elect to make, and retain, should be minimal. The objective being to reduce the effort involved when taking new versions from the community, as they emerge. 

Some important features:    

  • QuickFIX the C++ FIX engine
    • Supports code in Ruby, XSLT, etc.
    • Supports versions of FIX 4.0 through 4.4
    • Has no direct support FIXML or security
    • Has bindings for Java (through JNI), .NET, and Python
    • Is generally is designed to run on Windows, Mac OS, Unix-like operating systems.
  • QuickFIX/J the Java FIX Engine
    • is a 100% pure Java implementation.
    • provides supporting tools that are also Java based.
    • is compatible with the QuickFIX version 1.1.x JNI for easy migration
    • architecturally similar to QuickFIX for C++ implementation
    • same functional tests.
    • leverages open source/Java tools such as Eclipse IDE, JUnit, Cruisecontrol, etc.
    • has been tested against OpenFIX
    • offers comparable performance to the C++ QuickFIX engine, and proprietary products. 

OCI has been successfully using and supporting QuickFIX in finance industry projects, for quite a while.

NOTE: We have found that FIX is not consistently implemented. Many exchanges have interpreted the specification such that subtle (and sometimes not so subtle) modifications are required to ensure compatability with that particular exchange's FIX implementation. These changes must be isolated from those other areas of your trading systems to ensure such changes do not "bleed through" and thus affect the ability of your common systems trading architecture to easily target multiple (more compliant) exchanges.

OCI isolates these idiosyncrasies or dialects via "exchange adapters".  (See below for additional discussion.)  

Regardless of these FIX inconstency issues, QuickFIX is still the ideal baseline from which to develop a truly cost effective next-generation trading system, leveraging open source technologies, such as, Boost, ACE, CORBA (C++ and Java), JBoss, IIOP.Net, OpenDDS, JMS.


OpenFAST is an open source implementation of FAST written in Java. OpenFAST is available from SourceForge and uses the Mozilla Public License which is a generous model and non-viral. OCI has experience with OpenFAST and can provide users with technical support.

QuickFAST is an open source C++ implementation of FAST developed by OCI. Additionally it is available wrapped with .NET to enable Windows users to access the FAST libraries in a more familiar manner. Contact for more details on support. The open source code, with compile and installation instructions is available for download from GoogleCode at

The licensing model for QuickFAST is "Berkeley," also known as BSD and is also non-viral.

OCI has experience at combining all these finance oriented open source technologies into high performance trading systems.  All exchanges require some tailoring of standard trading and market data protocols to conform to their particular set of session management rules.  

OCI has migrated clients from older exchange protocols and proprietary FIX engines to dramatically reduce trading costs, and improve throughput. OCI's architectural approach with a FIX Exchange Adaptor (FEA), and the use of exchange gateways, helps with the transition stage, subsequent migration, and by exploiting an "exchange strategy" offer easy accomodation of FIX extensions by the various exchanges. 

OCI has succesfully dealt with, and understands, the many FIX flavors offered by the exchanges. The FIX Exchange Adaptor acts as shock absorber masking changes from either your systems side, or the exchanges side, of the equation. Each FEA is unique to a client's circumstances. However OCI is experienced with many exchanges and how they interpret FIX. That minimizes the cost and time to implement. 

In the last few years OCI has assisted clients in connecting to the six US options exchanges: PCoast, Amex, Philadelphia, Boston, ISE, CBOE, plus CME, Currenex, ICE, HotSpot and Montreal. Recently because of the CBOE/CME merger we have also done Globex migration and certifications. 

We recently designed and implemented an Ouch engine for NASDAQ trading.

We have also helped clients connect via providers such as Goldman, Onyx, and Morgan Stanley. 

This last year we have been very active in assisting users with migrating and certifying their systems for FAST use. Especially with the market leader, Globex.


Copyright © 2007 Object Computing, Inc. All rights reserved. | Privacy Policy