Navigation:Home > Content >

cm-Trend-polzuchka+test.mq4

Time: 2013-09-21 | Download file:cm-Trend-polzuchka+test.mq4

#property copyright "Copyright © 2012, [email protected]"
#property link      "http://cmillion.narod.ru"

extern int первый_шаг = 30;
extern int шаг_перемещения = 5;
extern int расстояние_между_ордерами = 10;
extern double Прибыль_закрытия = 10.0;
extern double Фиксированный_лот = 0.1;
extern double Процент_от_депозита = 0.1;
extern double умножение_объема_ордера = 1.5;
extern int округление_лота = 2;
extern double максимальный_объема_ордера = 100.0;
extern int безубыток = 30;
extern int мин_профит_безубытка = 3;
extern bool пропорциональное_увеличение = TRUE;
extern int TimeStart = 0;
extern int TimeEnd = 24;
extern int FridayHourClose = 16;
extern int Magic = 2012;
extern int размер_шрифта = 10;
extern color цвет_вывода_информации = Aqua;
extern bool показывать.прибыль = TRUE;
extern bool показывать.лоты = TRUE;
extern bool удалять.старую.информацию = FALSE;
//extern int Key = 0;
int gi_184;
int gi_188;
string gs_192;
int gi_200;
double gd_204;
double gd_212;
double gd_220;
double gd_228;
double gd_236;
double gd_244;

int init() {
   gd_204 = MarketInfo(Symbol(), MODE_MINLOT);
   gd_212 = MarketInfo(Symbol(), MODE_MAXLOT);
   if (gd_212 > максимальный_объема_ордера) gd_212 = максимальный_объема_ордера;
   gs_192 = " " + AccountCurrency();
   if (Digits == 5 || Digits == 3) {
      gi_188 = 30;
      первый_шаг = 10 * первый_шаг;
      шаг_перемещения = 10 * шаг_перемещения;
      расстояние_между_ордерами = 10 * расстояние_между_ордерами;
      Прибыль_закрытия = 10.0 * Прибыль_закрытия;
      безубыток = 10 * безубыток;
      мин_профит_безубытка = 10 * мин_профит_безубытка;
   }
   Comment("Trend-ползучка Copyright © 2012, [email protected]");
   gi_184 = MarketInfo(Symbol(), MODE_STOPLEVEL);
   if (расстояние_между_ордерами < gi_184) {
      Alert("расстояние_между_ордерами меньше STOPLEVEL, изменен на ", gi_184);
      расстояние_между_ордерами = gi_184;
   }
   if (первый_шаг < gi_184) {
      Alert("первый_шаг меньше STOPLEVEL, изменен на ", gi_184);
      первый_шаг = gi_184;
   }
   int li_0 = 15;
   f0_6("IsTradeAllowed", "Торговля разрешена", 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Balance", StringConcatenate("Balance ", DoubleToStr(AccountBalance(), 2), gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Equity", StringConcatenate("Equity ", DoubleToStr(AccountEquity(), 2), gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("FreeMargin", StringConcatenate("FreeMargin ", DoubleToStr(AccountFreeMargin(), 2), gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("ProfitB", StringConcatenate("Profit 0", gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("ProfitS", StringConcatenate("Profit 0", gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Profit", StringConcatenate("Profit 0", gs_192), 5, li_0, цвет_вывода_информации);
   li_0 += 3.5 * размер_шрифта;
   f0_6("MAX LOSS", "", 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Close LOT", "", 5, li_0, цвет_вывода_информации);
   li_0 += 3.5 * размер_шрифта;
   f0_6("-", "----------------------------------------------", 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("ПАРАМЕТРЫ", "ПАРАМЕТРЫ", 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   string ls_4 = "";
   f0_6("Первый шаг", StringConcatenate("Первый шаг ", первый_шаг, " п"), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Шаг изменения", StringConcatenate("Шаг изменения ордера ", шаг_перемещения, " п"), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("Шаг между", StringConcatenate("Шаг между ордерами ", расстояние_между_ордерами, " п"), 5, li_0, цвет_вывода_информации);
   li_0 += 2.0 * размер_шрифта;
   f0_6("безубыток", StringConcatenate("безубыток ", безубыток, " + ", мин_профит_безубытка, " п"), 5, li_0, цвет_вывода_информации);
   li_0 += 2.0 * размер_шрифта;
   f0_6("Прибыль закрытия ", StringConcatenate("Прибыль закрытия ", Прибыль_закрытия, " п"), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   if (Фиксированный_лот == 0.0) f0_6("лот", StringConcatenate("Риск ", DoubleToStr(Процент_от_депозита, 2), "%", " х ", DoubleToStr(умножение_объема_ордера, 2)), 5, li_0, цвет_вывода_информации);
   else f0_6("лот", StringConcatenate("Фикс. лот ", DoubleToStr(Фиксированный_лот, 2), " х ", DoubleToStr(умножение_объема_ордера, 2)), 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   f0_6("--", "----------------------------------------------", 5, li_0, цвет_вывода_информации);
   li_0 += 1.5 * размер_шрифта;
   return (0);
}
				 	 		  		   		  	   	   				 	   	 		  		 					 		  	 	   	      		 	    				 	 			 		  	  		   	  	  		 	 	 		   	 				  						    		  	 		 
int deinit() {
   if (!IsTesting()) ObjectsDeleteAll(0);
   f0_0("info");
   return (0);
}
			 		 	         	 	       	 					 			 	      		 			 	    			 	 	  				    					  		 		  	 	   	   	   		 	 		 						 	  		 	 		 		 	    	 	  			
int start() {
   bool li_4;
   double ld_8;
   double ld_16;
   double ld_32;
   double ld_40;
   double ld_48;
   double ld_56;
   double ld_64;
   double ld_72;
   double ld_80;
   int li_88;
   int li_92;
   int li_96;
   int li_100;
   int li_104;
   int li_108;
   int li_112;
   int li_116;
   double ld_120;
   double ld_128;
   double ld_136;
   double ld_144;
   double ld_152;
   double ld_160;
   double ld_168;
   double ld_176;
   double ld_184;
   double ld_192;
   double ld_200;
   double ld_208;
   double ld_220;
   double ld_244;
   double ld_252;
   gi_184 = MarketInfo(Symbol(), MODE_STOPLEVEL);
   /*if ((!IsDemo()) && !IsTesting() && 3 * (AccountNumber() - 12345) != Key) {
      f0_6("Торговля", "Неверный Key, торговля запрещена, обратитесь к [email protected] за ключем", 5, 15, Red);
      return;
   }*/
   int li_0 = Hour();
   if (TimeStart < TimeEnd && li_0 >= TimeStart && li_0 < TimeEnd) li_4 = TRUE;
   else {
      if (TimeStart > TimeEnd && li_0 >= TimeStart || li_0 < TimeEnd) li_4 = TRUE;
      else li_4 = FALSE;
   }
   if (li_4 && DayOfWeek() == 5)
      if (FridayHourClose <= li_0) li_4 = FALSE;
   if (!IsDllsAllowed()) {
      f0_6("IsTradeAllowed", "Включите разрешить использование DLL", 5, 15, Red);
      return;
   }
   if (!IsTradeAllowed()) {
      f0_6("IsTradeAllowed", "Торговля запрещена", 5, 15, Red);
      return (0);
   }
   f0_6("IsTradeAllowed", "Торговля разрешена", 5, 15, Lime);
   for (int li_216 = 0; li_216 < OrdersTotal(); li_216++) {
      if (OrderSelect(li_216, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol() && Magic == OrderMagicNumber()) {
            li_104 = OrderType();
            ld_64 = NormalizeDouble(OrderLots(), округление_лота);
            ld_8 = NormalizeDouble(OrderOpenPrice(), Digits);
            ld_16 = NormalizeDouble(OrderStopLoss(), Digits);
            li_116 = OrderTicket();
            if (li_104 == OP_BUYSTOP) {
               li_96++;
               li_108 = li_116;
               ld_152 = ld_8;
               ld_72 = ld_64;
            }
            if (li_104 == OP_SELLSTOP) {
               li_100++;
               li_112 = li_116;
               ld_160 = ld_8;
               ld_80 = ld_64;
            }
            if (li_104 == OP_BUY) {
               if (показывать.лоты) f0_2(li_116, Blue, ld_8, DoubleToStr(ld_64, 2));
               li_88++;
               ld_48 += ld_64;
               ld_176 += ld_8 * ld_64;
               if (ld_208 < ld_64) ld_208 = ld_64;
               if (ld_120 < ld_8 || ld_120 == 0.0) ld_120 = ld_8;
               if (ld_128 > ld_8 || ld_128 == 0.0) ld_128 = ld_8;
               ld_40 += OrderProfit() + OrderSwap() + OrderCommission();
               if (безубыток > 0 && NormalizeDouble(Bid - безубыток * Point, Digits) >= ld_8 && ld_16 == 0.0)
                  if (!OrderModify(li_116, ld_8, NormalizeDouble(ld_8 + мин_профит_безубытка * Point, Digits), OrderTakeProfit(), 0, White)) Comment("безубыток Error ", GetLastError(), "  order ", li_116);
            }
            if (li_104 == OP_SELL) {
               if (показывать.лоты) f0_2(li_116, Red, ld_8, DoubleToStr(ld_64, 2));
               li_92++;
               ld_56 += ld_64;
               ld_168 += ld_8 * ld_64;
               if (ld_200 < ld_64) ld_200 = ld_64;
               if (ld_144 > ld_8 || ld_144 == 0.0) ld_144 = ld_8;
               if (ld_136 < ld_8 || ld_136 == 0.0) ld_136 = ld_8;
               ld_32 += OrderProfit() + OrderSwap() + OrderCommission();
               if (безубыток > 0 && NormalizeDouble(Ask + безубыток * Point, Digits) <= ld_8 && ld_16 == 0.0)
                  if (!OrderModify(li_116, ld_8, NormalizeDouble(ld_8 - мин_профит_безубытка * Point, Digits), OrderTakeProfit(), 0, White)) Comment("безубыток Error ", GetLastError(), "  order ", li_116);
            }
         }
      }
   }
   f0_6("Balance", StringConcatenate("Balance ", DoubleToStr(AccountBalance(), 2), gs_192), 5, 35, цвет_вывода_информации);
   f0_6("Equity", StringConcatenate("Equity ", DoubleToStr(AccountEquity(), 2), gs_192), 5, 55, цвет_вывода_информации);
   f0_6("FreeMargin", StringConcatenate("FreeMargin ", DoubleToStr(AccountFreeMargin(), 2), gs_192), 5, 75, цвет_вывода_информации);
   f0_6("ProfitB", StringConcatenate(li_88, " Buy ", DoubleToStr(ld_48, 2), " Lot  ", DoubleToStr(ld_40, 2), gs_192), 5, 95, f0_5(ld_40 < 0.0, 255, 65280));
   f0_6("ProfitS", StringConcatenate(li_92, " Sell ", DoubleToStr(ld_56, 2), " Lot  ", DoubleToStr(ld_32, 2), gs_192), 5, 95, f0_5(ld_32 < 0.0, 255, 65280));
   double ld_24 = ld_40 + ld_32;
   f0_6("Profit", StringConcatenate("Profit ", DoubleToStr(ld_24, 2), gs_192), 5, 95, f0_5(ld_24 < 0.0, 255, 65280));
   if (li_88 + li_92 == 0 && (!li_4)) {
      f0_6("IsTradeAllowed", "Торговля запрещена по времени", 5, 15, Red);
      return;
   }
   ObjectDelete("SLb");
   ObjectDelete("SLs");
   if (li_88 > 0) {
      ld_184 = NormalizeDouble(ld_176 / ld_48, Digits);
      ObjectCreate("SLb", OBJ_ARROW, 0, Time[0], ld_184, 0, 0, 0, 0);
      ObjectSet("SLb", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
      ObjectSet("SLb", OBJPROP_COLOR, Blue);
   }
   if (li_92 > 0) {
      ld_192 = NormalizeDouble(ld_168 / ld_56, Digits);
      ObjectCreate("SLs", OBJ_ARROW, 0, Time[0], ld_192, 0, 0, 0, 0);
      ObjectSet("SLs", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
      ObjectSet("SLs", OBJPROP_COLOR, Red);
   }
   double ld_236 = AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED) / 2.0;
   double ld_228 = 0;
   if (умножение_объема_ордера != 1.0) {
      ld_244 = NormalizeDouble(ld_208 * умножение_объема_ордера, округление_лота);
      if (пропорциональное_увеличение) ld_244 = NormalizeDouble(ld_244 * ((ld_128 - Ask) / Point / расстояние_между_ордерами), округление_лота);
   } else ld_244 = f0_3();
   if (li_96 == 0) {
      if (li_88 != 0) {
         if (NormalizeDouble(Ask + первый_шаг * Point, Digits) < ld_128 - расстояние_между_ордерами * Point) {
            ld_220 = ld_244;
            ld_228 = NormalizeDouble(Ask + первый_шаг * Point, Digits);
         } else {
            ld_220 = f0_3();
            ld_228 = NormalizeDouble(ld_120 + расстояние_между_ордерами * Point, Digits);
            if (ld_228 < NormalizeDouble(Ask + gi_184 * Point, Digits)) ld_228 = NormalizeDouble(Ask + первый_шаг * Point, Digits);
            if (ld_228 > NormalizeDouble(Ask + 3 * расстояние_между_ордерами * Point, Digits)) ld_228 = 0;
         }
      }
      if (ld_228 != 0.0) {
         if (ld_220 > gd_212) ld_220 = gd_212;
         if (ld_220 > ld_236) {
            Alert("Недостаточно средств для открытия лота = ", DoubleToStr(ld_220, 2), " выставляем лот = ", DoubleToStr(ld_236, 2));
            ld_220 = ld_236;
         }
         if (ld_220 >= gd_204)
            if (OrderSend(Symbol(), OP_BUYSTOP, ld_220, ld_228, gi_188, 0, 0, "cm_EA_TSO", Magic, 0, Blue) == -1) Print("невозможно выставить ордер BUYSTOP Lot ", DoubleToStr(ld_220, 2), " Price ", ld_228, " Ask ", Ask);
      }
   } else {
      ld_228 = NormalizeDouble(Ask + первый_шаг * Point, Digits);
      if (li_88 != 0 && ld_152 < ld_128 && ld_228 < ld_128 - расстояние_между_ордерами * Point && ld_152 - шаг_перемещения * Point >= ld_228 && ld_244 <= ld_236 && ld_72 < ld_244) return (OrderDelete(li_108));
      if (NormalizeDouble(ld_152 - шаг_перемещения * Point, Digits) > ld_228 && li_88 == 0 || ld_228 >= NormalizeDouble(ld_120 + расстояние_между_ордерами * Point, Digits) ||
         ld_228 <= NormalizeDouble(ld_128 - расстояние_между_ордерами * Point, Digits)) {
         if (!OrderModify(li_108, ld_228, 0, 0, 0, White)) Print("Error ", GetLastError(), "   Order Modify Buy   OOP ", ld_152, "->", ld_228);
         else Print("Order Buy Modify   OOP ", ld_8, "->", ld_228);
      }
   }
   ld_228 = 0;
   if (умножение_объема_ордера != 1.0) {
      ld_244 = NormalizeDouble(ld_200 * умножение_объема_ордера, округление_лота);
      if (пропорциональное_увеличение) ld_244 = NormalizeDouble(ld_244 * ((Bid - ld_136) / Point / расстояние_между_ордерами), округление_лота);
   } else ld_244 = f0_3();
   if (li_100 == 0) {
      if (li_92 != 0) {
         if (NormalizeDouble(Bid - первый_шаг * Point, Digits) > ld_136 + расстояние_между_ордерами * Point) {
            ld_220 = ld_244;
            ld_228 = NormalizeDouble(Bid - первый_шаг * Point, Digits);
         } else {
            ld_220 = f0_3();
            ld_228 = NormalizeDouble(ld_144 - расстояние_между_ордерами * Point, Digits);
            if (ld_228 > NormalizeDouble(Bid - gi_184 * Point, Digits)) ld_228 = NormalizeDouble(Bid - первый_шаг * Point, Digits);
            if (ld_228 < NormalizeDouble(Bid - 3 * расстояние_между_ордерами * Point, Digits)) ld_228 = 0;
         }
      }
      if (ld_228 != 0.0) {
         if (ld_220 > gd_212) ld_220 = gd_212;
         if (ld_220 > ld_236) {
            Alert("Недостаточно средств для открытия лота = ", DoubleToStr(ld_220, 2), " выставляем лот = ", DoubleToStr(ld_236, 2));
            ld_220 = ld_236;
         }
         if (ld_220 >= gd_204)
            if (OrderSend(Symbol(), OP_SELLSTOP, ld_220, ld_228, gi_188, 0, 0, "cm_EA_TSO", Magic, 0, Red) == -1) Print("невозможно выставить ордер SELLSTOP Lot ", DoubleToStr(ld_220, 2), " Price ", ld_228, " Bid ", Bid);
      }
   } else {
      ld_228 = NormalizeDouble(Bid - первый_шаг * Point, Digits);
      if (li_92 != 0 && ld_160 > ld_136 && ld_228 > ld_136 + расстояние_между_ордерами * Point && ld_160 + шаг_перемещения * Point <= ld_228 && ld_244 <= ld_236 && ld_80 < ld_244) return (OrderDelete(li_112));
      if (NormalizeDouble(ld_160 + шаг_перемещения * Point, Digits) < ld_228 && li_92 == 0 || ld_228 <= NormalizeDouble(ld_144 - расстояние_между_ордерами * Point, Digits) ||
         ld_228 >= NormalizeDouble(ld_136 + расстояние_между_ордерами * Point, Digits)) {
         if (!OrderModify(li_112, ld_228, 0, 0, 0, White)) Print("Error ", GetLastError(), "   Order Modify Sell   OOP ", ld_160, "->", ld_228);
         else Print("Order Sell Modify   OOP ", ld_8, "->", ld_228);
      }
   }
   if (gd_220 > ld_24) gd_220 = ld_24;
   f0_6("MAX LOSS", StringConcatenate("MAX LOSS ", DoubleToStr(gd_220, 2)), размер_шрифта, "", Red);
   if (gd_228 > ld_56) {
      gd_244 += gd_228 - ld_56;
      f0_6("Close LOT", StringConcatenate("Close LOT ", DoubleToStr(gd_244, 2)), размер_шрифта, "", Red);
   }
   gd_228 = ld_56;
   if (gd_236 > ld_48) {
      gd_244 += gd_236 - ld_48;
      f0_6("Close LOT", StringConcatenate("Close LOT ", DoubleToStr(gd_244, 2)), размер_шрифта, "", Red);
   }
   gd_236 = ld_48;
   if (ld_48 != ld_56) {
      if (ld_48 != ld_56) ld_252 = Прибыль_закрытия * MathAbs(ld_48 - ld_56) * MarketInfo(Symbol(), MODE_TICKVALUE);
      f0_6("Прибыль закрытия ", StringConcatenate("Прибыль закрытия ", Прибыль_закрытия, " = ", DoubleToStr(ld_252, 2), gs_192), 5, 0, цвет_вывода_информации);
      if (ld_24 >= ld_252) {
         if (f0_1()!=0) 
         {
            gd_244 += ld_56;
            gd_244 += ld_48;
            f0_6("Close LOT", StringConcatenate("Close LOT ", DoubleToStr(gd_244, 2)), размер_шрифта, "", Red);
            gd_228 = 0;
            gd_236 = 0;
         }
         if (!(показывать.прибыль)) return;
         f0_4(Blue, MathMin(iLow(NULL, PERIOD_H1, 0), iLow(NULL, PERIOD_H1, 1)), DoubleToStr(ld_24, 2), 30);
         return;
      }
   }
   if (удалять.старую.информацию && gi_200 != iTime(NULL, PERIOD_D1, 0) && li_88 + li_92 == 0) {
      gi_200 = iTime(NULL, PERIOD_D1, 0);
      ObjectsDeleteAll(0, OBJ_TREND);
      ObjectsDeleteAll(0, OBJ_ARROW);
      ObjectsDeleteAll(0, OBJ_TEXT);
   }
   if (li_88 == 0) {
      ld_220 = f0_3();
      if (OrderSend(Symbol(), OP_BUY, ld_220, NormalizeDouble(Ask, Digits), gi_188, 0, 0, "cm_EA_TSO", Magic, 0, Blue) == -1) Print("невозможно выставить ордер BUY Lot ", DoubleToStr(ld_220, 2), " Price ", Ask);
   }
   if (li_92 == 0) {
      ld_220 = f0_3();
      if (OrderSend(Symbol(), OP_SELL, ld_220, NormalizeDouble(Bid, Digits), gi_188, 0, 0, "cm_EA_TSO", Magic, 0, Red) == -1) Print("невозможно выставить ордер SELL Lot ", DoubleToStr(ld_220, 2), " Price ", Bid);
   }
   return (0);
}
	  	 			 				 	   	 	 	  		 		 		 	  			 				  	    			  	      			  	   		  	 	 	  		    	 	 		 		 	 				 	 				          	   	   	  	   	 	  		
int f0_1() {
   int li_4;
   int li_8;
   int li_12;
   int li_20;
   bool li_0 = TRUE;
   while (true) {
      for (int li_16 = OrdersTotal() - 1; li_16 >= 0; li_16--) {
         if (OrderSelect(li_16, SELECT_BY_POS)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
               li_12 = OrderType();
               if (li_12 == OP_BUY) {
                  li_0 = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), gi_188, Blue);
                  if (li_0) Comment("Закрыт ордер N ", OrderTicket(), "  прибыль ", OrderProfit(), "     ", TimeToStr(TimeCurrent(), TIME_SECONDS));
               }
               if (li_12 == OP_SELL) {
                  li_0 = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), gi_188, Red);
                  if (li_0) Comment("Закрыт ордер N ", OrderTicket(), "  прибыль ", OrderProfit(), "     ", TimeToStr(TimeCurrent(), TIME_SECONDS));
               }
               if (li_12 > OP_SELL) li_0 = OrderDelete(OrderTicket());
               if (!li_0) {
                  li_4 = GetLastError();
                  if (li_4 >= 2/* COMMON_ERROR */) {
                     if (li_4 == 129/* INVALID_PRICE */) {
                        Comment("Неправильная цена ", TimeToStr(TimeCurrent(), TIME_SECONDS));
                        RefreshRates();
                        continue;
                     }
                     if (li_4 == 146/* TRADE_CONTEXT_BUSY */) {
                        if (!(IsTradeContextBusy())) continue;
                        Sleep(2000);
                        continue;
                     }
                     Comment("Ошибка ", li_4, " закрытия ордера N ", OrderTicket(), "     ", TimeToStr(TimeCurrent(), TIME_SECONDS));
                  }
               }
            }
         }
      }
      li_20 = 0;
      for (li_16 = 0; li_16 < OrdersTotal(); li_16++) {
         if (OrderSelect(li_16, SELECT_BY_POS))
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) li_20++;
      }
      if (li_20 == 0) break;
      li_8++;
      if (li_8 > 10) {
         Alert(Symbol(), " Не удалось закрыть все сделки, осталось еще ", li_20);
         return (0);
      }
      Sleep(1000);
      RefreshRates();
   }
   return (1);
}
		   			  	 	 	  				 	   				 					 			  	 	  	 	 				    	    	 		 	    		 	 	   			   				 		  			 			    					 	     	     	 	    	  				  		
int f0_5(bool ai_0, int ai_4, int ai_8) {
   if (ai_0) return (ai_4);
   return (ai_8);
}
	    			 		 	 	   			 	  					 		 		 			 		 	  	   				  	 	    				 	   			 	 	 	 			    			 		 				 				   				  	           	      	   			  		
void f0_6(string as_0, string as_8, int ai_16, int ai_20, color ai_24) {
   if (ObjectFind(as_0) == -1) {
      ObjectCreate(as_0, OBJ_LABEL, 0, 0, 0);
      ObjectSet(as_0, OBJPROP_CORNER, 1);
      ObjectSet(as_0, OBJPROP_XDISTANCE, ai_16);
      ObjectSet(as_0, OBJPROP_YDISTANCE, ai_20);
   }
   ObjectSetText(as_0, as_8, размер_шрифта, "Arial", ai_24);
}
	  			 	 			      	      		  				 	 		 	 			  		     	   	  	 	 			 			  		 				 	   		   	    	 		    			 			 		   	 	    		 		   		     	   			
int f0_0(string as_0) {
   string ls_12;
   string ls_20;
   for (int li_8 = ObjectsTotal() - 1; li_8 >= 0; li_8--) {
      ls_12 = ObjectName(li_8);
      ls_20 = StringSubstr(ls_12, 0, StringLen(as_0));
      if (ls_20 == as_0) ObjectDelete(ls_12);
   }
   Comment("");
   return (0);
}
		  			 	 	   						  			 		 	   						 	 	     		 	 				  		  	  				 		 				  	  	 	 					  	 	 		  	     			  	 		  			  	   		  	 						     
double f0_3() {
   double ld_0 = 0.0000000000222;
   if (ld_0 == 0.0) return (0);
   if (Фиксированный_лот > 0.0) return (Фиксированный_лот);
   double ld_8 = NormalizeDouble(AccountBalance() * Процент_от_депозита / 100.0 / MarketInfo(Symbol(), MODE_MARGINREQUIRED), округление_лота);
   if (ld_8 < gd_204) ld_8 = gd_204;
   return (ld_8);
}
	    	   		 	  	  			  	 						 	 		 	   		 	 	    			 	 	 	  						 			 			 		  	 					  			    				   		   	  	  	  		      	        	  			 	 	
void f0_4(color ai_0, double ad_4, string as_12, int ai_20) {
   string ls_24 = StringConcatenate(TimeToStr(TimeCurrent(), TIME_SECONDS), " ", as_12);
   ObjectDelete(ls_24);
   ObjectCreate(ls_24, OBJ_TEXT, 0, Time[0], ad_4, 0, 0, 0, 0);
   ObjectSet(ls_24, OBJPROP_ANGLE, ai_20);
   ObjectSetText(ls_24, as_12, размер_шрифта, "Times New Roman", ai_0);
}
	  	   							  	 	 		  			 	 		  	    										   	   		   		  		   	 			   				  	 	 	 	 		 				 		 	 	 	   	     		 	  	 				  	 	  	 	 				 
void f0_2(string as_0, color ai_8, double ad_12, string as_20) {
   if (ObjectFind(as_0) == -1) {
      ObjectCreate(as_0, OBJ_TEXT, 0, Time[5], ad_12, 0, 0, 0, 0);
      ObjectSet(as_0, OBJPROP_ANGLE, 0);
      ObjectSetText(as_0, as_20, размер_шрифта, "Times New Roman", ai_8);
   }
}

Recommend