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