This section outlines Market by Order Limited Depth (MBOLD) functionality for the CME MDP Conflated UDP and CME MDP Conflated TCP market data groups. MBOLD sends the top 10 bid and ask orders on an order book for a given instrument. MBOLD allows clients to view top position(s) while preserving market participant anonymity. Within a market event, MBOLD order books are sent before Market by Price (MBP) order books.
Unlike standard CME Globex MDP incremental book processing, MBOLD uses an overlay approach to book management. Overlay book management completely restates the MBOLD book with each new Market Data Snapshot Full Refresh (tag 35-MsgType=W) message. The MBOLD orders are sorted by price and priority within a price level. Bid-ask encoding is interleaved (first bid, followed by first ask, followed by second bid, followed by second ask, etc). Order Priority (tag 37707-MDOrderPriority), from lowest to highest values, is used to position the order against other orders of the same instrument side, and price.
Book Priority | MDOrderPriority | OrderID | Quantity | Price | Side |
---|---|---|---|---|---|
1 | 653654 | 111 | 10 | 100 | Buy |
2 | 703699 | 759 | 120 | 100 | Buy |
3 | 765935 | 201 | 30 | 100 | Buy |
4 | 524123 | 901 | 50 | 98 | Buy |
MBOLD order priority is based on the sequence of iLink orders received by a CME Globex market segment (tag 1300-MarketSegmentID) and will be sent accordingly, regardless of the match algorithm. Implied order book information is not sent in MBOLD format.
MBOLD Processing Examples
The examples below illustrate how an order book is built and updated for MBOLD processing. The quantity and order count are provided.
Example 1 - Single Update
This example shows a new limit bid order accepted and added to the second level of the book. The following examples assume there are no other updates within a conflation interval and the book price processing is non-inverted. For more information on conflation processing see Conflated Market Data Processing.
Starting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 50 | 101 | 1 | 102 | 5 | 107 | 833653 |
New Order Entered
A new order is entered to bid 10 @ 100. A Snapshot (tag 35-MsgType=W) book update is generated:
Snapshot (35=W) Book Update
Tag Number | FIX Name | Value | Description |
---|---|---|---|
48 | SecurityID | 12345 | A unique instrument ID value will not be reused until the next trade date following an instrument expiration or deletion. |
268 | NoMDEntries | 3 | |
Data Block 1 - Bid | |||
→37 | OrderID | 557 | Order ID |
→37707 | MDOrderPriority | 723766 | Order priority for execution on the order book |
→270 | MDEntryPx | 101 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 50 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 2 - Ask | |||
→37 | OrderID | 107 | Order ID |
→37707 | MDOrderPriority | 833653 | Order priority for execution on the order book |
→270 | MDEntryPx | 102 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 5 | Visible Order Qty |
→269 | MDEntryType | 1 | Ask - Market Data entry type |
Data Block 3 - Bid | |||
→37 | OrderID | 709 | Order ID |
→37707 | MDOrderPriority | 583672 | Order priority for execution on the order book |
→270 | MDEntryPx | 100 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 10 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Resulting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 50 | 101 | 1 | 102 | 5 | 107 | 833653 |
583672 | 709 | 10 | 100 | 2 |
Example 2 - Single Update with Same Price
This example shows a new limit bid with the same price as the top bid order accepted and added to the second level of the book. The following examples assume there are no other updates within a conflation interval and the book price processing is non-inverted. For more information on conflation processing see Conflated Market Data Processing.
Starting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 50 | 101 | 1 | 102 | 5 | 107 | 833653 |
583672 | 709 | 10 | 100 | 2 |
New Order Entered
A new bid order is entered to bid 30 @ 101. A Snapshot (tag 35-MsgType=W) book update is generated:
Snapshot (35=W) Book Update
Tag Number | FIX Name | Value | Description |
48 | SecurityID | 12345 | A unique instrument ID value will not be reused until the next trade date following an instrument expiration or deletion. |
268 | NoMDEntries | 4 | |
Data Block 1 - Bid | |||
→37 | OrderID | 557 | Order ID |
→37707 | MDOrderPriority | 723766 | Order priority for execution on the order book |
→270 | MDEntryPx | 101 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 50 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 2 - Ask | |||
→37 | OrderID | 107 | Order ID |
→37707 | MDOrderPriority | 833653 | Order priority for execution on the order book |
→270 | MDEntryPx | 102 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 5 | Visible Order Qty |
→269 | MDEntryType | 1 | Ask - Market Data entry type |
Data Block 3 - Bid | |||
→37 | OrderID | 809 | Order ID |
→37707 | MDOrderPriority | 923768 | Order priority for execution on the order book |
→270 | MDEntryPx | 101 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 30 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 4 - Bid | |||
→37 | OrderID | 709 | Order ID |
→37707 | MDOrderPriority | 583672 | Order priority for execution on the order book |
→270 | MDEntryPx | 100 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 10 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Resulting Book MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 50 | 101 | 1 | 102 | 5 | 107 | 833653 |
923768 | 809 | 30 | 101 | 2 | ||||
583672 | 709 | 10 | 100 | 3 |
Example 3 - Multiple Updates
This example shows multiple MBOLD updates within a Conflated Market Data interval sent on a single Snapshot (35=W) message. The book price processing in this example is non-inverted.
Starting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 50 | 101 | 1 | 102 | 5 | 107 | 833653 |
923768 | 809 | 30 | 101 | 2 | ||||
583672 | 709 | 10 | 100 | 3 |
Multiple Updates
The following updates occur within the Conflated Market Data Interval interval:
- A new bid order is entered to 50 @ 100
- A new ask order is entered to 25 @ 103
- Bid Order ID 557 quantity is updated to 10
- Bid Order ID 709 price is updated to 99
A Snapshot (tag 35-MsgType=W) book update is generated:
Snapshot (35=W) Book Update
Tag Number | FIX Name | Value | Description |
---|---|---|---|
48 | SecurityID | 12345 | A unique instrument ID value will not be reused until the next trade date following an instrument expiration or deletion. |
268 | NoMDEntries | 6 | |
Data Block 1 - Bid | |||
→37 | OrderID | 557 | Order ID |
→37707 | MDOrderPriority | 723766 | Order priority for execution on the order book |
→270 | MDEntryPx | 101 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 10 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 2 - Ask | |||
→37 | OrderID | 107 | Order ID |
→37707 | MDOrderPriority | 833653 | Order priority for execution on the order book |
→270 | MDEntryPx | 102 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 5 | Visible Order Qty |
→269 | MDEntryType | 1 | Ask - Market Data entry type |
Data Block 3 - Bid | |||
→37 | OrderID | 809 | Order ID |
→37707 | MDOrderPriority | 923768 | Order priority for execution on the order book |
→270 | MDEntryPx | 101 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 30 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 4 - Ask | |||
→37 | OrderID | 923 | Order ID |
→37707 | MDOrderPriority | 933072 | Order priority for execution on the order book |
→270 | MDEntryPx | 103 | Price of the Market Data Entry. |
→37706 | MDDisplayQty | 25 | Visible Order Qty |
→269 | MDEntryType | 1 | Ask - Market Data entry type |
Data Block 5 - Bid | |||
→37 | OrderID | 955 | Order ID |
→37707 | MDOrderPriority | 583672 | Order priority for execution on the order book |
→270 | MDEntryPx | 100 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 50 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Data Block 6 - Bid | |||
→37 | OrderID | 709 | Order ID |
→37707 | MDOrderPriority | 583672 | Order priority for execution on the order book |
→270 | MDEntryPx | 99 | Order price of the Market Data Entry |
→37706 | MDDisplayQty | 10 | Visible Order Qty |
→269 | MDEntryType | 0 | Bid - Market Data entry type |
Resulting Book MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
723766 | 557 | 10 | 101 | 1 | 102 | 5 | 107 | 833653 |
923768 | 809 | 30 | 101 | 2 | 103 | 25 | 923 | 933072 |
583672 | 955 | 50 | 100 | 3 | ||||
583672 | 709 | 10 | 99 | 4 |
Example 4 - No MBOLD Message Update
In this example, a bid order is added greater than the maximum 10 MBOLD depth. Consequently, only a Market by Price (MBP) book update will be sent. The following examples assume there are no other updates within a conflation interval and the book price processing is non-inverted. For more information on conflation processing see Conflated Market Data Processing.
Starting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
923768 | 809 | 30 | 101 | 1 | 102 | 5 | 107 | 833653 |
1090103 | 557 | 90 | 101 | 2 | 103 | 10 | 303 | 671011 |
1090555 | 905 | 15 | 101 | 3 | ||||
1091202 | 1000 | 10 | 101 | 4 | ||||
1092237 | 888 | 5 | 101 | 5 | ||||
702018 | 630 | 25 | 100 | 6 | ||||
801001 | 723 | 10 | 100 | 7 | ||||
831827 | 782 | 25 | 100 | 8 | ||||
641800 | 302 | 20 | 99 | 9 | ||||
781872 | 701 | 15 | 99 | 10 |
New Order Entered
A new order is entered to bid 10 @ 98. No MBOLD message is generated due to the update is outside of the maximum MBOLD book depth of 10. An MBP book update will be sent to reflect the new order.
Example 5 - All Orders Removed
In this example, an order is canceled to create an empty book. Consequently, an empty Snapshot (tag 35-MsgType=W) book update is generated.
Starting MBOLD Book
Order Priority | Bid OrderID | Bid Quantity | Bid Book Price | Book Priority | Ask Book Price | Ask Quantity | Ask OrderID | Order Priority |
---|---|---|---|---|---|---|---|---|
923768 | 809 | 30 | 101 | 1 |
Order Canceled
Order 809 is canceled. An empty snapshot (tag 35-MsgType=W) book update is generated:
Snapshot (35=W) Book Update
Tag Number | FIX Name | Value | Description |
---|---|---|---|
48 | SecurityID | 12345 | A unique instrument ID value will not be reused until the next trade date following an instrument expiration or deletion. |
268 | NoMDEntries | 0 |