#pragma once

#include "abstract_indicator.hh"
#include "sma.hh"
#include <deque>

namespace AI {

class MACD : public AbstractIndicator
{
public:
    MACD(int fastSMAPeriod, int slowSMAPeriod);
    MACD(const MACD&) = default;
    MACD& operator=(const MACD&) = default;
    void operator()(double value) override;
    double operator()() const override;
    void clear() override;

private:
    SMA fastSMA_;
    SMA slowSMA_;
};

}
