Category Description
NASDAQ Closing Report
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 54 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | Nasdaq_ClosingReport |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| Market close | Updates after market close |
Category Fields | 12
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | Flags | NxCFT_32BIT | pnxFields[0].data.i32Bit | Flags |
| 1 | Open | NxCFT_PRICE | pnxFields[1].data.nxPrice | Open trade price |
| 2 | High | NxCFT_PRICE | pnxFields[2].data.nxPrice | High trade price |
| 3 | Low | NxCFT_PRICE | pnxFields[3].data.nxPrice | Low trade price |
| 4 | Last | NxCFT_PRICE | pnxFields[4].data.nxPrice | Last trade price |
| 5 | NetChange | NxCFT_PRICE | pnxFields[5].data.nxPrice | Net change |
| 6 | Volume | NxCFT_64BIT | pnxFields[6].data.i64Bit | Volume |
| 7 | Bid | NxCFT_PRICE | pnxFields[7].data.nxPrice | Bid price |
| 8 | Ask | NxCFT_PRICE | pnxFields[8].data.nxPrice | Ask price |
| 9 | LastExg | NxCFT_STRING_IDX | pnxFields[9].data.stringTableItem | Last trade exchange, from table table_NxST_EXCHANGE.html |
| 10 | BidExg | NxCFT_STRING_IDX | pnxFields[10].data.stringTableItem | Bid exchange, from table table_NxST_EXCHANGE.html |
| 11 | AskExg | NxCFT_STRING_IDX | pnxFields[11].data.stringTableItem | Ask exchange, from table table_NxST_EXCHANGE.html |
Flags is a bit mapped entity that indicates if the values in the closing report matches the values NxCore last updated.
| Value | Comments |
|---|---|
| 0x01 | Matches Bid |
| 0x02 | Matches Ask |
| 0x04 | Matches OHLCV |
Code Sample from CategoryDumper project:
void onNxCoreCategory_54(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
printf("Flags: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
printf("Open: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
if (pField->Set)
printf("High: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
if (pField->Set)
printf("Low: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
if (pField->Set)
printf("Last: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[5];
if (pField->Set)
printf("Netchange: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[6];
if (pField->Set)
printf("Volume: %I64d \n",pField->data.i64Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[7];
if (pField->Set)
printf("Bid: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[8];
if (pField->Set)
printf("Ask: %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("Last Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
// See table_NxST_EXCHANGE.html for exchange codes
pField=&pNxCoreMsg->coreData.Category.pnxFields[10];
if (pField->Set)
printf("Bid Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
// See table_NxST_EXCHANGE.html for exchange codes
pField=&pNxCoreMsg->coreData.Category.pnxFields[11];
if (pField->Set)
printf("Ask Exg: Table - %d Exchange - %d\n",
pField->data.stringTableItem.ixTable,
pField->data.stringTableItem.idString);
}