//

#property copyright "Steve Norman Ltd snorms@btinternet.com"
#property link      ""

#property indicator_chart_window

extern int LookBackBars = 2000;
extern bool MaxPipsBox = TRUE;
extern int MaxBoxPips = 15;
extern color AIMSBox = C'0x67,0x76,0x85';
extern color BigBox = LightSlateGray;
int g_bars_96;

int init() {
   return (0);
}

int deinit() {
   string ls_unused_4;
   int li_0 = ObjectsTotal();
   for (int li_12 = li_0; li_12 >= 0; li_12--) ObjectDelete("Hline" + li_12);
   ObjectDelete("Hlineend");
   Comment("");
   return (0);
}

int start() {
   int li_0;
   double ld_20;
   if (Digits == 4 || Digits == 2) li_0 = 1 / Point;
   else li_0 = 0.1 / Point;
   double price_4 = High[LookBackBars];
   double price_12 = Low[LookBackBars];
   if (Bars != g_bars_96) {
      g_bars_96 = Bars;
      for (int li_28 = LookBackBars; li_28 > 2; li_28--) {
         if (iFractals(NULL, Period(), MODE_UPPER, li_28) != 0.0) price_4 = iFractals(NULL, Period(), MODE_UPPER, li_28);
         if (iFractals(NULL, Period(), MODE_LOWER, li_28) != 0.0) price_12 = iFractals(NULL, Period(), MODE_LOWER, li_28);
         ObjectDelete("Hline" + li_28);
         ObjectCreate("Hline" + li_28, OBJ_RECTANGLE, 0, Time[li_28], price_4, Time[li_28 + 1], price_12);
         ObjectSet("Hline" + li_28, OBJPROP_COLOR, AIMSBox);
         ld_20 = (price_4 - price_12) * li_0;
         if (MaxPipsBox == TRUE && ld_20 > MaxBoxPips) ObjectSet("Hline" + li_28, OBJPROP_COLOR, BigBox);
      }
      ObjectDelete("Hlineend");
      ObjectCreate("Hlineend", OBJ_RECTANGLE, 0, Time[0], price_4, Time[li_28 + 1], price_12);
      ObjectSet("Hlineend", OBJPROP_COLOR, AIMSBox);
      if (MaxPipsBox == TRUE && ld_20 > MaxBoxPips) ObjectSet("Hlineend", OBJPROP_COLOR, BigBox);
   }
   return (0);
}