//+----------------------------------------------------------------------------+
//|                                                         Mhdmt_Graybelt.mq4 |
//|                                                              version 1.0.4 |
//+----------------------------------------------------------------------------+
//----
#property indicator_chart_window
#property indicator_buffers 5
//
//+----------------------------------------------------------------------------+
//| Custom indicator settings                                                  |
//+----------------------------------------------------------------------------+
#property indicator_color1 White
#property indicator_color2 Yellow
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_color5 Lime
//
//+----------------------------------------------------------------------------+
//| Custom indicator buffers                                                   |
//+----------------------------------------------------------------------------+
double G_ibuf_76[];
double G_ibuf_80[];
double G_ibuf_84[];
double G_ibuf_88[];
double G_ibuf_92[];
int Gi_unused_96 = 0;
int Gi_100 = 0;
//
//+----------------------------------------------------------------------------+
//| Custom indicator initialization function                                   |
//+----------------------------------------------------------------------------+
int init() {
   string Ls_unused_0;
   IndicatorBuffers(6);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexBuffer(0, G_ibuf_76);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexBuffer(1, G_ibuf_80);
   SetIndexStyle(2, DRAW_LINE);
   SetIndexBuffer(2, G_ibuf_84);
   SetIndexStyle(3, DRAW_LINE);
   SetIndexBuffer(3, G_ibuf_88);
   SetIndexStyle(4, DRAW_LINE);
   SetIndexBuffer(4, G_ibuf_92);
   IndicatorShortName("GRAY_BELT");
   return (0);
}
//
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function                                        |
//+----------------------------------------------------------------------------+
int start() {
   int Li_0 = IndicatorCounted();
   if (Bars <= Gi_100) return (0);
   if (Li_0 > 0) Li_0--;
   int Li_4 = Bars - Li_0;
   for (int Li_8 = 0; Li_8 < Li_4; Li_8++) {
      G_ibuf_76[Li_8] = (20.0 * (High[Li_8 + 0]) + 19.0 * (High[Li_8 + 1]) + 18.0 * (High[Li_8 + 2]) + 17.0 * (High[Li_8 + 3]) + 16.0 * (High[Li_8 + 4]) + 15.0 * (High[Li_8 +
         5]) + 14.0 * (High[Li_8 + 6]) + 13.0 * (High[Li_8 + 7]) + 12.0 * (High[Li_8 + 8]) + 11.0 * (High[Li_8 + 9]) + 10.0 * (High[Li_8 + 10]) + 9.0 * (High[Li_8 + 11]) +
         8.0 * (High[Li_8 + 12]) + 7.0 * (High[Li_8 + 13]) + 6.0 * (High[Li_8 + 14]) + 5.0 * (High[Li_8 + 15]) + 4.0 * (High[Li_8 + 16]) + 3.0 * (High[Li_8 + 17]) + 2.0 * (High[Li_8 +
         18]) + (High[Li_8 + 20])) / 210.0;
      G_ibuf_80[Li_8] = (20.0 * (Low[Li_8 + 0]) + 19.0 * (Low[Li_8 + 1]) + 18.0 * (Low[Li_8 + 2]) + 17.0 * (Low[Li_8 + 3]) + 16.0 * (Low[Li_8 + 4]) + 15.0 * (Low[Li_8 +
         5]) + 14.0 * (Low[Li_8 + 6]) + 13.0 * (Low[Li_8 + 7]) + 12.0 * (Low[Li_8 + 8]) + 11.0 * (Low[Li_8 + 9]) + 10.0 * (Low[Li_8 + 10]) + 9.0 * (Low[Li_8 + 11]) + 8.0 * (Low[Li_8 + 12]) + 7.0 * (Low[Li_8 + 13]) + 6.0 * (Low[Li_8 + 14]) + 5.0 * (Low[Li_8 + 15]) + 4.0 * (Low[Li_8 + 16]) + 3.0 * (Low[Li_8 + 17]) + 2.0 * (Low[Li_8 + 18]) + (Low[Li_8 + 20])) / 210.0;
   }
   for (Li_8 = 0; Li_8 < Li_4; Li_8++) {
      G_ibuf_84[Li_8] = iMAOnArray(G_ibuf_76, Bars, 90, 0, MODE_EMA, Li_8);
      G_ibuf_88[Li_8] = iMAOnArray(G_ibuf_80, Bars, 90, 0, MODE_EMA, Li_8);
      G_ibuf_92[Li_8] = G_ibuf_84[Li_8] - G_ibuf_88[Li_8];
   }
   return (0);
}
//
//+----------------------------------------------------------------------------+
//| Custom indicator ending function                                           |
//+----------------------------------------------------------------------------+