Skip to content

FIX Protocol 101

Baoying Wang edited this page Feb 1, 2018 · 2 revisions

Introduction

Here is the FIX session level protocol. Most knowledge of this session could be found about the protocol. https://www.fixtrading.org/standards/fixt/

The purpose of this session is to give you a brief. If you hope more detail, please raise question here, or check the spec.

Out of scope: FAST, MarketData workflow, Order workflow, etc.

Catalog

Demo of FIX client + FIX server based on QFJ

a.	brief the demo source code

see: https://github.com/baoyingwang/QuickFixJTutorial

Explain FIX messages based on the Demo

FIX protocol vs Https

 Browser/                   Your business app  
Program                 
-------------               -----------------
  HTTP                         FIX
request:get/post        Logon/Heartbeat/NewOrderSingle/ExecutionReport/...
response:200/404         
-------------               -----------------
  SSL                             SSL
-------------               -----------------
  TCP                             TCP

Message loss ditection and recovery:

  1. sequence number on each message
  2. if seq gap is identified, request resending
  3. sequence reset (session window)

FIX initiator and acceptor

Acceptor: listen and waiting Initiator: intiate the connection attempt

FIX
(Acceptor, listening on a port)
           /\
         /    \  (network) 
       /        \
      /           \----------SSL------------ Bank1 FIX Engine------Bank1 BackOffice
    /--------------------SSL------------ Bank2 FIX Engine------Bank2 BackOffice

What's your FIX application is?

  • FIX client/initiator , e.g. TR FIX Archiver (part of Deal Tracker Suite)
  • FIX Acceptor, e.g. the FIX engine of trading platform, BARX, Autobahn
  • Both acceptor and initiator, because you have more complext business, e.g.

FIX Engines

a.	Tcp/ssl/session/dictionary
b.	Business logic is integrated with callback

Product: QuickFix/J https://www.quickfixj.org/ - OpenSource. Ext. QuickFix, QuickFix/N Product: Trading Connectivity Management (TCM) - NYSE Product: FIX8 (C++) http://fix8.org/index.html - OpenSource. There is a pro version. Product: CameronFIX by Itiviti https://www.itiviti.com/products-services/products/cameronfix-by-itiviti/

Extension

a.	Logging
b.	Storage
c.	HA
d.	Type Safe
e.	Multi dictionary support
f. Others?

see https://github.com/baoyingwang/QuickFixJTutorial/wiki

Example: see the source code

Reference

FIX Session: https://www.fixtrading.org/standards/fixt/

Clone this wiki locally