fix

30
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

Upload: cparkhi

Post on 25-Jun-2015

2.231 views

Category:

Economy & Finance


0 download

DESCRIPTION

The presentation describes how the FIX Protocol works. (FIX : Financial Information Exchange)

TRANSCRIPT

Page 1: Fix

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

Page 2: Fix

Content FIX : What, Who, Where, Why

FIX administrative messages

FIX application messages

FIX message format

FIX security identification

FIX re-synchronization

Page 3: Fix

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

Page 4: Fix

So finally …….. FIX is a standard Messaging Protocol to

communicate trading information electronically between buyside Institutions (Decalog Clients) , Brokers and Market

Page 5: Fix

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…..

Page 6: Fix

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.

Page 7: Fix

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

Page 8: Fix

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

Page 9: Fix

Before FIX - Order Flow Investment Manager Broker / Dealer

Order Via Phone Call

Order Confirm

Page 10: Fix

Before FIX - Order Flow Investment Manager Broker / Dealer

Don’t know Trade

Execution Reports

Page 11: Fix

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

Page 12: Fix
Page 13: Fix

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

Page 14: Fix

How Fix Works ? …

Page 15: Fix

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”

Page 16: Fix

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

Page 17: Fix

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

Page 18: Fix

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]

Page 19: Fix

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]

Page 20: Fix

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]

Page 21: Fix

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]

Page 22: Fix

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

Page 23: Fix
Page 24: Fix
Page 25: Fix
Page 26: Fix

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

Page 27: Fix

FIX SecurityIdentification

Physical identification

• IP address• Port number

Logical identification

• Company ID (CompID)• Sub Company ID (SubID)

Encryption possible

Page 28: Fix

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

Page 29: Fix

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

Page 30: Fix

Thank You ……..

Questions?......

FIX