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