//+------------------------------------------------------------------+
//|                                                ADX Histogram.mq4 |
//|                               Copyright 2019, Profit On Net Inc. |
//|                                         https://www.profiton.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Profit On Net Inc."
#property link      "https://support.profiton.net"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_minimum -0.3
#property indicator_maximum 2.3
#property indicator_buffers 2
#property indicator_color1 clrLime
#property indicator_color2 clrGray

double SIG_BUFF[];
double NSIG_BUFF[];
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,SIG_BUFF);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexBuffer(1,NSIG_BUFF);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   for(int i=Bars-1; i>=0; i--)
     {
      if(iADX(Symbol(),0,7,PRICE_MEDIAN,MODE_MAIN,i)>iADX(Symbol(),0,21,PRICE_MEDIAN,MODE_MAIN,i) && 
         iADX(Symbol(),0,21,PRICE_MEDIAN,MODE_MAIN,i)>iADX(Symbol(),0,42,PRICE_MEDIAN,MODE_MAIN,i) && 
         iADX(Symbol(),0,42,PRICE_MEDIAN,MODE_MAIN,i)>iADX(Symbol(),0,89,PRICE_MEDIAN,MODE_MAIN,i) && 
         iADX(Symbol(),0,89,PRICE_MEDIAN,MODE_MAIN,i)>iADX(Symbol(),0,144,PRICE_MEDIAN,MODE_MAIN,i))
        {
         SIG_BUFF[i]=2;
         NSIG_BUFF[i]=0;
        }
      else
        {
         NSIG_BUFF[i]=2;
         SIG_BUFF[i]=0;
        }
     }

   return(rates_total);
  }
//+------------------------------------------------------------------+
