Category Description
These messages indicate the Limit Up/Limit Down price bands used to prevent trades in NMS stocks outside a price range. Make sure to use the Type field when processing the data.
Category Identification
pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 35 |
pNxCoreMessage->coreData.Category.pnxStringCategory->String | LimitUpLimitDown |
Update Time and Frequency
Approximate Time | Info |
---|---|
09:30 | These messages will start at market open. |
16:00 | These messages will end at market close. |
Updates Throughout the Day | These messages will update throughout the day based on how much invididual stock prices are moving. |
Category Fields | 32
Index | FieldName | FieldType | C Code | Info |
---|---|---|---|---|
0 | Type | NxCFT_32BIT | pnxFields[0].data.i32Bit | LULD Type |
1 | LimitUp | NxCFT_PRICE | pnxFields[1].data.nxPrice | Limit Up price. |
2 | LimitDn | NxCFT_PRICE | pnxFields[2].data.nxPrice | Limit Down price. |
Code Sample from CategoryDumper project:
// Added to NxCoreAPI.h with v2.5.472 // LimitUp/LimitDown codes #define LULD_BND_EVT_NONE 0x00 // No Indicator Provided #define LULD_BND_EVT_OPENING 0x01 // Opening Update #define LULD_BND_EVT_INTRADAY 0x02 // Intra-day Update #define LULD_BND_EVT_RESTATED 0x03 // Restated Value #define LULD_BND_EVT_SUSPENDED 0x04 // Suspended during Trading Halt or Pause #define LULD_BND_EVT_REOPENING 0x05 // Re-Opening Update #define LULD_BND_EVT_OUTSIDE_HRS 0x06 // Outside Price Band Rule Hours void onNxCoreCategory_35(const NxCoreMessage *pNxCoreMsg) { NxCategoryField *pField; // Print the category num and the Symbol PrintSymbol(pNxCoreMsg); pField=&pNxCoreMsg->coreData.Category.pnxFields[0]; if (pField->Set) { switch(pField->data.i32Bit) { case LULD_BND_EVT_NONE: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (No Indicator Provided)",pField->data.i32Bit); break; case LULD_BND_EVT_OPENING: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Opening Update)",pField->data.i32Bit); break; case LULD_BND_EVT_INTRADAY: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Intra-day Update)",pField->data.i32Bit); break; case LULD_BND_EVT_RESTATED: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Restated Value)",pField->data.i32Bit); break; case LULD_BND_EVT_SUSPENDED: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Suspended during Trading Halt or Pause)",pField->data.i32Bit); break; case LULD_BND_EVT_REOPENING: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Re-Opening Update)",pField->data.i32Bit); break; case LULD_BND_EVT_OUTSIDE_HRS: sprintf(pAppUserData->GlobalStr,"LULD Code: %d (Outside Price Band Rule Hours)",pField->data.i32Bit); break; } } pField=&pNxCoreMsg->coreData.Category.pnxFields[1]; if (pField->Set) printf("Limit Up: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); pField=&pNxCoreMsg->coreData.Category.pnxFields[2]; if (pField->Set) printf("Limit Down: %0.4f \n", pfNxCorePriceToDouble(pField->data.nxPrice.Price, pField->data.nxPrice.PriceType)); }