44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			MQL4
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			MQL4
		
	
	
	
	
	
| 
								 | 
							
								input int inMinPips = 0;     // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
							 | 
						|||
| 
								 | 
							
								input int inPeriodAvg = 0;   // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
							 | 
						|||
| 
								 | 
							
								input int inPeriodSize = 0;  // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
							 | 
						|||
| 
								 | 
							
								input double inMultSize = 1; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
							 | 
						|||
| 
								 | 
							
								input int inAddSize = 0;     // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include "ZigZag.mqh"
							 | 
						|||
| 
								 | 
							
								#include "Channel_EMA.mqh"
							 | 
						|||
| 
								 | 
							
								#include "TradeChannel.mqh"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								CHANNEL* const Channel = new CHANNEL_EMA(inPeriodAvg, inPeriodSize);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void System()
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								  static ZIGZAG ZigZag(inMinPips);
							 | 
						|||
| 
								 | 
							
								  static TRADECHANNEL TradeChannel;
							 | 
						|||
| 
								 | 
							
								  static CHANNEL_UNIT ChannelUnit;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  MqlTick Tick;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  if (SymbolInfoTick(_Symbol, Tick) && ZigZag.Calc(Tick))
							 | 
						|||
| 
								 | 
							
								  {
							 | 
						|||
| 
								 | 
							
								    static const double AddSize = inAddSize * _Point;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ChannelUnit = Channel.Get(ZigZag.GetLastZZ());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ChannelUnit *= inMultSize;
							 | 
						|||
| 
								 | 
							
								    ChannelUnit += AddSize;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ChannelUnit.Normalize();
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  TradeChannel.Trade(ChannelUnit);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void OnTick()
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								  System();
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void OnDeinit( const int )
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								  delete Channel;
							 | 
						|||
| 
								 | 
							
								}
							 |