/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website: hTTP: // w ww .ME T a qUot es . N e t
   E-mail : S U P P o r t @m Et AQ Uo t e s .N e T
*/

#property indicator_separate_window
#property indicator_minimum -1.2
#property indicator_maximum 1.2
#property indicator_buffers 6
#property indicator_color1 DarkGray
#property indicator_color2 Lime
#property indicator_color3 Red
#property indicator_color4 DarkGreen
#property indicator_color5 Brown
#property indicator_color6 Black

int G_period_76 = 1;
int Gi_80 = 3;
int Gi_84 = 4;
bool Gi_88 = FALSE;
int Gi_92 = 1;
int Gi_96 = 12;
int Gi_100 = 21;
double G_ibuf_104[];
double G_ibuf_108[];
double G_ibuf_112[];
double G_ibuf_116[];
double G_ibuf_120[];
double G_ibuf_124[];
double G_ima_128 = 0.0;
double Gd_136 = 0.0;
double Gd_144 = 0.0;
double Gd_152 = 0.0;
int Gi_160 = 0;
int Gi_164 = 0;
int Gi_168 = 0;
int Gi_172 = 0;
int Gi_176 = 0;
int Gi_unused_180 = 0;
int Gi_unused_184 = 0;
int Gi_unused_188 = 0;
int Gi_unused_192 = 0;
double G_applied_price_196 = 0.0;
double G_applied_price_204 = 0.0;
int Gi_212 = 1;
int Gi_216 = 1;
double G_applied_price_220 = 0.0;
double G_applied_price_228 = 0.0;
int Gi_236 = 0;
int Gi_240 = 0;
bool Gi_244 = TRUE;
bool Gi_248 = FALSE;
bool Gi_252 = FALSE;
bool Gi_256 = FALSE;
bool Gi_260 = FALSE;
int Gi_264 = 1;
int Gi_268;
int Gi_280;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexBuffer(0, G_ibuf_104);
   SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 3);
   SetIndexBuffer(1, G_ibuf_108);
   SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_SOLID, 3);
   SetIndexBuffer(2, G_ibuf_112);
   SetIndexStyle(3, DRAW_HISTOGRAM, STYLE_SOLID, 1);
   SetIndexBuffer(3, G_ibuf_116);
   SetIndexStyle(4, DRAW_HISTOGRAM, STYLE_SOLID, 1);
   SetIndexBuffer(4, G_ibuf_120);
   SetIndexStyle(5, DRAW_NONE);
   SetIndexBuffer(5, G_ibuf_124);
   SetIndexEmptyValue(1, 0.0);
   SetIndexEmptyValue(2, 0.0);
   SetIndexEmptyValue(3, 0.0);
   SetIndexEmptyValue(4, 0.0);
   SetIndexEmptyValue(5, 0.0);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int count_32;
   int Li_40;
   int Li_44;
   double ima_48;
   double ima_56;
   double ima_64;
   double ima_72;
   int ind_counted_0 = IndicatorCounted();
   if (ind_counted_0 < 0) return (-1);
   int Li_4 = Bars - ind_counted_0;
   if (Li_4 < 0) Li_4 = 0;
   int Li_8 = 250;
   double Ld_12 = 0.0;
   double Ld_20 = 0.0;
   for (int Li_28 = Li_4; Li_28 >= 0; Li_28--) {
      Ld_20 = 0.0;
      count_32 = 0;
      for (int count_36 = 0; count_36 < Li_8; count_36++) {
         count_32++;
         Li_40 = Li_28 + count_36;
         if (Li_40 >= Bars) break;
         Ld_20 += High[Li_40] - Low[Li_40];
      }
      Ld_12 = Ld_20 / count_32 * Gi_80;
      Li_44 = Bars - Li_28;
      if (Li_44 < 0) Li_44 = 0;
      G_ima_128 = iMA(NULL, 0, G_period_76, 0, MODE_SMMA, PRICE_CLOSE, Li_28);
      if (Gi_92 == 1) G_ibuf_124[Li_28] = f0_0(G_ima_128, Gi_96, Li_28);
      if (Gi_92 == 2) G_ibuf_124[Li_28] = f0_0(iRSI(NULL, 0, 14, G_ima_128, Gi_100), Gi_100, Li_28);
      if (G_ibuf_124[Li_28] > G_ibuf_124[Li_28 + 1]) Gi_176 = 1;
      if (G_ibuf_124[Li_28] < G_ibuf_124[Li_28 + 1]) Gi_176 = 2;
      if (Li_44 <= 1) {
         if (Gd_136 == 0.0) Gd_144 = Ld_12;
         else Gd_144 = Gd_136;
         G_applied_price_196 = G_ima_128;
         G_applied_price_220 = G_ima_128;
      }
      if (Li_44 > 1) {
         if (Gi_160 > -1) {
            if (G_ima_128 < G_applied_price_196) {
               if (Gi_88 && Gi_176 == 2 && Gi_248) {
                  G_ibuf_116[Li_28 + Li_44 - Gi_212] = 0;
                  G_ibuf_104[Li_28 + Li_44 - Gi_212] = 0;
               }
               if ((!Gi_88) && Gi_248) {
                  G_ibuf_116[Li_28 + Li_44 - Gi_212] = 0;
                  G_ibuf_104[Li_28 + Li_44 - Gi_212] = 0;
               }
               G_applied_price_196 = G_ima_128;
               Gi_212 = Li_44;
               Gi_248 = TRUE;
            } else {
               if (G_ima_128 > G_applied_price_196) {
                  Gi_168 = Li_44 - Gi_212;
                  if (!Gi_88) {
                     G_ibuf_116[Li_28 + Gi_168] = -1;
                     G_ibuf_104[Li_28 + Gi_168] = -1;
                  }
                  if (Gi_88 && Gi_176 == 1) {
                     G_ibuf_116[Li_28 + Gi_168] = -1;
                     G_ibuf_104[Li_28 + Gi_168] = -1;
                     Gi_unused_180 = 1;
                  } else Gi_unused_180 = 0;
                  Gi_248 = TRUE;
                  ima_48 = iMA(NULL, 0, G_period_76, 0, MODE_SMMA, PRICE_CLOSE, Li_28 + Gi_168);
                  if (Gi_244) Gi_268 = G_ima_128 - ima_48 >= Gd_144;
                  else Gi_268 = G_ima_128 >= ima_48 * (Gd_144 / 1000.0 + 1.0);
                  if (Gi_268 && Gi_168 >= Gi_264) {
                     Gi_160 = -1;
                     G_applied_price_220 = G_ima_128;
                     Gi_236 = Li_44;
                     Gi_256 = FALSE;
                     Gi_248 = FALSE;
                  }
               }
            }
         }
         if (Gi_160 < 1) {
            if (G_ima_128 > G_applied_price_220) {
               if (Gi_88 && Gi_176 == 1 && Gi_256) {
                  G_ibuf_120[Li_28 + Li_44 - Gi_236] = 0;
                  G_ibuf_104[Li_28 + Li_44 - Gi_236] = 0;
               }
               if ((!Gi_88) && Gi_256) {
                  G_ibuf_120[Li_28 + Li_44 - Gi_236] = 0;
                  G_ibuf_104[Li_28 + Li_44 - Gi_236] = 0;
               }
               G_applied_price_220 = G_ima_128;
               Gi_236 = Li_44;
               Gi_256 = TRUE;
            } else {
               if (G_ima_128 < G_applied_price_220) {
                  Gi_168 = Li_44 - Gi_236;
                  if (!Gi_88) {
                     G_ibuf_120[Li_28 + Gi_168] = 1;
                     G_ibuf_104[Li_28 + Gi_168] = 1;
                  }
                  if (Gi_88 && Gi_176 == 2) {
                     G_ibuf_120[Li_28 + Gi_168] = 1;
                     G_ibuf_104[Li_28 + Gi_168] = 1;
                     Gi_unused_180 = 2;
                  } else Gi_unused_180 = 0;
                  Gi_256 = TRUE;
                  ima_56 = iMA(NULL, 0, G_period_76, 0, MODE_SMMA, PRICE_CLOSE, Li_28 + Gi_168);
                  if (Gi_244) Gi_268 = ima_56 - G_ima_128 >= Gd_144;
                  else Gi_268 = G_ima_128 <= ima_56 * (1 - Gd_144 / 1000.0);
                  if (Gi_268 && Gi_168 >= Gi_264) {
                     Gi_160 = 1;
                     G_applied_price_196 = G_ima_128;
                     Gi_212 = Li_44;
                     Gi_256 = FALSE;
                     Gi_248 = FALSE;
                  }
               }
            }
         }
      }
      G_ibuf_104[Li_28] = 0;
      G_ibuf_116[Li_28] = 0;
      G_ibuf_120[Li_28] = 0;
      if (Li_44 == 1) {
         if (Gd_136 == 0.0) Gd_152 = Ld_12 * Gi_84;
         else Gd_152 = Gd_136 * Gi_84;
         G_applied_price_204 = G_ima_128;
         G_applied_price_228 = G_ima_128;
      }
      if (Li_44 > 1) {
         if (Gi_164 > -1) {
            if (G_ima_128 < G_applied_price_204) {
               if (Gi_88 && Gi_176 == 2 && Gi_252) G_ibuf_108[Li_28 + Li_44 - Gi_216] = 0;
               if ((!Gi_88) && Gi_252) G_ibuf_108[Li_28 + Li_44 - Gi_216] = 0;
               G_applied_price_204 = G_ima_128;
               Gi_216 = Li_44;
               Gi_252 = TRUE;
            } else {
               if (G_ima_128 > G_applied_price_204) {
                  Gi_172 = Li_44 - Gi_216;
                  if (!Gi_88) G_ibuf_108[Li_28 + Gi_172] = -1;
                  if (Gi_88 && Gi_176 == 1) {
                     G_ibuf_108[Li_28 + Gi_172] = -1;
                     Gi_unused_184 = 1;
                  } else Gi_unused_184 = 0;
                  Gi_252 = TRUE;
                  ima_64 = iMA(NULL, 0, G_period_76, 0, MODE_SMMA, PRICE_CLOSE, Li_28 + Gi_172);
                  if (Gi_244) Gi_280 = G_ima_128 - ima_64 >= Gd_152;
                  else Gi_280 = G_ima_128 >= ima_64 * (Gd_152 / 1000.0 + 1.0);
                  if (Gi_280 && Gi_172 >= Gi_264) {
                     Gi_164 = -1;
                     G_applied_price_228 = G_ima_128;
                     Gi_240 = Li_44;
                     Gi_260 = FALSE;
                     Gi_252 = FALSE;
                  }
               }
            }
         }
         if (Gi_164 < 1) {
            if (G_ima_128 > G_applied_price_228) {
               if (Gi_88 && Gi_176 == 1 && Gi_260) G_ibuf_112[Li_28 + Li_44 - Gi_240] = 0;
               if ((!Gi_88) && Gi_260) G_ibuf_112[Li_28 + Li_44 - Gi_240] = 0;
               G_applied_price_228 = G_ima_128;
               Gi_240 = Li_44;
               Gi_260 = TRUE;
            } else {
               if (G_ima_128 < G_applied_price_228) {
                  Gi_172 = Li_44 - Gi_240;
                  if (!Gi_88) G_ibuf_112[Li_28 + Gi_172] = 1;
                  if (Gi_88 && Gi_176 == 2) {
                     G_ibuf_112[Li_28 + Gi_172] = 1;
                     Gi_unused_184 = 2;
                  } else Gi_unused_184 = 0;
                  Gi_260 = TRUE;
                  ima_72 = iMA(NULL, 0, G_period_76, 0, MODE_SMMA, PRICE_CLOSE, Li_28 + Gi_172);
                  if (Gi_244) Gi_280 = ima_72 - G_ima_128 >= Gd_152;
                  else Gi_280 = G_ima_128 <= ima_72 * (1.0 - Gd_152 / 1000.0);
                  if (Gi_280 && Gi_172 >= Gi_264) {
                     Gi_164 = 1;
                     G_applied_price_204 = G_ima_128;
                     Gi_216 = Li_44;
                     Gi_260 = FALSE;
                     Gi_252 = FALSE;
                  }
               }
            }
         }
      }
      G_ibuf_104[Li_28] = 0;
      G_ibuf_112[Li_28] = 0;
      G_ibuf_108[Li_28] = 0;
   }
   return (0);
}

// CC2576EE70B57ED872D6298A4ACE9C6B
double f0_0(double Ad_0, int Ai_8, int Ai_12) {
   if (Ai_8 < 3) return (Ad_0);
   double Ld_16 = MathExp(-4.44220826 / Ai_8);
   double Ld_24 = 2.0 * Ld_16 * MathCos(254.52 / Ai_8);
   double Ld_32 = Ld_24;
   double Ld_40 = (-Ld_16) * Ld_16;
   double Ld_48 = 1 - Ld_32 - Ld_40;
   double Ld_ret_56 = Ld_48 * Ad_0 + Ld_32 * (G_ibuf_124[Ai_12 + 1]) + Ld_40 * (G_ibuf_124[Ai_12 + 2]);
   return (Ld_ret_56);
}
