/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website:  ht T P: / / W w W . m Et aqUO TEs .N ET
   E-mail : s U p Po rt@meTaqU o TE S .N eT
*/

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

extern int PERIOD = 25;
double Gd_80 = 1.8;
extern int SL_add_pips = 168;
extern int TP_distance_pips = 323;
extern bool EmailAlerts = TRUE;
string Gs_unused_100 = "=== Text Options ===";
int Gi_108 = 10;
int Gi_112 = 10;
extern int CORNER = 0;
string G_fontname_120 = "Courier New";
int G_fontsize_128 = 0;
int Gi_132 = 255;
extern int SHIFT = 0;
int G_ma_method_140 = MODE_SMA;
int G_applied_price_144 = PRICE_CLOSE;
double G_ibuf_148[];
double G_ibuf_152[];
double G_ibuf_156[];
double G_ibuf_160[];
double G_ibuf_164[];
double G_ibuf_168[];
double G_ibuf_172[];
extern bool UseAlerts = TRUE;
datetime G_time_180;
double Gd_184 = 0.0;
double Gd_unused_192 = 30.0;
double Gd_unused_200 = 70.0;
int Gi_208 = 65280;
int Gi_212 = 255;
int Gi_216 = 15136253;
int Gi_unused_220 = 16776960;
string Gs_unused_224 = "=== Trend Box ===";
bool Gi_unused_232 = TRUE;
int Gi_236 = 15;
int Gi_240 = 10;
string Gs_unused_244 = "=== Select corner. 0=Upper Left, 1=Upper Right, 2=lower left , 3=lower right ===";
int Gi_unused_252 = 0;
string Gs_unused_256 = " ";
int G_period_264 = 14;
int G_period_268 = 1;
int G_slowing_272 = 3;
string Gs_unused_276 = "0=sma, 1=ema, 2=smma, 3=lwma";
int G_ma_method_284 = MODE_SMA;
string Gs_unused_288 = "0=high/low, 1=close/close";
int G_price_field_296 = 1;
string Gs_300 = "l";

// AA82CF3A41CEBBF1D981F099A58AD043
void f0_7(string As_0, double Ad_8, double Ad_16, double Ad_24) {
   string Ls_32;
   string Ls_40;
   string Ls_48;
   string Ls_56;
   string Ls_64;
   if (UseAlerts) {
      if (Time[0] != G_time_180) {
         G_time_180 = Time[0];
         if (Ad_24 != 0.0) Ls_48 = " at price " + DoubleToStr(Ad_24, 4);
         else Ls_48 = "";
         if (Ad_8 != 0.0) Ls_40 = ", TakeProfit on " + DoubleToStr(Ad_8, 4);
         else Ls_40 = "";
         if (Ad_16 != 0.0) Ls_32 = ", StopLoss on " + DoubleToStr(Ad_16, 4);
         else Ls_32 = "";
         Alert("PremiumFXScalper " + As_0 + Ls_48 + Ls_40 + Ls_32 + " ", Symbol(), ", ", Period(), " minutes chart");
         Ls_56 = "PremiumFXScalper  " + As_0 + Ls_48;
         Ls_64 = "PremiumFXScalper  " + As_0 + Ls_48 + Ls_40 + Ls_32 + " " + Symbol() + ", " + Period() + " minutes chart";
         if (EmailAlerts) SendMail(Ls_56, Ls_64);
      }
   }
}

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   IndicatorBuffers(7);
   SetIndexBuffer(0, G_ibuf_148);
   SetIndexBuffer(1, G_ibuf_152);
   SetIndexBuffer(2, G_ibuf_156);
   SetIndexBuffer(3, G_ibuf_160);
   SetIndexBuffer(4, G_ibuf_164);
   SetIndexBuffer(5, G_ibuf_168);
   SetIndexBuffer(6, G_ibuf_172);
   SetIndexStyle(0, DRAW_HISTOGRAM);
   SetIndexStyle(1, DRAW_HISTOGRAM);
   SetIndexLabel(0, "PremiumFXScalper ");
   SetIndexLabel(0, "PremiumFXScalper ");
   SetIndexShift(0, SHIFT);
   SetIndexShift(1, SHIFT);
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   IndicatorDigits(Digits);
   IndicatorShortName("PremiumFXScalper (" + PERIOD + ")");
   SetIndexLabel(0, "1");
   SetIndexLabel(1, "2");
   SetIndexLabel(2, "3");
   SetIndexLabel(3, "4");
   SetIndexDrawBegin(0, PERIOD - 1);
   SetIndexDrawBegin(1, PERIOD - 1);
   SetIndexDrawBegin(2, PERIOD - 1);
   SetIndexDrawBegin(3, PERIOD - 1);
   Gd_80 /= 100.0;
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
void deinit() {
   f0_6();
   ObjectDelete("Text_SIGNAL");
   WindowRedraw();
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   double close_0;
   double Ld_8;
   double Ld_16;
   int Li_24;
   if (Bars <= PERIOD) return (0);
   int ind_counted_28 = IndicatorCounted();
   if (ind_counted_28 < 0) return (-1);
   if (ind_counted_28 == 0) {
      Li_24 = Bars - PERIOD - 1;
      for (int index_32 = 0; index_32 < Bars; index_32++) {
         G_ibuf_148[index_32] = 0;
         G_ibuf_152[index_32] = 0;
      }
   } else Li_24 = Bars - ind_counted_28 - 1;
   for (int Li_36 = Li_24; Li_36 > 0; Li_36--) {
      G_ibuf_164[Li_36] = (Gd_80 / 100.0 + 1.0) * iMA(NULL, 0, PERIOD, 0, G_ma_method_140, G_applied_price_144, Li_36);
      G_ibuf_168[Li_36] = (1 - Gd_80 / 100.0) * iMA(NULL, 0, PERIOD, 0, G_ma_method_140, G_applied_price_144, Li_36);
      G_ibuf_172[Li_36] = G_ibuf_172[Li_36 + 1];
      if (Close[Li_36] > G_ibuf_164[Li_36 + 1]) G_ibuf_172[Li_36] = 1;
      if (Close[Li_36] < G_ibuf_168[Li_36 + 1]) G_ibuf_172[Li_36] = -1;
      G_ibuf_156[Li_36] = 0;
      G_ibuf_160[Li_36] = 0;
      if (G_ibuf_172[Li_36] > 0.0) {
         if (G_ibuf_168[Li_36] < G_ibuf_168[Li_36 + 1]) G_ibuf_168[Li_36] = G_ibuf_168[Li_36 + 1];
         if (G_ibuf_148[Li_36 + 1] == 0.0) Gd_184 = G_ibuf_152[Li_36 + 1] - G_ibuf_168[Li_36];
         G_ibuf_148[Li_36] = G_ibuf_168[Li_36] + Gd_184;
         if (G_ibuf_172[Li_36 + 1] < 0.0) G_ibuf_156[Li_36] = Low[Li_36] - iATR(NULL, 0, PERIOD, Li_36) / 2.0;
         G_ibuf_152[Li_36] = 0;
      } else {
         if (G_ibuf_164[Li_36] > G_ibuf_164[Li_36 + 1]) G_ibuf_164[Li_36] = G_ibuf_164[Li_36 + 1];
         G_ibuf_152[Li_36] = G_ibuf_164[Li_36];
         if (G_ibuf_172[Li_36 + 1] > 0.0) G_ibuf_160[Li_36] = High[Li_36] + iATR(NULL, 0, PERIOD, Li_36) / 2.0;
         G_ibuf_148[Li_36] = 0;
      }
      if (Li_36 == 1) {
         close_0 = Close[1];
         if (G_ibuf_156[1] != 0.0 && G_ibuf_160[1] == 0.0) {
            Ld_8 = Low[1] - SL_add_pips * Point;
            Ld_16 = close_0 + TP_distance_pips * Point;
            f0_7("Buy signal", Ld_16, Ld_8, close_0);
         }
         if (G_ibuf_160[1] != 0.0 && G_ibuf_156[1] == 0.0) {
            Ld_8 = High[1] + SL_add_pips * Point;
            Ld_16 = close_0 - TP_distance_pips * Point;
            f0_7("Sell signal", Ld_16, Ld_8, close_0);
         }
      }
   }
   string Ls_40 = "";
   if (G_ibuf_148[1] > 0.0) Ls_40 = ".";
   if (G_ibuf_152[1] > 0.0) Ls_40 = ".";
   f0_1("Text_SIGNAL", Ls_40, Gi_132, Gi_108, Gi_112, CORNER);
   f0_3();
   return (0);
}

// 25648F908BDC21257A45044512A011C9
void f0_1(string A_name_0, string A_text_8, color A_color_16, int A_x_20, int A_y_24, int A_corner_28) {
   if (ObjectFind(A_name_0) == 0 || ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0)) {
      ObjectSet(A_name_0, OBJPROP_COLOR, A_color_16);
      ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_20);
      ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_24);
      ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_28);
      ObjectSet(A_name_0, OBJPROP_FONTSIZE, G_fontsize_128);
      ObjectSetText(A_name_0, A_text_8, G_fontsize_128, G_fontname_120);
   }
}

// A5CE6C9DF9C0E6CAB704B356C5E3104A
double f0_5(int A_shift_0) {
   return (iStochastic(NULL, 0, G_period_264, G_period_268, G_slowing_272, G_ma_method_284, G_price_field_296, MODE_MAIN, A_shift_0));
}

// 2DE6AD9A4D63351A545BDCAC6EF70A99
int f0_2() {
   if (G_ibuf_148[1] != 0.0) return (0);
   if (G_ibuf_152[1] != 0.0) return (1);
   return (-1);
}

// 7F38371046549404A8A97C766EBF5636
void f0_3() {
   string Ls_4;
   string dbl2str_12;
   int Li_20;
   int Li_unused_24;
   int Li_0 = f0_2();
   if (Li_0 != -1) {
      if (Li_0 == 0) {
         Ls_4 = "Up";
         Li_20 = Gi_208;
         dbl2str_12 = DoubleToStr(f0_5(0), 0);
         Li_unused_24 = Gi_208;
      } else {
         Ls_4 = "Down";
         Li_20 = Gi_212;
         dbl2str_12 = DoubleToStr(100 - f0_5(0), 0);
         Li_unused_24 = Gi_212;
      }
      f0_4("Pair", "Pair/Currency pair: " + Symbol(), 30, 15, Gi_216, 12);
      f0_4("Trend_Power", "Trend Power: " + dbl2str_12 + "%", 30, 40, Li_20, 15);
      f0_4("Direction", "Trend Direction:", 30, 65, Gi_216, 12);
      f0_4("trend", Ls_4, 170, 65, Li_20, 12);
      f0_4("Candleclosesin", "Candle closes in: " + f0_0(), 30, 90, Gi_216, 12);
      f0_4("CurrentTime", "Current Time: " + TimeToStr(TimeCurrent(), TIME_MINUTES), 30, 115, Gi_216, 12);
      WindowRedraw();
   }
}

// 006A338B6C0194BD947574045C965E5F
string f0_0() {
   int Li_0 = Time[0] + 60 * Period();
   int Li_4 = Li_0 - TimeCurrent();
   int Li_8 = 0;
   int Li_12 = Li_4 / 60;
   if (Li_12 >= 60) {
      Li_8 = Li_12 / 60;
      Li_12 -= 60 * Li_8;
   }
   int Li_16 = Li_4 - (60 * Li_12 + 3600 * Li_8);
   string Ls_ret_20 = "";
   if (Li_8 > 0) Ls_ret_20 = Li_8 + " hours ";
   Ls_ret_20 = Ls_ret_20 + Li_12 + " min " + Li_16 + " sec";
   return (Ls_ret_20);
}

// 9DFFBF69FFBA8BC38BC4E01ABF4B1675
void f0_4(string A_name_0, string A_text_8, int Ai_16, int Ai_20, color A_color_24, int A_fontsize_28 = 8, string A_fontname_32 = "Georgia") {
   if (CORNER < 0 || CORNER > 3) return;
   A_name_0 = Gs_300 + A_name_0;
   ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(A_name_0, A_text_8, A_fontsize_28, A_fontname_32, A_color_24);
   ObjectSet(A_name_0, OBJPROP_CORNER, CORNER);
   ObjectSet(A_name_0, OBJPROP_XDISTANCE, Ai_16 + Gi_236);
   ObjectSet(A_name_0, OBJPROP_YDISTANCE, Ai_20 + Gi_240);
}

// A94A69E8E433253C2A92D41259625C0C
void f0_6() {
   f0_8(Gs_300);
}

// BC0166CC0331330BE2F112377DAC918E
void f0_8(string As_0) {
   string name_8;
   for (int Li_16 = ObjectsTotal() - 1; Li_16 >= 0; Li_16--) {
      name_8 = ObjectName(Li_16);
      if (StringFind(name_8, As_0) != -1) ObjectDelete(name_8);
   }
}
