API Documentation

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