FIX API is a messaging protocol that is widely used in the electronic trading industry.

It is by no means exclusive to forex trading. In fact, FIX API is used by stock, metals, futures, and options exchanges. It’s used by Tier-1 banks,=all the way down to retail forex brokers, and even by retail traders.

What is the FIX Protocol?

FIX is an acronym for The Financial Information eXchange (FIX) effort, initiated in 1992.

It is an open messaging standard controlled by no single individual or entity and can be structured to meet the requirements of each entity that employs it.

Clients and brokers use a software called FIX engines to connect using the FIX protocol. In order to begin a FIX session, Client A and Broker B connect their engines at a predetermined start time using a predetermined host and comp ID.

History of FIX API

FIX stands for Financial Information eXchange.

API, which is a common term used in IT, stands for Application Programming Interface.

FIX API is a non-proprietary, free, and open protocol that is owned by a UK non-profit entity called FIX Protocol Ltd.

The protocol was originally created to support equities trading and to replace phone trading in the early 90s.

Since then, the technology has been extended significantly and is being used by thousands of electronic trading companies around the world.

Today, there are many versions of FIX messaging protocol, however, the most commonly used version is 4.4.

What are the Advantages of FIX API

The main advantage of FIX API is that it’s free. The FIX community ensures that the protocol remains free, forever. Besides that, other primary advantages are as follow;

Conformance. FIX is extensive and covers an array of securities. Not every user of FIX uses 100% of the available messages. Usually, a broker or exchange will publish rules of engagement on how messages are used.

Speed. FIX messages were designed to be lean. This means they can travel fast and do not require that much bandwidth to transmit. Which is ideal because FIX messages are usually sent at high frequencies.

Support for multiple brokers. You can establish FIX sessions with multiple brokers simultaneously to observe trading conditions such as spreads and liquidity and find opportunities across a wider playing field.

Convenience. Trading system developers can employ practically any programming language that supports socket communication.

What are the Limitations of FIX API

The FIX API provides a fixed, inextensible array of transaction types that system developers must abide by, all geared towards two main categories of exchange:

  1. Real-Time Market Data
  2. Order Execution & Management

FIX does not permit traders to query any specifics regarding their actual trading account, such as Equity, Balance, Available Margin, Open/Closed Orders, etc.

FIX does not permit the acquisition of historical market data, only real-time.

FIX API Access For Retail Traders

Just because the technology is technically free, it doesn’t mean that every forex broker will just give you access to trade via FIX API.

There is usually an administration cost on the broker’s side. This, unfortunately, leads to some requirements.

Some brokers will, for example, will impose minimum deposit criteria or minimum monthly trading volume criteria.

How Does FIX API Work

When you trade forex, usually you do it through a platform provided by your broker. For example MetaTrader 4, MetaTrader 5, or cTrader.

However, when you trade through FIX API, there is no platform to work with. You need to somehow build your own platform, interface, or algorithm to send instructions to and listen to information from the FIX API.

The application you create can be as simple or as complex as you desire to make it.

Several FIX engines exist today that greatly reduce the time developers spend creating transfer logic, leaving them to focus more on application and trading logic.

An example of a mature and very popular open-source software library called QuickFIX.

This is what a logon message in FIX API looks like:

8=FIX.4.4|9=126|35=A|34=1|49=theBroker.12345|57=TRADE|50=any_string|52=20170117-08:03:04|56=CSERVER|98=0|108=30|553=12345|554=passw0rd!|10=131|