API Documentation

Category Description

Expiration date, strike price and other information for each option contract.

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 1
pNxCoreMessage->coreData.Category.pnxStringCategory->String OptionContract

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 | 6

Index FieldName FieldType C Code Info
0 ExpireDate NxCFT_DATE pnxFields[0].data.nxDate Contract Expiration Date
1 StrikePrice NxCFT_PRICE pnxFields[1].data.nxPrice Contract Strike Price
2 NxStrikeEstimate NxCFT_PRICE pnxFields[2].data.nxPrice Set when NxCore Option Pricing indicates a strike not equal to StrikePrice
3 OPRADayCount NxCFT_32BIT pnxFields[3].data.i32Bit A value between 0 and 7 which is increased/decreased each trading day if the Strike Price is (is not) reported by OPRA
4 NxStrikeMatch NxCFT_32BIT pnxFields[4].data.i32Bit A value between 0 and 15 which is increased/decreased each trading day depending on the how well the Strike Price matches NxCore Option Pricing
5 NxStrikeMatchEst NxCFT_32BIT pnxFields[5].data.i32Bit Same as NxStrikeMatch but applies to NxStrikeEstimate instead of StrikePrice

Code Sample from CategoryDumper project:

void onNxCoreCategory_OptionContract(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];		 
     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[1];
     if (pField->Set)
         printf("Strike Price: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)
         printf("Est. Strike Price: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType));
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)			 
         printf("Opra Day Count: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
     if (pField->Set)			 
         printf("NxStrikeMatch: %d \n",pField->data.i32Bit);
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
     if (pField->Set)			 
         printf("NxStrikeMatchEst: %d \n",pField->data.i32Bit);
}