Table of Contents


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