Navigation:Home > Content >

Auto_Trading_Robot-100,000-Sell-Short.mq4

Time: 2014-09-21 | Download file:Auto_Trading_Robot-100,000-Sell-Short.mq4

/*
   G e n e r a t e d  by ex4-to-mq4 decompiler FREEWARE 4.0.509.5
   Website: h t tp:/ /Www.M Et a Q uo TES . NE T
   E-mail : S UP P o r [email protected] Me TAq u O t ES . N eT
*/
#property copyright "Copyright © 2011, Maximafx.com"
#property link      "http://www.Maximafx.com"
#property show_inputs

#import "Kernel32.dll"
   bool GetVolumeInformationA(string a0, string a1, int a2, int& a3[], int a4, int a5, string a6, int a7);
#import

string Gs_76 = "BCAB-DA8A";
extern string НАЧАЛЬНЫЕ_ПАРАМЕТРЫ = "НАЧАЛЬНЫЕ ПАРАМЕТРЫ";
extern int Магик = 22222;
extern double Спред_Максимальный = 4.0;
extern int Проскальзывание = 5;
extern string Комментарий = "Auto profit ";
extern string ПАРАМЕТРЫ_ЛОТА = "ПАРАМЕТРЫ ЛОТА";
extern int Тип_Лота_0_1_2 = 2;
extern double Лот = 0.01;
extern double Умножение_Лота_коэф = 1.22;
extern string ПАРАМЕТРЫ_ВХОДА = "ПАРАМЕТРЫ ВХОДА";
extern int Максимум_Сделок = 1000;
extern int Шаг_Сделок_пункты = 3;
extern string ПАРАМЕТРЫ_ВЫХОДА = "ПАРАМЕТРЫ ВЫХОДА";
extern int Тейк_Профит = 10;
extern string ФИЛЬТРЫ_ВХОДА = "ФИЛЬТРЫ ВХОДА";
extern bool Торговля_по_часам = FALSE;
extern int Старт_Торговли = 16;
extern int Стоп_Торговли = 2;
extern string ФИЛЬТРЫ_ВЫХОДА = "ФИЛЬТРЫ ВЫХОДА";
extern bool Стоп_по_Эквити = FALSE;
extern double Стоп_по_Эквити_процент = 20.0;
extern bool Стоп_по_ТаймАуту = FALSE;
extern double Стоп_по_ТаймАуту_часы = 0.0;
bool Gi_224 = FALSE;
bool Gi_228 = FALSE;
bool Gi_232 = TRUE;
int Gi_236 = 1;
int Gi_240 = 0;
double Gd_244;
double Gd_252;
double Gd_260;
double Gd_268;
double Gd_276 = 0.0;
double Gd_284;
double Gd_292;
double Gd_unused_300;
double Gd_unused_308;
bool Gi_316;
int Gi_320;
int Gi_324 = 0;
int Gi_328;
bool Gi_332 = FALSE;
bool Gi_336 = FALSE;
bool Gi_340 = FALSE;
int Gi_344;
bool Gi_348 = FALSE;
double G_ask_352;
double G_bid_360;
int G_datetime_368 = 0;
int G_datetime_372 = 0;
int G_pos_376 = 0;
double G_price_380;
double G_price_388;
int Gi_396 = 0;
int Gi_400 = 1;
string Gs_404 = "lblfin_";

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   double lotstep_0;
   if (f0_2() == 1) {
      if (IsTesting() == TRUE) f0_12();
      if (IsTesting() == FALSE) f0_12();
      lotstep_0 = MarketInfo(Symbol(), MODE_LOTSTEP);
      switch (lotstep_0) {
      case 0.01:
         Тип_Лота_0_1_2 = 2;
         break;
      case 0.1:
         Тип_Лота_0_1_2 = 1;
         break;
      case 1.0:
         Тип_Лота_0_1_2 = 0;
      }
      if (!(Digits == 5 || Digits == 3)) return (0);
      Gi_400 = 10;
      return (0);
   }
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   double Ld_0;
   double order_lots_8;
   double order_lots_16;
   double iclose_24;
   double iclose_32;
   double Ld_40;
   string Ls_48;
   string Ls_56;
   string Ls_64;
   string Ls_72;
   string Ls_80;
   double Ld_88;
   double Ld_96;
   if (f0_2() == 1) {
      f0_12();
      f0_15();
      if (Digits <= 3) Ld_0 = 0.01;
      else Ld_0 = 0.0001;
      Ld_40 = NormalizeDouble((Ask - Bid) / Ld_0, 1);
      Ls_48 = "  OK";
      if (Ld_40 > Спред_Максимальный) Ls_48 = "  СЛИШКОМ ВЫСОКИЙ !";
      Ls_56 = "Спред = " + DoubleToStr(Ld_40, 1);
      Ls_64 = Ls_48;
      ObjectCreate("klc14", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc14", "Средства: " + DoubleToStr(AccountEquity(), 2), 14, "Courier New", Yellow);
      ObjectSet("klc14", OBJPROP_CORNER, 1);
      ObjectSet("klc14", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc14", OBJPROP_YDISTANCE, 93);
      ObjectCreate("klc15", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc15", "Свободно: " + DoubleToStr(AccountFreeMargin(), 2), 14, "Courier New", Yellow);
      ObjectSet("klc15", OBJPROP_CORNER, 1);
      ObjectSet("klc15", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc15", OBJPROP_YDISTANCE, 124);
      ObjectCreate("klc16", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc16", "Прибыль:   " + DoubleToStr(AccountProfit(), 2), 14, "Courier New", Yellow);
      ObjectSet("klc16", OBJPROP_CORNER, 1);
      ObjectSet("klc16", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc16", OBJPROP_YDISTANCE, 143);
      ObjectCreate("klc17", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc17", "Лот: " + DoubleToStr(Лот, 2), 14, "Courier New", LightGray);
      ObjectSet("klc17", OBJPROP_CORNER, 1);
      ObjectSet("klc17", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc17", OBJPROP_YDISTANCE, 175);
      ObjectCreate("klc18", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc18", "Рабочий Лот: " + DoubleToStr(Gd_268, 2), 14, "Courier New", LightGray);
      ObjectSet("klc18", OBJPROP_CORNER, 1);
      ObjectSet("klc18", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc18", OBJPROP_YDISTANCE, 193);
      ObjectCreate("klc19", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc19", "Спред: " + DoubleToStr(Ld_40, 1) + Ls_64, 14, "Courier New", Gray);
      ObjectSet("klc19", OBJPROP_CORNER, 1);
      ObjectSet("klc19", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc19", OBJPROP_YDISTANCE, 229);
      ObjectCreate("klc20", OBJ_LABEL, 0, 0, 0);
      ObjectSetText("klc20", "Время сервера: " + TimeToStr(TimeCurrent(), TIME_MINUTES), 14, "Courier New", LightGray);
      ObjectSet("klc20", OBJPROP_CORNER, 3);
      ObjectSet("klc20", OBJPROP_XDISTANCE, 10);
      ObjectSet("klc20", OBJPROP_YDISTANCE, 8);
      if (Gi_224) {
         if (!Hour() >= Старт_Торговли && Hour() <= Стоп_Торговли) {
            f0_4();
            Comment("                              ВРЕМЯ ДЛЯ ТОРГОВЛИ ЕЩЁ НЕ ПРИШЛО!");
            return (0);
         }
      }
      Ls_72 = "false";
      Ls_80 = "false";
      if (Торговля_по_часам == FALSE || (Торговля_по_часам && (Стоп_Торговли > Старт_Торговли && (Hour() >= Старт_Торговли && Hour() <= Стоп_Торговли)) || (Старт_Торговли > Стоп_Торговли &&
         (!Hour() >= Стоп_Торговли && Hour() <= Старт_Торговли)))) Ls_72 = "true";
      if (Торговля_по_часам && (Стоп_Торговли > Старт_Торговли && (!Hour() >= Старт_Торговли && Hour() <= Стоп_Торговли)) || (Старт_Торговли > Стоп_Торговли && (Hour() >= Стоп_Торговли &&
         Hour() <= Старт_Торговли))) Ls_80 = "true";
      if (Стоп_по_ТаймАуту) {
         if (TimeCurrent() >= Gi_320) {
            f0_4();
            Print("Bсе сделки будут закрыты из-за Тайм-Аута");
         }
      }
      if (Gi_396 == Time[0]) return (0);
      Gi_396 = Time[0];
      Ld_88 = f0_6();
      if (Стоп_по_Эквити) {
         if (Ld_88 < 0.0 && MathAbs(Ld_88) > Стоп_по_Эквити_процент / 100.0 * f0_10()) {
            f0_4();
            Print("Bсе сделки будут закрыты из-за превышения Эквити");
            Gi_348 = FALSE;
         }
      }
      Gi_328 = f0_18();
      if (Gi_328 == 0) Gi_316 = FALSE;
      for (G_pos_376 = OrdersTotal() - 1; G_pos_376 >= 0; G_pos_376--) {
         OrderSelect(G_pos_376, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
            if (OrderType() == OP_BUY) {
               Gi_336 = TRUE;
               Gi_340 = FALSE;
               order_lots_8 = OrderLots();
               break;
            }
         }
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
            if (OrderType() == OP_SELL) {
               Gi_336 = FALSE;
               Gi_340 = TRUE;
               order_lots_16 = OrderLots();
               break;
            }
         }
      }
      if (Gi_328 > 0 && Gi_328 <= Максимум_Сделок) {
         RefreshRates();
         Gd_252 = f0_3();
         Gd_260 = f0_7();
         if (Gi_336 && Gd_252 - Ask >= Шаг_Сделок_пункты * Gi_400 * Point) Gi_332 = TRUE;
         if (Gi_340 && Bid - Gd_260 >= Шаг_Сделок_пункты * Gi_400 * Point) Gi_332 = TRUE;
      }
      if (Gi_328 < 1) {
         Gi_340 = FALSE;
         Gi_336 = FALSE;
         Gi_332 = TRUE;
         Gd_244 = AccountEquity();
      }
      if (Gi_332) {
         Gd_252 = f0_3();
         Gd_260 = f0_7();
         if (Gi_340) {
            if (Gi_228 || Ls_80 == "true") {
               f0_1(0, 1);
               Gd_268 = NormalizeDouble(Умножение_Лота_коэф * order_lots_16, Тип_Лота_0_1_2);
            } else Gd_268 = f0_16(OP_SELL);
            if (Gi_232 && Ls_72 == "true") {
               Gi_324 = Gi_328;
               if (Gd_268 > 0.0) {
                  RefreshRates();
                  Gi_344 = f0_17(1, Gd_268, Bid, Проскальзывание * Gi_400, Ask, 0, 0, Комментарий + "- " + Gi_324, Магик, 0, Red);
                  if (Gi_344 < 0) {
                     Print(" Исправление ошибки: ", f0_20(GetLastError()));
                     return (0);
                  }
                  Gd_260 = f0_7();
                  Gi_332 = FALSE;
                  Gi_348 = TRUE;
               }
            }
         } else {
            if (Gi_336) {
               if (Gi_228 || Ls_80 == "true") {
                  f0_1(1, 0);
                  Gd_268 = NormalizeDouble(Умножение_Лота_коэф * order_lots_8, Тип_Лота_0_1_2);
               } else Gd_268 = f0_16(OP_BUY);
               if (Gi_232 && Ls_72 == "true") {
                  Gi_324 = Gi_328;
                  if (Gd_268 > 0.0) {
                     Gi_344 = f0_17(0, Gd_268, Ask, Проскальзывание * Gi_400, Bid, 0, 0, Комментарий + "- " + Gi_324, Магик, 0, Blue);
                     if (Gi_344 < 0) {
                        Print(" Исправление ошибки: ", f0_20(GetLastError()));
                        return (0);
                     }
                     Gd_252 = f0_3();
                     Gi_332 = FALSE;
                     Gi_348 = TRUE;
                  }
               }
            }
         }
      }
      if (Gi_332 && Gi_328 < 1) {
         iclose_24 = iClose(Symbol(), 0, 2);
         iclose_32 = iClose(Symbol(), 0, 1);
         G_bid_360 = Bid;
         G_ask_352 = Ask;
         if ((!Gi_340) && (!Gi_336) && Ls_72 == "true") {
            Gi_324 = Gi_328;
            if (iclose_24 > iclose_32) {
               Gd_268 = f0_16(OP_SELL);
               if (Gd_268 > 0.0) {
                  Gi_344 = f0_17(1, Gd_268, G_bid_360, Проскальзывание * Gi_400, G_bid_360, 0, 0, Комментарий + "- " + Gi_324, Магик, 0, Red);
                  if (Gi_344 < 0) {
                     Print(Gd_268, " Исправление ошибки: ", f0_20(GetLastError()));
                     return (0);
                  }
                  Gd_252 = f0_3();
                  Gi_348 = TRUE;
               }
            } else {
               Gd_268 = f0_16(OP_BUY);
               if (Gd_268 > 0.0) {
                  Gi_344 = f0_17(0, Gd_268, G_ask_352, Проскальзывание * Gi_400, G_ask_352, 0, 0, Комментарий + "- " + Gi_324, Магик, 0, Blue);
                  if (Gi_344 < 0) {
                     Print(Gd_268, " Исправление ошибки: ", f0_20(GetLastError()));
                     return (0);
                  }
                  Gd_260 = f0_7();
                  Gi_348 = TRUE;
               }
            }
         }
         if (Gi_344 > 0) Gi_320 = TimeCurrent() + 60.0 * (60.0 * Стоп_по_ТаймАуту_часы);
         Gi_332 = FALSE;
      }
      Gi_328 = f0_18();
      G_price_388 = 0;
      Ld_96 = 0;
      for (G_pos_376 = OrdersTotal() - 1; G_pos_376 >= 0; G_pos_376--) {
         OrderSelect(G_pos_376, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
               G_price_388 += OrderOpenPrice() * OrderLots();
               Ld_96 += OrderLots();
            }
         }
      }
      if (Gi_328 > 0) G_price_388 = NormalizeDouble(G_price_388 / Ld_96, Digits);
      if (Gi_348) {
         for (G_pos_376 = OrdersTotal() - 1; G_pos_376 >= 0; G_pos_376--) {
            OrderSelect(G_pos_376, SELECT_BY_POS, MODE_TRADES);
            if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
               if (OrderType() == OP_BUY) {
                  G_price_380 = G_price_388 + Тейк_Профит * Gi_400 * Point;
                  Gd_unused_300 = G_price_380;
                  Gd_276 = G_price_388 - Gi_240 * Gi_400 * Point;
                  Gi_316 = TRUE;
               }
            }
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
               if (OrderType() == OP_SELL) {
                  G_price_380 = G_price_388 - Тейк_Профит * Gi_400 * Point;
                  Gd_unused_308 = G_price_380;
                  Gd_276 = G_price_388 + Gi_240 * Gi_400 * Point;
                  Gi_316 = TRUE;
               }
            }
         }
      }
      if (!(Gi_348)) return (0);
      if (Gi_316 != TRUE) return (0);
      for (G_pos_376 = OrdersTotal() - 1; G_pos_376 >= 0; G_pos_376--) {
         OrderSelect(G_pos_376, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) OrderModify(OrderTicket(), G_price_388, OrderStopLoss(), G_price_380, 0, Yellow);
         Gi_348 = FALSE;
      }
      return (0);
   }
   return (0);
}

// 9A116C50D133C8648404081885194300
double f0_13(double Ad_0) {
   return (NormalizeDouble(Ad_0, Digits));
}

// 169720DB8C7DA7F48F483E787B4A2725
int f0_1(bool Ai_0 = TRUE, bool Ai_4 = TRUE) {
   int Li_ret_8 = 0;
   for (int pos_12 = OrdersTotal() - 1; pos_12 >= 0; pos_12--) {
      if (OrderSelect(pos_12, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
            if (OrderType() == OP_BUY && Ai_0) {
               RefreshRates();
               if (!IsTradeContextBusy()) {
                  if (!OrderClose(OrderTicket(), OrderLots(), f0_13(Bid), 5, CLR_NONE)) {
                     Print("Ошибка закрытия сделки BUY " + OrderTicket());
                     Li_ret_8 = -1;
                  }
               } else {
                  if (G_datetime_368 == iTime(NULL, 0, 0)) return (-2);
                  G_datetime_368 = iTime(NULL, 0, 0);
                  Print("Попытка закрытия сделки BUY " + OrderTicket() + ". Торговый поток занят");
                  return (-2);
               }
            }
            if (OrderType() == OP_SELL && Ai_4) {
               RefreshRates();
               if (!IsTradeContextBusy()) {
                  if (!((!OrderClose(OrderTicket(), OrderLots(), f0_13(Ask), 5, CLR_NONE)))) continue;
                  Print("Ошибка закрытия сделки SELL " + OrderTicket());
                  Li_ret_8 = -1;
                  continue;
               }
               if (G_datetime_372 == iTime(NULL, 0, 0)) return (-2);
               G_datetime_372 = iTime(NULL, 0, 0);
               Print("Попытка закрытия сделки SELL " + OrderTicket() + ". Торговый поток занят");
               return (-2);
            }
         }
      }
   }
   return (Li_ret_8);
}

// BD1F338B493E3233DF78411E167716E8
double f0_16(int A_cmd_0) {
   double Ld_ret_4;
   int datetime_12;
   switch (Gi_236) {
   case 0:
      Ld_ret_4 = Лот;
      break;
   case 1:
      Ld_ret_4 = NormalizeDouble(Лот * MathPow(Умножение_Лота_коэф, Gi_324), Тип_Лота_0_1_2);
      break;
   case 2:
      datetime_12 = 0;
      Ld_ret_4 = Лот;
      for (int pos_20 = OrdersHistoryTotal() - 1; pos_20 >= 0; pos_20--) {
         if (OrderSelect(pos_20, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
               if (datetime_12 < OrderCloseTime()) {
                  datetime_12 = OrderCloseTime();
                  if (OrderProfit() < 0.0) {
                     Ld_ret_4 = NormalizeDouble(OrderLots() * Умножение_Лота_коэф, Тип_Лота_0_1_2);
                     continue;
                  }
                  Ld_ret_4 = Лот;
               }
            }
         } else return (-3);
      }
   }
   if (AccountFreeMarginCheck(Symbol(), A_cmd_0, Ld_ret_4) <= 0.0) return (-1);
   if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
   return (Ld_ret_4);
}

// CBBD1151F6D49BC6C817A0B96D15036D
int f0_18() {
   int count_0 = 0;
   for (int pos_4 = OrdersTotal() - 1; pos_4 >= 0; pos_4--) {
      OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик)
         if (OrderType() == OP_SELL || OrderType() == OP_BUY) count_0++;
   }
   return (count_0);
}

// 41BB59E8D36C416E4C62910D9E765220
void f0_4() {
   for (int pos_0 = OrdersTotal() - 1; pos_0 >= 0; pos_0--) {
      OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol()) {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик) {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, Проскальзывание * Gi_400, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, Проскальзывание * Gi_400, Red);
         }
         Sleep(1000);
      }
   }
}

// C159FD8BED695B6E6A109D3B72C199C3
int f0_17(int Ai_0, double A_lots_4, double A_price_12, int A_slippage_20, double Ad_24, int Ai_unused_32, int Ai_36, string A_comment_40, int A_magic_48, int A_datetime_52, color A_color_56) {
   int ticket_60 = 0;
   int error_64 = 0;
   int count_68 = 0;
   int Li_72 = 100;
   switch (Ai_0) {
   case 2:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         ticket_60 = OrderSend(Symbol(), OP_BUYLIMIT, A_lots_4, A_price_12, A_slippage_20, f0_14(Ad_24, Gi_240 * Gi_400), f0_19(A_price_12, Ai_36), A_comment_40, A_magic_48,
            A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(1000);
      }
      break;
   case 4:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         ticket_60 = OrderSend(Symbol(), OP_BUYSTOP, A_lots_4, A_price_12, A_slippage_20, f0_14(Ad_24, Gi_240 * Gi_400), f0_19(A_price_12, Ai_36), A_comment_40, A_magic_48,
            A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(5000);
      }
      break;
   case 0:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         RefreshRates();
         ticket_60 = OrderSend(Symbol(), OP_BUY, A_lots_4, Ask, A_slippage_20, f0_14(Bid, Gi_240 * Gi_400), f0_19(Ask, Ai_36), A_comment_40, A_magic_48, A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(5000);
      }
      break;
   case 3:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         ticket_60 = OrderSend(Symbol(), OP_SELLLIMIT, A_lots_4, A_price_12, A_slippage_20, f0_0(Ad_24, Gi_240 * Gi_400), f0_5(A_price_12, Ai_36), A_comment_40, A_magic_48,
            A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(5000);
      }
      break;
   case 5:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         ticket_60 = OrderSend(Symbol(), OP_SELLSTOP, A_lots_4, A_price_12, A_slippage_20, f0_0(Ad_24, Gi_240 * Gi_400), f0_5(A_price_12, Ai_36), A_comment_40, A_magic_48,
            A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(5000);
      }
      break;
   case 1:
      for (count_68 = 0; count_68 < Li_72; count_68++) {
         ticket_60 = OrderSend(Symbol(), OP_SELL, A_lots_4, Bid, A_slippage_20, f0_0(Ask, Gi_240 * Gi_400), f0_5(Bid, Ai_36), A_comment_40, A_magic_48, A_datetime_52, A_color_56);
         error_64 = GetLastError();
         if (error_64 == 0/* NO_ERROR */) break;
         if (!((error_64 == 4/* SERVER_BUSY */ || error_64 == 137/* BROKER_BUSY */ || error_64 == 146/* TRADE_CONTEXT_BUSY */ || error_64 == 136/* OFF_QUOTES */))) break;
         Sleep(5000);
      }
   }
   return (ticket_60);
}

// A04259EF619300E271488B8ABD9DF8A9
double f0_14(double Ad_0, int Ai_8) {
   if (Ai_8 == 0) return (0);
   return (Ad_0 - Ai_8 * Point);
}

// 0D578CA46072792DE50D5B9F5F5F8784
double f0_0(double Ad_0, int Ai_8) {
   if (Ai_8 == 0) return (0);
   return (Ad_0 + Ai_8 * Point);
}

// CE75B31DDDC1519B313C4C612EF22D86
double f0_19(double Ad_0, int Ai_8) {
   if (Ai_8 == 0) return (0);
   return (Ad_0 + Ai_8 * Point);
}

// 4347D7B92E8469B198EAA742F66BBE62
double f0_5(double Ad_0, int Ai_8) {
   if (Ai_8 == 0) return (0);
   return (Ad_0 - Ai_8 * Point);
}

// 4A186EA1A04A05E39FD2E7A94BB28576
double f0_6() {
   double Ld_ret_0 = 0;
   for (G_pos_376 = OrdersTotal() - 1; G_pos_376 >= 0; G_pos_376--) {
      OrderSelect(G_pos_376, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Ld_ret_0 += OrderProfit();
   }
   return (Ld_ret_0);
}

// 91C97865111C4DD6B44C584F4B9358BB
double f0_10() {
   if (f0_18() == 0) Gd_284 = AccountEquity();
   if (Gd_284 < Gd_292) Gd_284 = Gd_292;
   else Gd_284 = AccountEquity();
   Gd_292 = AccountEquity();
   return (Gd_284);
}

// 262336F736ADFEEC641C03BB3514631C
double f0_3() {
   double order_open_price_0;
   int ticket_8;
   double Ld_unused_12 = 0;
   int ticket_20 = 0;
   for (int pos_24 = OrdersTotal() - 1; pos_24 >= 0; pos_24--) {
      OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик && OrderType() == OP_BUY) {
         ticket_8 = OrderTicket();
         if (ticket_8 > ticket_20) {
            order_open_price_0 = OrderOpenPrice();
            Ld_unused_12 = order_open_price_0;
            ticket_20 = ticket_8;
         }
      }
   }
   return (order_open_price_0);
}

// 599A26C25DF2561FBAA884F47E1B315C
double f0_7() {
   double order_open_price_0;
   int ticket_8;
   double Ld_unused_12 = 0;
   int ticket_20 = 0;
   for (int pos_24 = OrdersTotal() - 1; pos_24 >= 0; pos_24--) {
      OrderSelect(pos_24, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != Магик) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Магик && OrderType() == OP_SELL) {
         ticket_8 = OrderTicket();
         if (ticket_8 > ticket_20) {
            order_open_price_0 = OrderOpenPrice();
            Ld_unused_12 = order_open_price_0;
            ticket_20 = ticket_8;
         }
      }
   }
   return (order_open_price_0);
}

// 938363B042E987609BD8B876255B9679
void f0_12() {
   Comment("                              Сервер:  ", AccountServer(), 
      "\n", "                              Плечо:   ", "1:" + DoubleToStr(AccountLeverage(), 0), 
      "\n", 
      "\n", "                              Умножение Лота  =  ", Умножение_Лота_коэф, 
      "\n", "                              Шаг Сделок          =  ", Шаг_Сделок_пункты, 
      "\n", "                              Тейк Профит       =  ", Тейк_Профит, 
      "\n", "                              Проскальзывание  =  ", Проскальзывание, 
   "\n");
}

// DA69CBAFF4D38B87377667EEC549DE5A
string f0_20(int Ai_0) {
   string Ls_ret_4;
   switch (Ai_0) {
   case 0:
   case 1:
      Ls_ret_4 = "Ошибка исправлена";
      break;
   case 2:
      Ls_ret_4 = "Общая ошибка";
      break;
   case 3:
      Ls_ret_4 = "Неправильные параметры";
      break;
   case 4:
      Ls_ret_4 = "Торговый сервер занят";
      break;
   case 5:
      Ls_ret_4 = "Старая версия клиентского терминала";
      break;
   case 6:
      Ls_ret_4 = "Нет связи с торговым сервером";
      break;
   case 7:
      Ls_ret_4 = "Недостаточно прав";
      break;
   case 8:
      Ls_ret_4 = "Слишком частые запросы";
      break;
   case 9:
      Ls_ret_4 = "Недопустимая операция нарушающая функционирование сервера";
      break;
   case 64:
      Ls_ret_4 = "Счет заблокирован";
      break;
   case 65:
      Ls_ret_4 = "Неправильный номер счета";
      break;
   case 128:
      Ls_ret_4 = "Истек срок ожидания совершения сделки";
      break;
   case 129:
      Ls_ret_4 = "Неправильная цена";
      break;
   case 130:
      Ls_ret_4 = "Неправильные стопы";
      break;
   case 131:
      Ls_ret_4 = "Неправильный объем";
      break;
   case 132:
      Ls_ret_4 = "Рынок закрыт";
      break;
   case 133:
      Ls_ret_4 = "Торговля запрещена";
      break;
   case 134:
      Ls_ret_4 = "Недостаточно денег для совершения операции";
      break;
   case 135:
      Ls_ret_4 = "Цена изменилась";
      break;
   case 136:
      Ls_ret_4 = "Нет цен";
      break;
   case 137:
      Ls_ret_4 = "Брокер занят";
      break;
   case 138:
      Ls_ret_4 = "Новые цены - Реквот";
      break;
   case 139:
      Ls_ret_4 = "Ордер заблокирован и уже обрабатывается";
      break;
   case 140:
      Ls_ret_4 = "Разрешена только покупка";
      break;
   case 141:
      Ls_ret_4 = "Слишком много запросов";
      break;
   case 145:
      Ls_ret_4 = "Модификация запрещена, так как ордер слишком близок к рынку";
      break;
   case 146:
      Ls_ret_4 = "Подсистема торговли занята";
      break;
   case 147:
      Ls_ret_4 = "Использование даты истечения ордера запрещено брокером";
      break;
   case 148:
      Ls_ret_4 = "Количество открытых и отложенных ордеров достигло предела ";
      break;
   case 4000:
      Ls_ret_4 = "Нет ошибки";
      break;
   case 4001:
      Ls_ret_4 = "Неправильный указатель функции";
      break;
   case 4002:
      Ls_ret_4 = "Индекс массива - вне диапазона";
      break;
   case 4003:
      Ls_ret_4 = "Нет памяти для стека функций";
      break;
   case 4004:
      Ls_ret_4 = "Переполнение стека после рекурсивного вызова";
      break;
   case 4005:
      Ls_ret_4 = "На стеке нет памяти для передачи параметров";
      break;
   case 4006:
      Ls_ret_4 = "Нет памяти для строкового параметра";
      break;
   case 4007:
      Ls_ret_4 = "Нет памяти для временной строки";
      break;
   case 4008:
      Ls_ret_4 = "Неинициализированная строка";
      break;
   case 4009:
      Ls_ret_4 = "Неинициализированная строка в массиве";
      break;
   case 4010:
      Ls_ret_4 = "Нет памяти для строкового массива";
      break;
   case 4011:
      Ls_ret_4 = "Слишком длинная строка";
      break;
   case 4012:
      Ls_ret_4 = "Остаток от деления на ноль";
      break;
   case 4013:
      Ls_ret_4 = "Деление на ноль";
      break;
   case 4014:
      Ls_ret_4 = "Неизвестная команда";
      break;
   case 4015:
      Ls_ret_4 = "Неправильный переход";
      break;
   case 4016:
      Ls_ret_4 = "Неинициализированный массив";
      break;
   case 4017:
      Ls_ret_4 = "Вызовы DLL не разрешены";
      break;
   case 4018:
      Ls_ret_4 = "Невозможно загрузить библиотеку";
      break;
   case 4019:
      Ls_ret_4 = "Невозможно вызвать функцию";
      break;
   case 4020:
      Ls_ret_4 = "Вызовы внешних библиотечных функций не разрешены";
      break;
   case 4021:
      Ls_ret_4 = "Недостаточно памяти для строки, возвращаемой из функции";
      break;
   case 4022:
      Ls_ret_4 = "Система занята";
      break;
   case 4050:
      Ls_ret_4 = "Неправильное количество параметров функции";
      break;
   case 4051:
      Ls_ret_4 = "Недопустимое значение параметра функции";
      break;
   case 4052:
      Ls_ret_4 = "Внутренняя ошибка строковой функции";
      break;
   case 4053:
      Ls_ret_4 = "Ошибка массива";
      break;
   case 4054:
      Ls_ret_4 = "Неправильное использование массива-таймсерии";
      break;
   case 4055:
      Ls_ret_4 = "Ошибка пользовательского индикатора";
      break;
   case 4056:
      Ls_ret_4 = "Массивы несовместимы";
      break;
   case 4057:
      Ls_ret_4 = "Ошибка обработки глобальныех переменных";
      break;
   case 4058:
      Ls_ret_4 = "Глобальная переменная не обнаружена";
      break;
   case 4059:
      Ls_ret_4 = "Функция не разрешена в тестовом режиме";
      break;
   case 4060:
      Ls_ret_4 = "Функция не подтверждена";
      break;
   case 4061:
      Ls_ret_4 = "Ошибка отправки почты";
      break;
   case 4062:
      Ls_ret_4 = "Ожидается параметр типа string";
      break;
   case 4063:
      Ls_ret_4 = "Ожидается параметр типа integer";
      break;
   case 4064:
      Ls_ret_4 = "Ожидается параметр типа double";
      break;
   case 4065:
      Ls_ret_4 = "В качестве параметра ожидается массив";
      break;
   case 4066:
      Ls_ret_4 = "Запрошенные исторические данные в состоянии обновления";
      break;
   case 4067:
      Ls_ret_4 = "Ошибка при выполнении торговой операции";
      break;
   case 4099:
      Ls_ret_4 = "Конец файла";
      break;
   case 4100:
      Ls_ret_4 = "Ошибка при работе с файлом";
      break;
   case 4101:
      Ls_ret_4 = "Неправильное имя файла";
      break;
   case 4102:
      Ls_ret_4 = "Слишком много открытых файлов";
      break;
   case 4103:
      Ls_ret_4 = "Невозможно открыть файл";
      break;
   case 4104:
      Ls_ret_4 = "Несовместимый режим доступа к файлу";
      break;
   case 4105:
      Ls_ret_4 = "Ни один ордер не выбран";
      break;
   case 4106:
      Ls_ret_4 = "Неизвестный символ";
      break;
   case 4107:
      Ls_ret_4 = "Неправильный параметр цены для торговой функции";
      break;
   case 4108:
      Ls_ret_4 = "Неверный номер тикета";
      break;
   case 4109:
      Ls_ret_4 = "Торговля не разрешена";
      break;
   case 4110:
      Ls_ret_4 = "Длинные позиции не разрешены";
      break;
   case 4111:
      Ls_ret_4 = "Короткие позиции не разрешены";
      break;
   case 4200:
      Ls_ret_4 = "Объект уже существует";
      break;
   case 4201:
      Ls_ret_4 = "Запрошено неизвестное свойство объекта";
      break;
   case 4202:
      Ls_ret_4 = "Объект не существует";
      break;
   case 4203:
      Ls_ret_4 = "Неизвестный тип объекта";
      break;
   case 4204:
      Ls_ret_4 = "Нет имени объекта";
      break;
   case 4205:
      Ls_ret_4 = "Ошибка координат объекта";
      break;
   case 4206:
      Ls_ret_4 = "Не найдено указанное подокно";
      break;
   case 4207:
      Ls_ret_4 = "Ошибка при работе с объектом";
      break;
   default:
      Ls_ret_4 = "Неизвестная ошибка";
   }
   return (Ls_ret_4);
}

// 92106D273A87E0D4E98361E7DB777FFA
double f0_11(int Ai_0) {
   double Ld_ret_4 = 0;
   for (int pos_12 = 0; pos_12 < OrdersHistoryTotal(); pos_12++) {
      if (!(OrderSelect(pos_12, SELECT_BY_POS, MODE_HISTORY))) break;
      if (OrderSymbol() == Symbol())
         if (OrderCloseTime() >= iTime(Symbol(), PERIOD_D1, Ai_0) && OrderCloseTime() < iTime(Symbol(), PERIOD_D1, Ai_0) + 86400) Ld_ret_4 += OrderProfit() + OrderSwap() + OrderCommission();
   }
   return (Ld_ret_4);
}

// B53A5EDA65DD2C5C76918FE4BE35941D
void f0_15() {
   double Ld_0 = f0_11(0);
   string name_8 = Gs_404 + "1";
   if (ObjectFind(name_8) == -1) {
      ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_8, OBJPROP_CORNER, 1);
      ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(name_8, OBJPROP_YDISTANCE, 15);
   }
   ObjectSetText(name_8, "Заработок сегодня: " + DoubleToStr(Ld_0, 2), 12, "Courier New", Yellow);
   Ld_0 = f0_11(1);
   name_8 = Gs_404 + "2";
   if (ObjectFind(name_8) == -1) {
      ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_8, OBJPROP_CORNER, 1);
      ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(name_8, OBJPROP_YDISTANCE, 30);
   }
   ObjectSetText(name_8, "Заработок вчера: " + DoubleToStr(Ld_0, 2), 12, "Courier New", Yellow);
   Ld_0 = f0_11(2);
   name_8 = Gs_404 + "3";
   if (ObjectFind(name_8) == -1) {
      ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_8, OBJPROP_CORNER, 1);
      ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(name_8, OBJPROP_YDISTANCE, 45);
   }
   ObjectSetText(name_8, "Заработок позавчера: " + DoubleToStr(Ld_0, 2), 12, "Courier New", Yellow);
   name_8 = Gs_404 + "4";
   if (ObjectFind(name_8) == -1) {
      ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);
      ObjectSet(name_8, OBJPROP_CORNER, 1);
      ObjectSet(name_8, OBJPROP_XDISTANCE, 10);
      ObjectSet(name_8, OBJPROP_YDISTANCE, 75);
   }
   ObjectSetText(name_8, "Баланс: " + DoubleToStr(AccountBalance(), 2), 14, "Courier New", Yellow);
}

// 8EF4C8D8D13E46C4950A6440FFBE9E36
string f0_8(string As_0) {
   int Lia_8[1] = {0};
   string Ls_ret_12 = "";
   if (GetVolumeInformationA(As_0 + ":\\", "                ", 15, Lia_8, 0, 0, "                ", 15)) {
      Ls_ret_12 = f0_9(Lia_8[0]);
      Ls_ret_12 = StringConcatenate(StringSubstr(Ls_ret_12, 0, 4), "-", StringSubstr(Ls_ret_12, 4));
   }
   return (Ls_ret_12);
}

// 90267E7BE5477D1C3601D9A426F82FA1
string f0_9(int Ai_0) {
   int Li_12;
   string Ls_ret_4 = "00000000";
   int Li_16 = 28;
   for (int Li_20 = 0; Li_20 < 8; Li_20++) {
      Li_12 = Ai_0 >> Li_16 & 15;
      if (Li_12 < 10) Ls_ret_4 = StringSetChar(Ls_ret_4, Li_20, Li_12 + 48);
      else Ls_ret_4 = StringSetChar(Ls_ret_4, Li_20, Li_12 - 10 + 65);
      Li_16 -= 4;
   }
   return (Ls_ret_4);
}

// 209D785D05E62D75FA8221E8F3BF93D2
int f0_2() {
   string Ls_0 = f0_8("C");
   if (Ls_0 == Gs_76) return (1);
   Alert("Expert does not Work on This computer");
   return (0);
}

Recommend