Financial Information eXchange

From Wikipedia, the free encyclopedia

The Financial Information eXchange (FIX) protocol is an electronic communications protocol developed for international real-time exchange of information related to the securities transactions and markets.

Contents

[edit] History

FIX was initiated in 1992 as a bilateral communications framework for equity trading between Fidelity Investments and Salomon Brothers. Since then, several major versions of the specification have been published:

  • Version 4.0: Jan 13, 1996
  • Version 4.1: Apr 1, 1998
  • Version 4.2: Mar 1, 2000
  • Version 4.3: Aug 24, 2001
  • Version 4.4: Apr 30, 2003
  • Version 5.0: Dec 30, 2006

[edit] 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.

[edit] FIX message format layout

The message fields are delimited using the ASCII 01 <start of header> character. They're composed of a header, a body and a trailer. The header must contain the 8 (BeginString), 9 (BodyLength), 35(MsgType) tags. The trailer is always terminated by a 10 tag, a 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.

[edit] 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.

As the market's leading trade-communications protocol, FIX is integral to many order management and trading systems. Yet, its power is unobtrusive, as users of these systems can benefit from FIX without knowing the protocol itself.

[edit] Specification

FIX is open and free, but is not software. Rather, FIX specifies a communications protocol around which software developers can create commercial or open-source software, as they see fit.

The FIX protocol is a technical specification for electronic communication of trade-related messages. More precisely, the FIX protocol is a series of messaging specifications developed through the collaboration of banks, broker-dealers, exchanges, industry utilities and associations, institutional investors, and information technology providers from around the world. These market participants share a vision of a common, global language for automated trading of securities, derivatives, and other financial instruments.

It is a self-describing protocol in many ways similar to other self-describing protocols such as the newer XML; however largely because its use and general acceptance predates XML it remains much more common than XML in securities trading systems.

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.

[edit] Checksum

The checksum algorithm of FIX consists of summing up all the bytes up to the checksum field (which is last) and return the value modulo 256 - checksum value % 256.

[edit] Diagrammatic Representation of FIX System

Image:Fix.jpg

[edit] See also

[edit] External links

  1. FIX Protocol Organization - this official FIX website also includes a comprehensive list of closed-source and open-source FIX implementations.
  2. FIXimate FIX Dictionary 4.0 4.1 4.2 4.3 4.4
  3. FIXopaedia FIX Dictionary 4.0 4.1 4.2 4.3 4.4 5.0 FIXT 1.1
  4. QuickFIX/J
  5. NYFIX FIXionary
Languages