API Documentation

Category Description

OPRA End of Day Summary

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 57
pNxCoreMessage->coreData.Category.pnxStringCategory->String OPRA_EndOfDaySummary

Update Time and Frequency

Approximate Time Info
00:00 AM Minimal information from previous session
Market close Updates after market close

Category Fields | 10

Index FieldName FieldType C Code Info
0 Volume NxCFT_64BIT pnxFields[0].data.i64Bit Volume
1 OpenInterest NxCFT_64BIT pnxFields[1].data.i64Bit Open Interest
2 Open NxCFT_PRICE pnxFields[2].data.nxPrice Open price
3 High NxCFT_PRICE pnxFields[3].data.nxPrice High price
4 Low NxCFT_PRICE pnxFields[4].data.nxPrice Low price
5 Close NxCFT_PRICE pnxFields[5].data.nxPrice Close price
6 NetChange NxCFT_PRICE pnxFields[5].data.nxPrice Net change
7 Bid NxCFT_PRICE pnxFields[7].data.nxPrice Bid price
8 Ask NxCFT_PRICE pnxFields[8].data.nxPrice Ask price
9 UnderlyingPrice NxCFT_PRICE pnxFields[9].data.nxPrice Underlying price


Code Sample from CategoryDumper project:

void onNxCoreCategory_57(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)			 
         printf("Volume: %I64d \n",pField->data.i64Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     if (pField->Set)
         printf("OpenInterest: %I64d \n",pField->data.i64Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)
         printf("Open: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)
         printf("High: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)
         printf("Low: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)
         printf("Close: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
     if (pField->Set)			 
         printf("NetChange: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
     if (pField->Set)
         printf("Bid: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
     if (pField->Set)
         printf("Ask: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
									  
     pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
     if (pField->Set)
         printf("UnderlyingPrice: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 

}