Category Description
Exchange correction message data such as correction type, original/new sequence, time, price, size and condition.
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 24 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | TradeCorrection |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| Constant Updates | Constant updates throughout the day |
Category Fields | 11
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | CorrectionType | NxCFT_STRING_MAP | pnxFields[0].data.stringTableItem | Flags, such as Busted, Cancel Ask, Cancel Bid, Entry Error, etc, from table table_NxST_EXGCORRECTIONMAP.html |
| 1 | OrgSeq | NxCFT_32BIT | pnxFields[1].data.i32Bit | Original exchange sequence number |
| 2 | OrgTime | NxCFT_TIME | pnxFields[2].data.nxTime | Original exchange time |
| 3 | OrgPrice | NxCFT_PRICE | pnxFields[3].data.nxPrice | Original price |
| 4 | OrgSize | NxCFT_32BIT | pnxFields[4].data.i32Bit | Original size |
| 5 | OrgCondition | NxCFT_STRING_IDX | pnxFields[5].data.stringTableItem | Original trade condition, such as AvgPrc, FastMarket, FormT, Regular, NextDaySale, etc, from table table_NxST_TRADECONDITION.html |
| 6 | NewSeq | NxCFT_32BIT | pnxFields[6].data.i32Bit | New exchange sequence number |
| 7 | NewTime | NxCFT_TIME | pnxFields[7].data.nxTime | New exchange time |
| 8 | NewPrice | NxCFT_PRICE | pnxFields[8].data.nxPrice | New price |
| 9 | NewSize | NxCFT_32BIT | pnxFields[9].data.i32Bit | New size |
| 10 | NewCondition | NxCFT_STRING_IDX | pnxFields[10].data.stringTableItem | New trade condition, such as AvgPrc, FastMarket, FormT, Regular, NextDaySale, etc, from table table_NxST_TRADECONDITION.html |
Code Sample from CategoryDumper project:
void onNxCoreCategory_24(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
{
printf("Correction Type: Table - %d Type - ",
pField->data.stringTableItem.ixTable);
// See table_NxST_EXGCORRECTIONMAP.html
if (pField->data.stringTableItem.idString & 0x00000001)
printf("Correction \n");
if (pField->data.stringTableItem.idString & 0x00000002)
printf("Cancel \n");
if (pField->data.stringTableItem.idString & 0x00000004)
printf("Busted \n");
if (pField->data.stringTableItem.idString & 0x00000008)
printf("Entry Error \n");
if (pField->data.stringTableItem.idString & 0x00000010)
printf("Cancel Bid \n");
if (pField->data.stringTableItem.idString & 0x00000020)
printf("Cancel Ask \n");
}
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
printf("Org Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
if (pField->Set)
printf("Org Time: %02d:%02d:%02d \n",
pField->data.nxTime.Hour,
pField->data.nxTime.Minute,
pField->data.nxTime.Second);
pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
if (pField->Set)
printf("Org Price: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
if (pField->Set)
printf("Org Size: %d \n",pField->data.i32Bit);
// See table_NxST_TRADECONDITION.html for possible Conditions
pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
if (pField->Set)
printf("Org Condition: Table - %d Condition - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
if (pField->Set)
printf("New Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
if (pField->Set)
printf("New Time: %02d:%02d:%02d \n",
pField->data.nxTime.Hour,
pField->data.nxTime.Minute,
pField->data.nxTime.Second);
pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
if (pField->Set)
printf("New Price: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
if (pField->Set)
printf("New Size: %d \n",pField->data.i32Bit);
// See table_NxST_TRADECONDITION.html for possible Conditions
pField=&pNxCoreMsg->coreData.Category.pnxFields[10];
if (pField->Set)
printf("New Condition: Table - %d Condition - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
}