Category Description
Exchange halt and open delay type and reason codes.
Category Identification
pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 63 |
pNxCoreMessage->coreData.Category.pnxStringCategory->String | Halt |
Update Time and Frequency
Approximate Time | Info |
---|---|
00:00 AM | Information from previous session |
Occasional Updates | Occasional updates throughout the day |
Category Fields | 4
Index | FieldName | FieldType | C Code | Info |
---|---|---|---|---|
0 | Type | NxCFT_STRING_IDX | pnxFields[0].data.stringTableItem | Halt type, such as Resume, NoOpenNoResume, Halted, OpenDelay, etc, from table table_NxST_HALTSTATUS.html |
1 | Reason | NxCFT_STRING_IDX | pnxFields[1].data.stringTableItem | Halt reason, such as EquipmentChange, News, NewsDisseminated, OrderImbalance, etc, from table table_NxST_HALTREASONTYPE.html |
2 | LastTrade | NxCFT_PRICE | pnxFields[2].data.nxPrice | Last trade price, when available |
3 | HaltTime | NxCFT_TIME | pnxFields[3].data.nxTime | Time the halt took effect |
Code Sample from CategoryDumper project:
void onNxCoreCategory_63(const NxCoreMessage *pNxCoreMsg) { NxCategoryField *pField; // Print the category num and the Symbol PrintSymbol(pNxCoreMsg); pField=&pNxCoreMsg->coreData.Category.pnxFields[0]; if (pField->Set) { printf("Type: Table - %d Status - ", pField->data.stringTableItem.ixTable); // See table_NxST_HALTSTATUS.html switch(pField->data.stringTableItem.idString) { case 0:printf("Resume \n");break; case 1:printf("Open Delay \n");break; case 2:printf("Halted \n");break; case 3:printf("NoOpenNoResume \n");break; } } pField=&pNxCoreMsg->coreData.Category.pnxFields[1]; if (pField->Set) { printf("Reason: Table - %d Reason - ", pField->data.stringTableItem.ixTable); // See table_NxST_HALTREASONTYPE.html switch(pField->data.stringTableItem.idString) { case 1:printf("News \n");break; case 2:printf("News Disseminated \n");break; case 3:printf("Order Imbalance \n");break; case 4:printf("Equipment Change \n");break; case 5:printf("Pending Info \n");break; case 6:printf("Suspended \n");break; case 7:printf("SEC \n");break; case 8:printf("Not Specified \n");break; } } pField=&pNxCoreMsg->coreData.Category.pnxFields[2]; if (pField->Set) printf("Last Trade: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); pField=&pNxCoreMsg->coreData.Category.pnxFields[3]; if (pField->Set) printf("Halt Time: %02d:%02d:%02d \n", pField->data.nxTime.Hour, pField->data.nxTime.Minute, pField->data.nxTime.Second); }