FIX, short for Financial Information eXchange, is a globally recognized messaging standard that facilitates communication between participants in the financial markets, including institutional investors, broker-dealers, exchanges and trading platforms. The FIX protocol serves as the de facto standard for transmitting pre-trade and trade-related information, ensuring interoperability across different systems and platforms.
Originally developed in the early 1990s, FIX has since evolved into a widely adopted protocol across asset classes, including equities, fixed income, derivatives, and foreign exchange. Until the early 2000s, FIX existed as single standard comprising message encoding, session management, and application-level semantics. In 2001, the specification was split into a family of related standards, allowing applications the flexibility to use alternative transports, encodings, and session behaviour.
The classic combination of standards remains the most commonly used, consisting of the FIX TagValue Encoding, the classic Session Protocol, all sent over TCP.
Which FIX configuration to use is agreed between parties, typically as part of an offline integration phase. Generally, one party will maintain their own rules of engagement ("FIX spec"), which the other party will then implement to be compliant with. Rules of engagement may differ, even for systems within the same organization.
Regardless of the FIX stack being used, FIX always involves a bidirectional exchange of messages, each made up of a series of fields. Messages may be either session-level, such as a request to terminate the session, or application-level, such as a request to cancel an existing order. Which messages are supported is defined by the rules of engagement, though certain messages will be mandated by the chosen session protocol.
Within a message, fields may be required, conditionally required, or optional. The rules of engagement should specify which fields are required by which messages, and when. The order in which fields occur generally has no meaning.
Applications generally make use of a third-party FIX engine - a library implementing the low-level protocol - to allow developers to focus on application logic. QuickFIX is a popular free and open-source choice, which is available in multiple languages.