JSON Block Trades Data via Google Cloud
With CME Group Market Data in the Google Cloud (GC), clients can access real-time CME Group market data feeds through native Google Cloud services. With this release block trades will be launched for the CME, CBOT, NYMEX, COMEX, and GME. Google Cloud (GC) supports JavaScript Object Notation (JSON) formatted futures data, allowing customers to use an easy, low-cost, and highly scalable format to drive their business. JSON Block Trades data via Google Cloud will have a different message format than the current data offerings on GC, however both feeds will contain the same trades.
This page provides an overview of GC JSON for Block trades technical impacts. CME Smart Stream on GC leverages Google Cloud Pub/Sub technology for market data distribution. For complete details regarding Google Cloud Pub/Sub, refer to Google Cloud Pub/Sub documentation.
CME Smart Stream on GC also offers Simple Binary Encoded (SBE) data. For more information, refer to the CME Smart Stream on GCP SBE impact documentation.
Contents
New Topic Name Value
With the launch of JSON Blocks Trades Data on Google Cloud, a new topic type of "BLOCKS" will be added. For more information regarding topic naming consult the CME Smart Stream on GCP JSON documentation.
Name | Valid Values | Description |
---|---|---|
Topic Type | TOB = Top of Book LVL2 = Top Two Book Levels TRD = Time and Sales (Trade Information) STAT = Statistic Information BLOCKS = Block Trade Information | Defines the type of topic |
JSON Blocks Topic Name Examples
The following are topic name examples:
PROD.SSCL.GCP.MD.RT.CMEG.JSON.v01000.BLOCKS.XNYM
NR.SSCL.GCP.MD.RT.CMEG.JSON.v01000.BLOCKS.XCME
Message Specification
The following section outlines the message specification for JSON Block Trades Data via Google Cloud messages.
# | Key | Attribute | Presence | Type | Enumeration | Description |
---|---|---|---|---|---|---|
1 | header | messageType | Required | String | TRDBLK | |
2 | header | sentTime | Required | UTC Timestamp | Message sending time | |
3 | payload | lastUpdateTime | Required | UTC Timestamp | Transaction time | |
4 | payload | tradeDt | Required | Date | YYYY-MM-DD | |
5 | payload | action | Required | String |
| |
6 | payload | price | Optional | Price | Trade Price. Null for multi-leg transactions. | |
7 | payload | qty | Required | Qty | ||
8 | payload | strategyLinkId | Optional | Int | Identifies the multi-leg strategy (e.g. spread) to which the trade belongs. | |
9 | payload | mdTradeEntryId | Required | Int | Market data entry identifier to map multiple prices of a single trade. | |
10 | payload | tradeType | Required | String |
| Trade Type |
11 | payload | priceType | Optional | String |
| Price Type |
12 | payload.instrument | exchMic | Required | String |
| Instrument Exchange MIC |
13 | payload.instrument | secType | Required | String |
| Instrument security type |
14 | payload.instrument | clrSym | Optional | String | Instrument clearing product symbol | |
15 | payload.instrument | glbxSym | Required | String | Instrument symbol | |
16 | payload.instrument | periodCode | Required | String | YYYYMMDD or YYYYMM | Instrument maturity
|
17 | payload.instrument | putCallInd | Optional | String |
| Instrument Put/Call Indicator |
18 | payload.instrument | strikePx | Optional | Price | Instrument Put/Call Indicator | |
19 | payload.instrument | unitOfMeasure | Optional | String | Instrument Unit of Measure. May not be provided in some block trades transactions. | |
20 | payload.instrument | unitOfMeasureQty | Optional | Qty | Instrument Unit of Measure Qty. May not be provided in some block trades transactions. | |
21 | payload.instrument | underlyingGlbxSym | Optional | String | Underlying instrument Globex symbol | |
22 | payload.instrument | underlyingPeriodCode | Optional | String |
| Instrument Underlying Maturity |
23 | payload.instrument | underlyingExchMic | Optional | String |
| Instrument Underlying Exchange MIC |
24 | payload.legs[] | Optional | Array | Array representing leg trades, resulted from the spread block trade. Leg Trades array present when Transaction is for the spread payload.instrument.secType="MLEG" and StrategyLinkID has a value in the first block of the transaction. | ||
25 | payload.legs[].instrument | exchMic | Required | String |
| Leg exchange |
26 | payload.legs[].instrument | clrSym | Required | String | Leg Clearing product symbol | |
27 | payload.legs[].instrument | glbxSym | Required | String | Leg Globex contract symbol | |
28 | payload.legs[].instrument | strikePx | Optional | String | Leg instrument Strike price, sent if leg is an option | |
29 | payload.legs[].instrument | putCallInd | Optional | String |
| Leg instrument put or call indicator, sent if leg is an option |
30 | payload.legs[].instrument | periodCode | String | Leg instrument period code | ||
31 | payload.legs[].instrument | legSideInd | Required | String |
| Side of the leg |
32 | payload.legs[].instrument | legRatioQty | Required | Qty | Leg ratio qty | |
33 | payload.legs[].instrument | secTyp (FUT, OOC, OOF) | Required | String | Leg instrument type | |
34 | payload.legs[].instrument | unitOfMeasure | Required | String | Leg instrument unit of measure | |
35 | payload.legs[].instrument | unitOfMeasureQty | Required | Qty | Leg instrument unit of measure qty | |
36 | payload.legs[] | price | Required | Price | Leg trade price | |
37 | payload.legs[] | qty | Required | Qty | Leg trade qty |
Message Example
Below is an example Block Trade JSON message.
{
"header" : {
"messageType" : "TRDBLK",
"sentTime" : "2023-05-12T14:04:05.223000000Z",
"version" : "1.0"
},
"payload" : {
"lastUpdateTime" : "2023-05-10T13:50:36.637000000Z",
"tradeDt" : "2023-02-10",
"action" : "New",
"price" : 0.77,
"qty" : 1,
"strategyLinkID" : "19107077",
"mdTradeEntryID" : "19107077",
"tradeType" : "BLOCK",
"priceType" : "CONTRACT",
"instrument" : {
"exchMic" : "XNYM",
"secType" : "MLEG",
"gbxSym" : "LN:FO",
"periodcode" : "20231026",
},
"legs" : [ {
"price" : 3.87,
"qty" : 14.0,
"instrument" : {
"clrSym" : "HP",
"glbxSym" : "HPH4",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20240226",
"legSide" : "SELL",
"legRatioQty" : 14,
"secType" : "FUT",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 0.77,
"qty" : 25.0,
"instrument" : {
"clrSym" : "LN",
"glbxSym" : "LNEX3",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231026",
"legSide" : "BUY",
"legRatioQty" : 25,
"secType" : "OOF",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 0.77,
"qty" : 25.0,
"instrument" : {
"clrSym" : "LN",
"glbxSym" : "LNEZ3 C4000",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231127",
"legSide" : "BUY",
"legRatioQty" : 25,
"secType" : "OOF",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 0.77,
"qty" : 25.0,
"instrument" : {
"clrSym" : "LN",
"glbxSym" : "LNEF4 C4000",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231226",
"legSide" : "BUY",
"legRatioQty" : 25,
"secType" : "OOF",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 0.77,
"qty" : 25.0,
"instrument" : {
"clrSym" : "LN",
"glbxSym" : "LNEG4 C4000",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20240126",
"legSide" : "BUY",
"legRatioQty" : 25,
"secType" : "OOF",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 0.77,
"qty" : 25.0,
"instrument" : {
"clrSym" : "LN",
"glbxSym" : "LNEH4 C4000",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20240226",
"legSide" : "BUY",
"legRatioQty" : 25,
"secType" : "OOF",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 3.87,
"qty" : 25.0,
"instrument" : {
"clrSym" : "HP",
"glbxSym" : "HPX3",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231026",
"legSide" : "SELL",
"legRatioQty" : 14,
"secType" : "FUT",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 3.87,
"qty" : 14.0,
"instrument" : {
"clrSym" : "HP",
"glbxSym" : "HPZ3",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231127",
"legSide" : "SELL",
"legRatioQty" : 14,
"secType" : "FUT",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 3.87,
"qty" : 14.0,
"instrument" : {
"clrSym" : "HP",
"glbxSym" : "HPF4",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20231226",
"legSide" : "SELL",
"legRatioQty" : 14,
"secType" : "FUT",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
}, {
"price" : 3.87,
"qty" : 14.0,
"instrument" : {
"clrSym" : "HP",
"glbxSym" : "HPG4",
"exchMic" : "XNYM",
"putCallInd" : "PUT",
"periodCode" : "20240126",
"legSide" : "SELL",
"legRatioQty" : 14,
"secType" : "FUT",
"unitOfMeasure" : "MMBtu",
"unitOfMeasureQty" : 10000.0
}
} ]
}
}
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.