Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

Login or Signup to add a comment!


Showing 1-50 of 1 (more)

Intro To The FIX Protocol presented at BarCampNYC3

From BrianDriscoll, 6 months ago

Introduction To The Financial Information eXchange (FIX) Protocol more

1866 views  |  1 comment  |  1 favorite  |  59 downloads  |  1 embed (Stats)
 

Categories

Add Category
 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 1866
on Slideshare: 1864
from embeds: 2

Slideshow transcript

Slide 1: Introduction To The Financial Information eXchange (FIX) Protocol presented by Brian Driscoll at BarCampNYC3 1

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

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

Slide 4: What is it used for?  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

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

Slide 6: How is the standard governed?  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

Slide 7: A brief history of FIX  1992 1st used between  2000 – FIX 4.2 Fidelity & Salomon  Better international  Jan 1995 - FIX 2.7  Equity market data &  Public spec released allocations  Now obsolete  Futures, options, FX  Dec 1995 – FIX 3.0  2001 – FIX 4.3  Now obsolete  Fixed income, XML  1996 – FIX 4.0  2003 – FIX 4.4  Good US equity support  Confirms & trade reporting  Still in use in US  2006 – FIX 5.0 & T1.1  1998 – FIX 4.1  Complex FX, improved  Incremental release session/transport level 7

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

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

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

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

Slide 12: Message fields  For each field the specification defines:  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

Slide 13: User defined fields & msgs  User defined fields:  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  Message types start with char “U” 13

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

Slide 15: A simple example scenario A money manager sends an order to a broker, and receives an execution/fill back. buy side sell side FIX engine FIX engine TCP socket trading trading Over a WAN system 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

Slide 16: Typical simplified msg flow  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

Slide 17: 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=BeginString (indicates FIX 4.2) 11=ClOrderID (client order id) 9=BodyLength 21=HandleInst (automated exec) 35=MsgType (new order) 55=Symbol (IBM) 49=SenderCompID (AFUNDMGR) 54=Side (buy) 56=TargetCompID (ABROKER) 56=TransactTime 34=MsgSeqNum (2) 38=OrderQty (5000) 52=SendTime 40=OrdType (Limit) 44=Price (110.75) Trailer Fields: 52=SendTime 10=Checksum 17

Slide 18: Same message in FIXML <FIXML> <ApplicationMessage> <OrderQtyData> <FIXMLMessage> <Order> <OrderQty>5000 <Header> <ClOrdID>12345 </OrderQty> <SendingTime>20030615- </ClOrdID> </OrderQtyData> 01:14:49</SendingTime> <HandlInst Value=\"1\"/> <OrdType Value=\"2\"/> <Sender> <Instrument> <Price>110..75</Price> <CompID>AFUNDMGR <Symbol>IBM </Order> </CompID> </Symbol> </ApplicationMessage> </Sender> </Instrument> </FIXMLMessage> <Target> <Side Value=\"1\"/> </FIXML> <CompID>ABROKER <TransactTime> </CompID> 2003061501:14:49 </Target> </TransactTime> </Header> 18

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

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

Slide 21: FIX engine vendors  Many FIX engine vendors (20+)  Some of the major vendors are:  TransactTools (owned by NYSE)  NYFIX *  CameronFIX (owned by Orc software) * I am affiliated with NYFIX 21

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