QuickFIX is a full-featured open source FIX engine, currently compatible with the FIX 4.0-4.4 spec. It runs on Windows, Linux, Solaris, FreeBSD and Mac OS X. API's are available for C++, Java, .NET, Python and Ruby.
Links to documents
The following was scraped from an online PowerPoint presentation:
Session level messages
- logon/logout
- heartbeat
- test request
- resend request
- reject
- sequence reset
Application level messages
- new order
- execution report
- order cancel/replace request
- allocation
- trade capture report
- confirmation
For each field:
- tag (a unique number)
- field name
- data type (string, char, price, quantity)
- description
- FIXML name (XML element name)
User-defined messages
User-defined fields
Message syntaxes
- 'tag=value' syntax
- tag (tag number)
- =
- value
- delimiter (ASCII SOH)
- FIXML syntax
- XML schema defined
- application messages only, no session level
Sample transaction
(1) buy side connect to TCP socket on port of sell side FIX engine
(2) sell side accepts TCP connection
(1) send Logon message
(2) send Logon message back
(1) send New Order message
(2) send Execution Report acknowledging order
(2) send Execution Report containing fillBuy 5000 IBM at 110.75
8=FIX4.2^ # BeginString 9=251^ # BodyLength 35=D^ # MsgType (New Order) 49=AFUNDMGR^ # SenderCompID (AFUNDMGR) 56=ABROKER^ # TargetCompID (ABROKER) 34=2^ # MsgSeqNum (2) 52=20030615-01:14:49^ # SendTime 11=12345^ # ClOrderID (CLient Order ID) 21=1^ # HandleInst (automated exec) 55=IBM^ # Symbol (IBM) 54=1^ # Side (buy) 60=2003061501:14:49^ # 38=5000^ # OrderQty (5000) 40=2^ # OrdType (Limit) 44=110.75^ # Price (110.75) 10=127^ # Checksum
<FIXML> <FIXMLMessage> <Header> <SendingTime></SendingTime> <Sender> <CompID>AFUNDMGR</CompID> </Sender> <Target> <CompID>ABROKERR</CompID> </Target> </Header> <ApplicationMessage> <Order> <ClOrdID></ClOrdID> <HandlInst Value="1" /> <Instrument> <Symbol>IBM</Symbol> </Instrument> <Side Value="1" /> <TransactTime></TransactTime> <OrderQtyData> <OrderQty>5000</OrderQty> </OrderQtyData> <OrderType Value="2" /> <Price>110.75</Price> </Order> </ApplicationMessage> </FIXMLMessage> </FIXML>

Leave a comment