#include "Channel.mqh" #include "EMA.mqh" class CHANNEL_EMA : public CHANNEL { private: EMA EMA_Avg; EMA EMA_Size; public: CHANNEL_EMA( const int iPeriodAvg, const int iPeriodSize ) : EMA_Avg(iPeriodAvg), EMA_Size(iPeriodSize) { } virtual const CHANNEL_UNIT Get( const double Value ) { const double Avg = this.EMA_Avg.Get(Value); const double Size = this.EMA_Size.Get(::MathAbs(Value - Avg)); CHANNEL_UNIT ChannelUnit; ChannelUnit.High = Avg + Size; ChannelUnit.Low = Avg - Size; return(ChannelUnit); } };