Category Description
Futures Option Contract Information
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 86 | 
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | FutureOptContract | 
Update Time and Frequency
| Approximate Time | Info | 
|---|---|
| 00:00 AM | Information from current session | 
| Weekly | This category is upated when the symbol first appears each week. Usually pre-market Sunday | 
Category Fields | 18
| Index | FieldName | FieldType | C Code | Info | 
|---|---|---|---|---|
| 0 | StrikePrice | NxCFT_PRICE | pnxFields[0].data.nxPrice | Contract Strike Price | 
| 1 | ExpireDate | NxCFT_DATE | pnxFields[1].data.nxDate | Contract Expiration Date | 
| 2 | CME SecDefID | NxCFT_32BIT | pnxFields[2].data.i32Bit | CME Security Definition Number | 
| 3 | UnderlyingSecurityID | NxCFT_32BIT | pnxFields[3].data.i32Bit | Underlying security ID (1) | 
| 4 | UnderlyingSymbol | NxCFT_STRINGZ | pnxFields[4].data.StringZ | Underlying security symbol (1) | 
| 5 | RelatedSecurityID | NxCFT_32BIT | pnxFields[5].data.i32Bit | For premium, volatility strike ISIN. For volatility, premium strike ISIN. (1) | 
| 6 | RelatedSymbol | NxCFT_STRINGZ | pnxFields[6].data.StringZ | Related security symbol (1) | 
| 7 | PutOrCall | NxCFT_32BIT | pnxFields[7].data.i32Bit | "0 for Put, 1 for Call (1) | 
| 8 | Currency | NxCFT_STRINGZ | pnxFields[8].data.StringZ | Identifies currency used for price (1) | 
| 9 | StrikeCurrency | NxCFT_STRINGZ | pnxFields[9].data.StringZ | Identifies currency used for strike price (1) | 
| 10 | SettleCurrency | NxCFT_STRINGZ | pnxFields[10].data.StringZ | Identifies currency used for settle price (1) | 
| 11 | MinCabPrice | NxCFT_PRICE | pnxFields[11].data.nxPrice | Defines cabinet price for outright options products (1) | 
| 12 | TickRule | NxCFT_32BIT | pnxFields[12].data.i32Bit | Provided for instruments with variable tick in addition to Tick Size. See: MDP 3.0 Variable Tick Table (1) | 
| 13 | ActivationDate | NxCFT_DATE | pnxFields[13].data.nxDate | Activation Date for product (1) | 
| 14 | ProductType | NxCFT_32BIT | pnxFields[14].data.i32Bit | 0 for Daily, 1 for Weekly or 2 for Monthly product (1) | 
| 15 | UnderlyingProduct | NxCFT_STRINGZIX | pnxFields[15].data.stringTableItem | Indicates the product complex. From table NxST_UNDERLYINGPRODUCTCODE (1) | 
| 16 | UnitOfMeasure | NxCFT_STRINGZ | pnxFields[16].data.StringZ | Unit of measure for the product's original contract size (1) | 
| 17 | UnitOfMeasureQty | NxCFT_STRINGZ | pnxFields[1].data.StringZ | Specifies whether the contract is defined according to the Easter Peak, Eastern Off-Peak, Western Peak or Western Off-Peak (1) | 
Code Sample from CategoryDumper project:
void onNxCoreCategory_86(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
 			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)
         printf("Strike Price: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];		          
     if (pField->Set)
         printf("Expiration Date: %02d/%02d/%d \n",
                pField->data.nxDate.Month,
                pField->data.nxDate.Day,
                pField->data.nxDate.Year);
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];		          
     if (pField->Set)
         printf("Security ID: %d\n",
                pField->data.i32Bit);
}