Fix Basics PDF
Fix Basics PDF
18-OCT-2010
Introduction
1
These slides are based on
http://fixprotocol.org/implementation-guide/introduction.shtml,
28.10.2010.
4/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FIX in the past 1. Introduction
Who uses the FIX Protocol? The main user groups are these:
Buy-side firms: Communication with sell-side firms by means of
pre-trade, trade and post-trade messages.
Sell-side firms: Communictaion with buy-side firms via pre-trade,
trade and post-trade messages. In addition to that
communication with exchanges and OTC markets in
general.
Exchanges: Receiving trades from their members, sending
execution reports etc. back to them.
Currently a wide variety of product classes are suported ranging
from equities to fixed income products, derivatives and the like.
2
Cf. [Hong Kong 00][p. 25 ff.].
9/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FIX System Connectivity 1. Introduction
3
Cf. http://upload.wikimedia.org/wikipedia/en/e/ea/Fix.jpg,
28.10.2010.
10/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
2. Message structure
At the time of this writing the latest version is FIX 5.0 although
most current production systems use older versions 4.x (4.4 being
the last).
4
Cf. [FIXML 00][p. 10].
16/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FIXML 2. Message structure
5
Cf. [FIXML 00][p. 12].
17/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FIXML or not FIXML? 2. Message structure
+:
FIXML can be parsed with any XML parser.
FIXML allows automatic message validation.
FIXML is more human readable compared with
traditional FIX.
FIXML can be processed by various middlewares
etc.
:
FIXML needs much more bandwidth than the
traditional FIX Protocol.
Parsing (and especially validating) FIXML takes
way more CPU resources than processing
traditional FIX messages.
Still only a few parties use FIXML.
Network
FAST
FAST is the acronym for FIX Adapted for STreaming and describes
a protocol which has been developed for the one-way exchange of
data between a sender and one or multiple receivers.
6
Cf. [FAST 06][p. 6].
25/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FAST 4. FAST
FIX engines
8
Cf. [Northey 04][p. 8].
30/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
A FIX engine implements the FIX session level protocol and takes
care of things like logon, log out, sequence numbering, message
resend requests etc. A typical login scenario looks like this9 :
9
Cf. [Northey 04][p. 12].
31/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
10
Cf. [Northey 04][p. 16].
32/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
11
Cf. [Northey 04][p. 17].
33/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
12
Cf. [Northey 04][p. 20].
34/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
13
Cf. [Northey 04][p. 23 f.].
35/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Anatomy of a FIX engine 5. FIX engines
14
Cf. [Northey 04][p. 27].
36/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
Available FIX engines 5. FIX engines
15
Cf. [Johnson, Rhodes 01][p. 32].
39/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
FIX/OMS testing 5. FIX engines
Typical test scenarious from the business level viewpoint are the
following16 :
Orders:
Test all required parameters and their domains
(numerical values, strings containing special
characters, date/time values, . . . ).
The same tests are required for optional
parameters.
Test optional order types like Stop or Stop Limit
etc.
Cancels:
Simple cancel.
Cancel after a Partially Filled.
Partially filled while pending cancel.
Unsolicited cancels etc.
16
Cf. [Johnson, Rhodes 01][p. 30].
40/50 FIX Protocol basics Prof. Dr. Bernd Ulmann 18-OCT-2010
6. FIX tools
FIX tools
The author would also like to thank Dr. Reinhard Steffens for his
support and proof reading.
Bibliography