Xma_3col[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 3col 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 5
#property indicator_color1 Yellow
#property indicator_color2 Blue
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 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[];
double Up1[];
double Dn1[];
//+------------------------------------------------------------------+
void init(){

   SetIndexBuffer(0,Signal);
   SetIndexBuffer(1,Up1);
   SetIndexBuffer(2,Up);
   SetIndexBuffer(3,Dn1);
   SetIndexBuffer(4,Dn);

   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; 
                                             Up1[i]=EMPTY_VALUE; Dn1[i]=EMPTY_VALUE;


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

                                       }


         if (Signal[i]>Signal[i+1])     {  
 
               if (Up[i+2]!=EMPTY_VALUE)  {  Up1[i]=Signal[i];     Up1[i+1]=Signal[i+1]; }
               else                       {  Up[i] =Signal[i];     Up[i+1] =Signal[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: