API Documentation

Category Description

Open Range

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 81
pNxCoreMessage->coreData.Category.pnxStringCategory->String OpenRange

Update Time and Frequency

Approximate Time Info
00:00 AM Information from previous session
Constant Updates Constant updates throughout the day

Category Fields | 10

Index FieldName FieldType C Code Info
0 ReportExgSeq NxCFT_32BIT pnxFields[0].data.i32Bit Exchange sequence number
1 Price1 NxCFT_PRICE pnxFields[1].data.nxPrice
2 Bate1 NxCFT_32BIT pnxFields[2].data.i32Bit
3 Price2 NxCFT_PRICE pnxFields[3].data.nxPrice
4 Bate2 NxCFT_32BIT pnxFields[4].data.i32Bit
5 MarketDirection NxCFT_32BIT pnxFields[5].data.i32Bit Market Direction
6 MatchedTradeTime1 NxCFT_TIME pnxFields[6].data.nxTime Matched trade time 1
7 MatchedTradeSeq1 NxCFT_32BIT pnxFields[7].data.i32Bit Matched trade sequence number 1
8 MatchedTradeTime2 NxCFT_TIME pnxFields[8].data.nxTime Matched trade time 2
9 MatchedTradeSeq2 NxCFT_32BIT pnxFields[9].data.i32Bit Matched trade sequence number 2

Code Sample from CategoryDumper project:

void onNxCoreCategory_81(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
 			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)
         printf("Report Exg Seq: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     if (pField->Set)
         printf("Price1: %0.4f \n",
                NCorePriceToDouble(pField->data.nxPrice.Price,
                                   pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)
         printf("Bate1: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)
         printf("Price2: %0.4f \n",
                NCorePriceToDouble(pField->data.nxPrice.Price,
                                   pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)
         printf("Bate2: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)
         printf("Market Direction: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
     if (pField->Set)
         printf("Market Trade Time1: %02d:%02d:%02d \n",
                pField->data.nxTime.Hour,
                pField->data.nxTime.Minute,
                pField->data.nxTime.Second);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
     if (pField->Set)
         printf("Matched Trade Seq1: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
     if (pField->Set)
         printf("Market Trade Time2: %02d:%02d:%02d \n",
                pField->data.nxTime.Hour,
                pField->data.nxTime.Minute,
                pField->data.nxTime.Second);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
     if (pField->Set)
         printf("Matched Trade Seq2: %d \n",pField->data.i32Bit);
}