#include #include "decider.h" macd_decider::macd_decider(std::size_t limit) : prices(limit, .0), macd(limit, .0), signal(limit, .0), limit(limit) {} void macd_decider::process(double price) { prices.add(price); macd.add(ema(prices.begin(), prices.begin() + 12) - ema(prices.begin(), prices.begin() + 26)); signal.add(ema(macd.begin(), macd.begin() + 9)); } void macd_decider::reset() { prices = buffer(limit, .0); signal = buffer(limit, .0); macd = buffer(limit, .0); }