FIX Protocol

April 20th, 2007 by comment Alex

There are a lot of jobs out there right now for programmers who know Fix, but what is it and how do you learn it? Fix is short for: Financial Information Exchange Protocol

Step one, get a fix engine and load it on your computer. I recommend the QuickFix engine because it’s free and open source. QuickFixEngine

Step two, download the fix protocol specifications. There are different versions of the specification.
Fix Protocol Specifications

Fix is broken up into two layers. First, there is the session layer. Session layer messages are going to handle things like Logon, Logout, Message Recovery, Heartbeats, Test Requests, Resend Requests, Rejects, Sequence Resets (Gap Fills), and more. Secondly, there is the Application layer. Since Fix deals with trade information for the stock market and futures market, the application layer messages will be along the lines of sending an order, getting a fill, changing an order, and more.

The fix messages themselves are broken up into Tags.
Tag = Value Delimiter
So, and example would look like this: 35=D |
35 is the Tag
D is the value
| is the delimiter
A fix messages is made up of many tags. Here is an example:

{code wrapped}

Send(12/06/2006-10:23:43.175)|8
=FIX.4.2|9=00060|35=0|49
=Alex|56=orders|34=99|52=20041206-10:23:43.175|10=080|

Understanding the tags is key. For example, Tag 34 is the sequence number. All Fix messages will have a sequence number. Sequence numbers ensure that the data is delivered in sequential order. If the sequence numbers fall out of sync with one another then your application must recover. In the message above, the sequence number is 99 because tag 34=99. Tag 34 is the sequence number and 99 is the value. All of the tags can be found documented in the fix specification document.
Tag 35 is the type of fix message being sent. 35=0 shows us that this message is a heartbeat message. Heartbeats will flow from fix machines every 30 seconds or so. This is configurable typically.
Here are some other important values for tag 35:
TAG 35 = A Log on
TAG 35 = 8 Execution Report
TAG 35 = 0 Heartbeat
TAG 35 = D New Order
TAG 35 = d Security Definition

The entire idea behind fix is that you send a fix message, say a 35=c which is a request for security definitions. Security definitions are the details on the contracts for sale or for purchase at an exchange. If you send a request for security definition then a fix machine that is setup to listen for these requests will start sending your all security definitions listed on the exchange it connects too. A security definition will have tag 35=d

As a FIX programmer, you will need to get the fix engine talking to your business logic application layer. You will use the Fix engine API to send your business messages to whatever other fix party you are talking to in the system architecture of your project. An example of a typical architecture would be creating a Fix Client Front End Trading System. So, you would download Quick Fix and use its API to send messages both for the Session Layer and the Application Layer to another fix machine that would talk to a Futures exchange or an Equities exchange to place orders and get fills.

All communication that I am aware of in FIX is TCP/IP. It is all about sending and receiving fix messages like the example above. If a programmer wants to learn fix to get a job programming a fix trading system then following these steps to learn more about fix makes them very marketable in the financial industry at this time.

Comments

7 Responses to “FIX Protocol”

  1. John says:


    Very cool, I’m looking forward using Ruby through FIX to develop my trading system.

  2. Alex says:


    John,

    what fix engine will you use with Ruby?

    cheers,
    alex

  3. John says:


    Quickfixengine.org

  4. Rick says:


    There is a nice new standard at FIX in the area of algorithmic trading. It uses standard xml to express various algorithmic order types.

    You can get lots of information right at the FIX web site including .xml samples from 15 firms supporting the sample. .xsd schema files, .xlt translation from the xml to html, plus a simple code example in Excel that shows how the files can be parsed and translated.

    Very cool stuff if you want to learn about FIX and algorithmic trading. (Yes with that on your resume you qualify for some VERY HOT JOBS!)

    Register as a guest (only requires a name, firm and email) at:
    http://www.fixprotocol.org/register

    Log in. (otherwise you won’t see the good stuff) Then go to:
    http://www.fixprotocol.org/working_groups/algowg/documents

    Also in the above directory is are a press release, audio and slides of the press event that gives a good starting overview.

    Rick

  5. S. Potter says:


    FIX is great for basic exchange traded products, but most of my hedge fund clients find this of limited use with no support for IRD, Credit and until FIX v5 there is really shoddy FX support. FX the most heavily traded and most liquid market in the world!

    FpML and related protocols are gaining in popularity, much to my disgust as I severely dislike the unnecessary overhead of XML for low level communications like this. But to find out more check out: http://www.fpml.org/

    To provide insight from my professional experiences working for hedge funds and investment banks since 1998: The biggest growth in the “capital markets” industry right now are in both the Credit and [still] derivatives markets, which are almost all OTC (at least the interesting and higher net worth derivatives), so FIX has appeal for a specific set of high paying jobs in the overall sector. However, sticking with exchange traded products may leave you out in the cold if you want to work on the most exciting projects in the industry today.

  6. shant says:


    NEEDED: 2 BA, 1 QA with FIX experience!

    I am looking for 3 individuals with FIX/FAST protocol experience for a Senior Technical BA position, Senior Non-Technical BA, and a QA tester!

    The salaries for each of these positions ranges between $80-100K/yr, full benefits, etc.

    If you are interested or know anyone who is interested please contact me asap.

    Thank you,

    Regards,
    Shant Atamian
    Staffing Specialist/Recruiter
    416 855 4972
    shant@futuretek.ca
    Futuretek
    147 Liberty Street
    Toronto, Ontario
    M6K 3G3

  7. Elena says:


    any chance I can interest anyone in a perm role for a Fortune 500 co downtown Toronto , must have exp FIX protocol? I know these sites typically dont like advertising … but FIX specialists are soooo hard to find !

    Elena
    416-855-1301

Got something to say?