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);
}