FIX Protocol
   HOME

TheInfoList



OR:

The Financial Information eXchange (FIX) protocol is an electronic
communications protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
initiated in 1992 for international real-time exchange of information related to
securities A security is a tradable financial asset. The term commonly refers to any form of financial instrument, but its legal definition varies by jurisdiction. In some countries and languages people commonly use the term "security" to refer to any for ...
transactions and markets. With trillions of dollars traded annually on the
NASDAQ The Nasdaq Stock Market (; National Association of Securities Dealers Automated Quotations) is an American stock exchange based in New York City. It is the most active stock trading venue in the U.S. by volume, and ranked second on the list ...
alone, financial service entities are 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.


History

The FIX protocol specification was originally authored in 1992 by Robert "Bob" Lamoureux and Chris Morstatt to enable electronic communication of equity trading data between
Fidelity Investments Fidelity Investments, formerly known as Fidelity Management & Research (FMR), owned by FMR LLC and headquartered in Boston, Massachusetts, provides financial services. Established in 1946, the company is one of the largest asset managers in the ...
and
Salomon Brothers Salomon Brothers, Inc., was an American multinational bulge bracket investment bank headquartered in New York City. It was one of the five List of investment banks, largest investment banking enterprises in the United States and a very profitabl ...
. FIX initially addressed information between broker-dealers and their institutional clients. At the time, this information was communicated verbally over the telephone. Fidelity realized that information from their broker-dealers could be routed to the wrong trader, or simply lost when the parties hung up their phones. It wanted such communications to be replaced with
machine-readable data In communications and computing, a machine-readable medium (or computer-readable medium) is a medium capable of storing data in a format easily readable by a digital computer or a sensor. It contrasts with ''human-readable'' medium and data ...
which could then be shared among traders, analyzed, acted on and stored. For example, broker-dealers call with an indication of interest ( IOI) to buy or sell a block of stock. The FIX initiative created new messages such as the IOI. According to the FIX Trading Community, FIX has become the de facto messaging standard for pre-trade and trade communication in the global equity markets, and is expanding into the post-trade space to support
straight-through processing Straight-through processing (STP) is a method used by financial companies to speed up financial transactions by processing without manual intervention. Background Straight-through processing exists in numerous areas of financial services, such as ...
, as well as continuing to expand into
foreign exchange The foreign exchange market (forex, FX, or currency market) is a global decentralized or over-the-counter (OTC) market for the trading of currencies. This market determines foreign exchange rates for every currency. By trading volume, it i ...
,
fixed income Fixed income refers to any type of investment under which the borrower or issuer is obliged to make payments of a fixed amount on a fixed schedule. For example, the borrower may have to pay interest at a fixed rate once a year and repay the pr ...
and derivatives markets.


FIX Trading Community

The FIX Trading Community is a non-profit, industry-driven standards body with a mission to address the business and regulatory issues impacting multi-asset trading across the global financial markets through the increased use of standards, including the FIX Protocol messaging language, delivering operational efficiency, increased transparency, and reduced costs and risk for all market participants.


Users

FIX is widely used by both the
buy side Buy-side is a term used in investment banking to refer to advising institutions concerned with buying investment services. Private equity funds, mutual funds, life insurance companies, unit trusts, hedge funds, and pension funds are the most c ...
(institutions) as well as the
sell side Sell side is a term used in the financial services industry to mean providing services to sell securities. Firms or institutions on this side include investment banks, brokerages and market makers, who facilitate offering securities to investors, ...
(brokers/dealers) of the
financial markets A financial market is a market in which people trade financial securities and derivatives at low transaction costs. Some of the securities include stocks and bonds, raw materials and precious metals, which are known in the financial marke ...
. Among its users are
mutual fund A mutual fund is an investment fund that pools money from many investors to purchase Security (finance), securities. The term is typically used in the United States, Canada, and India, while similar structures across the globe include the SICAV in ...
s,
investment bank Investment is traditionally defined as the "commitment of resources into something expected to gain value over time". If an investment involves money, then it can be defined as a "commitment of money to receive more money later". From a broade ...
s, brokers,
stock exchange A stock exchange, securities exchange, or bourse is an exchange where stockbrokers and traders can buy and sell securities, such as shares of stock, bonds and other financial instruments. Stock exchanges may also provide facilities for ...
s and ECNs. 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 The front office is the part of a company that comes in contact with clients, such as the marketing, sales, and service departments. The term has more specific meaning in different industries. Types General offices The function of front offic ...
area, bond derivatives and FX-transactions are also possible. One could say that whereas
SWIFT Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIF ...
is the standard for
back office A back office in most corporations is where work that supports '' front office'' work is done. The front office is the "face" of the company and is all the resources of the company that are used to make sales and interact with customers and clien ...
messaging, FIX is the standard for front office messaging. However, today, the membership of FIX Protocol Ltd. is extending FIX into
block trade Block or blocked may refer to: Arts, entertainment and media Broadcasting * Block programming, the result of a programming strategy in broadcasting * W242BX, a radio station licensed to Greenville, South Carolina, United States known as ''96.3 ...
allocation and other phases of the trading process, in every market, for virtually every asset class.


Technical specifications

Originally, the FIX standard was monolithic, including application layer semantics, message encoding, and session layer in a single technical specification. It remained monolithic through FIX version 4.2. Thereafter, message encodings and session layer specifications began to be split into separate documents, and ultimately, FIX evolved into a family of related technical standards.


Message encodings

Message encoding, called Presentation Layer in the Open Systems Interconnection model (OSI model), is responsible for the wire format of messages.


Tagvalue encoding (classic FIX)

The original FIX message encoding is known as tagvalue encoding. Each field consists of a unique numeric tag and a value. The tag identifies the field semantically. Therefore, messages are self-describing. Tagvalue encoding is character-based, using
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
codes.


=FIX tagvalue message format

= A message is composed of a header, a body, and a trailer. The message fields are separated by the start of heading (SOH) character (
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
0x01). Up to FIX.4.4, the header contains three fields: 8 (BeginString), 9 (BodyLength), and 35 (MsgType). From FIXT.1.1 / FIX.5.0, the header contains five or six fields: 8 (BeginString), 9 (BodyLength), 35 (MsgType), 49 (SenderCompID), 56 (TargetCompID) and the optional 1128 (ApplVerID). The content of the message body is defined by the message type (35 MsgType) in the header. The trailer contains the last field of the message, 10 (
Checksum A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify dat ...
), always expressed as a three-digit number (e.g. 10=002). Example of a FIX message, Execution Report (35=8), with the pipe character (, ) representing the SOH character: : 8=FIX.4.2 , 9=178 , 35=8 , 49=PHLX , 56=PERS , 52=20071123-05:30:00.000 , 11=ATOMNOCCC9990900 , 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=128 ,


=Body

= FIX messages are formed from several fields; each field has a tag value pairing that is separated from the next field by a delimiter SOH (0x01). The tag is 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, a string that identifies the security; tag 22 is IDSource, an integer that indicates the identifier class being used). The values may be in plain text or encoded as pure binary (in which case the value is preceded by a length field). The FIX protocol defines meanings for most tags, but leaves a range of tags 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 repeating groups are preceded by a count and encrypted fields are preceded by their length. 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 A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify dat ...
). 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.


=Body length

= The body length is the character count starting at tag 35 (included) all the way to tag 10 (excluded), including trailing SOH delimiters.
The example below (displayed with SOH delimiters as ', ') has a body length of 65:
8=FIX.4.2, 9=65, 35=A, 49=SERVER, 56=CLIENT, 34=177, 52=20090107-18:15:16, 98=0, 108=30, 10=062, 
              ^  5 +    10   +    10   +   7  +         21         +  5 +    7  ^       = 65 


=Checksum

= The checksum of a FIX message is always the last field in the message, with tag 10 and a 3 character value. It is given by summing the
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
value of all characters in the message (except for the checksum field itself), then
modulo In computing and mathematics, the modulo operation returns the remainder or signed remainder of a division, after one number is divided by another, the latter being called the '' modulus'' of the operation. Given two positive numbers and , mo ...
256. For example, in the message above, the summation of all ASCII values (including the SOH characters with ASCII value 1) results in 4158. Performing the modulo operation gives the value 62. Since the checksum is composed of three characters, this results in 10=062.


FIXML

FIXML is an XML schema for FIX messages. It is semantically equivalent to tagvalue encoded messages but takes advantage of XML parser technology. FIXML is commonly used for back-office and clearing applications rather than trading.


Simple Binary Encoding (SBE)

Simple Binary Encoding defines a wire format using primitive data types that are native to computing systems. Message encoding and decoding is therefore much lower latency than character-based protocols since no translation is needed to put data into a format that computers can use. Aside from latency advantages, performance is more deterministic because SBE messages are constrained by templates and fixed-length data elements are preferred. Another consequence is that fields are generally at a fixed position so that message filters and routers do not need to crack an entire message to access key fields. SBE was developed by the FIX High Performance Working Group to support high performance trading. Tagvalue encoding was deemed no longer fit-for-purpose since it is character based rather than binary and its variable-length fields and messages result in non-deterministic performance. Unlike tagvalue and FIXML, an SBE message is not self-describing. Only data is sent on the wire with a minimal header to identify the template that controls a message. Metadata that describes a message layout is exchanged
out-of-band In telecommunications, out-of-band activity is activity outside a defined frequency band, or, metaphorically, outside of any primary communication channel. Protection from falsing is among its purposes. Examples General usage * Out-of-band agr ...
between peers. FIX Trading Community publishes an XML schema for SBE message schemas. A message schema may contain any number of message templates. A template describes the fields that constitute a message. Additionally, a schema provides a listing of simple and composite data types that may be reused by any number of fields. From a practical perspective, assuming a C/C++ implementation, and adjusting for endianness: most non-composite types in the message directly map to the same type in the language. For example, 32-bit integer maps to uint32_t, fixed strings maps const char *, floating point maps to float and so on. One can generate a C/C++ struct from the schema definition. Then, given a pointer to a message buffer, accessing non-composite fields of the message amount to type-casting it to a pointer to structure and accessing structure members directly. /* Generated struct from schema */ struct Message ; void consume_message(void *incoming_message)


Other FIX encodings

FIX Trading Community has also developed standard mappings between FIX and other message protocols, including: *
Google Protocol Buffers Protocol Buffers (Protobuf) is a free and open-source cross-platform data format used to serialize structured data. It is useful in developing programs that communicate with each other over a network or for storing data. The method involves an ...
*
ASN.1 Abstract Syntax Notation One (ASN.1) is a standard interface description language (IDL) for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networ ...
*
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...


Session protocols

The session layer is responsible for message exchange including checkpoint recovery mechanisms.


FIX Transport (FIXT)

The original FIX session protocol did not have its own name since it was part of a monolithic specification covering application layer semantics and message encoding as well. However, starting with FIX version 5.0, the session layer was split off as an independent specification with the introduction of FIXT. FIXT was largely the same as the original unnamed session layer in version 4.x, but it offered one significant innovation--it provided a mechanism to mix FIX application layer versions over a common session version. The current FIXT version is 1.1. Theoretically, FIXT is transport independent. However, it is usually employed over
Transmission Control Protocol The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
(TCP). FIXT is a point-to-point protocol. It guarantees message delivery in both directions. Messages sent in each direction carry a message sequence number in the message header. If there is a communication fault, a peer may request retransmission of missed messages. Message delivery is supported even in the event of disconnection and later reestablishment of a session. To implement session establishment and guaranteed delivery, FIXT and classic FIX 4.x define these session message types: * Heartbeat * Test Request * ResendRequest * Reject * SequenceReset * Logout * Logon * XMLnonFIX


FIX Performance Session Layer (FIXP)

FIXP was developed by the FIX High Performance Working Group to meet the needs of high performance trading. The primary need is for low latency message encoding and decoding and control over message delivery guarantees. To provide low latency, binary message encodings are supported both for session layer and application messages. The actual wire format is abstracted in the FIXP specification, so users may select a FIX encoding of their choice, so long as peers agree on a protocol to use. Early development has used Simple Binary Encoding. FIXP covers both point-to-point and multicast use cases with common primitives. When a point-to-point session is established, peers negotiate delivery guarantees from among the following choices: * Recoverable: exactly-once message delivery. If gaps are detected, then missed messages may be recovered by retransmission. * Idempotent: at-most-once delivery. If gaps are detected, the sender is notified, but recovery is under the control of the application, if it is done at all. * Unsequenced: makes no delivery guarantees. This choice is appropriate if guarantees are unnecessary or if recovery is provided at the application layer or through a different communication channel. * Note: No application messages should be sent in one direction of a session. Delivery guarantees may be asymmetrical. For example, a trader may enter orders over an idempotent flow while executions are returned over a recoverable flow. In fast moving markets, the delay inherent in retransmission is often undesirable, resulting in missed opportunities or bad trades.


Diagrammatic representation of FIX system

Below is a diagram of how to FIX messaging looks between Buyside/Customer and Sellside/Supplier.


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 transport protocols such as message queues and
web services A web service (WS) is either: * a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or * a server running on a computer device, listening for requests at a particular port over a n ...
to be used instead of traditional FIX over TCP. FIX now supports
algorithmic trading Algorithmic trading is a method of executing orders using automated pre-programmed trading instructions accounting for variables such as time, price, and volume. This type of trading attempts to leverage the speed and computational resources of ...
by the use of FIX Algorithmic Trading Definition Language
FIXatdl FIX Algorithmic Trading Definition Language, better known as FIXatdl, is a standard for the exchange of meta-information required to enable algorithmic trading activity within the financial markets. It works in tandem with the Financial Informati ...
. In 2005, the FIX Trading Community released
FAST protocol The FAST protocol ( FIX Adapted for STreaming) is a technology standard developed by FIX Protocol Ltd., specifically aimed at optimizing data representation on the network. It is used to support high-throughput, low latency data communications bet ...
which stands for FIX Adapted for Streaming.
FAST Fast or FAST may refer to: Arts and entertainment * "Fast" (Juice Wrld song), 2019 * "Fast" (Luke Bryan song), 2016 * "Fast" (Sueco song), 2019 * "Fast" (GloToven song), 2019 * ''Fast'', an album by Custom, 2002 * ''Fast'', a 2010 short fil ...
is a binary protocol and is used mostly for sending
Multicast In computer networking, multicast is a type of group communication where data transmission is addressed to a group of destination computers simultaneously. Multicast can be one-to-many or many-to-many distribution. Multicast differs from ph ...
market data In finance, market data is price and other related data for a financial instrument reported by a trading venue such as a stock exchange. Market data allows traders and investors to know the latest price and see historical trends for instruments ...
via UDP connections. Further, in 2020, the FIX Trading Community released a new FIX binary encoding, based on Simple Binary Encoding (SBE), meant to complement the existing FAST encoding.


See also

*
FIXatdl FIX Algorithmic Trading Definition Language, better known as FIXatdl, is a standard for the exchange of meta-information required to enable algorithmic trading activity within the financial markets. It works in tandem with the Financial Informati ...
* SWIFT:Message Types * List of electronic trading protocols


Notes


External links


FIX Protocol Ltd.
- this official FIX Trading Community website contain
FIX Standards
* FIXimate FIX Dictionar
FIX Latest

FIXwiki
- a Wiki dedicated to FIX. A specification reference tool like FIXimate but because it is a wiki it also allows user notes and feedback
B2BITS FIX Antenna .NET Core
- an open source .NET FIX engine implementation.
Esprow FIX Tools
- an online FIX dictionary browser for all FIX versions, including a FIX message parser

- quick and easy to use contemporary dictionary of the FIX Protocol (version

. * FixSpe
FIX 4.0FIX 4.1FIX 4.2FIX 4.3FIX 4.4FIX 5.0FIX 5.0 SP1FIX 5.0 SP2FIXT

FIXSIM
- FIX message parser, sample messages, testing support.
Online Resource including usage notes on Rapid Addition
- Online FIX Resource including detailed notes on usage (versions 4.0, 4.2, 5.0 SP2).
FIXGlobal
- Free global trading journal and official magazine of the FIX Protocol.
What is FIX Protocol?
- Non-technical overview of FIX Protocol. *A simpl
FIX Decoder
written in shell script with sed that runs fast natively on Unix/Linux, in need of updating to the latest FIX version.
Fix Parser
- an online FIX message parser {{DEFAULTSORT:Financial Information Exchange Financial routing standards Market data Financial metadata Network protocols Application layer protocols Financial industry XML-based standards Financial software Electronic trading systems Financial markets