Category Description
Up to last 5 changes (Add, Modify, Delete) to a symbol's ticker or listed exchange.
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 30 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | SymbolHistory |
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 |
Category Fields | 20
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | EffectiveDate | NxCFT_DATE | pnxFields[0].data.nxDate | Date Added, Modified, or Deleted at start of date |
| 1 | EntryType | NxCFT_STRINGZ | pnxFields[1].data.StringZ | Added, Modified, or Deleted |
| 2 | ExgCode | NxCFT_STRING_IDX | pnxFields[2].data.stringTableItem | Old Exchange Code (if modified), or new Exchange Code (if deleted), from table table_NxST_EXCHANGE.html |
| 3 | Symbol | NxCFT_STRINGZ | pnxFields[3].data.StringZ | Old Symbol (if modified), or new Symbol (if deleted). |
| 4 | EffectiveDate | NxCFT_DATE | pnxFields[4].data.nxDate | (Next Oldest 1) Date Added, Modified, or Deleted at start of date |
| 5 | EntryType | NxCFT_STRINGZ | pnxFields[5].data.StringZ | (Next Oldest 1) Added, Modified, or Deleted |
| 6 | ExgCode | NxCFT_STRING_IDX | pnxFields[6].data.stringTableItem | (Next Oldest 1) Old Exchange Code (if modified), or new Exchange Code (if deleted), from table table_NxST_EXCHANGE.html |
| 7 | Symbol | NxCFT_STRINGZ | pnxFields[7].data.StringZ | (Next Oldest 1) Old Symbol (if modified), or new Symbol (if deleted). |
| 8 | EffectiveDate | NxCFT_DATE | pnxFields[8].data.nxDate | (Next Oldest 2) Date Added, Modified, or Deleted at start of date |
| 9 | EntryType | NxCFT_STRINGZ | pnxFields[9].data.StringZ | (Next Oldest 2) Added, Modified, or Deleted |
| 10 | ExgCode | NxCFT_STRING_IDX | pnxFields[10].data.stringTableItem | (Next Oldest 2) Old Exchange Code (if modified), or new Exchange Code (if deleted), from table table_NxST_EXCHANGE.html |
| 11 | Symbol | NxCFT_STRINGZ | pnxFields[11].data.StringZ | (Next Oldest 2) Old Symbol (if modified), or new Symbol (if deleted). |
| 12 | EffectiveDate | NxCFT_DATE | pnxFields[12].data.nxDate | (Next Oldest 3) Date Added, Modified, or Deleted at start of date |
| 13 | EntryType | NxCFT_STRINGZ | pnxFields[13].data.StringZ | (Next Oldest 3) Added, Modified, or Deleted |
| 14 | ExgCode | NxCFT_STRING_IDX | pnxFields[14].data.stringTableItem | (Next Oldest 3) Old Exchange Code (if modified), or new Exchange Code (if deleted), from table table_NxST_EXCHANGE.html |
| 15 | Symbol | NxCFT_STRINGZ | pnxFields[15].data.StringZ | (Next Oldest 3) Old Symbol (if modified), or new Symbol (if deleted). |
| 16 | EffectiveDate | NxCFT_DATE | pnxFields[16].data.nxDate | (Next Oldest 4) Date Added, Modified, or Deleted at start of date |
| 17 | EntryType | NxCFT_STRINGZ | pnxFields[17].data.StringZ | (Next Oldest 4) Added, Modified, or Deleted |
| 18 | ExgCode | NxCFT_STRING_IDX | pnxFields[18].data.stringTableItem | (Next Oldest 4) Old Exchange Code (if modified), or new Exchange Code (if deleted), from table table_NxST_EXCHANGE.html |
| 19 | Symbol | NxCFT_STRINGZ | pnxFields[19].data.StringZ | (Next Oldest 4) Old Symbol (if modified), or new Symbol (if deleted). |
Code Sample from CategoryDumper project:
void onNxCoreCategory_30(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
// Category 30 may contain up to 5 unique data points.
// Each individual data point may contain 4 unique data elements.
for (int i=0;i<=16;i+=4)
{
pField=&pNxCoreMsg->coreData.Category.pnxFields[i];
if (pField->Set)
printf("Effective Date: %02d/%02d/%d \n",
pField->data.nxDate.Month,
pField->data.nxDate.Day,
pField->data.nxDate.Year);
pField=&pNxCoreMsg->coreData.Category.pnxFields[i+1];
if (pField->Set)
printf("Entry Type: %s \n",
pField->data.StringZ);
// See table_NxST_EXCHANGE.html for exchange codes
pField=&pNxCoreMsg->coreData.Category.pnxFields[i+2];
if (pField->Set)
printf("Exg Code: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
pField=&pNxCoreMsg->coreData.Category.pnxFields[i+3];
if (pField->Set)
printf("Old Symbol: %s \n",
pField->data.StringZ);
}
}