This topic provides information on EBS Spectrum Market Data Platform (MDP) functionality which provides Time Weighted Average Price (TWAP) and Volume Weighted Average Price (VWAP) market data for the following markets:
...
Market | Market Data Group Option(s) | Channel ID | Description |
---|---|---|---|
EBS Spectrum | CME MDP Conflated TCP- Spectrum | 550 |
|
...
This section provides an overview of current CME Group market data technology processing concepts that will be used for the EBS Spectrum feeds. If you are new to CME Group MDP technologies or wish to better understand how your current CME Group system aligns with upcoming EBS Spectrum functionality, CME Group recommends starting here.
Category | CME Globex Concepts & Links | CME MDP Conflated TCP Support? | Notes |
---|---|---|---|
Message Encoding | Yes | Encoding type for EBS Spectrum. |
...
TCP MDP Gateway disseminates CME Group market data using TCP encoded packets.
CME MDP Conflated TCP - System Startup
This section provides an overview of the startup procedure on CME Globex for the CME MDP TCP feed.
Early and Late Joiner Startup
For a startup prior to the weekly market open and for a late joiner startup, to obtain all entitled data and subsequent updates, it is recommended clients send the following request with the type equal to Snapshot and Updates (tag 263-SubscriptionReqType=1):
...
For more information regarding request messages see Conflated MDP TCP - Request Messages.
Market Data Support Services
Market data services provide the external data required to process CME Group market data.
Gliffy | ||||||||
---|---|---|---|---|---|---|---|---|
|
Support Services
There are three MDP services available for EBS markets on EBS Spectrum: EBS Derived SBE Schema, TCP Session Management SBE Schema and CME Reference Data API. FTP and SFTP sites are used to store the schema files and configuration files for all environments.
Service | Description |
---|---|
EBS Derived MDP SBE Schema | MDP is a template-based SBE protocol wherein a given message is interpreted by means of its corresponding template. Each message contains a unique Schema ID that references the template to use to interpret the message. This schema contains messaging such as TWAP/VWAP and Market Best Bid/Offer. |
TCP Session Management SBE Schema | An SBE schema for client systems to receive CME Group session management templates for the CME MDP Conflated TCP market data group. |
CME Reference Data API | Additional product and instrument referential data can be obtained via CME Reference Data API. |
...
- Environment - specific environment (i.e., Certification, Certification AutoCert+, New Release, New Release AutoCert+, Production)
- Service - EBS Derived MDP SBE Schema, TCP Session Management SBE Schema
- FTP/SFTP Site - address of the FTP/SFTP site
- Directory Location - identifies directory
- Client System Update Schedule - client systems should download updates according to schedule specified
Environment | Service | FTP/SFTP Site | Directory Location | Client System Update Schedule |
---|---|---|---|---|
Certification | EBS Derived MDP SBE Schema | /SBEFix/Cert/DerivedMDP/Templates/ | Sunday prior to market open | |
TCP Session Management SBE Schema | /SBEFix/Cert/SessionManagement/Templates/ | Sunday prior to market open | ||
Certification AutoCert+ | SBE Schema | /SBEFix/CertAutoCertPlus/Templates | Sunday prior to market open | |
TCP Session Management SBE Schema | /SBEFix/CertAutoCertPlus/SessionManagement/Templates/ | Sunday prior to market open | ||
New Release | EBS Derived MDP SBE Schema | /SBEFix/NRCert/DerivedMDP/Templates/ | Sunday prior to market open | |
TCP Session Management SBE Schema | /SBEFix/NRCert/SessionManagement/Templates/ | Sunday prior to market open | ||
New Release Autocert+ | EBS Derived MDP SBE Schema | /SBEFix/NRAutoCertPlus/Templates | Sunday prior to market open | |
TCP Session Management SBE Schema | /SBEFix/NRAutoCertPlus/SessionManagement/Templates/ | Sunday prior to market open | ||
Production | EBS Derived MDP SBE Schema | /SBEFix/Production/DerivedMDP/Templates/ | Sunday prior to market open | |
TCP Session Management SBE Schema | /SBEFix/Production/SessionManagement/Templates/ | Sunday prior to market open |
Simple Binary Encoding Schema Overview
The following section outlines key concepts for MDP 3.0 - Simple Binary Encoding schema processing on EBS Spectrum. For tag level messaging details, see the specification section.
Core CME Globex SBE Schema Overview
The following table outlines the Derived MDP SBE schema template mapping for market data groups:
Market Data Group | Current Supported Templates |
---|---|
CME MDP Conflated TCP - EBS Spectrum |
|
...
The TCP Session Management SBE Schema is exclusively used for the MDP TCP Gateway market data group. TCP Session Management Schema is SBE release version 1.0 candidate 4; however, the schema is compatible with SBE release version 1.0 candidate 2 systems. TheSBE schema is named mdpsessionmgmt.xml.
EBS Spectrum Messaging
EBS Spectrum includes the TWAP/VWAP messaging.
Message | Description |
---|---|
TWAP | TWAP is the sum of the prices, divided by the number of completed deals. TWAP is based on price only and does not consider the traded amount. |
VWAP | VWAP is the sum of the deal prices multiplied by the deal amount, divided by the total amount of all trades within the conflation interval. |
EBS Spectrum TWAP/VWAP Message (35=X) Tag Usage
The following table outlines tag usage for TWAP/VWAP messages.
Tag | Name | Description | MRF Field Replaced | TWAP | VWAP | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
60 | TransactTime | Publication event time, sent in number of nanoseconds since Unix epoch | Update Date/Time | Available | Available | |||||||||
5799 | MatchEventIndicator | BitSet
| - | Available | Available | |||||||||
268 | NoMDEntries | Number of elements in the message (groupSize) | - | Available | Available | |||||||||
→279 | MDUpdateAction | Market Data update action. Always 0=(new) | - | 0 | 0 | |||||||||
→269 | MDEntryType | Market Data entry type, identifies the element
| Element Name | t=TWAP | 9=VWAP | |||||||||
→48 | SecurityID | SecurityID as referenced in MDP3 and Ilink3 protocols | - | Available | Available | |||||||||
→55 | Symbol | Unique instrument Symbol | - | Available | Available | |||||||||
→37513 | InstrumentGuid | External unique instrument ID | - | Available | Available | |||||||||
→2714 | FinanicalInstrumentFullName | Financial instrument long name e.g. FXSPOT.EURUSD | Description | Available | Available | |||||||||
→270 | MDEntryPx | Market Data entry price | PriceNull9 | TWAP Value | VWAP Value | |||||||||
→271 | MDEntrySize | Market Data entry size | Amount | Number of Trades | The Notional Volume for the Interval | |||||||||
→273 | MDEntryTime | Time of the last market event that contributed to element calculation or publication. Sent in UTC format. | Price Date/Time | Available | Available |
Conflated Market Data Processing
This section describes functionality for the CME MDP Conflated UDP and CME MDP Conflated TCP market data groups for EBS Spectrum. Conflated market data combines multiple updates within an interval into a single event. EBS Spectrum MDP supports a one minute conflation interval. When the conflation interval is exceeded due to additional processing, EBS Spectrum does not publish messages until the event is complete. The interval is reset once MDP messages are published. If there is no activity within the configured 1 minute interval EBS Spectrum resets the conflation interval to 1 minute and waits to publish the next market event. If there is no activity within the publication interval for an instrument, no message will be published.
Info |
---|
The following examples assume trade embargo (see in the following section) functionality is not included. Additionally, for the examples below, message performance is for illustrative purposes only. Actual production message performance on CME Globex will differ. |
Conflation Market Data Examples
The example below outlines conflation concepts applicable to EBS Spectrum.
Example 1 - Multiple Updates for Single Instrument
The following example illustrates conflation for a single instrument with multiple updates set to a 1 minute conflation interval. The value sent to client systems is the combined Paid and Given values.
Gliffy displayName ConflationSpectrum_ex1_v2 name ConflationSpectrum_ex1 Copy_v2a pagePin 4
Example 2 - Multiple Updates for Multiple Instruments
The following example illustrates conflation for multiple instruments set to a 1 minute conflation interval.
Gliffy | ||||||
---|---|---|---|---|---|---|
|
...
Conflated MDP TCP - Initialization and Unbinding
Conflated MDP TCP uses the FIX protocol via Simple Binary Encoding (SBE) to establish and manage bi-directional sessions. A session is defined as a bi-directional stream of ordered messages between two parties.
Conflated MDP TCP does not support session layer re-transmit request functionality. For more information on this topic, see Conflated MDP TCP - Initialization and Unbinding.
Conflated MDP TCP - Request Messages
The following section outlines request message market data functionality provided by CME Globex. Once the client system has established a FIX session, client systems may send request messages. Subscription requests only apply to their respective channels.
TCP MDP Request Messages and Response Messages
...
Message Name | FIX Tags | Template Name | From | To | Purpose |
---|---|---|---|---|
Market Data Request Message | 35-MsgType=V | MarketDataRequest205 | Client System to CME Globex | Request to recover current state via the Market Data Snapshot Recovery Message (35=W) and receive all subsequent message type updates for the subscribed instruments or all entitled products. |
Request Acknowledgment | 35-MsgType=V | RequestAck206 | CME Globex to Client System | CME Globex acknowledgment to denote if a client system request is fully or partially acknowledged. |
Request Reject | tag 35-MsgType=Y | RequestReject207 | CME Globex to Client System | Message sent to client systems as a reply to any type of request that is fully rejected. |
For more information, see Conflated MDP TCP - Request Messages.
...
EBS Spectrum data can be correlated with EBS Spectrum Market Data via tag 273-MDEntryTime. On EBS Spectrum, tag 273-MDEntryTime is the time of the last market event that contributed to element calculation or publication for an instrument. Therefore, tag 273-MDEntryTime on EBS Spectrum is equal to tag 60-TransactTime on the last CME Globex summary trade contributing to the EBS Spectrum conflation interval. Tag 60-TransactionTime on EBS Spectrum denotes when the VWAP/TWAP messaging is created on the EBS Spectrum engine.
Example: Correlating EBS Spectrum Data with CME Globex MDP
The following example illustrates the correlation between tag 273-MDEntryTime on EBS Spectrum and tag 60-TransactTime on the CME Globex MDP trade summary. The CME Globex trades below all contribute to the EBS Spectrum conflation interval of one minute.
Gliffy displayName CorrelatingSpectrumGlobex_v1 name CorrelatingSpectrumGlobex_v1 pagePin 8
EBS Spectrum Message Specification
The message specifications provide the message layout for each FIX message type supported by the applicable SBE schema. Clients can also review message specification details via the SBE schemas:
- EBS Derived MDP SBE Schema
- TCP Session Management
Binary Packet Headers
A standard technical header sent in a packet.
SBE Technical Header for TCP Conflated Connections
A standard technical header is included as preamble to all TCP conflated SBE messages sent by Customer to Exchange, as well as Exchange to Customer for TCP.
Name | Type | Description |
---|---|---|
encodingType | integral enumeration value '0xCAFE' | CME SBE version 1.0 little-endian - value 0xCAFE |
MsgSeqNum | uInt32 | TCP sequence number. A unique sequence number given to each TCP message sent. Each connection will have its own separate set of sequence numbers that will increment sequentially with each packet and reset on connection termination. |
SendingTime | uInt64 | UTC Time of message transmission by the MD Gateway. UTC Timestamps are sent in number of nanoseconds since Unix epoch. |
CME Group MDP EBS Spectrum Message Specification
The CME Group MDP Core Message Specification provides the message layout for each FIX message type supported by the EBS Derived MDP SBE Schema.
Market Data Header
The following section outlines MDP headers for the Core CME Globex SBE Schema.
Message Header
Each message in the packet starts with a Binary message header that consists of the Binary Size and SBE header (Length, TemplateID, SchemaID and Version).
Name | Type | Description |
---|---|---|
MsgSize | uInt16 | Length of entire message, including binary header in number of bytes |
Simple Binary Encoding Header | ||
BlockLength | uInt16 | Length of the root of the FIX message contained before repeating groups or variable/conditions fields |
TemplateID | uInt16 | Template ID used to encode the message |
SchemaID | uInt16 | ID of the system publishing the message |
Version | uInt16 | Schema version |
Market Data Incremental Refresh (tag 35-MsgType=X)
The Market Data Incremental Refresh (tag 35-MsgType=X) is sent for incremental updates including TWAP and VWAP data.
Market Data Incremental Refresh - TWAP & VWAP
The Market Data Incremental Refresh message below is sent for TWAP and VWAP updates. This message maps to the MDIncrementalRefreshSpectrum303 template in the EBS Derived MDP SBE Schema.
Tag | Field Name | Type | Semantic Type | Valid Values | Description |
---|---|---|---|---|---|
60 | TransactTime | uInt64 | UTCTimestamp | Publication event time, sent in number of nanoseconds since Unix epoch. | |
5799 | MatchEventIndicator | MatchEventIndicator | MultipleCharValue | Example: 10000000 – end of event | End of updates indicator. Bit 7 =1 when message is the last in the series of updates published for the publication interval. Bit 6 = 1 indicates if elements were resent during technical recovery and may be duplicates of previously published values |
Repeating Group 1 | |||||
268 | NoMDEntries | NumInGroup | Number of entries in Market Data message. | ||
279 | MDUpdateAction | MDUpdateActionNew | int | 0=New | Market Data update action. |
269 | MDEntryType | SpectrumEntryType | char | 9=VWAP t=TWAP | Market Data entry type, identifies the element. |
2714 | FinancialInstrumentFullName | LongName | String | E.g. FXSPOT.EURUSD | Financial instrument long name. |
55 | Symbol | Symbol | String | Unique instrument Symbol. | |
37513 | InstrumentGUID | uInt64 | int | External unique instrument ID. | |
48 | SecurityID | Int32 | int | SecurityID as referenced in MDP3 and Ilink3 protocols. | |
270 | MDEntryPx | PRICENULL9 | PriceNull9 | Market Data entry price. | |
271 | MDEntrySize | uInt64NULL | Qty | For TWAP messaging, this value represents the number of trades. For VWAP messaging, this value represents volume. | |
273 | MDEntryTime | uInt64 | UTCTimestamp | Time of the last market event that contributed to element calculation or publication. |
...
The Market Data Snapshot message below is used by the CME MDP Conflated TCP market data group. This message maps to the MDSnapshotRefreshSpectrum305 template in the EBS Derived MDP SBE Schema for EBS Spectrum.
Tag | Field Name | Type | Semantic Type | Valid Values | Description |
---|---|---|---|---|---|
60 | TransactTime | uInt64 | UTCTimestamp | Publication event time, sent in number of nanoseconds since Unix epoch. | |
5799 | MatchEventIndicator | MatchEventIndicator | MultipleCharValue | E.g. 10000000 – end of event | End of updates indicator. Bit 7 =1 when message is the last in the series of updates published for the publication interval. Bit 6 = 1 indicates if elements were resent during technical recovery and may be duplicates of previously published values. |
2714 | FinancialInstrumentFullName | LongName | String | E.g. FXSPOT.EURUSD | Financial instrument long name. |
55 | Symbol | Symbol | String | Unique instrument Symbol. | |
37513 | InstrumentGUID | uInt64 | int | External unique instrument ID. | |
48 | SecurityID | Int32 | int | SecurityID as referenced in MDP3 and Ilink3 protocols. | |
Repeating Group 1 | |||||
268 | NoMDEntries | NumInGroup | Number of entries in Market Data message. | ||
269 | MDEntryType | SpectrumEntryType | char | 9=VWAP t=TWAP | Market Data entry type, identifies the element. |
270 | MDEntryPx | PRICE9 | PriceNull9 | Market Data entry price. | |
271 | MDEntrySize | uInt64NULL | Qty | For TWAP messaging, this value represents the number of trades. For VWAP messaging, this value represents volume. | |
273 | MDEntryTime | uInt64 | UTCTimestamp | Time of the last market event that contributed to element calculation or publication. |
...
The Heartbeat (tag 35-MsgType=0) message is sent on UDP Real-Time Feed and Recovery Feeds in periods of no activity at a configurable time interval and consists of only a standard technical header and a FIX message header. Currently, the configurable time interval is 30 seconds. This message maps to the AdminHeartbeat302 template in the EBS Derived MDP SBE Schema.
Tag | FIX Name | FIX Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|
35 | MsgType | Int | 0=Heartbeat | FIX Message Type |
CME Group MDP TCP Session Management Specification
The CME Group MDP Session Message Specification provides the message layout for each FIX message type supported by the CME MDP Conflated TCP market data group in the TCP Session Management SBE Schema. Consult the MDP Dissemination section for more information.
Market Data Header
The following section outlines MDP headers for the Global TCP Recovery for UDP schema.
SBE Technical Header - Customer to Exchange, Exchange to Customer
...
Name | Type | Description |
---|---|---|
encodingType | integral enumeration value '0xCAFE' | CME SBE version 1.0 little-endian - value 0xCAFE. |
MsgSeqNum | uInt32 | Template ID used to encode the message. |
SendingTime | uInt64 | ID of the system publishing the message. |
...
The following section outlines client messages sent to CME Globex for a CME MDP Conflated TCP market data group.
Negotiate Message
This message maps to the Negotiate200 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
39003 | HMACVersion | HMACVersion | String | CME-1-SHA-256 | Constant value representing CME HMAC version |
39005 | HMACSignature | String32Req | String | Contains the HMAC signature. | |
39004 | AccessKeyID | String20Req | String | Contains the AccessKeyID assigned to this session on this port. | |
39001 | UUID | uInt64 | int | Session Identifier defined as type long (uInt64); recommended to use timestamp as number of microseconds since epoch (Jan 1, 1970) | |
39002 | RequestTimestamp | uInt64 | UTCTimestamp | Time of request (UTC) recommended to use timestamp as number of nanoseconds since epoch (Jan 1, 1970) | |
39006 | Session | String5 | String | Session ID | |
39007 | Firm | String5 | String | Firm ID |
Market Data Request Message (tag 35-MsgType=V)
This message maps to the MarketDataRequest205 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
262 | MDReqID | uInt32 | int | Unique identifier for Market Data Request. Must be unique per session so it can be referenced in Request Ack or Request Reject responses from the exchange. | |
263 | SubscriptionReqType | SubscriptionReqType | int | 0=Snapshot 1=Snapshot and updates 2=Disable previous subscription | Subscription Request Type indicates to the type of response expected. |
Repeating Group 1 | |||||
37022 | NoSecurityGroups | NuminGroup | Number of Security Groups specified in subscription request. Should be equal to 0 when subscription is requested for all groups on the segment or individual Security IDs are listed in the criteria for subscription. | ||
1151 | SecurityGroup | SecurityGroup | String | Security Group | |
Repeating Group 2 | |||||
146 | NoRelatedSym | NuminGroup | Number of instruments requested. When NoSecurityGroups → 0 specified in the request, the NoRelatedSym should be equal 0. | ||
48 | SecurityID | Int32 | int | Security ID |
Subscriber Heartbeat (tag 35-MsgType=0)
This message maps to the SubscriberHeartbeat210 template in the TCP Session Management SBE Schema. The heartbeat time Interval is configured to 30 seconds. Client systems are disconnected if the SubscriberHeartbeat is not received for two intervals.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|
...
The following section outlines CME Globex messages sent to client systems for a CME MDP Conflated TCP market data group.
Negotiation Reject
This message maps to the NegotiationReject201 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
39011 | Reason | String48 | String | Reject reason details | |
39001 | UUID | uInt64 | int | Matches Negotiate.UUID | |
39002 | RequestTimestamp | uInt64 | UTCTimestamp | Matches Negotiate.RequestTimestamp | |
39012 | ErrorCodes | ErrorCodes | int | 0=Unknown Security 1=Unknown or Invalid Message 2=Unsupported Scope 3=Other | Error code for reject reason |
Negotiation Response
This message maps to the NegotiationResponse202 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
39001 | UUID | uInt64 | int | Matches Negotiate.UUID. | |
39002 | RequestTimestamp | uInt64 | UTCTimestamp | Matches Negotiate.RequestTimestamp. | |
39022 | SecretKeySecureIDExpiration | uInt16NULL | int | This indicates in how many days the HMAC secret key will expire. |
Request Acknowledgment (tag 35-MsgType=V)
This message maps to the RequestAck206 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
262 | MDReqID | uInt32 | int | Unique identifier for Market Data Request. | |
263 | SubscriptionReqType | SubscriptionReqType | int | 0=Snapshot 1=Snapshot and updates 2=Disable previous subscription | Subscription ReqType |
37720 | MDReqIDStatus | RequestIDStatus | int | 0=Requested subscription scope is fully acknowledged 1=Requested subscription scope is partially acknowledged | Status of the request acknowledgementacknowledgment. |
Repeating Group 1 | |||||
37022 | NoSecurityGroups | NuminGroup | Number of SecurityGroups acknowledged. | ||
1151 | SecurityGroup | SecurityGroup | String | Security Group | |
Repeating Group 2 | |||||
146 | NoRelatedSym | NuminGroup | Number of securities acknowledged. | ||
48 | SecurityID | Int32 | int | Security ID |
Request Reject (tag 35-MsgType=Y)
This message maps to the RequestReject207 template in the TCP Session Management SBE Schema.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
262 | MDReqID | uInt32NULL | int | Unique identifier for Market Data Request. | |
281 | MDReqRejReason | MDReqRejReason | int | 0=Unknown Security 1=Unknown or Invalid Message 2=Unsupported Scope 3=Other | Market Data Request Reject reason code. |
58 | Text | String100 | String | Reject reason details. |
MDP Session Management Message - Client to Exchange and Exchange to Client
Terminate
This message maps to the Terminate203 template in the TCP Session Management SBE Schema. Both client systems and the exchange use this message.
Tag | FIX Name | Type | Semantic Type | Valid Values for BrokerTec | Description |
---|---|---|---|---|---|
39011 | Reason | String48 | String | Reject reason details. | |
39001 | UUID | uInt64 | int | Matches Negotiate.UUID used to establish the connection. | |
39002 | RequestTimestamp | uInt64 | UTCTimestamp | Time of request; recommended to use timestamp as number of nanoseconds since Unix epoch (Jan 1, 1970). | |
39012 | ErrorCodes | ErrorCodes | int | 0=Unknown Security 1=Unknown or Invalid Message 2=Unsupported Scope 3=Other | Error code for reject reason. |