Category Description
Sent if an exchange correction changes a 15 second, 1 minute, and/or 5 minute open/high/low/close/volume bar.
Category Identification
pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 25 |
pNxCoreMessage->coreData.Category.pnxStringCategory->String | BarCorrection |
Update Time and Frequency
Approximate Time | Info |
---|---|
Constant Updates | Constant updates throughout the day |
Category Fields | 28
Index | FieldName | FieldType | C Code | Info |
---|---|---|---|---|
0 | BarInterval | NxCFT_TIME | pnxFields[0].data.nxTime | Bar interval, like 15 seconds, 1 minute, 5 minutes |
1 | BarTimeBegin | NxCFT_TIME | pnxFields[1].data.nxTime | Beginning time of the Bar interval |
2 | BarTimeEnd | NxCFT_TIME | pnxFields[2].data.nxTime | End time of the Bar interval |
3 | ReferenceExgSeq | NxCFT_32BIT | pnxFields[3].data.i32Bit | Exchange sequence number |
4 | First_Price | NxCFT_PRICE | pnxFields[4].data.nxPrice | First, or open, trade of the bar |
5 | First_Exg | NxCFT_STRING_IDX | pnxFields[5].data.stringTableItem | Exchange of the first, or open, trade of the bar, from table table_NxST_EXCHANGE.html |
6 | First_ExgSeq | NxCFT_32BIT | pnxFields[6].data.i32Bit | Exchange sequence number of first, or open, trade of the bar |
7 | First_ExgTime | NxCFT_TIME | pnxFields[7].data.nxTime | Exchange time of first, or open, trade of the bar |
8 | High_Price | NxCFT_PRICE | pnxFields[8].data.nxPrice | High trade of the bar |
9 | High_Exg | NxCFT_STRING_IDX | pnxFields[9].data.stringTableItem | Exchange of the high trade of the bar, from table table_NxST_EXCHANGE.html |
10 | High_ExgSeq | NxCFT_32BIT | pnxFields[10].data.i32Bit | Exchange sequence number of the high trade of the bar |
11 | High_ExgTime | NxCFT_TIME | pnxFields[11].data.nxTime | Exchange time of the high trade of the bar |
12 | Low_Price | NxCFT_PRICE | pnxFields[12].data.nxPrice | Low trade of the bar |
13 | Low_Exg | NxCFT_STRING_IDX | pnxFields[13].data.stringTableItem | Exchange of the low trade of the bar, from table table_NxST_EXCHANGE.html |
14 | Low_ExgSeq | NxCFT_32BIT | pnxFields[14].data.i32Bit | Exchange sequence number of the low trade of the bar |
15 | Low_ExgTime | NxCFT_TIME | pnxFields[15].data.nxTime | Exchange time of the low trade of the bar |
16 | Last_Price | NxCFT_PRICE | pnxFields[16].data.nxPrice | Last trade of the bar |
17 | Last_Exg | NxCFT_STRING_IDX | pnxFields[17].data.stringTableItem | Exchange of the last trade of the bar, from table table_NxST_EXCHANGE.html |
18 | Last_ExgSeq | NxCFT_32BIT | pnxFields[18].data.i32Bit | Exchange sequence number of the last trade of the bar |
19 | Last_ExgTime | NxCFT_TIME | pnxFields[19].data.nxTime | Exchange time of the high trade of the bar |
20 | FilterHigh_Price | NxCFT_PRICE | pnxFields[20].data.nxPrice | Filter high price of the bar, after being filtered by NxCore (have Trade.NxAnalysis.Filtered set) |
21 | FilterHigh_Exg | NxCFT_STRING_IDX | pnxFields[21].data.stringTableItem | Exchange of the filter high trade of the bar, from table table_NxST_EXCHANGE.html |
22 | FilterHigh_ExgSeq | NxCFT_32BIT | pnxFields[22].data.i32Bit | Exchange sequence number of the filter high trade of the bar |
23 | FilterHigh_ExgTime | NxCFT_TIME | pnxFields[23].data.nxTime | Exchange time of the filter high trade of the bar |
24 | FilterLow_Price | NxCFT_PRICE | pnxFields[24].data.nxPrice | Filter low price of the bar, after being filtered by NxCore (have Trade.NxAnalysis.Filtered set) |
25 | FilterLow_Exg | NxCFT_STRING_IDX | pnxFields[25].data.stringTableItem | Exchange of the filter low trade of the bar, from table table_NxST_EXCHANGE.html |
26 | FilterLow_ExgSeq | NxCFT_32BIT | pnxFields[26].data.i32Bit | Exchange sequence number of the filter low trade of the bar |
27 | FilterLow_ExgTime | NxCFT_TIME | pnxFields[27].data.nxTime | Exchange time of the filter low trade of the bar |
Code Sample from CategoryDumper project:
void onNxCoreCategory_25(const NxCoreMessage *pNxCoreMsg) { NxCategoryField *pField; // Print the category num and the Symbol PrintSymbol(pNxCoreMsg); pField=&pNxCoreMsg->coreData.Category.pnxFields[0]; if (pField->Set) printf("Bar Interval: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[1]; if (pField->Set) printf("Bar Time Begin: %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("Bar Time End: %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("Ref Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[4]; 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[5]; if (pField->Set) printf("First Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[6]; if (pField->Set) printf("First Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[7]; 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[8]; 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[9]; if (pField->Set) printf("High Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[10]; if (pField->Set) printf("High Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[11]; 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[12]; 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[13]; if (pField->Set) printf("Low Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[14]; if (pField->Set) printf("Low Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[15]; 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[16]; 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[17]; if (pField->Set) printf("Last Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[18]; if (pField->Set) printf("Last Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[19]; if (pField->Set) printf("Last Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[20]; if (pField->Set) printf("FilterHigh 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[21]; if (pField->Set) printf("FilterHigh Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[22]; if (pField->Set) printf("FilterHigh Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[23]; if (pField->Set) printf("FilterHigh Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); pField=&pNxCoreMsg->coreData.Category.pnxFields[24]; if (pField->Set) printf("FilterLow 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[25]; if (pField->Set) printf("FilterLow Exg: Table - %d Exchange - %d\n", pField->data.stringTableItem.ixTable, pField->data.stringTableItem.idString); pField=&pNxCoreMsg->coreData.Category.pnxFields[26]; if (pField->Set) printf("FilterLow Exg Seq: %d \n",pField->data.i32Bit); pField=&pNxCoreMsg->coreData.Category.pnxFields[27]; if (pField->Set) printf("FilterLow Exg Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); }