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);
}