Category Description
Volatility, Average Volume, Market Cap, P.E. ratio, Yield.
Category Identification
| pNxCoreMessage->coreData.Category.pnxStringCategory->Atom | 10 |
| pNxCoreMessage->coreData.Category.pnxStringCategory->String | DTNEquityFundamental |
Update Time and Frequency
| Approximate Time | Info |
|---|---|
| 00:00 AM | Information from previous session |
| 05:15 AM | Current session information |
| Very Rare Updates | Very rare updates throughout the day |
Category Fields | 5
| Index | FieldName | FieldType | C Code | Info |
|---|---|---|---|---|
| 0 | Volatility | NxCFT_PRICE | pnxFields[0].data.nxPrice | 30-day historical volatility relative to market |
| 1 | AvgVolume | NxCFT_32BIT | pnxFields[1].data.i32Bit | 4-week average volume |
| 2 | MarketCap | NxCFT_32BIT | pnxFields[2].data.i32Bit | in Millions, in $ |
| 3 | PE | NxCFT_PRICE | pnxFields[3].data.nxPrice | Price Per Share/Earnings, in $ |
| 4 | Yield | NxCFT_PRICE | pnxFields[4].data.nxPrice | Annual yield |
Code Sample from CategoryDumper project:
void onNxCoreCategory_10(const NxCoreMessage *pNxCoreMsg)
{
NxCategoryField *pField;
// Print the category num and the Symbol
PrintSymbol(pNxCoreMsg);
pField=&pNxCoreMsg->coreData.Category.pnxFields[0];
if (pField->Set)
printf("Volatility: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[1];
if (pField->Set)
printf("Avg Volume: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[2];
if (pField->Set)
printf("Market Cap: %d \n",pField->data.i32Bit);
pField=&pNxCoreMsg->coreData.Category.pnxFields[3];
if (pField->Set)
printf("PE: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
pField=&pNxCoreMsg->coreData.Category.pnxFields[4];
if (pField->Set)
printf("Yield: %0.4f \n",
pfNxCorePriceToDouble(pField->data.nxPrice.Price,
pField->data.nxPrice.PriceType));
}