fix
DESCRIPTION
The presentation describes how the FIX Protocol works. (FIX : Financial Information Exchange)TRANSCRIPT
Mission statement – To improve the global trading processes by defining, managing, and promoting an open protocol for real-time, electronic communication between industry participants, while complementing industry standards.
FIX Training : FIX Basics
Content FIX : What, Who, Where, Why
FIX administrative messages
FIX application messages
FIX message format
FIX security identification
FIX re-synchronization
FIX : What is FIX ?
Structured language protocol Translates details of trade into common
language FIX defines message format FIX defines the delivery mechanism FIX is a public domain specification owned
and maintained by FIX Protocol Ltd http://www.fixprotocol.org
Financial Information
eXchange
So finally …….. FIX is a standard Messaging Protocol to
communicate trading information electronically between buyside Institutions (Decalog Clients) , Brokers and Market
Why?....Reason for using FIX…….
82% of Firms ,buy side and sell side , execute at least some of their trades via ECNs / ATSs78% of brokers and 59% of buy side institutions utilize order routing networks for some of their orders / executions82 % of Brokers were using FIX in 2000…..
FIX : Who uses FIX ? STP approach : Straight Through Processing
Brokers : use to manage and attract large order flow
Exchanges : use FIX to make it easier, faster and less expensive for their members to send order flow
Portfolio Managers : use FIX to access pools of liquidity, get better prices, communicate executions and trade more efficiently.
FIX : What are the benefits of FIX ?
Standardized error recovery : FIX ensures that data is not lost
The failsafe mechanism of the FIX message allows to detect any potential communication problem immediately
Number of brokers, institutions becoming FIX compliant increases every day
FIX connectivity promises drastically reduced operational time to market
FIX : What are the benefits of FIX ?Eliminates proprietary interfaces and coding of multiple message formats which reduces amount of time to connect.
Supports Multiple Currencies and instrument Types
Cost effective connectivity
Accommodates higher volumes
Shortens the settlement cycles
Before FIX - Order Flow Investment Manager Broker / Dealer
Order Via Phone Call
Order Confirm
Before FIX - Order Flow Investment Manager Broker / Dealer
Don’t know Trade
Execution Reports
FIX : Can FIX be used globally ?FIX is internationally compliant
FIX protocol includes the ability to trade in most security types in all currency
FIX was initially developed for equities, but its use is currently expanded to include other financial instruments
For more information, visit the FIX protocol organization website at http://www.fixprotocol.org
FIX : FIX security
Works in a connected mode
Client applications are identified•Identification with client’s IP address•Logical identifier (compID / subID)
Data encryption possible
Ensures the integrity of exchanged messages
•Tracks sending and receiving in order to detect any data loss•Re-synchronization process
How Fix Works ? …
FIX Administrative messagesDefinition
Logon Message : “Hi, I am Sungard”
Heartbeat : “I’m alive”
Test request : “Are you alive ??”
Resend Request : “Please, resend number n”
Reject : “I don’t understand”
Sequence Reset : “I will send you number m”
Logout : “Good by”
FIX Administrative messagesBasic Message Flow
Logon(Msgtype=A)
Logon(Msgtype=A)
Hello I am Client
Hello I am Broker
Heartbeat(MsgType=0)
Heartbeat(MsgType=0)
I am alive
I am alive
Test Request(MsgType=1)
Heartbeat(MsgType=0)
Are you alive ??
I am alive
FIX Application Messages
New Order Single (NOS) : Order creation
Order Cancel Request (OCR) : Cancellation requested
Execution Report (ER) : Execution Report• ExecTransType (20)• OrdStatus (39)
Order Cancel Reject (OCRej) : Cancellation reject
Order List• New Order List• List Status, Execute, Cancel Request, Status Request
FIX Application messagesBasic trading 1
New Order Single(Msgtype=D)
Execution Report(MsgType=8 ; OrdStatus=0 [New])
Please Buy1000 CGE @ 6,2 €
Ok your order is placed
Execution Report(MsgType=8 ; OrdStatus=1 [Partially
Filled])500 Shares are
executed
Execution Report(MsgType=8 ; OrdStatus=3 [Done])
500 More Shares are executed, Your
order is filled
Execution Report(MsgType=8 ; OrdStatus=2 [Filled])
1000 Shares CEG Bought it @ 6,2 €
ClientBroker
Symbol = 0001. €, Side = Buy, OrderQty = 1000, OrdType = Market[35=D;55=0001. €;54=1;38=1000;40=1]
Execution Report
Symbol = 0001. €
Side = Buy
Qty = 1000
Type = mkt
Status = new
[35=8;55=0001.HK;54=2;38=1000;40=1;39=0]
FIX Application messagesBasic trading 2
Buyer of 1000 CE
Broker
FIX Network
FIX IOI
Symbol = 0001. €
Side = Buy
IOI Shares= 1000
Price = 6.2
[35=8;55=0001.HK;54=2;38=1000;40=1;39=0]
FIX Application messagesBasic trading 3
New Order Single(Msgtype=D)
Execution Report(MsgType=8 ; OrdStatus=0 [New])
Please Sell1000 CGE @ 6,2 €
Accept Sell CGE 1000
Client 2Broker
Symbol = 0001. €, Side = Sell, OrderQty = 1000, OrdType = Market[35=D;55= 0001. €;54=1;38=1000;40=1]
FIX Order Accept Execution Report
Symbol = 0001. €
Side = Sell
Qty = 1000
Type = mkt
Status = new
[35=8;55=0001.HK;54=1;38=1000;40=1;39=0]
FIX Application messagesBasic trading 4
Clients
Broker
FIX Execution Report (FILLED)Symbol = 0001. €Side = BuyQty = 1000Type = mktStatus = FilledLast Shares = 1000LastPx = 101
FIX Execution Report (FILLED)
Symbol = 0001. €
Side = Sell
Qty = 1000
Type = mkt
Status = Filled
Last Shares = 1000
LastPx = 101
[35=8;55=0001.€
;54=1;38=1000;39=2;32=1000;31=101]
[35=8;55=0001.€
;54=1;38=1000;39=2;32=1000;31=101]
FIX Application messagesIn case of cancellation……
Client
Broker
New Order Single(Msgtype=D)
Please Buy1000 SDX @ 40€
Execution Report(MsgType=8 ; OrdStatus=0
[New])Ok your order is
placed
Order Canel Request(Msgtype=F)
Please Cancel my Order
Execution Report(MsgType=8 ; OrdStatus=4 [Canceled])
Ok U R Out
FIX MessageFormat
Message Decomposition
• Header• Body• Trailer
Fields
• <TAG #>=<TAG Content>• MsgType New order Single will be 35=D
Written as a String
• All fields are concatenated in one unique String
FIX SecurityIdentification
Physical identification
• IP address• Port number
Logical identification
• Company ID (CompID)• Sub Company ID (SubID)
Encryption possible
FIX SecurityRe-synchronization 1/2
Tag MsgSeqNum (34)
Sequence Number• Incoming sequence number• Outgoing sequence number
Sequence Number sequentiality breaking• If the incoming SeqNum does not match the
expected one, a re-synchronization is processed • If the outgoing SeqNum does not match the
expected one, a re-synchronization is processed
FIX SecurityRe-synchronization 2/2
Client BrokerHeartbit
(MsgSeqNum=36)
Exp SeqNum=28Resend Request
(BeginSeqNo=28 ; EndSeqNo=36)
Exp SeqNum=32
Sequence Reset(NewSeqNo=31)
New Order Single(MsgSeqNum=32)
Exp SeqNum=33Sequence Reset(NewSeqNo=36)
Exp SeqNum=37
Thank You ……..
Questions?......
FIX