Table of Contents


Category Description

Option series underlying, expiration cycle, settlement, chain, exchanges traded on, etc.

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 2
pNxCoreMessage->coreData.Category.pnxStringCategory->String OptionSeries

Update Time and Frequency

Approximate Time Info
00:00 AM Information from previous session
05:15 AM Current session information
Very Rare Updates Very rare updates throughout the day

Category Fields | 9

Index FieldName FieldType C Code Info
0 UnderlyingSymbol NxCFT_STRINGZ pnxFields[0].data.StringZ The Equity or Index the option is based on
1 UnderlyingExgCode NxCFT_STRING_IDX pnxFields[1].data.stringTableItem The Exchange of the underlying symbol, from table table_NxST_EXCHANGE.html
2 UnderlyingSymbolKey NxCFT_NxSTRING pnxFields[2].data.pnxString The current symbol key of the underlying symbol
3 UnderlyingSeriesChain NxCFT_STRINGZ pnxFields[3].data.StringZ String of all Option Series Symbols for the underlying
4 SpecialSettlement NxCFT_STRINGZ pnxFields[4].data.StringZ If Option Series Adjusted, formula for pricing will appear in this field
5 ContractMultiplier NxCFT_32BIT pnxFields[5].data.i32Bit Standard Equity Options and Indexes use a multiplier of 100. This value may change if an option series is adjusted
6 LeapYearCode NxCFT_32BIT pnxFields[6].data.i32Bit If option is a LEAP, this field is set with a number indicating the Leap year. 6==2006, 7==2007
7 ExpirationCycle NxCFT_32BIT pnxFields[7].data.i32Bit 1=January Cycle,2=Feb,3=March. More fields at table table_NxST_EXPIRATIONCYCLE.html
8 OPRAExchangeList NxCFT_STRING_MAP pnxFields[8].data.stringTableItem Special List of Exchanges that quote this option series, from table table_NxST_EXCHANGE.html

Code Sample from CategoryDumper project:

void onNxCoreCategory_2(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];		 
     if (pField->Set)
         printf("Underlying Symbol: %s \n",pField->data.StringZ);
 			 
     // See table_NxST_EXCHANGE.html for exchange codes 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     if (pField->Set)
         printf("Underlying Exchange:  Table - %d  Exchange - %d \n",
                pField->data.stringTableItem.ixTable,
                pField->data.stringTableItem.idString);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)
         printf("Undeelying Symbol Key: %s \n",pField->data.pnxString->String);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)			 
         printf("Underlying Series Chain: %s \n",pField->data.StringZ);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)			 
         printf("Special Settlement: %s \n",pField->data.StringZ);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)			 
         printf("Contract Multiplier: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
     if (pField->Set)			 
         printf("Leap Year Code: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
     if (pField->Set)
     {         
         printf("Expiration Cycle: %d - ",pField->data.i32Bit);
 			 
         // See table_NxST_EXPIRATIONCYCLE.html
         switch(pField->data.i32Bit)
         {
             case 1:printf("Jan \n");break;
             case 2:printf("Feb \n");break;
             case 3:printf("Mar \n");break;
             case 4:printf("Wk1 \n");break;
             case 5:printf("Wk2 \n");break;
             case 6:printf("Wk3 \n");break;
             case 7:printf("Wk4 \n");break;
             case 8:printf("Wk5 \n");break;
             case 9:printf("Qtr \n");break;
         }
     }
 			 
     // See table_NxST_EXCHANGE.html for exchange codes 			  			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
     if (pField->Set)
         printf("OPRA Exchange List:  Table - %d  Exchange - %d \n",
                pField->data.stringTableItem.ixTable,
                pField->data.stringTableItem.idString);
}