#property copyright "Copyright © 2012 Vergil Software Inc"
#property link      "Vergil"

extern string SOFTWARE_DEVELOPMENT = "------------ VERGIL SOFTWARE INC -----------";
extern string INFORMATION_1 = "+++ Risk Level +++";
extern double LotSize = 0.1;
extern bool ClimbLot = TRUE;
extern double Risk = 10.0;
extern string INFORMATION_2 = "+++ License Key +++";
extern int License_Key = 0;
extern int Elite_Code = 0;
extern string INFORMATION_3 = "+++ Magic Number +++";
extern int Magic = 0;
int gi_140 = 7;
int gi_144 = 8;
bool gi_148 = TRUE;
bool gi_152 = FALSE;
bool gi_156 = FALSE;
bool gi_160 = FALSE;
bool gi_164 = TRUE;
bool gi_168 = TRUE;
bool gi_172 = TRUE;
bool gi_176 = TRUE;
double gd_180;
bool gi_188 = FALSE;
bool gi_192 = FALSE;
bool gi_196 = FALSE;
double gd_200;
bool gi_208 = FALSE;
bool gi_212 = FALSE;
double gd_216;
int gi_224;
int gi_228;
double gd_232;
string gs_240;
int gi_248;
double gd_252;
int gi_260;
double gd_264;
int gi_272;
string gs_276 = "VERGIL_EA";
int gi_284 = 0;
double gd_288 = 0.01;
double gd_296 = 0.01;
double gd_304 = 0.01;
int gi_312 = 100000;
double gd_316 = 1000.0;
double gd_324 = 1.0;
double gd_332;
bool gi_340;
int gi_344;
int gi_348;
int gi_352;
int gi_356;
int gi_360;
int gi_364 = Green;
int gi_368 = Red;
int gi_372 = DodgerBlue;
int gi_376 = DeepPink;
bool gi_380 = TRUE;
string gs_384 = "alert.wav";
int gi_392 = 1;
bool gi_396 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
void init() {
   gd_200 = MarketInfo(Symbol(), MODE_MINLOT);
   gd_252 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (IsTesting() && (!IsVisualMode())) gi_208 = FALSE;
   if (!gi_208) Comment("");
   gs_240 = Symbol();
   if (Digits < 4) {
      gd_216 = 0.01;
      gi_224 = 2;
      gd_232 = 0.009;
   } else {
      gd_216 = 0.0001;
      gi_224 = 4;
      gd_232 = 0.00009;
   }
   if (Digits == 4) gi_228 = 1;
   if (Digits == 5) gi_228 = 10;
   if (Digits == 3) gi_228 = 10;
   if (Digits == 2) gi_228 = 1.0;
   gi_248 = 2.0 * MathPow(10, Digits - gi_224);
   gi_260 = 3.0 * MathPow(10, Digits - gi_224);
   gd_264 = NormalizeDouble(4.0 * gd_216, gi_224 + 1);
   gd_288 = MarketInfo(Symbol(), MODE_MINLOT);
   gd_296 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (gd_296 > 100.0) gd_296 = 100;
   gi_312 = MarketInfo(Symbol(), MODE_LOTSIZE);
   gd_304 = MarketInfo(Symbol(), MODE_LOTSTEP);
   gd_316 = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   double ld_0 = 0;
   if (StringSubstr(AccountCurrency(), 0, 3) == "EUR") {
      ld_0 = MarketInfo("EURUSD" + StringSubstr(Symbol(), 6), MODE_BID);
      if (ld_0 > 0.1) gd_324 = 1 / ld_0;
      else gd_324 = 0.7042253521;
   }
   gi_340 = TRUE;
   gi_344 = 5;
   gi_348 = 99;
   gi_352 = 95;
   gi_356 = 90;
   gi_360 = 10;
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   bool li_0 = FALSE;
   if (Hour() >= 0 && Hour() < 6 && 0) li_0 = TRUE;
   if (DayOfWeek() >= 5 && Hour() >= 14 && gi_212 == TRUE) li_0 = TRUE;
   if (DayOfWeek() <= 1 && Hour() <= 1 && gi_212 == TRUE) li_0 = TRUE;
   if (li_0 == TRUE) {
      ObjectCreate("P", OBJ_LABEL, 0, 0, 0, 0, 0);
      ObjectSet("P", OBJPROP_CORNER, 2);
      ObjectSet("P", OBJPROP_YDISTANCE, 75);
      ObjectSet("P", OBJPROP_XDISTANCE, 10);
      ObjectSetText("P", " ", 20, "Tahoma", Red);
   }
   if (li_0 == FALSE) ObjectDelete("P");
   f0_11();
   f0_12();
   f0_13(li_0);
   if (Ask - Bid > 4.0 * Point * gi_228) {
      ObjectCreate("Spread", OBJ_LABEL, 0, 0, 0, 0, 0);
      ObjectSet("Spread", OBJPROP_CORNER, 2);
      ObjectSet("Spread", OBJPROP_YDISTANCE, 45);
      ObjectSet("Spread", OBJPROP_XDISTANCE, 10);
      ObjectSetText("Spread", "Vegil Detect: High Spread - Pips " + DoubleToStr((Ask - Bid) / Point, 0), 12, "Tahoma", Red);
   }
   if (Ask - Bid < 4.0 * Point * gi_228) ObjectDelete("Spread");
   if (iVolume(Symbol(), PERIOD_M1, 0) > 5.0 && 1) return (0);
   if ((!gi_160) && 1) gd_332 = MathMax(gd_288, MathMin(gd_296, MathCeil(MathMin(50, 2) / gd_324 / 100.0 * AccountFreeMargin() / gd_304 / (gi_312 / 100)) * gd_304));
   if (gi_160 && 1) gd_332 = f0_10();
   if (DayOfWeek() == 1 && iVolume(NULL, PERIOD_D1, 0) < 5.0) return (0);
   if (StringLen(gs_240) < 6) return (0);
   if ((!IsTesting()) && IsStopped()) return (0);
   if ((!IsTesting()) && !IsTradeAllowed()) return (0);
   if ((!IsTesting()) && IsTradeContextBusy()) return (0);
   HideTestIndicators(FALSE);
   if (li_0 == FALSE) f0_3();
   return (0);
}

// 50257C26C4E5E915F022247BABD914FE
void f0_3() {
   if (f0_9() != 0) {
      gi_272 = 1;
      return;
   }
   gi_272 = 0;
   if (f0_6() && f0_5() && gi_172) f0_4(OP_BUY);
   if (f0_8() && f0_5() && gi_176) f0_4(OP_SELL);
}

// 5710F6E623305B2C1458238C9757193B
int f0_4(int ai_0) {
   int li_4;
   double ld_8;
   color li_16;
   int li_20;
   int li_24;
   string ls_28;
   double ld_36;
   double ld_44;
   double ld_52;
   int li_60 = 0;
   int li_64 = 0;
   int li_68 = 0;
   int li_72 = 0;
   int li_76 = 0;
   int li_80 = 0;
   for (int li_84 = OrdersTotal() - 1; li_84 >= 0; li_84--) {
      if (OrderSelect(li_84, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol()) {
         if (OrderType() == OP_BUYLIMIT && OrderMagicNumber() == gi_140) li_60 = 1;
         if (OrderType() == OP_SELLLIMIT && OrderMagicNumber() == gi_140) li_64 = 1;
         if (OrderType() == OP_SELLSTOP && OrderMagicNumber() == gi_140) li_72 = 1;
         if (OrderType() == OP_BUYSTOP && OrderMagicNumber() == gi_140) li_68 = 1;
      }
   }
   bool li_88 = FALSE;
   bool li_92 = FALSE;
   double ld_96 = NormalizeDouble(33.0 * gd_216, gi_224);
   double ld_104 = NormalizeDouble(120.0 * gd_216, gi_224);
   if (gi_284 > 0) {
      MathSrand(TimeLocal());
      li_4 = MathRand() % gi_284;
      Sleep(1000 * li_4);
   }
   double ld_112 = gd_332;
   if (LotSize > 0.0) ld_112 = LotSize;
   if (AccountFreeMarginCheck(gs_240, ai_0, ld_112) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) {
      if (!gi_196) return (-1);
      return (-1);
   }
   RefreshRates();
   if (ai_0 == OP_BUY) {
      li_88 = TRUE;
      ld_36 = NormalizeDouble(Ask, Digits);
      li_16 = gi_364;
      if (!gi_148) {
         ld_44 = NormalizeDouble(ld_36 + ld_96, Digits);
         ld_52 = NormalizeDouble(ld_36 - ld_104, Digits);
      } else {
         ld_44 = 0;
         ld_52 = 0;
      }
   } else {
      li_92 = TRUE;
      ld_36 = NormalizeDouble(Bid, Digits);
      li_16 = gi_368;
      if (!gi_148) {
         ld_44 = NormalizeDouble(ld_36 - ld_96, Digits);
         ld_52 = NormalizeDouble(ld_36 + ld_104, Digits);
      } else {
         ld_44 = 0;
         ld_52 = 0;
      }
   }
   int li_120 = 1;
   while (li_120 > 0 && f0_5()) {
      if (ClimbLot) {
         gd_180 = MathFloor(AccountEquity() * Risk / 10000.0);
         if (gd_180 == 0.0) gd_180 = 1;
         ld_112 = NormalizeDouble(ld_112 * gd_180, 2);
         if (ld_112 < gd_200) ld_112 = gd_200;
         if (ld_112 > gd_252) ld_112 = gd_252;
      }
      if (gi_164 == TRUE && li_88 == TRUE) OrderSend(gs_240, OP_BUY, ld_112, NormalizeDouble(Ask, Digits), gi_248, 0, 0, gs_276, gi_140, 0, li_16);
      if (gi_164 == TRUE && li_92 == TRUE) OrderSend(gs_240, OP_SELL, ld_112, NormalizeDouble(Bid, Digits), gi_248, 0, 0, gs_276, gi_140, 0, li_16);
      Sleep(MathRand() / 1000);
      if (li_20 < 0) {
         li_24 = GetLastError();
         if (gi_196) {
            if (ai_0 == OP_BUY) ls_28 = "OP_BUY";
            else ls_28 = "OP_SELL";
         }
         if (li_24 != 136/* OFF_QUOTES */) break;
         if (!(gi_396)) break;
         Sleep(6000);
         RefreshRates();
         if (ai_0 == OP_BUY) ld_8 = NormalizeDouble(Ask, Digits);
         else ld_8 = NormalizeDouble(Bid, Digits);
         if (NormalizeDouble(MathAbs((ld_8 - ld_36) / gd_216), 0) > gi_392) break;
         ld_36 = ld_8;
         li_120--;
         if (li_120 > 0)
            if (gi_192) Print("");
      } else {
         if (OrderSelect(li_20, SELECT_BY_TICKET)) ld_36 = OrderOpenPrice();
         if (!(gi_380)) break;
         PlaySound(gs_384);
         break;
      }
   }
   return (li_20);
}

// AA5EA51BFAC7B64E723BF276E0075513
void f0_12() {
   bool li_0;
   int li_4;
   int li_8;
   string ls_12;
   int li_20 = OrdersTotal() - 1;
   for (int li_24 = li_20; li_24 >= 0; li_24--) {
      if (OrderSelect(li_24, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderType() == OP_BUY) {
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
               li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - 120.0 * Point * gi_228, Digits), NormalizeDouble(OrderOpenPrice() + 33.0 * Point * gi_228,
                  Digits), 0, Blue);
            }
         }
         if (OrderType() == OP_SELL) {
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() == 0.0 && OrderTakeProfit() == 0.0) {
               li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + 120.0 * Point * gi_228, Digits), NormalizeDouble(OrderOpenPrice() - 33.0 * Point * gi_228,
                  Digits), 0, Blue);
            }
         }
         if (OrderType() == OP_BUY)
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() == 0.0 && OrderTakeProfit() != 0.0) li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - 120.0 * Point * gi_228, Digits), OrderTakeProfit(), 0, Blue);
         if (OrderType() == OP_SELL)
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() == 0.0 && OrderTakeProfit() != 0.0) li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + 120.0 * Point * gi_228, Digits), OrderTakeProfit(), 0, Blue);
         if (OrderType() == OP_BUY)
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() != 0.0 && OrderTakeProfit() == 0.0) li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(OrderOpenPrice() + 33.0 * Point * gi_228, Digits), 0, Blue);
         if (OrderType() == OP_SELL)
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240 && OrderStopLoss() != 0.0 && OrderTakeProfit() == 0.0) li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble(OrderOpenPrice() - 33.0 * Point * gi_228, Digits), 0, Blue);
         if (OrderType() == OP_BUY) {
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240) {
               if (Bid - OrderOpenPrice() > 15.0 * gd_216 && MathAbs(OrderOpenPrice() + 14.0 * gd_216 - OrderStopLoss()) >= Point && NormalizeDouble(OrderOpenPrice() + 14.0 * gd_216,
                  Digits) - Point >= OrderStopLoss()) {
                  li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + 14.0 * gd_216, Digits), OrderTakeProfit(), 0, Blue);
                  if (!li_0) {
                     li_4 = GetLastError();
                     if (gi_196) Print(" (", ls_12, ",", li_8, ")", f0_2(li_4));
                  }
               }
            }
         }
         if (OrderType() == OP_SELL) {
            if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240) {
               if (OrderOpenPrice() - Ask > 15.0 * gd_216 && MathAbs(OrderOpenPrice() - 14.0 * gd_216 - OrderStopLoss()) >= Point && NormalizeDouble(OrderOpenPrice() - 14.0 * gd_216,
                  Digits) + Point <= OrderStopLoss()) {
                  li_0 = OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - 14.0 * gd_216, Digits), OrderTakeProfit(), 0, Red);
                  if (!li_0) {
                     li_4 = GetLastError();
                     if (gi_196) Print("(", ls_12, ",", li_8, ")", f0_2(li_4));
                  }
               }
            }
         }
         if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && 1) {
            if (OrderType() == OP_SELL && OrderOpenPrice() - Ask > 10.0 * Point * gi_228) {
               if (OrderOpenPrice() - Ask > 2.0 * Point * gi_228)
                  if (OrderStopLoss() - 2.0 * Point * gi_228 > Ask + 2.0 * Point * gi_228 && Ask + 2.0 * Point * gi_228 <= OrderStopLoss() - Point) OrderModify(OrderTicket(), OrderOpenPrice(), Ask + 2.0 * Point * gi_228, OrderTakeProfit(), 0, CLR_NONE);
            } else {
               if (OrderType() == OP_BUY && Bid - OrderOpenPrice() > 10.0 * Point * gi_228) {
                  if (Bid - OrderOpenPrice() > 2.0 * Point * gi_228)
                     if (OrderStopLoss() + 2.0 * Point * gi_228 < Bid - 2.0 * Point * gi_228 && Bid - 2.0 * Point * gi_228 >= OrderStopLoss() + Point) OrderModify(OrderTicket(), OrderOpenPrice(), Bid - 2.0 * Point * gi_228, OrderTakeProfit(), 0, CLR_NONE);
               }
            }
         }
         if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && 0) {
            if (OrderType() == OP_SELL && 0) {
               if (OrderOpenPrice() - Ask <= 10.0 * Point * gi_228) continue;
               if (!((OrderStopLoss() - 2.0 * Point * gi_228 > Ask + 2.0 * (OrderOpenPrice() - Ask) && Ask + 2.0 * (OrderOpenPrice() - Ask) <= OrderStopLoss() - Point))) continue;
               OrderModify(OrderTicket(), OrderOpenPrice(), Ask + 2.0 * (OrderOpenPrice() - Ask), OrderTakeProfit(), 0, CLR_NONE);
               continue;
            }
            if (OrderType() == OP_BUY) {
            }
         }
      }
   }
}

// A9B24A824F70CC1232D1C2BA27039E8D
void f0_11() {
   int li_0;
   int li_4;
   string ls_8;
   int li_16 = 0;
   int li_20 = 0;
   int li_24 = OrdersTotal() - 1;
   int li_28 = 0;
   int li_32 = 0;
   int li_36 = 3;
   for (int li_40 = li_24; li_40 >= 0; li_40--) {
      if (OrderSelect(li_40, SELECT_BY_POS, MODE_TRADES)) {
         li_4 = OrderTicket();
         ls_8 = OrderType();
         if (OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144) {
            if (OrderType() == OP_BUY && OrderSymbol() == gs_240) {
               li_28++;
               if (gi_168 == FALSE) {
                  if (Bid >= OrderOpenPrice() + 33.0 * gd_216 || Bid <= OrderOpenPrice() - 120.0 * gd_216 || f0_1(OrderOpenPrice(), f0_7())) {
                     for (int li_44 = 1; li_44 <= MathMax(1, li_36); li_44++) {
                        RefreshRates();
                        if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), gi_260, gi_372)) {
                           li_28--;
                           break;
                        }
                        li_0 = GetLastError();
                        if (gi_196) Print("(", ls_8, ",", li_4, ")", f0_2(li_0));
                     }
                  }
               }
               if (gi_168 == TRUE) {
                  if (Bid >= OrderOpenPrice() + gi_228 * Point && Bid >= OrderOpenPrice() + 33.0 * gd_216 || Bid <= OrderOpenPrice() - 120.0 * gd_216 || f0_1(OrderOpenPrice(), f0_7())) {
                     for (li_44 = 1; li_44 <= MathMax(1, li_36); li_44++) {
                        RefreshRates();
                        if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), gi_260, gi_372)) {
                           li_28--;
                           break;
                        }
                        li_0 = GetLastError();
                        if (gi_196) Print("(", ls_8, ",", li_4, ").", f0_2(li_0));
                     }
                  }
               }
            }
            if (OrderType() == OP_SELL && OrderSymbol() == gs_240) {
               li_32++;
               if (gi_168 == FALSE) {
                  if (Ask <= OrderOpenPrice() - 33.0 * gd_216 || Ask >= OrderOpenPrice() + 120.0 * gd_216 || f0_0(OrderOpenPrice(), f0_7())) {
                     for (li_44 = 1; li_44 <= MathMax(1, li_36); li_44++) {
                        RefreshRates();
                        if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), gi_260, gi_376)) {
                           li_32--;
                           break;
                        }
                        li_0 = GetLastError();
                        if (gi_196) Print(" (", ls_8, ",", li_4, ").  ", f0_2(li_0));
                     }
                  }
               }
               if (gi_168 == TRUE) {
                  if (Ask <= OrderOpenPrice() - gi_228 * Point && Ask <= OrderOpenPrice() - 33.0 * gd_216 || Ask >= OrderOpenPrice() + 120.0 * gd_216 || f0_0(OrderOpenPrice(), f0_7())) {
                     for (li_44 = 1; li_44 <= MathMax(1, li_36); li_44++) {
                        RefreshRates();
                        if (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), gi_260, gi_376)) {
                           li_32--;
                           break;
                        }
                        li_0 = GetLastError();
                        if (gi_196) Print(" (", ls_8, ",", li_4, "). ", f0_2(li_0));
                     }
                  }
               }
            }
         }
      }
   }
}

// 689C35E4872BA754D7230B8ADAA28E48
int f0_6() {
   int li_0 = 0;
   bool li_4 = FALSE;
   bool li_8 = FALSE;
   bool li_12 = FALSE;
   bool li_16 = FALSE;
   double ld_20 = iClose(NULL, PERIOD_M15, 1);
   double ld_28 = iMA(NULL, PERIOD_M15, 55, 0, MODE_SMMA, PRICE_HIGH, 1);
   double ld_36 = iStochastic(NULL, PERIOD_M15, 11, 1, 1, MODE_SMA, 0, MODE_MAIN, 1);
   double ld_44 = iATR(NULL, PERIOD_M15, 14, 1);
   double ld_52 = iCCI(NULL, PERIOD_M15, 18, PRICE_TYPICAL, 1);
   double ld_60 = NormalizeDouble(18.0 * gd_216, gi_224);
   double ld_68 = NormalizeDouble(39.0 * gd_216, gi_224);
   double ld_76 = Bid;
   if (ld_44 <= 6.0 * gd_216) return (0);
   if (ld_20 - ld_28 > ld_60 && ld_20 - ld_76 >= (-gd_232) && gi_340 > ld_36) li_8 = TRUE;
   else li_8 = FALSE;
   if (ld_20 - ld_28 > ld_68 && ld_20 - ld_76 >= (-gd_232) && ld_52 < -150.0) li_12 = TRUE;
   else li_12 = FALSE;
   if (ld_20 - ld_28 > ld_68 && ld_20 - ld_76 >= (-gd_232) && gi_344 > ld_36) li_16 = TRUE;
   else li_16 = FALSE;
   if (li_8 == TRUE || li_12 == TRUE || li_16 == TRUE) li_4 = TRUE;
   else li_4 = FALSE;
   return (li_4);
}

// 78BAA8FAE18F93570467778F2E829047
int f0_8() {
   int li_0 = 0;
   bool li_4 = FALSE;
   bool li_8 = FALSE;
   bool li_12 = FALSE;
   bool li_16 = FALSE;
   double ld_20 = iClose(NULL, PERIOD_M15, 1);
   double ld_28 = iMA(NULL, PERIOD_M15, 55, 0, MODE_SMMA, PRICE_LOW, 1);
   double ld_36 = iStochastic(NULL, PERIOD_M15, 11, 1, 1, MODE_SMA, 0, MODE_MAIN, 1);
   double ld_44 = iATR(NULL, PERIOD_M15, 14, 1);
   double ld_52 = iCCI(NULL, PERIOD_M15, 18, PRICE_TYPICAL, 1);
   double ld_60 = NormalizeDouble(15.0 * gd_216, gi_224);
   double ld_68 = NormalizeDouble(39.0 * gd_216, gi_224);
   double ld_76 = Bid;
   if (ld_44 <= 6.0 * gd_216) return (0);
   if (ld_28 - ld_20 > ld_60 && ld_20 - ld_76 <= gd_232 && ld_36 > gi_348) li_8 = TRUE;
   else li_8 = FALSE;
   if (ld_28 - ld_20 > ld_68 && ld_20 - ld_76 <= gd_232 && ld_52 > 150.0) li_12 = TRUE;
   else li_12 = FALSE;
   if (ld_28 - ld_20 > ld_68 && ld_20 - ld_76 <= gd_232 && ld_36 > gi_352) li_16 = TRUE;
   else li_16 = FALSE;
   if (li_8 == TRUE || li_12 == TRUE || li_16 == TRUE) li_4 = TRUE;
   else li_4 = FALSE;
   return (li_4);
}

// 2569208C5E61CB15E209FFE323DB48B7
int f0_1(double ad_0, int ai_8) {
   bool li_12 = FALSE;
   bool li_16 = FALSE;
   bool li_20 = FALSE;
   double ld_24 = iStochastic(NULL, PERIOD_M15, 11, 1, 1, MODE_SMA, 0, MODE_SIGNAL, 1);
   double ld_32 = iClose(NULL, PERIOD_M15, 1);
   double ld_40 = iOpen(NULL, PERIOD_M1, 1);
   double ld_48 = iClose(NULL, PERIOD_M1, 1);
   double ld_56 = NormalizeDouble(0.0 * gd_216, gi_224);
   double ld_64 = NormalizeDouble(14.0 * gd_216, gi_224);
   double ld_72 = Bid;
   if (ad_0 - ld_72 <= ld_56 && ld_32 - ld_72 <= gd_232 && ld_24 > gi_356 && ai_8 == 1) li_16 = TRUE;
   else li_16 = FALSE;
   if (ld_40 > ld_48 && ld_72 - ad_0 >= ld_64 && ai_8 == 1) li_20 = TRUE;
   else li_20 = FALSE;
   if (li_16 == TRUE || li_20 == TRUE) li_12 = TRUE;
   else li_12 = FALSE;
   return (li_12);
}

// 09CBB5F5CE12C31A043D5C81BF20AA4A
int f0_0(double ad_0, int ai_8) {
   bool li_12 = FALSE;
   bool li_16 = FALSE;
   bool li_20 = FALSE;
   double ld_24 = iStochastic(NULL, PERIOD_M15, 11, 1, 1, MODE_SMA, 0, MODE_SIGNAL, 1);
   double ld_32 = iClose(NULL, PERIOD_M15, 1);
   double ld_40 = iOpen(NULL, PERIOD_M1, 1);
   double ld_48 = iClose(NULL, PERIOD_M1, 1);
   double ld_56 = NormalizeDouble(0.0 * gd_216, gi_224);
   double ld_64 = NormalizeDouble(14.0 * gd_216, gi_224);
   double ld_72 = Bid;
   double ld_80 = Ask;
   if (ld_80 - ad_0 <= ld_56 && ld_32 - ld_72 >= (-gd_232) && ld_24 < gi_360 && ai_8 == 1) li_16 = TRUE;
   else li_16 = FALSE;
   if (ld_40 < ld_48 && ad_0 - ld_80 >= ld_64 && ai_8 == 1) li_20 = TRUE;
   else li_20 = FALSE;
   if (li_16 == TRUE || li_20 == TRUE) li_12 = TRUE;
   else li_12 = FALSE;
   return (li_12);
}

// 9B1AEE847CFB597942D106A4135D4FE6
double f0_10() {
   double ld_36;
   int li_44;
   double ld_48 = 1;
   double ld_0 = 0;
   int li_8 = 0;
   double ld_12 = 0;
   int li_20 = 0;
   double ld_24 = 0;
   int li_32 = 0;
   for (int li_56 = OrdersHistoryTotal() - 1; li_56 >= 0; li_56--) {
      if (OrderSelect(li_56, SELECT_BY_POS, MODE_HISTORY)) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_140) {
            li_8++;
            ld_0 += OrderProfit();
            if (ld_0 > ld_24) {
               ld_24 = ld_0;
               li_32 = li_8;
            }
            if (ld_0 < ld_12) {
               ld_12 = ld_0;
               li_20 = li_8;
            }
            if (li_8 >= 50) break;
         }
      }
   }
   if (li_32 <= li_20) ld_48 = MathPow(2, li_20);
   else {
      ld_0 = ld_24;
      li_8 = li_32;
      ld_36 = ld_24;
      li_44 = li_32;
      for (li_56 = OrdersHistoryTotal() - li_32 - 1; li_56 >= 0; li_56--) {
         if (OrderSelect(li_56, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_140) {
               if (li_8 >= 50) break;
               li_8++;
               ld_0 += OrderProfit();
               if (ld_0 < ld_36) {
                  ld_36 = ld_0;
                  li_44 = li_8;
               }
            }
         }
      }
      if (li_44 == li_32 || ld_36 == ld_24) ld_48 = MathPow(2, li_20);
      else {
         if (MathAbs(ld_12 - ld_24) / MathAbs(ld_36 - ld_24) >= 1.25) ld_48 = MathPow(2, li_20);
         else ld_48 = MathPow(2, li_44);
      }
   }
   for (double ld_60 = MathMax(gd_288, MathMin(gd_296, MathCeil(MathMin(50, 2.0 * ld_48) / 100.0 * AccountFreeMargin() / gd_304 / (gi_312 / 100)) * gd_304)); ld_60 >= 2.0 * gd_288 &&
      1.05 * (ld_60 * gd_316) >= AccountFreeMargin(); ld_60 -= gd_288) {
   }
   return (ld_60);
}

// 945D754CB0DC06D04243FCBA25FC0802
int f0_9() {
   RefreshRates();
   if (NormalizeDouble(Ask - Bid, Digits) > gd_264) return (1);
   return (0);
}

// 6ABA3523C7A75AAEA41CC0DEC7953CC5
int f0_7() {
   int li_0 = OrdersTotal() - 1;
   for (int li_4 = li_0; li_4 >= 0; li_4--) {
      if (OrderSelect(li_4, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderType() == OP_BUY || OrderType() == OP_SELL && OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144) {
            if (OrderSymbol() == gs_240)
               if (OrderType() <= OP_SELL) return (1);
         }
      }
   }
   return (0);
}

// 58B0897F29A3AD862616D6CBF39536ED
int f0_5() {
   int li_0 = 0;
   int li_4 = OrdersTotal() - 1;
   for (int li_8 = li_4; li_8 >= 0; li_8--) {
      if (OrderSelect(li_8, SELECT_BY_POS, MODE_TRADES))
         if (OrderComment() != "R" && (OrderType() == OP_BUY || OrderType() == OP_SELL && OrderMagicNumber() == gi_140 || OrderMagicNumber() == gi_144 && OrderSymbol() == gs_240)) li_0++;
   }
   if (li_0 >= 1) return (0);
   return (1);
}

// D1DDCE31F1A86B3140880F6B1877CBF8
void f0_13(int ai_0) {
   double ld_4;
   double ld_12;
   double ld_20;
   double ld_28;
   double ld_36;
   double ld_44;
   double ld_52;
   double ld_60;
   int li_68 = 0;
   int li_72 = 0;
   bool li_76 = FALSE;
   bool li_80 = FALSE;
   int li_84 = 0;
   int li_88 = 0;
   int li_92 = 0;
   int li_96 = 0;
   int li_100 = 0;
   int li_104 = 0;
   bool li_108 = FALSE;
   bool li_112 = FALSE;
   bool li_116 = FALSE;
   bool li_120 = FALSE;
   bool li_124 = FALSE;
   bool li_128 = FALSE;
   for (int li_132 = OrdersTotal() - 1; li_132 >= 0; li_132--) {
      if (!OrderSelect(li_132, SELECT_BY_POS, MODE_TRADES) || OrderSymbol() != Symbol()) continue;
      if (OrderType() == OP_BUY || OrderType() == OP_SELL && OrderOpenTime() >= iTime(Symbol(), PERIOD_M5, 0)) li_108 = TRUE;
      if (OrderType() == OP_BUY && OrderMagicNumber() == gi_144 || OrderMagicNumber() == gi_140 && Ask > OrderOpenPrice() - 5.0 * Point * gi_228) li_120 = TRUE;
      if (OrderType() == OP_SELL && OrderMagicNumber() == gi_144 || OrderMagicNumber() == gi_140 && Bid < OrderOpenPrice() + 5.0 * Point * gi_228) li_124 = TRUE;
      if (OrderType() == OP_BUY && OrderMagicNumber() == gi_144) {
         li_112 = TRUE;
         ld_4 = OrderOpenPrice();
      }
      if (OrderType() == OP_SELL && OrderMagicNumber() == gi_144) {
         li_116 = TRUE;
         ld_12 = OrderOpenPrice();
      }
      if (OrderType() == OP_BUY && OrderMagicNumber() == gi_140) {
         li_100 = 1;
         ld_20 = OrderOpenPrice();
      }
      if (OrderType() == OP_SELL && OrderMagicNumber() == gi_140) {
         li_104 = 1;
         ld_28 = OrderOpenPrice();
      }
      if (OrderType() == OP_BUY && OrderMagicNumber() == gi_140 && OrderStopLoss() > OrderOpenPrice()) li_92 = 1;
      if (OrderType() == OP_SELL && OrderMagicNumber() == gi_140 && OrderStopLoss() < OrderOpenPrice()) li_96 = 1;
      if (OrderType() == OP_BUY && OrderMagicNumber() == gi_140 && Ask < OrderOpenPrice() - 5.0 * Point * gi_228) {
         li_76 = TRUE;
         ld_44 = OrderLots();
      }
      if (OrderType() == OP_SELL && OrderMagicNumber() == gi_140 && Bid > OrderOpenPrice() + 5.0 * Point * gi_228) {
         li_80 = TRUE;
         ld_44 = OrderLots();
      }
      if (gi_188 == FALSE) {
         if (OrderType() == OP_BUY && OrderMagicNumber() == gi_144) li_100 = 1;
         if (OrderType() == OP_SELL && OrderMagicNumber() == gi_144) li_104 = 1;
         if (OrderType() == OP_BUY && OrderMagicNumber() == gi_144 && OrderStopLoss() > OrderOpenPrice()) li_92 = 1;
         if (OrderType() == OP_SELL && OrderMagicNumber() == gi_144 && OrderStopLoss() < OrderOpenPrice()) li_96 = 1;
         if (OrderType() == OP_BUY && OrderMagicNumber() == gi_144 && Ask < OrderOpenPrice() - 5.0 * Point * gi_228) {
            li_76 = TRUE;
            ld_44 = OrderLots();
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == gi_144 && Bid > OrderOpenPrice() + 5.0 * Point * gi_228) {
            li_80 = TRUE;
            ld_44 = OrderLots();
         }
      }
      if (gi_152 == TRUE && li_112 == TRUE && OrderType() == OP_BUY && OrderMagicNumber() == gi_140 && OrderTakeProfit() > OrderOpenPrice() + 1.0 * Point + 0.0 * Point * gi_228 &&
         ld_4 < OrderOpenPrice() && OrderProfit() < 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderOpenPrice() + 0.0 * Point * gi_228, 0, CLR_NONE);
      if (gi_152 == TRUE && li_116 == TRUE && OrderType() == OP_SELL && OrderMagicNumber() == gi_140 && OrderTakeProfit() < OrderOpenPrice() - 1.0 * Point - 0.0 * Point * gi_228 &&
         ld_12 > OrderOpenPrice() && OrderProfit() < 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderOpenPrice() - 0.0 * Point * gi_228, 0, CLR_NONE);
   }
   if (LotSize > 0.0) {
      ld_36 = gd_332;
      ld_44 = gd_332;
      ld_60 = gd_332;
   }
   for (int li_136 = OrdersTotal() - 1; li_136 >= 0; li_136--) {
      if (OrderSelect(li_136, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == gi_144 || OrderMagicNumber() == gi_140)
         if (25.0 * AccountFreeMargin() < AccountMargin() && 1) li_128 = TRUE;
   }
   double ld_140 = AccountFreeMargin() / 10.0;
   double ld_148 = MarketInfo(Symbol(), MODE_LOTSTEP);
   int li_156 = ld_140 / MarketInfo(Symbol(), MODE_MARGINREQUIRED) / ld_148;
   double ld_160 = li_156 * ld_148;
   if (ld_160 > gd_296) ld_160 = gd_296;
   if (li_108 == FALSE && li_128 == FALSE) {
      if (ai_0 == 0 && li_76 == TRUE && f0_6() == 1 && li_120 == FALSE) {
         ld_52 = NormalizeDouble(2.0 * ld_44, 1);
         if (ld_52 > gd_296) ld_52 = gd_296;
         if (ld_52 > ld_160) ld_52 = ld_160;
         if (ld_52 < LotSize) ld_52 = LotSize;
         if (ClimbLot) {
            gd_180 = MathFloor(AccountEquity() * Risk / 10000.0);
            if (gd_180 == 0.0) gd_180 = 1;
            ld_52 = NormalizeDouble(ld_52 * gd_180, 2);
            if (ld_52 < gd_200) ld_52 = gd_200;
            if (ld_52 > gd_252) ld_52 = gd_252;
         }
         OrderSend(Symbol(), OP_BUY, ld_52, Ask, 2, 0, 0, 0, gi_144, 0, Blue);
      }
      if (ai_0 == 0 && li_80 == TRUE && f0_8() == 1 && li_124 == FALSE) {
         ld_52 = NormalizeDouble(2.0 * ld_44, 1);
         if (ld_52 > gd_296) ld_52 = gd_296;
         if (ld_52 > ld_160) ld_52 = ld_160;
         if (ld_52 < LotSize) ld_52 = LotSize;
         if (ClimbLot) {
            gd_180 = MathFloor(AccountEquity() * Risk / 10000.0);
            if (gd_180 == 0.0) gd_180 = 1;
            ld_52 = NormalizeDouble(ld_52 * gd_180, 2);
            if (ld_52 < gd_200) ld_52 = gd_200;
            if (ld_52 > gd_252) ld_52 = gd_252;
         }
         OrderSend(Symbol(), OP_SELL, ld_52, Bid, 2, 0, 0, 0, gi_144, 0, Fuchsia);
      }
   }
}

// 28EFB830D150E70A8BB0F12BAC76EF35
string f0_2(int ai_0) {
   string ls_4;
   return (ls_4);
}