API Documentation

Category Description

Root Symbol Information

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 70
pNxCoreMessage->coreData.Category.pnxStringCategory->String RootSymbolInfo

Update Time and Frequency

Approximate Time Info
00:00 AM Information from previous session

Category Fields | 11

Index FieldName FieldType C Code Info
0 Description NxCFT_STRINGZ pnxFields[0].data.StringZ Description
1 OpenTime NxCFT_TIME pnxFields[1].data.nxTime Time when contract starts to trade
2 CloseTime NxCFT_TIME pnxFields[2].data.nxTime Time when contract ends trading
3 RootSymbol NxCFT_STRINGZ pnxFields[3].data.StringZ Root symbol (* if same symbol as the root symbol without the 'r')
4 CallSymbol NxCFT_STRINGZ pnxFields[4].data.StringZ Call symbol (* if same symbol as the root symbol without the 'r')
5 PutSymbol NxCFT_STRINGZ pnxFields[5].data.StringZ Put symbol (* if same symbol as the root symbol without the 'r')
6 FuturesSecSubtype NxCFT_32BIT pnxFields[6].data.i32Bit Futures security subtype. (No mappings currently 2014)
7 FutOptsSecSubtype NxCFT_32BIT pnxFields[7].data.i32Bit Futures options security subtype. (No mappings currently 2014)
8 ContractSize NxCFT_STRINGZ pnxFields[8].data.StringZ Contract size
9 QuotedUnit NxCFT_STRINGZ pnxFields[9].data.StringZ Quoted units (eg. ton, troy oz, points, $/currency, currency/$, etc)
10 TickValue NxCFT_STRINGZ pnxFields[10].data.StringZ Tick value (eg. $6.25, $1, $10, etc)

Specific code sample is also available in our OptionsOnFutures sample


Code Sample from CategoryDumper project:

void onNxCoreCategory_70(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;

     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)
        printf("Description: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     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[2];
     if (pField->Set)
         printf("Close 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("Root Symbol: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)
        printf("Call Symbol: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)
        printf("Put Symbol: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
     if (pField->Set)
         printf("Futures Sec Subtype: %d \n",pField->data.i32Bit);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
     if (pField->Set)
         printf("Futures OptsSec Subtype: %d \n",pField->data.i32Bit);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
     if (pField->Set)
        printf("Contract Size: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
     if (pField->Set)
        printf("Quoted Unit: %s \n",pField->data.StringZ);

     pField=&pNxCoreMsg->coreData.Category.pnxFields[10];
     if (pField->Set)
        printf("Tick Value: %s \n",pField->data.StringZ);
}