Category Description
Same as TradeReportSummary, but for trades with condition FormT (before and after hours trades).
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 21 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | FormTReportSummary |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| 00:00 AM | Information from previous session |
| 05:15 AM | Current session information |
| Very Rare Updates | Very rare updates throughout the day |
| Market close | Updates after market close |
Category Fields | 18
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | Ticks | NxCFT_32BIT | pnxFields[0].data.i32Bit | Count of Form-T trades this day |
| 1 | Volume | NxCFT_32BIT | pnxFields[1].data.i32Bit | Volume of Form-T trades this day |
| 2 | First_Price | NxCFT_PRICE | pnxFields[2].data.nxPrice | Price of first Form T trade this day |
| 3 | First_Exg | NxCFT_STRING_IDX | pnxFields[3].data.stringTableItem | Exchange where first Form T trade executed, from table table_NxST_EXCHANGE.html |
| 4 | First_ExgSeq | NxCFT_32BIT | pnxFields[4].data.i32Bit | Exchange assigned sequence number |
| 5 | First_ExgTime | NxCFT_TIME | pnxFields[5].data.nxTime | Exchange timestamp of first Form T trade of day |
| 6 | High_Price | NxCFT_PRICE | pnxFields[6].data.nxPrice | Price of highest Form T trade this day |
| 7 | High_Exg | NxCFT_STRING_IDX | pnxFields[7].data.stringTableItem | Exchange of highest Form T trade this day, from table table_NxST_EXCHANGE.html |
| 8 | High_ExgSeq | NxCFT_32BIT | pnxFields[8].data.i32Bit | Exchange sequence number of highest Form T trade this day |
| 9 | High_ExgTime | NxCFT_TIME | pnxFields[9].data.nxTime | Exchange time of highest Form T trade this day |
| 10 | Low_Price | NxCFT_PRICE | pnxFields[10].data.nxPrice | Price of lowest Form T trade this day |
| 11 | Low_Exg | NxCFT_STRING_IDX | pnxFields[11].data.stringTableItem | Exchange of lowest Form T trade this day, from table table_NxST_EXCHANGE.html |
| 12 | Low_ExgSeq | NxCFT_32BIT | pnxFields[12].data.i32Bit | Exchange sequence number of lowest Form T trade this day |
| 13 | Low_ExgTime | NxCFT_TIME | pnxFields[13].data.nxTime | Exchange time of lowest Form T trade this day |
| 14 | Last_Price | NxCFT_PRICE | pnxFields[14].data.nxPrice | Price of last Form T trade this day |
| 15 | Last_Exg | NxCFT_STRING_IDX | pnxFields[15].data.stringTableItem | Exchange of last Form T trade this day, from table table_NxST_EXCHANGE.html |
| 16 | Last_ExgSeq | NxCFT_32BIT | pnxFields[16].data.i32Bit | Exchange sequence number of last Form T trade this day |
| 17 | Last_ExgTime | NxCFT_TIME | pnxFields[17].data.nxTime | Exchange time of last Form T trade this day |
Code Sample from CategoryDumper project:
void onNxCoreCategory_21(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
printf("FormT Ticks: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
printf("FormT Volume: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
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[3];
if (pField->Set)
printf("First Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
if (pField->Set)
printf("First Exg Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
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[6];
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[7];
if (pField->Set)
printf("High Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
if (pField->Set)
printf("High Exg Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[9];
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[10];
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[11];
if (pField->Set)
printf("Low Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[12];
if (pField->Set)
printf("Low Exg Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[13];
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[14];
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[15];
if (pField->Set)
printf("Last Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[16];
if (pField->Set)
printf("Last Exg Seq: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[17];
if (pField->Set)
printf("Last Exg Time: %02d:%02d:%02d \n",
pField->data.nxTime.Hour,
pField->data.nxTime.Minute,
pField->data.nxTime.Second);
}