BrokerTec U.S. Treasury Market Data

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:

  • Top 5 levels of the order book for active benchmark products (2 Year - 30 Year)

  • Trade indicators

  • Market statistics, including calculated analytics such as Volume Weighted Average Yield (VWAY).

This market data channel is distinct from CME Globex BrokerTec Market Data.

Contents

Supported Products and Available Data

BrokerTec U.S. Treasury market data supports the product types listed below.

Only the benchmark active notes and bonds support multiple book depth (5 levels).

List of available products and most valuable data.

For a complete list of available data, refer to the Market Data Incremental Refresh specifications.

Products

Available Data

Products

Available Data

Active Benchmark Bills

  • 1 Month Bills – 1 Year Bills

  • Top Of Book in Yield Terms

  • Trade Information

  • Statistics

Active Benchmark Notes and Bonds

  • 2 Year Note – 30 Year Bond

  • Top Five Levels of the Book

  • Price Level Update Action (New Price Level, Size Update on Existing Price Level, Delete Price Level)

  • Top Of Book in Yield Term

  • Trade Information

  • Statistics

When Issued Bills, Notes & Bonds

  • 1 Month Bill  – 30 Year Bonds

  • Top Of Book in Yield Terms

Once Old & Twice Old Off-the-Run Notes and Bonds

  • 2 Year Notes – 30 Year Bonds

  • Top Of Book in Yield Terms

Data Availability

Data will be disseminated 6 days a week, Sunday 5:30 pm – Friday 4:30 pm CT.  

  • Standard Time: 6:30 pm EST open - 5:30 pm EST close.

  • Daylight Savings Time: 7:30 pm EDT open - 5:30 pm EDT close.

Testing and Certification

Certification for BrokerTec U.S. Treasury Data is mandatory.

Customers can use the AutoCert+ - BrokerTec U.S. Treasury Data test suite to certify their applications.

Market Data Technology Overview

This section provides an overview of the BrokerTec U.S. Treasury market data technology.

Simple Binary Encoding (SBE)

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.

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

BrokerTec will use a separate Market Data Configuration Service; Incremental Schema Dissemination Service, and Global TCP Recovery Schema Dissemination Service.

A separate schema and configuration file will be required for this channel and is available at:

  • https://www.cmegroup.com/ftp or 

  • sftpng.cmegroup.com

Market Data Services Architecture

  • 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.

After the certification process, production environment schema and market data configuration details will be available.

Environment

Service

FTP/SFTP Site

Directory Location

Client System Update Schedule

Environment

Service

FTP/SFTP Site

Directory Location

Client System Update Schedule

New Release

Incremental Schema

https://www.cmegroup.com/ftp 

or

sftpng.cmegroup.com

/SBEFix/NRCert/BrokerTecUST/Templates/

Sunday prior to market open

New Release

Configuration File

/SBEFix/NRCert/BrokerTecUST/Configuration/ 

Daily

New Release

Global TCP Recovery Schema

/SBEFix/NRCert/GlobalTCPRecovery/Templates/

Sunday prior to market open

Production

Incremental Schema

/SBEFix/Production/BrokerTecUST/Templates/

Sunday prior to market open

Production

Configuration File

/SBEFix/Production/BrokerTecUST/Configuration/ 

Daily

Production

Global TCP Recovery Schema

/SBEFix/Production/GlobalTCPRecovery/Templates/

Sunday prior to market open

Market Data Channel

The following market data channel is available for BrokerTec U.S. Treasuries market data.

Channel Name

ChannelID

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

Client systems can use the Market Data Incremental Refresh (tag 35-MsgType=X) message to update and maintain aggregate book depth, trades, and statistical data views with the following data blocks:

  • New - create/insert a new price at a specified price level (tag 279 MDUpdateAction=0)

  • Change - change quantity for a price at a specified price level (tag 279 MDUpdateAction=1)

  • Delete - remove a price at a specified price level (tag 279 MDUpdateAction=2)

An Aggregate book is built from a series of data blocks which indicate whether an entry is to be inserted (Add), changed (Change), or removed (Delete). All data blocks are issued for a specified entry type (tag 269), price (tag 270), and price level (tag 1023).  

  • 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.

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 TCP Replay feed supports the following FIX message formats:

Book Reset

A Book Reset message (tag 35-MsgType=X, tag 55-Symbol, tag 269-MDEntryType=J) is an instruction to reset (empty) the book. A Book Reset message is sent for individual instrument books:

  • At system startup

  • In the event of a CME Group system failure or failover.

FIX Syntax for Instrument level Book Reset – Market Data Incremental Refresh (tag 35-MsgType=X)

  • Tag 55-Symbol

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=J (Book Reset)

To ensure that all necessary market data is received, the following process is used on startup

  1. Download the configuration and schema files from the ftp site.  For more information, refer to FTP Locations.

  2. For incremental market data and to start normal processing, listen to the Incremental feed.

    • For products that support multilevel instrument books, the full state book (Top 5 levels) will be published only on startup or in the event of a CME Group system failure or failover.

The book reset message will be followed by Incremental Refresh messages containing data blocks that are used to build and maintain the order book. 

Binary Packet Header

Name

Binary Type (Size)

Number of Bytes

Req

Description

Name

Binary Type (Size)

Number of Bytes

Req

Description

MsgSeqNum

uInt32

4

Y

Packet sequence number.

A unique sequence number given to each packet sent.

Each channel will have its own separate set of sequence numbers that will increment sequentially with each packet and reset weekly.

SendingTime

uInt64

8

Y

UTC Time of message transmission by the Gateway.

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

Market Data Incremental Refresh (tag 35-MsgType=X) Specification

The → symbol indicates a repeating group tag.

Header

Header

Tag

FIX Name

Format

Valid Values

Description

35

MsgType

STRING

X=Market Data Incremental Refresh

Defines message type.

Body

75

TradeDate

LOCAL 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

→271

MDEntrySize

QTY



Quantity of the MD Entry.

  • In a Book Entry– order quantity

  • In a Trade Entry – traded quantity

→1023

MDPriceLevel

INT



Price Level in the book

→1020

TradeVolume

QTY



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

→541

MaturityDay

LOCAL MKT DATE



Instrument Maturity Date

→455

SecurityAltID

STRING



CUSIP

→456

SecurityAltIDSource

STRING

1 = CUSIP

Identifies the class or source of the SecurityAltID (455) value.

→223

CouponRate

PERCENTAGE



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.

→277

TradeCondition

CHAR

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.

→423

PriceType

INT

9 = Yield

This tag will only contain a value if the price in tag 270-MDEntryPx is in Yield terms.

Incremental Refresh Messaging Examples

This section provides examples for building various types of books using the Incremental Refresh message.

Multiple Depth Order Book by Natural Refresh

This example shows the process to build the book by processing the Incremental Refresh (tag 35-MsgType=X) message. If the client system loses connection or joins after the complete book has been published, this process can be used in real-time.

Starting book:



2 YEAR

Bid

Ask

2 YEAR



Level

Quantity

Price

Price

Quantity

Level

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

Level

Quantity

Price

Price

Quantity

Level

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

Level

Quantity

Price

Price

Quantity

Level

1









1

2









2

3

15

99.03

99.93

40

3

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

Level

Quantity

Price

Price

Quantity

Level

1









1

2

25

99.04





2

3

15

99.03

99.93

40

3

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

Level

Quantity

Price

Price

Quantity

Level

1









1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

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

Level

Quantity

Price

Price

Quantity

Level

1





99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

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

Level

Quantity

Price

Price

Quantity

Level

1

20

99.05

99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

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

Level

Quantity

Price

Price

Quantity

Level

1

20

99.05

99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

4

30

99.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

Level

Quantity

Price

Price

Quantity

Level

1

20

99.05

99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

4

30

99.02

99.94

15

4

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

Level

Quantity

Price

Price

Quantity

Level

1

20

99.05

99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

4

30

99.02

99.94

15

4

5

20

99.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

Level

Quantity

Price

Price

Quantity

Level

1

20

99.05

99.91

25

1

2

25

99.04

99.92

40

2

3

15

99.03

99.93

40

3

4

30

99.02

99.94

15

4

5

20

99.01

99.95

10

5

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.  

Trade Condition with Volume

FIX Syntax for Trade Condition – Market Data Incremental Refresh (35=X)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=2 (Trade)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel (null)

  • Tag 271-MDEntrySize (Last Trade Size)

  • Tag 270-MDEntryPx (Price of the Market Data Entry)

  • Tag 277-TradeCondition (Hit or Take)

  • Tag 1020-TradeVolume (Total traded volume)

Example of  Take Trade Condition built using incremental refresh messages:

30 Year

Last Trade Size

Last Trade Price

Trade Condition

Last Traded Volume

30 Year

Last Trade Size

Last Trade Price

Trade Condition

Last Traded Volume

Symbol

2

100.03125

T

1262

Top of Book (TOB) in Yield Terms

FIX Syntax for 1 Level 2-Year Yield Book – Market Data Incremental Refresh (35=X):

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=0 (Bid)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel=1 (Level 1)

  • Tag 271-MDEntrySize null

  • Tag  270-MDEntryPx (Price of the Market Data Entry)

  • Tag 423-PriceType =9, else null (only if price is quoted in yield)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=1 (Ask)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel=1 (Level 1)

  • Tag 271-MDEntrySize null 

  • Tag  270-MDEntryPx (Price of the Market Data Entry)

  • Tag 423-PriceType =9, (Yield) else null (only if price is quoted in yield)

Example built using incremental refresh messages:



2 Year 1

Bid Yield

Ask Yield

2 Year 1





2 Year 1

Bid Yield

Ask Yield

2 Year 1



Level

Price Type

Price

Price

Price Type

Level

1

Yield

1.910

1.906

Yield

1

Statistical Information

This section provides examples of the FIX Syntax for statistical information such as low trades, opening prices, VWAY, and VWAP.

Low Trade Price

FIX Syntax for Statistical Information Low Trade  – Market Data Incremental Refresh (35=X)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=8 (Low Trade)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel (null)

  • Tag 271-MDEntrySize (null)

  • Tag 270-MDEntryPx (Price of the Market Data Entry)

Example - Statistical Information Low Trade

7 YEAR

7 YEAR

Low Trade Price

100.7812

Opening Price

FIX Syntax for Statistical Information Opening Price – Market Data Incremental Refresh (35=X)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=4 (Opening Price)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel (null)

  • Tag 271-MDEntrySize (null)

  • Tag 270-MDEntryPx (Price of the Market Data Entry)

Example - Statistical Information Opening Price

7 YEAR 

7 YEAR 

Opening Price

100.7343

Volume Weighted Average Yield (VWAY)

FIX Syntax for Statistical Information Volume Weighted Average Yield (VWAY) – Market Data Incremental Refresh (35=X)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=9 (Yield)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel (null)

  • Tag 270-MDEntryPx=  (Price of the Market Data Entry)

  • Tag 423-PriceType=9

Example - Statistical Information Volume Weighted Average Yield (VWAY)

7 YEAR WI

7 YEAR WI

Yield

Price Type

3.10043

Yield

Volume Weighted Average Price (VWAP)

The FIX Syntax for Statistical Information Volume Weighted Average Price (VWAP) – Market Data Incremental Refresh (35=X)

  • Tag 279-MDEntryAction=0 (New)

  • Tag 269-MDEntryType=9 (Yield)

  • Tag 55-Symbol (Contract Name)

  • Tag 1023-MDPriceLevel (null)

  • Tag 270-MDEntryPx= (Price of the Market Data Entry)

  • Tag 423-PriceType=null

Example - Statistical Information Volume Weighted Average Yield (VWAP)

7 YEAR  WI

7 YEAR  WI

Yield

Price Type

100.475

null

Contact Information

For technical development support, contact Certification Support for Electronic Trading (CSET).

For production requests, please contact the Global Command Center (GCC).

For all other inquiries, please contact Global Account Management (GAM).




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.