#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) { count++; 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(double price) { prices = buffer(limit, price); signal = buffer(limit, .0); macd = buffer(limit, .0); count = 0; start_price = price; }