What is the FIX protocol?
The FIX protocol, shorthand for “Fixed Information eXchange,” is an electronic communications protocol first implemented in 1992 to allow for the live transmission of information related to financial markets. Being the default communications protocol between agents and the exchange, it is widely used by brokers, mutual funds, hedge funds, and proprietary firms with direct market access.
It was initially called SBX (Salomon Brothers Exchange) because this company and Fidelity were the initial adopters in 1993. To provide context, 1993 was also the year Mosaic, the world’s first web browser, was launched. Like most communications protocols, the value of the system relied on the adoption of other market players, which is why, shortly after, Putnam and Goldman Sachs were invited to join.
The first public version of the FIX protocol was released in 1995, and its adoption was fast due to its apparent advantages over telephone trading.
Stock exchanges, previously known for their rather lack of innovation, were also proponents of the protocol because of the increase in efficiency for onboarding new brokers into their venues.
Basics of FIX protocol and examples
FIX is the language different financial institutions worldwide use to communicate with each other, particularly for order management and order entry messages.
Fixed is a key-value pair protocol in which the key defines the data set (type of order, company, etc.), and a value that belongs to the set (buy order, AAPL, etc.).
For example, if we want to create a buy order, we would submit the following information:
35=D → Submit a new order
55=TSLA → the company that we want to buy
38=10 → The number of shares that we want to acquire
44=305.15 → The price that we are willing to pay
50=K6518N → The unique identifier of the sender
56=NSADAQ → The unique identifier of the target venue
52=20221015-10:15:20.088 → The date and time of the message
These messages get sent through a FIX engine, which is in charge of establishing a connection between both parties, called “sessions.” Each exchange holds thousands of sessions concurrently and parses (decodes) each message. In the previous example, the parser would translate the message into the following information: “New limit order for stock TSLA for 10 shares at a maximum price of 305.15, issued by K6518N, to be executed on NASDAQ”.
The following is a real-life working example of a FIX message for creating a single market buy order for 100 shares of CVS:
“8=FIX.4.2^A 9=145^A 35=D^A 34=4^A 49=ABC_DEFG01^A 52=20090323-15:40:29^A 56=CCG^A 115=XYZ^A 11=NF 0542/03232009^A 54=1^A 38=100^A 55=CVS^A 40=1^A 59=0^A 47=A^A 60=20090323-15:40:29^A 21=1^A 207=N^A 10=139^A”
Is the FIX protocol fast?
Although the FIX protocol condenses a wide array of information in a short string of characters, it is not the fastest implementation possible for transmitting these types of messages. Although it has had major revisions since 1995 that increased its efficiency, it is still a suboptimal protocol in terms of speed by today’s standards. This is the reason behind most cryptocurrency exchanges not adopting this protocol.
The FAST (FIX Adapted for STreaming) protocol is an extension of FIX but modified to send data across market players more quickly. The mass adoption of the FAST protocol for data propagation is a consequence of today’s huge requirements for data transfer compared to 1995, when the FIX protocol was first introduced.
For example, the fact that the complete message is encoded as a string is suboptimal. The number 1.000.000 requires 7 bytes if sent as a string, in contrast to the 4 bytes it requires if encoded as binary. The FAST protocol was implemented to reduce the overhead and inefficiencies of the FIX protocol.
Frequently asked questions
Is the FIX protocol encrypted?
The FIX is theoretically independent of the transport method employed to send the message and only specifies the structure of the content. The specifics of each implementation change from venue to venue, but the Transmission Control Protocol was a common choice. By default, this protocol provides no security (at least by today’s standards), and subsequent implementations have used SSL or TLS encryption.
In contrast to the internet in general, access to financial markets through the FIX protocol is limited and poses strict requirements. Some sell-side firms offer direct market access to proprietary firms, hedge funds, and other buy-side institutions, but at high monthly costs.
What is the difference between an API and the FIX protocol
APIs (Application Programming Interface) have different endpoints (URLs) for different tasks, whereas the FIX protocol message itself is in charge of specifying which task is supposed to be carried out (buy, sell, etc.).
For example, key ‘35’ of the FIX protocol specifies the type of action requested, and a value of ‘D’ indicates that the sender wishes to carry a buy order.
On the other hand, an API endpoint might have a specific endpoint for orders. Such an API endpoint could have the following hypothetical structure:
Requests to that URL are assumed to be “buy” orders. This request would be accompanied by a JSON object indicating the other relevant information, such as the quantity, the price, the company, whether it is a limit or market order, etc.
REST APIs and their preferred Json format have the advantage of being human-readable, making them much more convenient to implement. In contrast, using the FIX protocol requires extensive training, and the current manual is hundreds of pages long.
Do all exchanges use the FIX protocol?
Almost all stock, bonds, options, and futures markets use the FIX protocol or a subsequent derivation of it (such as FAST). For most purposes, working with the FIX protocol is a requirement for Quantitative Developers in firms with direct market access.
The following list comprises a few relevant exchanges from all over the world that use the FIX protocol:
Cryptocurrency exchanges, in contrast, have decided not to use the FIX protocol and use more modern alternatives, such as REST APIs (for making requests) and Websockets (for subscribing to live data feeds). It is worth mentioning that the Coinbase API features an endpoint for users that already know FIX and want to use it. This endpoint is mostly for legacy purposes and has no advantage over the regular REST API.