Category Description
Sent if symbol had corrections. Uncorrected Open, High, Low, Last, plus Vol and Tick Vol of Cancelled and Inserted trades.
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 18 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | NxUncorrectedOHLCV |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| 00:00 AM | Information from previous session |
| 05:15 AM | Current session information |
| No Updates | No updates throughout the day |
Category Fields | 11
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | First | NxCFT_PRICE | pnxFields[0].data.nxPrice | Price of first trade of session that is elgible to set Last |
| 1 | High | NxCFT_PRICE | pnxFields[1].data.nxPrice | Highest price of session trades elgible to set Last |
| 2 | Low | NxCFT_PRICE | pnxFields[2].data.nxPrice | Lowest price of session trades elgible to set Last |
| 3 | Last | NxCFT_PRICE | pnxFields[3].data.nxPrice | Last trade price of session |
| 4 | CancelVolume | NxCFT_32BIT | pnxFields[4].data.i32Bit | Sum of the sizes of trades that were cancelled |
| 5 | InsertVolume | NxCFT_32BIT | pnxFields[5].data.i32Bit | Sum of the sizes of trades that were inserted |
| 6 | CancelTicks | NxCFT_32BIT | pnxFields[6].data.i32Bit | Count of cancelled trades |
| 7 | InsertTicks | NxCFT_32BIT | pnxFields[7].data.i32Bit | Count of inserted trades |
| 8 | AdminCount | NxCFT_32BIT | pnxFields[8].data.i32Bit | Admin count |
| 9 | AdminAddVol | NxCFT_32BIT | pnxFields[9].data.i32Bit | Volume added by admin |
| 10 | AdminNegVol | NxCFT_32BIT | pnxFields[10].data.i32Bit | Volume removed by admin |
Code Sample from CategoryDumper project:
void onNxCoreCategory_18(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("Cancel Volume: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
if (pField->Set)
printf("Insert Volume: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
if (pField->Set)
printf("Cancel Ticks: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
if (pField->Set)
printf("Insert Ticks: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
if (pField->Set)
printf("Admin Count: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
if (pField->Set)
printf("Volume Added by Admin: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[10];
if (pField->Set)
printf("Volume Removed by Admin: %d \n",pField->data.i32Bit);
}