Introduction To The Financial Information e Xchange FIX

  • Slides: 22
Download presentation
Introduction To The Financial Information e. Xchange (FIX) Protocol presented by Brian Driscoll at

Introduction To The Financial Information e. Xchange (FIX) Protocol presented by Brian Driscoll at Bar. Camp. NYC 3 1

What is the FIX Protocol? n It is a messaging standard for the real

What is the FIX Protocol? n It is a messaging standard for the real time electronic exchange of securities transaction data. 2

Who uses FIX? n n n Institutional investors (the buy side) Broker/dealers (the sell

Who uses FIX? n n n Institutional investors (the buy side) Broker/dealers (the sell side) Exchanges & ECNs Financial industry utilities Software & services vendors 3

What is it used for? n n n It’s used by exchanges, ECNs, &

What is it used for? n n n It’s used by exchanges, ECNs, & brokers/ dealers to distribute market data, quotes, etc. Money mangers use it to send orders and receive executions from brokers. It’s used by exchanges & ECNs to receive orders or quotes & report trades. It’s used to allocate & confirm trades. These are only a few examples. 4

Products & regions supported n Financial Products Supported n n n Equities Fixed Income

Products & regions supported n Financial Products Supported n n n Equities Fixed Income Derivatives FX Used worldwide n Americas, UK, Europe, Asia, Pacific Rim 5

How is the standard governed? n n n It’s a public domain standard Owned

How is the standard governed? n n n It’s a public domain standard Owned & managed by FIX Protocol, Ltd It’s a non-profit financial community organization Couple hundred member firms Volunteers from member firms & industry work on the specification 6

A brief history of FIX n n 1992 1 st used between Fidelity &

A brief history of FIX n n 1992 1 st used between Fidelity & Salomon Jan 1995 - FIX 2. 7 n n n n Good US equity support Still in use in US 1998 – FIX 4. 1 n n Now obsolete 1996 – FIX 4. 0 Incremental release 2000 – FIX 4. 2 n Public spec released Now obsolete Dec 1995 – FIX 3. 0 n n 2001 – FIX 4. 3 n n Fixed income, XML 2003 – FIX 4. 4 n n Better international Equity market data & allocations Futures, options, FX Confirms & trade reporting 2006 – FIX 5. 0 & T 1. 1 n Complex FX, improved session/transport level 7

Session & application layers n Session layer n n n Application layer n n

Session & application layers n Session layer n n n Application layer n n Make & terminate connections Deliver messages in sequence w/ data integrity Business level messages Session & application layers decoupled in FIX 5. 0. Tightly coupled prior to that. 8

Transport independent n FIX session layer n n n Web services HTTP Middleware n

Transport independent n FIX session layer n n n Web services HTTP Middleware n n TCP/IP, X. 25, etc. MQSeries, Tibco Rv, 29 West LBM, JMS Other transports 9

FIX messages n Message sections n Header fields n n Body fields n n

FIX messages n Message sections n Header fields n n Body fields n n message type, length, sequence number, sender/target, encoding, etc. session & application data Trailer fields n Signature, checksum 10

Message types n Session level msgs n n n n Logon Heartbeat Test Request

Message types n Session level msgs n n n n Logon Heartbeat Test Request Resend Request Reject Sequence Reset Logout n Application level msgs n n n n 100+ msg types New order – single Execution report Order cancel/replace request Order cancel request Allocation Trade Capture Report Confirmation 11

Message fields n For each field the specification defines: n n n Tag –

Message fields n For each field the specification defines: n n n Tag – A unique number. Field Name – Field name with no spaces. Data Type – String, char, price, qty, etc. Description – Definition of data. FIXML Name – XML element name. 12

User defined fields & msgs n User defined fields: n n n External user

User defined fields & msgs n User defined fields: n n n External user defined fields have a tag number >= 5000 and < 9999. Internal use only user defined fields have a tag number >= 10000 User defined messages n Message types start with char “U” 13

Two message syntaxes n Tag=Value syntax n n 4 components to each field <Tag>=<Value><Delimiter>

Two message syntaxes n Tag=Value syntax n n 4 components to each field <Tag>=<Value><Delimiter> n n n <Tag> is the tag number of the field = <Value> is the value of the field <Delimiter> is ASCII SOH character FIXML syntax n n n XML schema defined Application messages only, no session level Tag=Value msgs can contain FIXML in payload 14

A simple example scenario A money manager sends an order to a broker, and

A simple example scenario A money manager sends an order to a broker, and receives an execution/fill back. TCP socket Over a WAN FIX engine buy side trading system sell side trading system FIX Session Layer Transport via TCP used with tag=value message syntax where the buy side initiates connection and the sell side accepts. 15

Typical simplified msg flow n n n n Buy side connects TCP socket to

Typical simplified msg flow n n n n Buy side connects TCP socket to predefined port on sell side FIX Engine. Sell side accepts TCP connection. Buy side sends a Logon msg. Sell side sends a Logon msg back. Buy side sends New Order – Single msg. Sell side sends Execution Rpt acknowledging order Sell side sends Execution Rpt containing fill. 16

Buy 5000 IBM @ 110. 75 8=FIX. 4. 2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^ 52=20030615 -01: 14: 49^11=12345^21=1^ 55=IBM^54=1^

Buy 5000 IBM @ 110. 75 8=FIX. 4. 2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^ 52=20030615 -01: 14: 49^11=12345^21=1^ 55=IBM^54=1^ 60=2003061501: 14: 49^38=5000^40=2^44=110. 75^10=127 Header fields: Body fields: 8=Begin. String (indicates FIX 4. 2) 9=Body. Length 35=Msg. Type (new order) 49=Sender. Comp. ID (AFUNDMGR) 56=Target. Comp. ID (ABROKER) 34=Msg. Seq. Num (2) 52=Send. Time 11=Cl. Order. ID (client order id) 21=Handle. Inst (automated exec) 55=Symbol (IBM) 54=Side (buy) 56=Transact. Time 38=Order. Qty (5000) 40=Ord. Type (Limit) 44=Price (110. 75) 52=Send. Time Trailer Fields: 10=Checksum 17

Same message in FIXML <FIXML> <Application. Message> <Order. Qty. Data> <FIXMLMessage> <Order. Qty>5000 <Header>

Same message in FIXML <FIXML> <Application. Message> <Order. Qty. Data> <FIXMLMessage> <Order. Qty>5000 <Header> <Cl. Ord. ID>12345 </Order. Qty> <Sending. Time>20030615 - </Cl. Ord. ID> </Order. Qty. Data> 01: 14: 49</Sending. Time> <Handl. Inst Value="1"/> <Ord. Type Value="2"/> <Sender> <Instrument> <Price>110. . 75</Price> <Comp. ID>AFUNDMGR <Symbol>IBM </Order> </Comp. ID> </Symbol> </Application. Message> </Sender> </Instrument> </FIXMLMessage> <Target> <Side Value="1"/> </FIXML> <Comp. ID>ABROKER <Transact. Time> </Comp. ID> 2003061501: 14: 49 </Target> </Transact. Time> </Header> 18

Integrating applications w/ FIX n Write your own FIX Engine n n n Complex,

Integrating applications w/ FIX n Write your own FIX Engine n n n Complex, time consuming, etc. Appropriate in some situtations Use an existing FIX Engine n n n Many existing FIX Engines Most platforms and languages supported Integrate it into the application 19

Open source FIX Engines n Quick. FIX n n C++, Java, . Net, Python,

Open source FIX Engines n Quick. FIX n n C++, Java, . Net, Python, & Ruby APIs Windows, Linux, Solaris, Mac OS X www. quickfixengine. org Quick. FIX/J n n is a 100% Java implementation www. quickfixj. org 20

FIX engine vendors n n Many FIX engine vendors (20+) Some of the major

FIX engine vendors n n Many FIX engine vendors (20+) Some of the major vendors are: n n n Transact. Tools (owned by NYSE) NYFIX * Cameron. FIX (owned by Orc software) * I am affiliated with NYFIX 21

FIX Info on the Web n www. fixprotocol. org - The web site for

FIX Info on the Web n www. fixprotocol. org - The web site for FIX Protocol Ltd. n n Specifications Documentation Discussion forums Much of the info in this presentation came from this web site 22