27 lines
		
	
	
		
			No EOL
		
	
	
		
			577 B
		
	
	
	
		
			MQL5
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			No EOL
		
	
	
		
			577 B
		
	
	
	
		
			MQL5
		
	
	
	
	
	
#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);
 | 
						|
  }
 | 
						|
}; |