Category Description
Lists Option series where the same Option Strike Code defines two or more different strike prices (Strike Code Confusion).
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 41 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | OptionMultipleStrikePrices |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| 02:30 AM | Information from previous session |
| No Updates | No updates throughout the day |
Category Fields | 20
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | StrikeChar | NxCFT_32BIT | pnxFields[0].data.i32Bit | The strike code which defines more than one strike price |
| 1 | EntryCount | NxCFT_32BIT | pnxFields[1].data.i32Bit | Number of entries |
| 2 | ExpireMonths | NxCFT_32BIT | pnxFields[2].data.i32Bit | Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 3 | StrikePrice | NxCFT_32BIT | pnxFields[3].data.i32Bit | Strike Price (3 decimal places) defined by StrikeChar |
| 4 | ExpireMonths | NxCFT_32BIT | pnxFields[4].data.i32Bit | (Next 1) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 5 | StrikePrice | NxCFT_32BIT | pnxFields[5].data.i32Bit | (Next 1) Strike Price (3 decimal places) defined by StrikeChar |
| 6 | ExpireMonths | NxCFT_32BIT | pnxFields[6].data.i32Bit | (Next 2) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 7 | StrikePrice | NxCFT_32BIT | pnxFields[7].data.i32Bit | (Next 2) Strike Price (3 decimal places) defined by StrikeChar |
| 8 | ExpireMonths | NxCFT_32BIT | pnxFields[8].data.i32Bit | (Next 3) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 9 | StrikePrice | NxCFT_32BIT | pnxFields[9].data.i32Bit | (Next 3) Strike Price (3 decimal places) defined by StrikeChar |
| 10 | ExpireMonths | NxCFT_32BIT | pnxFields[10].data.i32Bit | (Next 4) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 11 | StrikePrice | NxCFT_32BIT | pnxFields[11].data.i32Bit | (Next 4) Strike Price (3 decimal places) defined by StrikeChar |
| 12 | ExpireMonths | NxCFT_32BIT | pnxFields[12].data.i32Bit | (Next 5) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 13 | StrikePrice | NxCFT_32BIT | pnxFields[13].data.i32Bit | (Next 5) Strike Price (3 decimal places) defined by StrikeChar |
| 14 | ExpireMonths | NxCFT_32BIT | pnxFields[14].data.i32Bit | (Next 6) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 15 | StrikePrice | NxCFT_32BIT | pnxFields[15].data.i32Bit | (Next 6) Strike Price (3 decimal places) defined by StrikeChar |
| 16 | ExpireMonths | NxCFT_32BIT | pnxFields[16].data.i32Bit | (Next 7) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 17 | StrikePrice | NxCFT_32BIT | pnxFields[17].data.i32Bit | (Next 7) Strike Price (3 decimal places) defined by StrikeChar |
| 18 | ExpireMonths | NxCFT_32BIT | pnxFields[18].data.i32Bit | (Next 8) Multiple set bits identifying Expiration Months (bit 0=Jan, bit 1=Feb, bit 11=Dec) |
| 19 | StrikePrice | NxCFT_32BIT | pnxFields[19].data.i32Bit | (Next 8) Strike Price (3 decimal places) defined by StrikeChar |
Code Sample from CategoryDumper project:
void onNxCoreCategory_41(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
int Count=0;
int i=2;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
printf("Strike Char: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
{
printf("Entry Count: %d \n",pField->data.i32Bit);
Count=pField->data.i32Bit;
}
// Category 41 may contain up to (Entry Count) unique data points.
// Each data point contain the expiration months and strike char.
for (int n=0;n<Count;n++)
{
pField=&pNxCoreMsg->coreData.Category.pnxFields[i];
if (pField->Set)
printf("Expire Months: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[i+1];
if (pField->Set)
printf("Strike Price: %0.3f \n",((double) pField->data.i32Bit / 1000.0));
i+=2;
}
}