//+------------------------------------------------------------------+
//| FirstIndicator.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
//---- input parameters
extern int a=14;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

double b4plusdi,b4minusdi,nowplusdi,nowminusdi;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW,EMPTY);
SetIndexArrow(0,233);
SetIndexBuffer(0, ExtMapBuffer1);

SetIndexStyle(1,DRAW_ARROW,EMPTY);
SetIndexArrow(1,234);
SetIndexBuffer(1, ExtMapBuffer2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
ObjectDelete("up cross"); 
ObjectDelete("down cross"); 


//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);

//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=1000-counted_bars;
//---- macd counted in the 1-st buffer

 for(int i=limit; i>=0; i--)
{
   b4plusdi=iADX(NULL,0,a,PRICE_CLOSE,MODE_PLUSDI,i-1);
   nowplusdi=iADX(NULL,0,a,PRICE_CLOSE,MODE_PLUSDI,i);
   
   b4minusdi=iADX(NULL,0,a,PRICE_CLOSE,MODE_MINUSDI,i-1);
   nowminusdi=iADX(NULL,0,a,PRICE_CLOSE,MODE_MINUSDI,i);
    
 if(b4plusdi>b4minusdi &&
         nowplusdi<nowminusdi)
     //       {
            ExtMapBuffer1[i]=Low[i]-5*Point;
      //      }
 if(b4plusdi<b4minusdi &&
         nowplusdi>nowminusdi)
      //   {
            ExtMapBuffer2[i]=High[i]+5*Point;
     //    }
}
//----
return(0);
}


