On the CME Globex platform, market data is generated by order activity and market state events.
This page describes how order entry action and market state changes drive MDP3.0 messages for each event including:
Types of Events
Order Action Driven Events
Each action taken on an order or a quote results in a trading platform event.
The most basic example of an event is the entry of a single accepted order that generates a book update market data message.
However, an order can also result in a series of market data messages.
For example, if an incoming order matches against resting orders, a series of market data messages containing the trade, volume, book, and statistics updates are sent.
Such an event can further trigger stop orders that match with other orders and generate a continuing series of messages resulting from the original incoming order.
Market State Driven Events
Events also can result from a scheduled or manual market change to a market state. For example, a scheduled group close that also triggers day order elimination will be represented with a Security Status message as the first message in the event and a series of Book updates for each instrument for which orders are eliminated.
Event Message Structure
Market Data Incremental Refresh (tag 35-MsgType = X) messages are segregated by their Entry Type value (tag 269-MDEntryType).
To provide visibility and expected results, MDP 3.0 generates messages for a given event in the following predictable order:
- Trades (if any trades, including implied trades on other contracts)
- Electronic Volume updates (if any, trades generate volume, including implied volume updated on other contracts)
- Real Book updates (if any)
- Statistic updates (if any, generated as a result of order action/ trade)
- Implied quotes (if any)
Not all message blocks are required for every event, only those message blocks which are relevant to the event will be included. For example, if there are no new highs, lows, or other statistics that pertain to the event, the statistics block will not be included in the event.
All market data messages that are the result of a single incoming order action have consistent tag-60 TransactionTime values that represent the time CME Globex started processing the given event in nanosecond granularity.
The MatchEventIndicator tag is included in every event and identifies the last message in a market event for all activity including: Order Entry, Match Event, State Change, Security Definition update, Daily Statistics (Settlements, Limits, Fixing etc.), and RFQ events.
This indicator is included at the body level of FIX messages and signals the end of updates for each type for a given event as well as the end of messages. The indicator is always sent and can be sent in a message with no other data (tag 268-NoMDEntries=0).
The majority of events will include only Market Data Incremental Refresh (35=X) messages.
Market Data Incremental Refresh messages are segregated by their Entry Type value (tag 269-MDEntryType). In the majority of events, the dissemination of the CME Globex event will be consistent and only include Market Data Incremental Refresh (35=X) messages. Not all message blocks are required for every event. Only those message blocks which are relevant to the event will be included.
Each incremental message in the event is flagged to indicate the following:
- Last trade for a given event
- Last volume update for a given event
- Last book update for a given event
- Last statistic update for a given event
- Last implied quotes for a given event
- Last message (any data) for a given event
Non-Standard Event Structure
The following Market Data messages can possibly cause an event, be included in the middle of the event, or be the last message of the event:
- Market Data Incremental Refresh (tag 35-MsgType = X)
- Market Data Security Status (tag 35-MsgType = f)
- Market Data Security Definition (tag 35-Msg Type = d)
- Market Data Request for Quote (tag 35-MsgType = R)
The following messages are considered Session Statistics:
- Session High Trade Price (tag 35=X & tag 269=7)
- Session Low Trade Price (tag 35=X & tag 269=8)
- Best High Bid (tag 35=X & tag 269=N)
- Best Low Ask (tag 35=X & tag 269=O)
- Opening Price (tag 35=X & tag 269=4)
- Indicative Opening Price and Quantity (tag 35=X, tag 269=4 & tag 286=5)
The following messages are considered Daily Statistics:
- Settlement Prices - Final and Preliminary (tag 35-MsgType = X & tag 269 = 6)
- Limits and Banding (tag 35-MsgType = X & tag 269 = g)
- Open Interest (tag 35-MsgType = X & tag 269 = C)
- Cleared Volume (tag 35-MsgType = X & tag 269 = B)
- Fixing Price (tag 35-MsgType = X & tag 269 = W)
Daily statistics will not be grouped with the other statistics in an event because they may occur at any time during an event, and can either trigger or be triggered from an action that occurs during the event.
If the daily statistic is not the last message in the event, tag 5799-MatchEventIndicator will contain the value ‘00000000’. If it is the last message in the event, then tag 5799 will contain the value ‘10000000’.
Group or Instrument State Changes
When the Group or Instrument State changes during the event, the presence of a Security Status (tag 35-MsgType=f) message in the event indicates that there may be another set of Market Data Incremental Refresh (tag 35-MsgType = X) message data blocks that follow the state change. If there is another group of Market Data Incremental Refresh messages, they will be sent in the order listed above.
If one of the following messages is not the last message in the event, tag 5799-MatchEventIndicator will contain the value ‘00000000':
- Security Status (tag35-MsgType=f)
- Security Definition (tag35-MsgType=d)
- Request for Quote (tag35-MsgType=R)
For the last message in the event, tag 5799 will contain the value ‘10000000’.
Order Entry and Market Data Event Correlation
MDP 3.0 provides the ability to identify all market data messages resulting from a given order entry using the features described below. For detailed examples, see Correlating MDP 3.0 with Order Entry.