/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website:  ht TP : / /wWw .M E t A qUOtEs. N eT
   E-mail :  s u p Po Rt@m e T a QuOte s . net
*/
#property copyright "Copyright © 2013, Lucifer"
#property link      "Hell_Underground"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

double Gda_76[];
double Gda_80[];
extern int Numberofbars = 2000;
extern int FasterEMA = 5;
extern int SlowerEMA = 200;
extern int RSIPeriod = 12;
extern int CCIPeriod = 21;
extern int STKPeriod = 5;
extern int STDPeriod = 3;
extern int STSlowing = 2;
extern int STOBought = 60;
extern int STOVSold = 40;
extern int ADXPeriod = 34;
extern int BULSPeriod = 50;
extern int BEARPeriod = 50;
extern int BollingerbandsPeriod = 20;
extern int BollingerbandsShift = 0;
extern double BollingerbandsDeviation = 1.6;
extern bool Alerts = TRUE;
extern double Indent = 0.5;
bool Gi_156 = FALSE;
bool Gi_160 = FALSE;
bool Gi_164 = FALSE;
bool Gi_168 = FALSE;
bool Gi_172 = FALSE;
bool Gi_176 = FALSE;
bool Gi_180 = FALSE;
bool Gi_184 = FALSE;
bool Gi_188 = FALSE;
bool Gi_192 = FALSE;
bool Gi_196 = FALSE;
bool Gi_200 = FALSE;
bool Gi_204 = FALSE;
bool Gi_208 = FALSE;
int Gi_212 = 0;
bool Gi_216 = FALSE;
bool Gi_220 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 221);
   SetIndexDrawBegin(0, Bars - Numberofbars);
   SetIndexBuffer(0, Gda_76);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 222);
   SetIndexDrawBegin(1, Bars - Numberofbars);
   SetIndexBuffer(1, Gda_80);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int Li_8;
   double Ld_12;
   double Ld_20;
   double Ld_28;
   double Ld_36;
   double Ld_44;
   double Ld_52;
   double Ld_60;
   double Ld_68;
   double Ld_76;
   double Ld_84;
   double Ld_92;
   double Ld_100;
   double Ld_108;
   double Ld_116;
   double Ld_124;
   double Ld_132;
   double Ld_140;
   double Ld_148;
   double Ld_156;
   double Ld_164;
   double Ld_172;
   double Ld_180;
   double Ld_192;
   double Ld_200;
   double Ld_208;
   double Ld_216;
   int Li_188 = IndicatorCounted();
   if (Li_188 < 0) return (-1);
   if (Li_188 > 0) Li_188--;
   int Li_0 = Bars - Li_188;
   for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) {
      Li_8 = Li_4;
      Ld_172 = 0;
      Ld_180 = 0;
      for (Li_8 = Li_4; Li_8 <= Li_4 + 21; Li_8++) Ld_180 += MathAbs(High[Li_8+1] - Low[Li_8+1]);
      Ld_172 = Ld_180 / 10.0;
      Ld_12 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_OPEN, Li_4);
      Ld_28 = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_OPEN, Li_4 + 1);
      Ld_20 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, Li_4);
      Ld_36 = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, Li_4 + 1);
      Ld_44 = iRSI(NULL, 0, RSIPeriod, PRICE_OPEN, Li_4);
      Ld_52 = iRSI(NULL, 0, RSIPeriod, PRICE_OPEN, Li_4 + 1);
      Ld_60 = iCCI(NULL, 0, CCIPeriod, PRICE_OPEN, Li_4);
      Ld_68 = iCCI(NULL, 0, CCIPeriod, PRICE_OPEN, Li_4 + 1);
      Ld_76 = iStochastic(NULL, 0, STKPeriod, STDPeriod, STSlowing, MODE_SMA, 0, MODE_MAIN, Li_4);
      Ld_92 = iStochastic(NULL, 0, STKPeriod, STDPeriod, STSlowing, MODE_SMA, 0, MODE_MAIN, Li_4 + 1);
      Ld_84 = iStochastic(NULL, 0, STKPeriod, STDPeriod, STSlowing, MODE_SMA, 0, MODE_SIGNAL, Li_4);
      Ld_100 = iStochastic(NULL, 0, STKPeriod, STDPeriod, STSlowing, MODE_SMA, 0, MODE_SIGNAL, Li_4 + 1);
      Ld_108 = iADX(NULL, 0, ADXPeriod, PRICE_OPEN, MODE_PLUSDI, Li_4 + 1);
      Ld_124 = iADX(NULL, 0, ADXPeriod, PRICE_OPEN, MODE_PLUSDI, Li_4);
      Ld_116 = iADX(NULL, 0, ADXPeriod, PRICE_OPEN, MODE_MINUSDI, Li_4 + 1);
      Ld_132 = iADX(NULL, 0, ADXPeriod, PRICE_OPEN, MODE_MINUSDI, Li_4);
      Ld_140 = iBullsPower(NULL, 0, BULSPeriod, PRICE_OPEN, Li_4);
      Ld_148 = iBullsPower(NULL, 0, BULSPeriod, PRICE_OPEN, Li_4 + 1);
      Ld_156 = iBearsPower(NULL, 0, BEARPeriod, PRICE_OPEN, Li_4);
      Ld_164 = iBearsPower(NULL, 0, BEARPeriod, PRICE_OPEN, Li_4 + 1);
      Ld_192 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_OPEN, MODE_UPPER, Li_4);
      Ld_200 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_OPEN, MODE_LOWER, Li_4);
      Ld_208 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_OPEN, MODE_UPPER, Li_4 + 1);
      Ld_216 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_OPEN, MODE_LOWER, Li_4 + 1);
      if (Close[Li_4 + 1] > Ld_192 && Close[Li_4 + 1] >= Ld_208) {
         Gi_204 = FALSE;
         Gi_208 = TRUE;
      }
      if (Close[Li_4 + 1] < Ld_200 && Close[Li_4 + 1] <= Ld_216) {
         Gi_204 = TRUE;
         Gi_208 = FALSE;
      }
      if (Ld_140 > 0.0 && Ld_148 > Ld_140) {
         Gi_176 = FALSE;
         Gi_200 = TRUE;
      }
      if (Ld_156 < 0.0 && Ld_164 < Ld_156) {
         Gi_176 = TRUE;
         Gi_200 = FALSE;
      }
      if (Ld_108 < Ld_116 && Ld_124 > Ld_132) {
         Gi_172 = TRUE;
         Gi_196 = FALSE;
      }
      if (Ld_108 > Ld_116 && Ld_124 < Ld_132) {
         Gi_172 = FALSE;
         Gi_196 = TRUE;
      }
      if (Ld_76 > Ld_84 && Ld_92 < Ld_100 || Ld_76 > STOVSold && Ld_92 < STOVSold || Ld_84 > STOVSold && Ld_100 < STOVSold) {
         Gi_168 = TRUE;
         Gi_192 = FALSE;
      }
      if (Ld_76 < Ld_84 && Ld_92 > Ld_100 || Ld_76 < STOBought && Ld_92 > STOBought || Ld_84 < STOBought && Ld_92 > STOBought) {
         Gi_168 = FALSE;
         Gi_192 = TRUE;
      }
      if (Ld_60 > -100.0 && Ld_68 < -100.0) {
         Gi_164 = TRUE;
         Gi_188 = FALSE;
      }
      if (Ld_60 < 100.0 && Ld_68 > 100.0) {
         Gi_164 = FALSE;
         Gi_188 = TRUE;
      }
      if (Ld_44 > 50.0 && Ld_52 < 50.0) {
         Gi_160 = TRUE;
         Gi_184 = FALSE;
      }
      if (Ld_44 < 50.0 && Ld_52 > 50.0) {
         Gi_160 = FALSE;
         Gi_184 = TRUE;
      }
      if (Ld_12 > Ld_20 && Ld_28 < Ld_36) {
         Gi_156 = TRUE;
         Gi_180 = FALSE;
      }
      if (Ld_12 < Ld_20 && Ld_28 > Ld_36) {
         Gi_156 = FALSE;
         Gi_180 = TRUE;
      }
      if (Gi_156 == TRUE && Gi_160 == TRUE && Gi_164 == TRUE && Gi_168 == TRUE && Gi_172 == TRUE && Gi_176 && Gi_204 == TRUE && Gi_212 != 1) {
         Gda_76[Li_4] = Low[Li_4] - Indent * Ld_172;
         if (Li_4 <= 2 && Alerts && (!Gi_216)) {
            Alert(Symbol(), " ", Period(), "BUY");
            Gi_216 = TRUE;
            Gi_220 = FALSE;
         }
         Gi_212 = 1;
      } else {
         if (Gi_180 == TRUE && Gi_184 == TRUE && Gi_188 == TRUE && Gi_192 == TRUE && Gi_196 == TRUE && Gi_200 && Gi_208 == TRUE && Gi_212 != 2) {
            Gda_80[Li_4] = High[Li_4] + Indent * Ld_172;
            if (Li_4 <= 2 && Alerts && (!Gi_220)) {
               Alert(Symbol(), " ", Period(), "SELL");
               Gi_220 = TRUE;
               Gi_216 = FALSE;
            }
            Gi_212 = 2;
         }
      }
   }
   return (0);
}
