Category Description
Summary of open, high, low, last, vol and ticks for symbol's time and sales including corrections.
Category Identification
pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 20 |
pNxCoreMessage->coreData.Category.pnxStringCategory->String | TradeReportSummary |
Update Time and Frequency
Approximate Time | Info |
---|---|
Constant Updates | Constant updates throughout the day |
Category Fields | 21
Index | FieldName | FieldType | C Code | Info |
---|---|---|---|---|
0 | UpdateReason | NxCFT_STRING_IDX | pnxFields[0].data.stringTableItem | Reason for this update, such as InitialRefresh, etc, from table table_NxST_TRADEREPORTREASON.html |
1 | PrevSyncTime | NxCFT_TIME | pnxFields[1].data.nxTime | Refresh updates indicate time of last refresh |
2 | ReferenceExgSeq | NxCFT_32BIT | pnxFields[2].data.i32Bit | Trade correction sequence number that triggered this update |
3 | Ticks | NxCFT_32BIT | pnxFields[3].data.i32Bit | Count of session trade reports |
4 | Volume | NxCFT_64BIT | pnxFields[4].data.i64Bit | Sum of trade sizes in trade reports counted in Ticks |
5 | First_Price | NxCFT_PRICE | pnxFields[5].data.nxPrice | First Trade elgible to set Last |
6 | First_Exg | NxCFT_STRING_IDX | pnxFields[6].data.stringTableItem | Exchange where first trade executed, from table table_NxST_EXCHANGE.html |
7 | First_ExgSeq | NxCFT_32BIT | pnxFields[7].data.i32Bit | Exchange assigned sequence number |
8 | First_ExgTime | NxCFT_TIME | pnxFields[8].data.nxTime | Exchange timestamp of first trade |
9 | High_Price | NxCFT_PRICE | pnxFields[9].data.nxPrice | Price of highest trade elgible to set last |
10 | High_Exg | NxCFT_STRING_IDX | pnxFields[10].data.stringTableItem | Exchange with highest price, from table table_NxST_EXCHANGE.html |
11 | High_ExgSeq | NxCFT_32BIT | pnxFields[11].data.i32Bit | Exchange sequence number of highest price |
12 | High_ExgTime | NxCFT_TIME | pnxFields[12].data.nxTime | Exchange time of highest price |
13 | Low_Price | NxCFT_PRICE | pnxFields[13].data.nxPrice | Price of lowest trade elgible to set last |
14 | Low_Exg | NxCFT_STRING_IDX | pnxFields[14].data.stringTableItem | Exchange with lowest price, from table table_NxST_EXCHANGE.html |
15 | Low_ExgSeq | NxCFT_32BIT | pnxFields[15].data.i32Bit | Exchange sequence number of lowest price |
16 | Low_ExgTime | NxCFT_TIME | pnxFields[16].data.nxTime | Exchange time of lowest price |
17 | Last_Price | NxCFT_PRICE | pnxFields[17].data.nxPrice | Price of last trade elgible to set last (excludes FormT) |
18 | Last_Exg | NxCFT_STRING_IDX | pnxFields[18].data.stringTableItem | Exchange of last price, from table table_NxST_EXCHANGE.html |
19 | Last_ExgSeq | NxCFT_32BIT | pnxFields[19].data.i32Bit | Exchange sequence number of last price |
20 | Last_ExgTime | NxCFT_TIME | pnxFields[20].data.nxTime | Exchange time of last price |
Code Sample from CategoryDumper project:
void onNxCoreCategory_20(const NxCoreMessage *pNxCoreMsg) { NxCategoryField *pField; // Print the category num and the Symbol PrintSymbol(pNxCoreMsg); pField=&pNxCoreMsg->coreData.Category.pnxFields[0]; if (pField->Set) { printf("Update Reason: Table - %d Reason - ", pField->data.stringTableItem.ixTable); // See table_NxST_TRADEREPORTREASON.html switch(pField->data.stringTableItem.idString) { case 0:printf("Initial Refresh \n");break; case 1:printf("Post Insert \n");break; case 2:printf("Post Cancel \n");break; case 3:printf("Post Correction \n");break; case 4:printf("Synch Refresh \n");break; case 5:printf("Final \n");break; case 6:printf("Corrected Final \n");break; } } pField=&pNxCoreMsg->coreData.Category.pnxFields[1]; if (pField->Set) printf("Prev Synch Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[2]; if (pField->Set) printf("Ref Exg Sequence: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[3]; if (pField->Set) printf("Ticks: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[4]; if (pField->Set) printf("Volume: %I64d \n",pField->data.i64Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[5]; if (pField->Set) printf("First Price: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); // See table_NxST_EXCHANGE.html for exchange codes pField=&pNxCoreMsg->coreData.Category.pnxFields[6]; if (pField->Set) printf("First Exg: Table - %d Exchange - %d \n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[7]; if (pField->Set) printf("First Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[8]; if (pField->Set) printf("First Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[9]; if (pField->Set) printf("High Price: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); // See table_NxST_EXCHANGE.html for exchange codes pField=&pNxCoreMsg->coreData.Category.pnxFields[10]; if (pField->Set) printf("High Exg: Table - %d Exchange - %d \n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[11]; if (pField->Set) printf("High Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[12]; if (pField->Set) printf("High Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[13]; if (pField->Set) printf("Low Price: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); // See table_NxST_EXCHANGE.html for exchange codes pField=&pNxCoreMsg->coreData.Category.pnxFields[14]; if (pField->Set) printf("Low Exg: Table - %d Exchange - %d \n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[15]; if (pField->Set) printf("Low Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[16]; if (pField->Set) printf("Low Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[17]; if (pField->Set) printf("Last Price: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); // See table_NxST_EXCHANGE.html for exchange codes pField=&pNxCoreMsg->coreData.Category.pnxFields[18]; if (pField->Set) printf("Last Exg: Table - %d Exchange - %d \n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[19]; if (pField->Set) printf("Last Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[20]; if (pField->Set) printf("Last Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); }