Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Market Data Platform supports a Simple Binary Encoding (SBE) Market Data Platform (MDP) channel for BrokerTec U.S. Treasury Data. 

This market data channel distributes comprehensive BrokerTec U.S. Treasury price discovery market data, including:

...

The BrokerTec U.S. Treasury market data channel uses compact Simple Binary Encoding (SBE), optimized for low latency encoding and decoding while keeping bandwidth utilization reasonably small. Concise message sizes are used without the processing cost of compression. All FIX semantics are supported. The encoding standard is complementary to other FIX standards for session protocol and application level behavior.

Info
New customers developing to a non-Globex market data channel for the first time should review MDP 3.0 - Simple Binary Encoding and MDP 3.0 - Message Schema.

Market Data Support Services

...

  • Market Data Configuration Service: Channel definitions, UDP configurations, and TCP Historical Replay configurations.  
  • Incremental Schema Dissemination Service: Obtain the Broker U.S. Treasury Data incremental message templates.
  • Global TCP Recovery Schema: BrokerTec U.S. Treasury Data utilizes a separate schema dedicated to TCP recovery templates.
    However, client systems utilize the common replay component for the retrieval of actual messages.

FTP Locations

CME offers FTP and SFTP sites to disseminate schema and market data configuration information. The FTP/SFTP site contains the schema and configuration files for all events.

...

Channel Name

ChannelID

BrokerTec U.S. Treasury Data

215

Customers can obtain channel network configurations from the config.xml file located at the new ftp location: https://www.cmegroup.com/ftp.

Incremental Book Management

...

  • The 'Add' data block is sent if there is a new price level. Client systems should then shift price levels down and delete any price levels past the defined depth.
  • The 'Change' data block is sent to update characteristics of a price level without changing the price itself or impacting any other prices on the book. The 'Change' data block is sent to update the quantity for a price level per volume.
  • The 'Change' data block is not sent when the price changes at a given price level.
  • The 'Delete' data block is sent to remove a price level in the book. Client systems should shift prices below the data block up to the price level vacated by the deleted price level. If available, an add data block will be sent to fill in the last price level.

Recovery

Missed messages can be recovered using TCP Recovery or Natural Refresh.

Info

Natural Refresh is not guaranteed and not be considered a definitive substitute for recovering lost data.

...

Expand
titleMore on Natural Refresh

The client system must track the state of the book at all times with the FIX Market Data Incremental Refresh message (tag 35-MsgType=X) book update data blocks.

It is possible, though not guaranteed, that a set of these book update data blocks can be used to construct the current, correct state of a book without prior book state knowledge. While client systems wait for the recovery of missing data, they may opt to also use a natural refresh algorithm to recover book state prior to recovering the lost data. Natural refresh can also be used to reinstate the top-of-book. Prior to beginning a natural refresh, the entire book should be emptied. Natural refresh assumes no prior knowledge of book state.

TCP Recovery

The TCP historical replay component allows systems to request a replay of a set of messages already published on the UDP Incremental Market Data Channel. The request specifies messages to replay. 

Client systems will use the new Global TCP Replay Templates located at the new ftp location; however, client systems will utilize the common replay component for the retrieval of actual messages.

The request uses the SBE Market Data Request (tag 35-MsgType=V) message.

This type of request is sent through a new TCP connection established by client systems. Responses are sent by CME Group through the same connection, the connection is then closed by CME Group after the resend is complete. All responses are SBE encoded (including the reject response).

...

The → symbol indicates a repeating group tag.

Header
TagFIX NameFormatValid ValuesDescription

35

MsgType

STRING

X=Market Data Incremental Refresh

Defines message type.

Body
75TradeDateLOCAL MKT DATE
Trade Date in number of days since Unix epoch

60

TransactTime

UTC_TIMESTAMP

 -

UTC Timestamps are sent in a number of nanoseconds since Unix epoch synced to a master clock to microsecond accuracy.

268

NoMDEntries

NUM_IN_GROUP


Number of FIX Market Data Incremental Refresh Data Blocks in the Market Data Incremental Refresh message.

Repeating Group

→279

MDUpdateAction

CHAR

0 = New 

1 = Update 

2 = Delete

Indicates the type of Market Data update action.


→269

MDEntryType

CHAR

0 = Bid

1 = Ask

2 = Trade 

4 = Opening Price

5 = Closing Price

7 = High Trade

8 = Low Trade

9 = Yield

E = Implied Bid

F = Implied Offer

J = Book Reset

Indicates the type of Market Data entry.

  • <validValue name="ImpliedBid" description="Implied Bid" sinceVersion="1">E</validValue>
  • <validValue name="ImpliedOffer" description="Implied Offer" sinceVersion="1">F</validValue>


→270

MDEntryPx

PRICE


Price of the Market Data Entry

→271MDEntrySizeQTY

Quantity of the MD Entry.

  • In a Book Entry– order quantity
  • In a Trade Entry – traded quantity
→1023MDPriceLevelINT
Price Level in the book
→1020TradeVolumeQTY
Total traded volume since the beginning of the session.  If this tag is not present, then there is no volume.

→55

Symbol

STRING

1M - 30Y

Contract Symbol

→541MaturityDayLOCAL MKT DATE
Instrument Maturity Date
→455SecurityAltIDSTRING
CUSIP
→456SecurityAltIDSourceSTRING1 = CUSIPIdentifies the class or source of the SecurityAltID (455) value.
→223CouponRatePERCENTAGE
The rate of interest that, when multiplied by the principal, par value, or face value of a bond, provides the currency amount of the periodic interest payment.
→277TradeConditionCHAR

H = Hit

T = Take

List of conditions describing a trade.  In this case the field is reporting when BTEC trade is from Hit or Take.
→423PriceTypeINT9 = YieldThis tag will only contain a value if the price in tag 270-MDEntryPx is in Yield terms.

...

Excerpt

Starting book:


2 YEAR

Bid

Ask

2 YEAR


LevelQuantityPricePriceQuantityLevel
1





1
2





2
3





3
4



4
5



5

Process book update data blocks for the given instrument with a 5-deep book.

1. Update at Bid book level 3, price 99.03, quantity 15.

FIX Syntax example of Update at Bid book level 3, price 99.03, quantity 15:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 3
  • tag 269-MDEntryType = 0 (Bid)
  • tag 271-MDEntrySize = 15
  • tag 270-MDEntryPx = 99.03
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1



1
2



2
3

15

99.03



3
4



4
5



5

2.  Update at Ask book level 3, price 99.93, quantity 40.
FIX Syntax for Updating at Ask book level 3, price 99.93, quantity 40:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 3
  • tag 269-MDEntryType = 1 (Offer)
  • tag 271-MDEntrySize = 40
  • tag 270-MDEntryPx = 99.93
Bid

2 YEAR



2 YEAR

Bid
LevelQuantityPricePriceQuantityLevel
1



1
2



2
3

15

99.03

99.93403
4



4
5



5

3. Update at Bid book level 2, price 99.04, quantity 25.

FIX Syntax for Updating at Bid book level 2, price 99.04, quantity 25:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 2
  • tag 269-MDEntryType = 0 (Bid)
  • tag 271-MDEntrySize = 25
  • tag 270-MDEntryPx = 99.04
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1





1
2

25

99.04



2
3

15

99.03

99.93403
4



4
5



5

4.  Update at Ask book level 2, price 99.92, quantity 40.

FIX Syntax for Updating at Ask book level 2, price 99.92, quantity 40:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 2
  • tag 269-MDEntryType = 1 (Offer)
  • tag 271-MDEntrySize = 40
  • tag 270-MDEntryPx = 99.92
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1





1
2

25

99.04

99.92402
3

15

99.03

99.93403
4



4
5



5

5. Update at Ask book level 1, price 99.91, quantity 25.

FIX Syntax for Updating at Ask book level 1, price 99.91, quantity 25:

  • tag 279-MDUpdateAction = 1 (change) 
  • tag 1023-MDPriceLevel = 1
  • tag 269-MDEntryType = 1 (Offer)
  • tag 271-MDEntrySize = 25
  • tag 270-MDEntryPx = 99.91 
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1



99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
4



4
5



5

6. Update Bid book level 1, price 99.05, quantity 20.

FIX Syntax for Updating Bid book level 1, price 99.05, quantity 20:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 1
  • tag 269-MDEntryType = 0
  • tag 271-MDEntrySize = 20
  • tag 270-MDEntryPx = 99.05
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1

20

99.05

99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
4



4
5



5

7. Update Bid book level 4, price 99.02, quantity 30.

FIX Syntax for Updating Bid book level 4, price 99.02, quantity 30:

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 4
  • tag 269-MDEntryType = 0
  • tag 271-MDEntrySize = 30
  • tag 270-MDEntryPx = 99.02
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1

20

99.05

99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
43099.02

4
5



5

8. Update Ask book level 4, price 99.94, quantity 15.

FIX Syntax for Updating Ask book level 4, price 99.94, quantity 15

  • tag 279-MDUpdateAction = 1 (change)
  • tag 1023-MDPriceLevel = 4
  • tag 269-MDEntryType = 1
  • tag 271-MDEntrySize = 15
  • tag 270-MDEntryPx = 99.94
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1

20

99.05

99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
43099.0299.94154
5



5

9. Insert Bid book level 5, price 99.01, quantity 20.

FIX Syntax for Inserting Bid book level 5, price 99.01, quantity 20:

  • tag 279-MDUpdateAction = 0 (new)
  • tag 1023-MDPriceLevel = 5
  • tag 269-MDEntryType = 0
  • tag 271-MDEntrySize = 20
  • tag 270-MDEntryPx = 99.01 
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1

20

99.05

99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
43099.0299.94154
52099.01

5

10. Insert Ask book level 5, price 99.95, quantity 10.

FIX Syntax for Inserting Ask book level 5, price 99.95, quantity 10:

  • tag 279-MDUpdateAction = 0 (new)
  • tag 1023-MDPriceLevel = 5
  • tag 269-MDEntryType = 0
  • tag 271-MDEntrySize = 10
  • tag 270-MDEntryPx = 99.95 
Bid

2 YEAR



2 YEAR

Ask
LevelQuantityPricePriceQuantityLevel
1

20

99.05

99.91251
2

25

99.04

99.92402
3

15

99.03

99.93403
43099.0299.94154
52099.0199.95105

Implied Book Processing for RV Curves

For all RV Curve spreads, BrokerTec U.S. Treasury Market Data offers a 2-deep best bid and ask. Implied book updates are denoted by:

  • Tag 269-MDEntryType=E (implied bid)
  • Tag 269-MDEntryType=F (implied offer)

See also: Implied Book Processing.  

The MBP multiple-depth book can be used in conjunction with the implied prices book to create an accurate book for all instruments with implied functionality. To create a consolidated book, the multiple-depth book and the implied book must be built and managed separately, then consolidated to reflect the current state of the market.

See also: Consolidating Implied and Multiple Depth Books.  

...