Category Description
Only sent if exchange open/high/low/last is significantly different than trading record summary.
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 17 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | NxRefreshOverride |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| Constant Updates | Constant updates throughout the day |
Category Fields | 5
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | First | NxCFT_PRICE | pnxFields[0].data.nxPrice | Override the open trade |
| 1 | High | NxCFT_PRICE | pnxFields[1].data.nxPrice | Override the high trade |
| 2 | Low | NxCFT_PRICE | pnxFields[2].data.nxPrice | Override the low trade |
| 3 | Last | NxCFT_PRICE | pnxFields[3].data.nxPrice | Override the last trade |
| 4 | VolDiff | NxCFT_32BIT | pnxFields[4].data.i32Bit | Difference in volume after the override |
Code Sample from CategoryDumper project:
void onNxCoreCategory_17(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
printf("First: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
printf("High: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
if (pField->Set)
printf("Low: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
if (pField->Set)
printf("Last: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
if (pField->Set)
printf("Vol Diff: %d \n",pField->data.i32Bit);
}