Author: MNS777
Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
i1AMA
//+------------------------------------------------------------------+
//| Web:                                                   i1AMA.mq4 |
//|                                                           MNS777 |
//|                                                mns777.ru@mail.ru |
//+------------------------------------------------------------------+
#property copyright "MNS777"
#property link      "Web:" 
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color2 Blue
//---- Âíåøíèå ïàðàìåòðû
extern int PeriodMA = 3;
extern int KMA = 1;
extern int ShiftMA = 0 ;
extern int ModeMA = 0 ;// 0 = SMA, 1 = EMA, 2 = SMMA, 3 = LWMA
extern int PriceMA = 0 ;  // 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = HL/2, 5 = HLC/3, 6 = HLCC/4

extern int ToProcess = 20000;
//---- Áóôåðû èíäèêàòîðà
double IndexBuffer1[];
double IndexBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,IndexBuffer1);
   SetIndexStyle( 0, DRAW_NONE);
   SetIndexBuffer(1,IndexBuffer2);
   SetIndexStyle(1,DRAW_LINE);
     
   IndicatorShortName("i1AMA");
   SetIndexLabel(0,"Áàðû");
   SetIndexLabel(1,"i1AMA");
         
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
     int limit,i,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,pma;
     int counted_bars=IndicatorCounted();
        
  //---- ïðîâåðêà íà âîçìîæíûå îøèáêè
     if(counted_bars<0) return(-1);

  //---- ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
     if(counted_bars>0) counted_bars--;
     limit=Bars-counted_bars;
     
     if(limit>ToProcess)
      limit=ToProcess;
//---- îñíîâíîé öèêë
     for(i=limit;i>=0;i--)
{
 
 if(i==ToProcess)
 IndexBuffer1[i]=1;
 else if(Close[i]>High[i+1]&&IndexBuffer1[i+1]<0)
 IndexBuffer1[i]=1;
 else if(Close[i]<Low[i+1]&&IndexBuffer1[i+1]>0)
 IndexBuffer1[i]=-1;
 else if(IndexBuffer1[i+1]>0)
 IndexBuffer1[i]=IndexBuffer1[i+1]+1;
 else if(IndexBuffer1[i+1]<0)
 IndexBuffer1[i]=IndexBuffer1[i+1]-1;
 
 a0=MathAbs(IndexBuffer1[i]);
 a1=MathAbs(IndexBuffer1[i+a0]);
 a2=MathAbs(IndexBuffer1[i+a0+a1]);
 a3=MathAbs(IndexBuffer1[i+a0+a1+a2]);
 a4=MathAbs(IndexBuffer1[i+a0+a1+a2+a3]);
 a5=MathAbs(IndexBuffer1[i+a0+a1+a2+a3+a4]);
 a6=MathAbs(IndexBuffer1[i+a0+a1+a2+a3+a4+a5]);
 a7=MathAbs(IndexBuffer1[i+a0+a1+a2+a3+a4+a5+a6]);
 a8=MathAbs(IndexBuffer1[i+a0+a1+a2+a3+a4+a5+a6+a7]);
 a9=MathAbs(IndexBuffer1[i+a0+a1+a2+a3+a4+a5+a6+a7+a8]);
 
 if(PeriodMA==1)
 pma=a0;
 if(PeriodMA==2)
 pma=a0+a1;
 if(PeriodMA==3)
 pma=a0+a1+a2;
 if(PeriodMA==4)
 pma=a0+a1+a2+a3;
 if(PeriodMA==5)
 pma=a0+a1+a2+a3+a4;
 if(PeriodMA==6)
 pma=a0+a1+a2+a3+a4+a5;
 if(PeriodMA==7)
 pma=a0+a1+a2+a3+a4+a5+a6;
 if(PeriodMA==8)
 pma=a0+a1+a2+a3+a4+a5+a6+a7;
 if(PeriodMA==9)
 pma=a0+a1+a2+a3+a4+a5+a6+a7+a8;
 
 IndexBuffer2[i]=iMA(NULL,0,pma*KMA,ShiftMA,ModeMA,PriceMA,i);
    
} 
}
//----
   return(0);
  

Comments