//+------------------------------------------------------------------+
//|                        AUTOFOREX.FR-MTF-WaddaAttarSynth-LINE.mq4 |
//|                               Copyright © 2013, www.autoforex.fr |
//|                                     E-mail: contact@autoforex.fr |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2013, AUTOFOREX.FR"
#property link      "E-mail: contact@autoforex.fr"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 SpringGreen
#property indicator_color2 OrangeRed
#property indicator_color3 White

#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 1

//---- input parameters
extern int TF1 = 0;
extern int TF2 = 30;
extern int TF3 = 240;
extern double TF1factor = 1;
extern double TF2factor = 0.4;
extern double TF3factor = 0.1;
extern int MaxBars = 2000;
extern int SmoothPeriod = 10;
extern int SmoothMode = 2;
extern int SignalPeriod = 5;
extern int SignalMode = 0;

//---- indicator buffers
double Long[];
double Short[];
double Signal[];
double SmoothLong[];
double SmoothShort[];
double SmoothSignal[];

bool start;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  int init()
  {
   start=true;
   string short_name;
   string version;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE,STYLE_DOT,1);
   
   IndicatorBuffers(6);
   SetIndexBuffer(0,SmoothLong);
   SetIndexBuffer(1,SmoothShort);
   SetIndexBuffer(2,SmoothSignal);
   SetIndexBuffer(3,Long);
   SetIndexBuffer(4,Short);
   SetIndexBuffer(5,Signal);
   
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);
   
   SetIndexDrawBegin(0,SmoothPeriod);
   SetIndexDrawBegin(1,SmoothPeriod);
   SetIndexDrawBegin(2,SignalPeriod);
   
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   
//---- name for DataWindow and indicator subwindow label
   short_name="WWW.AUTOFOREX.FR - MTF-WaddaAttarSynth-LINE";
   version=" v1.1";
   IndicatorShortName(short_name+version);
   SetIndexLabel(0,"MTF-WaddaAttarExplo_Synth");

//----


//----
   return(0);
  }

//+------------------------------------------------------------------+
//| #AF_MTF-WaddaAttarExplo_Synth                                    |
//+------------------------------------------------------------------+
int start()
  {
   double Explo1, Explo2, Explo3, Explo4, Explo5, Explo6, Signal1, Signal2, Signal3;
  //---- main loop
  if(start)
  { 
   for(int i=MaxBars; i>=0; i--)
   {
   	
     Explo1 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,0,i);
     Explo2 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,0,i);
     Explo3 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,0,i);
    
     Long[i] = Explo1*TF1factor+Explo2*TF2factor+Explo3*TF3factor;
    
      
    
     Explo4 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,1,i);
     Explo5 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,1,i);
     Explo6 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,1,i);
        
     Short[i] = Explo4*TF1factor+Explo5*TF2factor+Explo6*TF3factor;
    
    
      
     Signal1 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,2,i);
     Signal2 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,2,i);
     Signal3 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,2,i);
    
     SmoothSignal[i] = Signal1*TF1factor+Signal2*TF2factor+Signal3*TF3factor;
         
	
   }
  
   for( i=MaxBars; i>=0; i--)
   {
       SmoothLong[i] = iMAOnArray(Long,0,SmoothPeriod,0,SmoothMode,i);
       SmoothShort[i] = iMAOnArray(Short,0,SmoothPeriod,0,SmoothMode,i);
       //SmoothSignal[i] = iMAOnArray(Signal,0,SignalPeriod,0,SignalMode,i);
   }
   start=false;
}
else
{
    Explo1 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,0,0);
    Explo2 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,0,0);
    Explo3 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,0,0);
    
    Long[0] = Explo1*TF1factor+Explo2*TF2factor+Explo3*TF3factor;
    
    
    
    Explo4 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,1,0);
    Explo5 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,1,0);
    Explo6 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,1,0);
    
    Short[0] = Explo4*TF1factor+Explo5*TF2factor+Explo6*TF3factor;
    
    
      
    Signal1 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF1,150,15,15,15,false,20,false,false,false,false,2,0);
    Signal2 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF2,150,15,15,15,false,20,false,false,false,false,2,0);
    Signal3 = iCustom(NULL,0,"MTF_Waddah_Attar_ExplosionSA",TF3,150,15,15,15,false,20,false,false,false,false,2,0);
    
    SmoothSignal[0] = Signal1*TF1factor+Signal2*TF2factor+Signal3*TF3factor;
        
    SmoothLong[0] = iMAOnArray(Long,0,SmoothPeriod,0,SmoothMode,0);
    SmoothShort[0] = iMAOnArray(Short,0,SmoothPeriod,0,SmoothMode,0);
}   
	return(0);	
 }

