Xma_col[1]





//+------------------------------------------------------------------+
//|                                                          Xma.mq4 |
//|                 Copyright © 2009, XrustSolution. Toys from Vinin.|
//|              http://www.xrust.ucoz.net  http://www.vinin.ucoz.ru |
//|                  xrust@land.ru  xrust@gmail.com  xrust@mksat.net |
//|      Õîòü äàííàÿ ïðîãðàììà è ÿâëÿåòñÿ ñâîáîäíî ðàñïðîñòðàíÿåìîé, |
//|           ïóáëèêàöèÿ åå áåç óêàçàíèÿ íà ïåðâîèñòî÷íèê çàïðåùåíà  |   
//-------------------------------------------------------------------+
//mod col granit http://codebase.mql4.com/ru/5899

#property copyright "#Copyright © 2008, XrustSolution.#"
#property link      "#http://www.xrust.ucoz.net#"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Red

extern int period=12;
extern int porog =3;
extern int metod =1;
extern int metod2=1;
extern int prise =0;
//---- buffers
double Signal[];
double Up[];
double Dn[];
//+------------------------------------------------------------------+
void init(){

   SetIndexBuffer(0,Signal);
   SetIndexBuffer(1,Dn);
   SetIndexBuffer(2,Up);

   IndicatorShortName("Xma_color"+period+porog);
return;} 
//+------------------------------------------------------------------+
int start() {
   int limit;
   double tmp1,tmp2;
   int counted_bars=IndicatorCounted();
   int i;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for (i = limit;i>=0;i--){
     tmp1=iMA(Symbol(),0,period,0,metod,prise,i);
     tmp2=iMA(Symbol(),0,period,1,metod2,prise,i);
     if(MathAbs(tmp1-tmp2)>=porog*Point)
       Signal[i]=tmp2;
     else
       Signal[i]=Signal[i+1];
    
    
                                             Up[i]=EMPTY_VALUE;   Dn[i]=EMPTY_VALUE;


         if (Signal[i]<Signal[i+1])    {  
 
               if (Dn[i+2]==EMPTY_VALUE)  {  Dn[i]=Signal[i];     Dn[i+1]=Signal[i+1]; }
               else                       {  Up[i]=Signal[i];     Up[i+1]=Signal[i+1]; }

                                       }

          if (Signal[i]==Signal[i+1])  {     Up[i]=Up[i+1];       Dn[i]=Dn[i+1];  }
 
 
 
 
   }


   return(0);
}



Sample





Analysis



Market Information Used:



Indicator Curves created:



Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: