API Documentation

Category Description

CME Session Statistics

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 58
pNxCoreMessage->coreData.Category.pnxStringCategory->String CME_STATISTICS

Update Time and Frequency

Approximate Time Info
00:00 AM information from previous session
Occasional Updates Occasional updates throughout the day

Category Fields | 9

Index FieldName FieldType C Code Info
0 ClearedVolume NxCFT_32BIT pnxFields[0].data.i32Bit
1 Open NxCFT_PRICE pnxFields[1].data.nxPrice Open price
2 IOP NxCFT_PRICE pnxFields[2].data.nxPrice Indicative Opening Price
3 OpenTime NxCFT_TIME pnxFields[3].data.nxTime Open Time
4 HighTrade NxCFT_PRICE pnxFields[4].data.nxPrice High price
5 LowTrade NxCFT_PRICE pnxFields[5].data.nxPrice Low price
6 HighBid NxCFT_PRICE pnxFields[6].data.nxPrice High Bid price
7 LowAsk NxCFT_PRICE pnxFields[7].data.nxPrice Low Ask price
8 Volume NxCFT_32BIT pnxFields[8].data.i32Bit Volume

Code Sample from CategoryDumper project:

void onNxCoreCategory_58(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)			 
         printf("Cleared Volume: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     if (pField->Set)
         printf("Open: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)
         printf("Open Time: %02d:%02d:%02d \n",
                pField->data.nxTime.Hour,
                pField->data.nxTime.Minute,
                pField->data.nxTime.Second);
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)
         printf("Indicative Open: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)
         printf("High: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)
         printf("Low: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
     if (pField->Set)
         printf("High Bid: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
     if (pField->Set)
         printf("Low Ask: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
     pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
     if (pField->Set)			 
         printf(" Electronic Volume: %u \n",pField->data.i32Bit);
}