#ifndef __NormalVolumeBreakBars_h_ #define __NormalVolumeBreakBars_h_ /* This is a wrapper around "VolumeWeightedDataNodes.h". That defined a class * which was very flexible. In particular, you could use the same general * logic on different scales. You could have one data node which watches * DELL with 10,000 shares in each bar, and another data node which watches * DELL with 20,000 shares in each bar. In practice that's never done. * Outside of some development tools, each stock has only one of these. It * will use the number of shares per bar recommended by the overnight process. * This class will create find the appropriate VolumeWeightedDataNode object * using only the stock symbol as an input. */ #include "VolumeWeightedDataNodes.h" class NormalVolumeBreakBars : public DataNode { private: VolumeWeightedDataNode *_data; NormalVolumeBreakBars(DataNodeArgument const &args); friend class DataNode; public: VolumeBlocks const &getBlocks() const; VolumeBlocks::size_type getBlockCount() const; DataNode::Integer getGroupBy() const; static DataNodeLink *find(DataNodeListener *listener, int msgId, NormalVolumeBreakBars *&node, std::string const &symbol); }; #endif