/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website:  hTTP :/ / WWw .MEta Qu Ot E S.n e t
   E-mail :  s U pp OrT@ ME ta Q Uo T e s. N e T
*/
#property copyright "TRUE BREAKOUT SYSTEM 2013"
#property link      "http://fxquickroute.wordpress.com"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LightGreen
#property indicator_color2 Tomato
#property indicator_color3 Gray
#property indicator_color4 Gray

extern int Limit_Period = 240;
double G_ibuf_80[];
double G_ibuf_84[];
double G_ibuf_88[];
double G_ibuf_92[];

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   if (MathMod(Limit_Period, 2) == 0.0) Limit_Period++;
   SetIndexBuffer(0, G_ibuf_80);
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 158);
   SetIndexBuffer(1, G_ibuf_84);
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 158);
   SetIndexBuffer(2, G_ibuf_88);
   SetIndexStyle(2, DRAW_ARROW);
   SetIndexArrow(2, 158);
   SetIndexBuffer(3, G_ibuf_92);
   SetIndexStyle(3, DRAW_ARROW);
   SetIndexArrow(3, 158);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   bool Li_16;
   double Ld_20;
   int Li_0 = Limit_Period / 2;
   int Li_12 = IndicatorCounted();
   if (Li_12 < 0) return (-1);
   if (Li_12 > 0) Li_12--;
   int Li_8 = MathMin(MathMax(Bars - Li_12, Limit_Period), Bars - 1);
   for (int Li_4 = Li_8; Li_4 >= 0; Li_4--) {
      Li_16 = TRUE;
      Ld_20 = High[Li_4];
      for (int Li_28 = 1; Li_28 <= Li_0; Li_28++) {
         if (Li_4 + Li_28 < Bars && High[Li_4 + Li_28] > Ld_20) {
            Li_16 = FALSE;
            break;
         }
         if (Li_4 - Li_28 >= 0 && High[Li_4 - Li_28] >= Ld_20) {
            Li_16 = FALSE;
            break;
         }
      }
      if (Li_16) G_ibuf_80[Li_4] = High[Li_4] + iATR(NULL, 0, 20, Li_4) / 4.0;
      else G_ibuf_80[Li_4] = G_ibuf_80[Li_4 + 1];
      Li_16 = TRUE;
      Ld_20 = High[Li_4];
      for (Li_28 = 1; Li_28 <= Li_0; Li_28++) {
         if (Li_4 + Li_28 < Bars && High[Li_4 + Li_28] > Ld_20) {
            Li_16 = FALSE;
            break;
         }
         if (Li_4 - Li_28 >= 0 && High[Li_4 - Li_28] >= Ld_20) {
            Li_16 = FALSE;
            break;
         }
      }
      if (Li_16) G_ibuf_88[Li_4] = High[Li_4] - iATR(NULL, 0, 20, Li_4);
      else G_ibuf_88[Li_4] = G_ibuf_88[Li_4 + 1];
      Li_16 = TRUE;
      Ld_20 = Low[Li_4];
      for (Li_28 = 1; Li_28 <= Li_0; Li_28++) {
         if (Li_4 + Li_28 < Bars && Low[Li_4 + Li_28] < Ld_20) {
            Li_16 = FALSE;
            break;
         }
         if (Li_4 - Li_28 >= 0 && Low[Li_4 - Li_28] <= Ld_20) {
            Li_16 = FALSE;
            break;
         }
      }
      if (Li_16) G_ibuf_84[Li_4] = Low[Li_4] - iATR(NULL, 0, 20, Li_4) / 4.0;
      else G_ibuf_84[Li_4] = G_ibuf_84[Li_4 + 1];
      Li_16 = TRUE;
      Ld_20 = Low[Li_4];
      for (Li_28 = 1; Li_28 <= Li_0; Li_28++) {
         if (Li_4 + Li_28 < Bars && Low[Li_4 + Li_28] < Ld_20) {
            Li_16 = FALSE;
            break;
         }
         if (Li_4 - Li_28 >= 0 && Low[Li_4 - Li_28] <= Ld_20) {
            Li_16 = FALSE;
            break;
         }
      }
      if (Li_16) G_ibuf_92[Li_4] = Low[Li_4] + iATR(NULL, 0, 20, Li_4);
      else G_ibuf_92[Li_4] = G_ibuf_92[Li_4 + 1];
   }
   return (0);
}
