Table of Contents


Category Description

Price, size, time and exchange of last trade reports that occur at the prevailing bid or ask price.

Category Identification

pNxCoreMessage->coreData.Category.pnxStringCategory->Atom 27
pNxCoreMessage->coreData.Category.pnxStringCategory->String NxLastTrade

Update Time and Frequency

Approximate Time Info
00:00 AM Information from previous session
05:15 AM Current session information

Category Fields | 8

Index FieldName FieldType C Code Info
0 AtBidTradePrice NxCFT_PRICE pnxFields[0].data.nxPrice Price of last trade occurring at the Bid Price
1 AtAskTradePrice NxCFT_PRICE pnxFields[1].data.nxPrice Price of last trade occurring at the Ask Price
2 AtBidTradeSize NxCFT_32BIT pnxFields[2].data.i32Bit Size of trade
3 AtAskTradeSize NxCFT_32BIT pnxFields[3].data.i32Bit Size of trade
4 AtBidTradeTime NxCFT_TIME pnxFields[4].data.nxTime Exchange timestamp of trade
5 AtAskTradeTime NxCFT_TIME pnxFields[5].data.nxTime Exchange timestamp of trade
6 AtBidTradeExg NxCFT_STRING_IDX pnxFields[6].data.stringTableItem Exchange where trade executed, from table table_NxST_EXCHANGE.html
7 AtAskTradeExg NxCFT_STRING_IDX pnxFields[7].data.stringTableItem Exchange where trade executed, from table table_NxST_EXCHANGE.html

Code Sample from CategoryDumper project:

void onNxCoreCategory_27(const NxCoreMessage *pNxCoreMsg)
{
     NxCategoryField *pField;
			 
     // Print the category num and the Symbol
     PrintSymbol(pNxCoreMsg); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
     if (pField->Set)
         printf("AtBidTradePrice: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType)); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
     if (pField->Set)
         printf("AtAskTradePrice: %0.4f \n",
                pfNxCorePriceToDouble(pField->data.nxPrice.Price,
                                      pField->data.nxPrice.PriceType)); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
     if (pField->Set)			 
         printf("AtBidTradeSize: %d \n",pField->data.i32Bit); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
     if (pField->Set)			 
         printf("AtAskTradeSize: %d \n",pField->data.i32Bit); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[4];		 
     if (pField->Set)
         printf("AtBidTradeTime: %02d:%02d:%02d \n",
                pField->data.nxTime.Hour,
                pField->data.nxTime.Minute,
                pField->data.nxTime.Second); 			 
 			 
     pField=&pNxCoreMsg->coreData.Category.pnxFields[5];		 
     if (pField->Set)
         printf("AtAskTradeTime: %02d:%02d:%02d \n",
                pField->data.nxTime.Hour,
                pField->data.nxTime.Minute,
                pField->data.nxTime.Second); 			 
 			 
     // See table_NxST_EXCHANGE.html for exchange codes
     pField=&pNxCoreMsg->coreData.Category.pnxFields[6];		 
     if (pField->Set)
         printf("AtBidTradeExg:  Table - %d  Exchange - %d\n",
                pField->data.stringTableItem.ixTable,
                pField->data.stringTableItem.idString); 			 
 			 
     // See table_NxST_EXCHANGE.html for exchange codes
     pField=&pNxCoreMsg->coreData.Category.pnxFields[7];		 
     if (pField->Set)
         printf("AtAskTradeExg:  Table - %d  Exchange - %d\n",
                pField->data.stringTableItem.ixTable,
                pField->data.stringTableItem.idString);     
}