Category Description
CCDF Closing Report (Consolidate Canadian Data Feed closing report)
Category Identification
pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 56 |
pNxCoreMessage->coreData.Category.pnxStringCategory->String | CCDF_ClosingReport |
Update Time and Frequency
Approximate Time | Info |
---|---|
00:00 AM | Minimal information from previous session |
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 price |
2 | High | NxCFT_PRICE | pnxFields[2].data.nxPrice | High price |
3 | Low | NxCFT_PRICE | pnxFields[3].data.nxPrice | Low 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_56(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); }