July 23, 2010

The Financial Information eXchange (FIX)

A Roman denarius, a standardized silver coin.Image via Wikipedia

The Financial Information eXchange (FIX) protocol is an electronic communications protocol initiated in 1992 for international real-time exchange of information related to the securities transactions and markets. With trillions of dollars traded annually on the NASDAQ alone, financial service entities are investing heavily in optimizing electronic trading and employing Direct Market Access (DMA) to increase their speed to financial markets. Managing the delivery of trading applications and keeping latency low increasingly requires an understanding of the FIX protocol

FIX Protocol Limited
FIX Protocol, Ltd. is the company established for the purpose of ownership and maintenance of the specification. It owns the specification, while keeping it in the public domain.

FIX message format layout
The message fields are delimited using the ASCII 01 character. They are composed of a header, a body, and a trailer.

Up to FIX.4.4 the first three fields in all FIX messages are The header must contain the 8 (BeginString), 9 (BodyLength), and 35 (MsgType) tags.


From FIXT.1.1 / FIX.5.0, the first five or six fields are

8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) and 1128 (ApplVerID - if present must be in 6th position)

The last field of FIX Message Checksum and its of the form ^10=NNN^ where ^ is SOH delimiter character and NNN is three digit checksum.

Header+Body+Trailer : FIX Content

Example of a FIX message : Execution Report

8=FIX.4.2 | 9=67 | 35=8 | 49=PHLX | 56=PERS | 11=ATOMNOCCC9990900 | 52=20071123-05:30:00.000 | 20=3 | 150=E | 39=E | 55=MSFT | 167=CS | 54=1 | 38=15 | 40=2 | 44=15 | 58=PHLX EQUITY TESTING | 59=0 | 47=C | 32=0 | 31=0 | 151=15 | 14=0 | 6=0 | 10=102 |

Body
Order / Trade Details Info
Trailer
Security Check thru Signature and CheckSum.


Users
FIX is widely used by both the buy side (institutions) as well as the sell side (brokers/dealers) of the financial markets. Among its users are mutual funds, investment banks, brokers, stock exchanges and ECNs. See FIX Protocol Organization for an extensive list of major FIX users.

FIX has become the standard electronic protocol for pre-trade communications and trade execution. Although it is mainly used for equity transactions in the front office area, bond, derivatives and FX-transactions are also possible. One could say that whereas SWIFT is the standard for back office messaging, FIX is the standard for front office messaging. However, today, the membership of FIX Protocol Ltd. is extending FIX into block-trade allocation and other phases of the trading process, in every market, for virtually every asset class.

Technical Specification

The FIX protocol is a technical specification for electronic communication of trade-related messages. It is a self-describing protocol in many ways similar to other self-describing protocols such as the newer XML; XML representation of Business content of FIX messages is known as FIXML.

FIX Session is layered on TCP (Transmission Control Protocol). FIX is more popular than FIXML in Securities Trading because FIXML messages are much larger in size due to XML tags.

FIX messages are formed from a number of fields, each field is a tag value pairing that is separated from the next field by a delimiter SOH (0x01). The TAG is a string representation of an integer that indicates the meaning of the field. The value is an array of bytes that hold a specific meaning for the particular TAG. E.g. TAG 48 is securityID and is a string that identifies the security, TAG 22 is IDSource and is an integer that indicates the identifier class being used. In the main the value is readable text however fields can be encrypted and thus the value can be pure binary and include the normal delimiter SOH - binary fields are always preceded by a length field. The FIX protocol defines meanings for most TAGs and a range of TAGs is reserved for private use between consenting parties.

The FIX protocol also defines sets of fields that make a particular message, within the set of fields some will be mandatory and others optional. The ordering of fields within the message is generally unimportant, however as noted length of encryption fields precede the encrypted fields also repeating groups are preceded by a count. The message is broken into three distinct sections: the head, body and tail. Fields must remain within the correct section and within each section the position may be important as fields can act as delimiters that stop one message from running into the next - the final field in any FIX message is TAG 10 (checksum).

There are two main groups of messages - admin and application. The admin messages handle the basics of a FIX session. They allow for a session to be started and terminated and for recovery of missed messages. The application messages deal with the sending and receiving of trade-related information such as an order request or information on the current state and subsequent execution of that order.

Latest developments in FIX Protocol

  • The latest version of FIX Protocol implements "Transport Independence" by permitting multiple versions of application messages to be carried over a single version of Transport Independent FIX Session (FIXT.1.1 and higher).

  • Transport Independence also paves the way for different transport protocols like Message Queues, Web Services etc. to be used for FIX message transport other than traditional FIX over TCP.

  • FIX now supports Algorithmic Trading by use of FIX Algorithmic Trading Definition Language FIXatdl

  • FIX Protocol Limited has released FAST protocol which stands for FIX Adapted for Streaming. FAST is used for sending Multicast Market Data
QuickFIX is a full-featured open source FIX messaging engine written in C++. It is cross-platform and runs on Windows, Mac OS X, Linux, Solaris, and FreeBSD. A variant QuickFIX/J is an equivalent 100% Java open source implementation of the engine. Also, the developers offer QuickFIX Log Viewer, designed to parse FIX messages out of a given file, even if there are other messages within, making it flexible and usable on more general log files. Commercial support for the QuickFIX engine is available from third parties.

About the Author

Iwebslog Labs

Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.

Post a Comment

 
Iwebslog Blog © 2015 - Designed by Templateism.com