FIXML For Listed Futures and Options Post Trade Processing

Download Report

Transcript FIXML For Listed Futures and Options Post Trade Processing

CME Message-based API’s for 2004
The Post-Trade Model
Blocks, EFP’s, SLEDS
and Position Services
Via FIXML
February, 2004
Illustration of Straight-through-processing
Straight-thru-processing
Matched
Order
Order In
Fill
Trader
Order Entry
Electronic Matching
Engine
Front End
Clearing
Matched Trade
Confirm
Matched
Confirm
Firm Personnel
Firm Entry
Exercise
Notice
Exercise
Notice
Exercise
Confirm
Exercise
Confirm
Firm Bookkeeping
System
CME Clearing
System
STP can take the form of single entry which eliminates errors due to
redundancy and promotes interoperability of disparate systems.
The Business Case
• Industry Expansion:
 The industry is expanding at an unprecedented pace.
 Standards are needed to manage and facilitate this
consolidation.
 These standards must be flexible enough to support future
business initiatives without costly modifications.
 Not only should these standards be used across the
derivatives industry, they should be extensible across the
closely related Equity and Fixed Income markets.
The Business Case
•
Industry Expansion:
 The industry is expansion at an unprecedented pace.
 FIXML removes barriers to expansion
 Standards are needed to manage and facilitate this expansion.
 FIXML is the basis of a practical and pervasive standard, allowing a build
once, interface many times approach
 These standards must be flexible enough to support future business
initiatives without costly modifications.
 FIXML provides full coverage of the post-trade arena. Its range extends
across the full spectrum of products and functions
 Not only should these standards be used across the derivatives industry,
they should be extensible across the closely related Equity and Fixed
Income markets.
 FIX is already an accepted standard in Derivatives Trading, Equity, and
Fixed Income areas. FIXML as an XML implementation, allows greater
technical interoperability
The Business Case: FIXML vs TREX
• Reduced Cost through flexibility
 In general, TREX has reached the end of its lifespan
 TREX is 10 years old and reflects the industry as it existed at that time
 TREX is a flat, non-tiered message structure and does not lend itself to
repeating groups of data
 Adding or expanding blocks is costly
 TREX has limited support for multi-leg instruments. At this point in time,
it is maxed out.
 Consider the cost to expand the S1 block for SLEDS
 Consider the cost to support a similar type of effort for packs, bundles
or strips
The Business Case: FIXML vs TREX
• Reduced Cost through flexibility
 FIXML provides expanded support for multi-leg instruments
 FIXML provides support for the most complex multi-legged
instruments
 FIXML’s underlying model allows a seamless transition
between simple and complex instruments
 No additional costs related to message expansion. Your
interface does not need to change
The Business Case: FIXML vs TREX
• Reduced Cost through flexibility
 FIXML provides expanded Give up functionality
 TREX has limited give up functionality
 TREX allows give ups only to a single party
 TREX does not provide a way to sub-allocate and accept in a
single request
 TREX does not support a single leg give up for a spread
instrument
 FIXML allows multi-party give ups on single trade
 FIXML supports sub-allocations on the acceptance of a give up
 FIXML allows one or more legs of a spread to be given up
New API Offerings in 2004
2004
April
May
July
FixML Timeline
Position
Services
Blocks and
EFPs
SLEDS
CME’s FIXML Users Guides
The following FIXML Users Guides and Specification Docs are now
available:
 Position Services Users Guide
 Blocks and EFP Users Guide
 SLEDS Users Guide
Please contact our Client Management Group to receive a copy
Block, EFP, and SLEDS Dialogue
Two-sided entry and Match
Clearing
House
Sell Side
Buy Side
Trade Capture Report
TradeTransType=NEW
TradeReportType=SUBMIT
Trade Capture Report
TradeTransType=NEW
TradeReportType=SUBMIT
Trade Capture ACK
TradeTransType=NEW
Trade ReportType=SUBMIT
Firm
Back
Office
System
Trade Capture ACK
Trade Capture ACK
TransType=NEW
TradeReportType=SUBMIT
TradeTransType=NEW
TradeReportStatus=REJECT
rejected by clearing house
Trade Capture ACK
TradeTransType=NEW
TradeReportStatus=REJECT
rejected by clearing house
Trade Capture Report
TradeTransType=NEW
TradeReportType = ACCEPT
MatchStatus=MATCH
M
Trade Capture Report
TradeTransType=NEW
TradeReportType=ACCEPT
MatchStatus=MATCH
Firm
Back
Office
System
Block, EFP and SLEDS Dialogue
Request for Pre-Match Change
Clearing
House
Sell Side
Buy Side
Trade Capture Report
TradeTransType=REPLACE
TradeReportType=SUBMIT
Firm
Back
Office
System
Firm
Back
Office
System
Trade Capture ACK
TradeTransType=REPLACE
TradeReportStatus=REJECT
rejected by clearing house
Trade Capture Report
Trade Capture Report
TradeTransType=REPLACE
TradeReportType = ACCEPT
TradeTransType=REPLACE
TradeReportType=ACCEPT
Block, EFP and SLEDS Dialogue
Request for Cancellation
Clearing
House
Sell Side
Buy Side
Trade Capture Report
TradeTransType=CANCEL
TradeReportType=SUBMIT
Firm
Back
Office
System
Firm
Back
Office
System
Trade Capture ACK
TradeTransType=CANCEL
TradeReportStatus=REJECT
rejected by clearing house
Trade Capture Report
Trade Capture Report
TradeTransType=CANCEL
TradeReportType = ACCEPT
TradeTransType=CANCEL
TradeReportType=ACCEPT
FIXML Extensibility – Support for SLEDS
MultiLeg Instrument
30 year Bond Spread
Single Leg Entry Differential Spread
Leg 1
Leg 2
Main Body of Fixml Message
<TradeCaptureReport LastQty=100>
<Instrument ID=”17” SecTyp=”MLEG” SubTyp=”Cal” Exch=”CBT”/>
<RptSide Side=”1" Acct=”ABC123”
<Pty ID=”123" Role=”Firm”/>
<Pty ID=”YES” Role=”Broker”/> </RptSide>
30yr Bond Mar 03
30yr Bond Jun 04
<TrdLeg LastPx=.01>
<Leg ID=”17”
Mat=”200403"
Exch=”CBT”
CFI=”F”
Side=”1"/>
</TrdLeg>
<TrdLeg LastPx=.015>
<Leg ID=”17”
Mat=”200406"
Exch=”CBT”
CFI=”F”
Side=”2"/>
</TrdLeg>
FIXML Extensibility – Support for Multi-leg Instruments
MultiLeg Instrument
Eurodollar Spread
Pack consisting of 4 Legs
Leg 1
Leg 2
Leg 3
Leg 4
Main Body of Fixml Message
<TradeCaptureReport LastPx=98.865 LastQty=100>
<Instrument ID=”ED” SecTyp=”MLEG” SubTyp=”Pack” Exch=”CME”/>
<RptSide Side=”1" Acct=”ABC123”
<Pty ID=”123" Role=”Firm”/>
<Pty ID=”SEZ” Role=”Broker”/> </RptSide>
Eurodollar Dec 03
Eurodollar Mar 04
Eurodollar Jun 04
Eurodollar Sep 04
<TrdLeg LastPx=.01>
<Leg ID=”ED”
Mat=”200312"
Exch=”CME”
CFI=”F”
Side=”1"/>
</TrdLeg>
<TrdLeg LastPx=.015>
<Leg ID=”ED”
Mat=”200403"
Exch=”CME”
CFI=”F”
Side=”1"/>
</TrdLeg>
<TrdLeg LastPx=.025>
<Leg ID=”ED”
Mat=”200406"
Exch=”CME”
CFI=”F”
Side=”1"/>
</TrdLeg>
<TrdLeg LastPx=.045>
<Leg ID=”ED”
Mat=”200409"
Exch=”CME”
CFI=”F”
Side=”1"/>
</TrdLeg>
Position Services Dialogue
Exercise Notice Request
Customer
Clearing
House
Firm
Position Maint Request
Customer1 Exercise
PosTransType=NEW
PosMaintAction=EXER
Customer2 Exercise
Position Maint Request
Customer3 Exercise
PosTransType=REPLACE
PosMaintAction=EXER
Position Maint Request
PosTransType=REPLACE
PosMaintAction=EXER
Position Maint Report
Customer1 Confirm
PosTransType=NEW/REP
PosMaintAction=EXER
PosStatus=ERR
Customer2 Confirm
Customer3 Confirm
Postion Maint Report
PosTransType=NEW/REP
PosMaintAction=EXER
PosStatus=PROCESSED
Position Services On-Demand
Request for Trade and Position Data
Backoffice
Clearing
House
Firm
Position Request
BackOffice
Request for Position
RequestType=P
TransportType=INBAND
Position Request ACK
RequestType=P
TransportType=INBAND
PositionResult=PROCESSED
BackOffice
Point Balance
Position Report
RequestType=P
(Position Information)
Trade Capture Report
TradeTransType=NEW
TradeReportType = ACCEPT
MatchStatus=MATCH
MQ-Series Transport for FIXML Messages

FIXML will be fully supported over MQSeries. The process
of sending and receiving FIXML messages will be no
different than for TREX.

Transmission of FIXML messages to the CME will require
the use of separate queues dedicated to FIXML
processing.

The CME will transmit FIXML messages to a separate
outbound queue at the firm.

It will be necessary for the firm to define new sending and
receiving channels between itself and the CME since the
CME will be hosting the Clearing API processing in a new.
FIXML Messaging and MQSeries
FIXML-MQSeries
Protocol
FIXML
FIXOUT
Queue
FIXIN
Queue
FIXML
Request
FIXML
Request
FIXML
FIXML
Response
Firm
Bookkeeping
System
FIXIN
Queue
MQSeries
FIXML
Response
FIXOUT
Queue
MQSeries
CME Clearing
Systems
Clearing API Integration using FIXML
<TrdCaptRpt RptID="60374" TrdDt="2003-12-03"
TransTyp="0" RptTyp="0" TrdTyp="1" BizDt="200312-03">
FIRM
Product Data
FIXML
Message
Generator
FIXML Block
Trade
FIXML Block
Trade
FIXOUT
Queue
Block
Trade
Firm Bookkeeping
System
CME Clearing House
FIXML Trade
Capture Report
FIXML 4.4
Schema
FIXML
Message
Parser
FIXIN
Queue
Block
Trade
Front End
Clearing
FIXML 4.4
Schema
Matched
Block
Trade
FIXML
Message
Parser
FIXML Block
Trade
FIXIN
Queue
FIXML Trade
Capture Report
FIXML Block
Trade
FIXOUT
Queue
<TrdCaptRpt RptID="60374" TrdDt="2003-12-03"
TransTyp="0" RptTyp="2" TrdTyp="1" BizDt="200312-03" MtchStat=”0”>
FIXML
Message
Generator
Product and Org/
Acct Data
Blocks via FIXML
<FIXML>
<TrdCaptRpt RptID="60374" LastQty="10000" LastPx="97.55" TrdDt="2003-12-03"
TxnTm="2003-12-03T12:30:01" TransTyp="0" RptTyp="0" TrdTyp="1" BizDt="2003-12-03"
MLEGRptTyp="1">
<Instrmt ID="ED" CFI="FXXXSX" MMY="200312" Exch="CME"/>
<RptSide Side="1" ClOrdID="A456721" ClOrdID2="1234" ClrFeeInd="B" InptSrc="MQM"
CustCpcty="4" OrdTypCd="B" SesID="RTH" SesSub="X" PosEfct="O" AllocInd="0">
<Pty ID="CME" R="22"/>
<Pty ID="600" R="1"/>
<Pty ID="BAT" R="12"/>
<Pty ID="052G0039" R="24">
<Sub ID="1" Typ="26"/></Pty>
<Pty ID="815" R="17"/>
<Pty ID="TGK" R="37"/>
</RptSide>
</TrdCaptRpt>
</FIXML>
SLEDS via FIXML
<FIXML>
<TrdCaptRpt RptID="60374" LastQty="200" LastPx="-0.30" TrdDt="2003-12-03" TxnTm="2003-12-03T12:30:01"
TransTyp="0" RptTyp="0" TrdTyp="0" BizDt="2003-12-03" MLEGRptTyp="3">
<Instrmt ID="ED" SecTyp="MLEG" SubTyp="CAL" Exch="CME"/>
<TrdLeg LastPx="97.55"><Leg ID="ED" CFI="FXXXSX" MMY="200312" Side="1"/></TrdLeg>
<TrdLeg LastPx="97.25"><Leg ID="ED" CFI="FXXXSX" MMY="200403" Side="2"/></TrdLeg>
<TrdRegTS TS="2003-12-03T01:31:30.00" Typ="1" Src="S"/>
<TrdRegTS TS="2003-12-03T01:31:31.00" Typ="2" Src="S"/>
<TrdRegTS TS="2003-12-03T01:31:33.00" Typ="3" Src="S"/>
<TrdRegTS TS="2003-12-03T01:31:36.00" Typ="4" Src="S"/>
<RptSide Side="1" ClOrdID="A456721" ClOrdID2="1234" ClrFeeInd="B" InptSrc="MQM" CustCpcty="4" OrdTyp="L"
TmBkt="A" SesID="RTH" SesSub="P" PosEfct="O" AllocInd="0">
<Pty ID="CME" R="22"/>
<Pty ID="600" R="1"/>
<Pty ID="BAT" R="12"/>
<Pty ID="052G0039" R="24">
<Sub ID="1" Typ="26"/></Pty>
<Pty ID="815" R="17"/>
<Pty ID="TGK" R="37"/>
</RptSide>
</TrdCaptRpt>
</FIXML>
PCS via FIXML
<Batch>
<PosMntReq Actn="1" BizDt="2004-01-12" ReqID="PCS00001" TxnTyp="4" AdjTyp="3"
SetSesID="RTH" SetSesSub="1" TxnTm="2004-01-30T12:00:00.000">
<Pty ID="815" R="4"/>
<Pty ID="CME" R="21"/>
<Sub ID="1" Typ="26"/> </Pty>
<Instrmt Exch="CME" CFI="FXXXSX" ID="AD" MMY="200403"/>
<Qty Long="9" Stat="0" Typ="TQ"/>
<Qty Long="9" Short="500" Stat="0" Typ="IES"/>
<Qty Long="9" Short="500" Stat="0" Typ="IAS"/>
</PosMntReq>
</Batch>
Trade Capture Report
TREX Field
Name
FIXML4.4 Element
FIXML
Attribute
FIXML Value
Comments
/TrdCaptRpt/
Message Identifier
/TrdCaptRpt/
@RptTyp
ActionCode
/TrdCaptRpt/
@TransTyp
TradeDate
/TrdCaptRpt/
@TrdDT
Exchange ID
/TrdCaptRpt/Instrmt/
@Exch
0
Submit
TransTyp=”0”
New (Add) Trade Report
TransTyp=”1”
Cancel (Delete)
TransTyp=”2”
Replace (Change)
YYYY-MM-DD
Date transaction executed
Exch=”CBT”
CBT
Exch=”CME”
CME
/TrdCaptRp/RptSide[1]/Pty[2]/
@ID, @R
/Pty ID=”value”
R=”1” //
No length limit on firm
1=Executing Firm
/TrdCaptRpt/RptSide[1]/Pty[3]
/
/TrdCaptRpt/
@ID, @R
/Pty ID=”value”
R=”12” //
0
No length limit on broker code
12= Executing Trader
TransactionType
BuySell Code1
/TrdCaptRpt/TrdLeg[1]/Leg/
@Side
Side=”1”
Buy
BuySell Code2
/TrdCaptRpt/TrdLeg[1]/Leg/
@Side
Side=”1”
Buy
BuySell Code3
/TrdCaptRpt/TrdLeg[1]/Leg/
@Side
Side=”2”
Sell
BuySell Code4
/TrdCaptRpt/TrdLeg[1]/Leg/
@Side
Side=”2”
Sell
Commodity Code
/TrdCaptRpt/Instrmt/
@ID
ID=”ED”
No limit on product id
Contract
Year/Month/Day
/TrdCaptRpt/TrdLeg[1]/Leg/
@MMY
TrdCaptRpt//TrdLeg[1]/Leg/
@CFI
/TrdCaptRpt/RptSide[1]/Pty[5]
/
/TrdCaptRpt/RptSide[1]/Pty[6]
/
/TrdCaptRpt/TrdLeg[1]/
@ID, @R
@LastPx
<Pty ID=”value”
R=”17”>
<Pty ID=”value”
R=”37”>
LastPX=”value”
Quantity
/TrdCaptRpt/
@LastQty
LastQty=”value”
TimeBracketCode
/TrdCaptRpt/
@TmBrkt
TmBrkt=”value”
Account Number
/TrdCaptRpt/RptSide[1]/Pty[7]
/
/TrdCaptRpt/RptSide[1]/
@ID, @R
/TrdCaptRpt/RptSide[1]/
Pty[7]/Sub
@ID, @Typ
<Pty ID=”value”
R=”24”>
CustOrdCpcty=”v
alue”
<Sub ID=”value”
Typ=”26”>
Clearing Member
Firm
(ExecutingFirm)
Executing Broker
Opposite Firm
Opposite Broker
TradePrice,
TradePriceSign
CTI Code
Origin Code
1
@TrdTyp
@ID, @R
@CustCpcty
MMY=”YYYYMM
DD”
CFI=”FXXXSX”
Futures only at this point
17= Contra Firm
37=Contra Trader
Signed, decimal
For SLEDS, used as px
differential
Signed, decimal
Customer/Position Acct # and
Role
Customer/Position Acct # and
Origin
If the leg specified on the main block is the near month – this will be the side value assigned to first <RptSide>,
otherwise it will be assigned to the second <RptSide>.
2
If the leg specified on the main block is the near month – this will be the side value assigned to first <RptSide>,
otherwise it will be assigned to the second <RptSide>.
3
If the leg specified on the main block is the near month – this will be the side value assigned to first <RptSide>,
otherwise it will be assigned to the second <RptSide>.
4
If the leg specified on the main block is the near month – this will be the side value assigned to first <RptSide>,
otherwise it will be assigned to the second <RptSide>.