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