/* G e n e r a t e d by ex4-to-mq4 decompiler FREEWARE 4.0.509.5 Website: H T TP:/ / wW w .ME TA quo t e S. net E-mail : SUppoRT @M e TA q UOt Es. n eT */ #property copyright "Copyright © 2010, Vladimir Hlystov" #property link "cmillion@narod.ru" extern string Managing.capital = " If a lot = 0, then the lot is calculated as a percentage(LOTrisk) of available funds"; extern double LOT = 0.1; extern double LOTrisk = 5.0; extern int takeprofit = 500; extern double K_lot = 2.0; extern double Maxlot = 5.0; extern int MaxRisk = 100; extern string Away.from.the = " fractal, candles or Zigzag Отступ от фрактала"; extern int Delta = 100; extern string Options.Trailing = "(0)-notTral (-1)-fractals (-2)-candl (-3)-ZigZag (>0)-PipsTral"; extern int TrailingStop = 100; extern string Duration.of.open.orders = " to close to the minimum profit"; extern int AllTimeStopOrders = 10; extern string Time.Work = "RestDay - weekday (0-Sunday,1,2,3,4,5,6); TimeStart,TimeEnd - (0-24)"; extern int RestDay_I = 0; extern int RestDay_II = 0; extern int TimeStart = 0; extern int TimeEnd = 24; extern string Options.Zigzag = " "; extern int Zigzag_Depth = 12; extern int Zigzag_Deviation = 5; extern int Zigzag_Backstep = 3; extern string Options.Visualization = " "; color G_color_212 = Silver; extern bool DrawInfo = TRUE; extern int Magic = 0; double Gd_224; double Gd_232; double G_price_240; double G_price_248; double G_price_256; double G_price_264; int Gi_272; double Gd_276; double Gd_284; double Gd_292; double Gd_300; double Gd_308; int Gi_316; int Gi_320; int Gi_324; int Gi_328; // E37F0136AA3FFAF149B351F6A4C948E9 int init() { Gd_232 = MarketInfo(Symbol(), MODE_MINLOT); Gd_224 = MarketInfo(Symbol(), MODE_MAXLOT); if (Maxlot > Gd_224) Maxlot = Gd_224; if (Gd_232 == 0.01) Gi_272 = 2; if (Gd_232 > 0.01) Gi_272 = 1; if (Gd_232 > 0.1) Gi_272 = 0; if (DrawInfo) { ObjectCreate("БАЛАНС", OBJ_LABEL, 0, 0, 0); ObjectSet("БАЛАНС", OBJPROP_CORNER, 1); ObjectSet("БАЛАНС", OBJPROP_XDISTANCE, 10); ObjectSet("БАЛАНС", OBJPROP_YDISTANCE, 25); ObjectCreate("доход", OBJ_LABEL, 0, 0, 0); ObjectSet("доход", OBJPROP_CORNER, 1); ObjectSet("доход", OBJPROP_XDISTANCE, 10); ObjectSet("доход", OBJPROP_YDISTANCE, 55); ObjectCreate("доходS", OBJ_LABEL, 0, 0, 0); ObjectSet("доходS", OBJPROP_CORNER, 1); ObjectSet("доходS", OBJPROP_XDISTANCE, 10); ObjectSet("доходS", OBJPROP_YDISTANCE, 35); ObjectCreate("доходB", OBJ_LABEL, 0, 0, 0); ObjectSet("доходB", OBJPROP_CORNER, 1); ObjectSet("доходB", OBJPROP_XDISTANCE, 10); ObjectSet("доходB", OBJPROP_YDISTANCE, 45); } return (0); } // 52D46093050F38C27267BCE42543EF60 int deinit() { return (0); } // EA2B2676C28C0DB26D39331A336C6B92 int start() { string Ls_unused_12; string name_20; bool Li_36; double lots_40; double Ld_48; double Ld_56; double Ld_64; double Ld_72; double Ld_88; double Ld_96; double order_open_price_104; double price_120; double Ld_128; double price_136; double order_lots_144; double order_lots_152; int ticket_160; int ticket_164; double order_lots_168; double order_lots_176; double order_lots_184; int spread_28 = MarketInfo(Symbol(), MODE_SPREAD); int hour_32 = Hour(); if (hour_32 >= TimeStart && hour_32 < TimeEnd) Li_36 = TRUE; else { Li_36 = FALSE; Comment("Торговля запрещена по времени"); } if (DayOfWeek() == RestDay_I || DayOfWeek() == RestDay_II) { Li_36 = FALSE; Comment("Торговля запрещена в этот день недели"); } Gd_224 = NormalizeDouble(AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED) - Gd_232, Gi_272); if (Gd_224 < 0.0) Gd_224 = 0; if (Gd_224 > MarketInfo(Symbol(), MODE_MAXLOT)) Gd_224 = MarketInfo(Symbol(), MODE_MAXLOT); if (LOT != 0.0) { if (LOT > Gd_224) { if (LOT < Gd_232) lots_40 = 0; else lots_40 = Gd_232; } else lots_40 = LOT; } else lots_40 = NormalizeDouble(Gd_224 * LOTrisk / 100.0, Gi_272); if (lots_40 < Gd_232) lots_40 = Gd_232; if (Gd_224 < Gd_232) lots_40 = 0; Gd_276 = MarketInfo(Symbol(), MODE_STOPLEVEL); if (takeprofit < Gd_276 && takeprofit != 0) takeprofit = Gd_276; if (DrawInfo) { ObjectDelete("STOPLEVEL_Up"); ObjectCreate("STOPLEVEL_Up", OBJ_ARROW, 0, Time[0], Ask + Gd_276 * Point, 0, 0, 0, 0); ObjectSet("STOPLEVEL_Up", OBJPROP_ARROWCODE, 4); ObjectSet("STOPLEVEL_Up", OBJPROP_COLOR, Aqua); ObjectDelete("STOPLEVEL_Dn"); ObjectCreate("STOPLEVEL_Dn", OBJ_ARROW, 0, Time[0], Bid - Gd_276 * Point, 0, 0, 0, 0); ObjectSet("STOPLEVEL_Dn", OBJPROP_ARROWCODE, 4); ObjectSet("STOPLEVEL_Dn", OBJPROP_COLOR, DeepPink); } int count_80 = 0; for (int Li_84 = 1; Li_84 < 100; Li_84++) { Ld_48 = NormalizeDouble(iFractals(NULL, 0, MODE_UPPER, Li_84), Digits); if (Ld_48 != 0.0) { Ld_48 = NormalizeDouble(iCustom(NULL, 0, "Zigzag", Zigzag_Depth, Zigzag_Deviation, Zigzag_Backstep, 0, Li_84), Digits); if (Ld_48 != 0.0 && count_80 == 0) { count_80++; Ld_64 = Ld_48; Ld_48 = 0; continue; } if (Ld_48 != 0.0 && count_80 > 0 && Ld_64 <= Ld_48) { Ld_48 += Delta * Point; if (Ask + Gd_276 * Point < Ld_48) break; } Ld_48 = 0; } } count_80 = 0; for (Li_84 = 1; Li_84 < 100; Li_84++) { Ld_56 = NormalizeDouble(iFractals(NULL, 0, MODE_LOWER, Li_84), Digits); if (Ld_56 != 0.0) { Ld_56 = NormalizeDouble(iCustom(NULL, 0, "Zigzag", Zigzag_Depth, Zigzag_Deviation, Zigzag_Backstep, 0, Li_84), Digits); if (Ld_48 != 0.0 && count_80 == 0) { count_80++; Ld_72 = Ld_56; Ld_56 = 0; continue; } if (Ld_56 != 0.0 && count_80 > 0 && Ld_72 >= Ld_56) { Ld_56 -= Delta * Point; if (Bid - Gd_276 * Point > Ld_56) break; } Ld_56 = 0; } } double Ld_112 = 1000000000; Gi_316 = 0; Gi_320 = 0; for (Li_84 = 0; Li_84 < OrdersTotal(); Li_84++) { if (OrderSelect(Li_84, SELECT_BY_POS, MODE_TRADES) == TRUE) { order_open_price_104 = OrderOpenPrice(); if (Magic == OrderMagicNumber() && OrderSymbol() == Symbol()) { if (OrderType() == OP_BUYSTOP) { Ld_88 = order_open_price_104; ticket_160 = OrderTicket(); order_lots_168 = OrderLots(); } if (OrderType() == OP_SELLSTOP) { Ld_96 = order_open_price_104; ticket_164 = OrderTicket(); order_lots_176 = OrderLots(); } if (OrderType() == OP_BUY) { Gi_316 = Gi_316 + TimeCurrent() - OrderOpenTime(); if (Ld_112 > order_open_price_104) Ld_112 = order_open_price_104; Ld_128 = order_open_price_104; order_lots_144 = OrderLots(); if (DrawInfo && (!IsTesting())) { name_20 = "ордер Bay " + OrderTicket(); ObjectDelete(name_20); ObjectDelete(name_20 + " з"); ObjectCreate(name_20, OBJ_TREND, 0, OrderOpenTime(), order_open_price_104, Time[0], Bid); ObjectSet(name_20, OBJPROP_COLOR, LightSkyBlue); ObjectCreate(name_20 + " з", OBJ_ARROW, 0, Time[0], Bid, 0, 0, 0, 0); ObjectSet(name_20, OBJPROP_STYLE, STYLE_DOT); ObjectSet(name_20, OBJPROP_RAY, FALSE); ObjectSet(name_20 + " з", OBJPROP_ARROWCODE, 3); ObjectSet(name_20 + " з", OBJPROP_COLOR, G_color_212); } } if (OrderType() == OP_SELL) { Gi_320 = Gi_320 + TimeCurrent() - OrderOpenTime(); if (price_120 < order_open_price_104) price_120 = order_open_price_104; price_136 = order_open_price_104; order_lots_152 = OrderLots(); if (DrawInfo && (!IsTesting())) { name_20 = "ордер Sell " + OrderTicket(); ObjectDelete(name_20); ObjectDelete(name_20 + " з"); ObjectCreate(name_20, OBJ_TREND, 0, OrderOpenTime(), order_open_price_104, Time[0], Ask); ObjectSet(name_20, OBJPROP_COLOR, Pink); ObjectCreate(name_20 + " з", OBJ_ARROW, 0, Time[0], Ask, 0, 0, 0, 0); ObjectSet(name_20, OBJPROP_STYLE, STYLE_DOT); ObjectSet(name_20, OBJPROP_RAY, FALSE); ObjectSet(name_20 + " з", OBJPROP_ARROWCODE, 3); ObjectSet(name_20 + " з", OBJPROP_COLOR, G_color_212); } } } } } if (Ld_112 == D'09.09.2001 04:46:40' && price_120 == 0.0 && order_lots_168 != order_lots_176) f0_3(); if (order_lots_184 < order_lots_144) order_lots_184 = order_lots_144; if (order_lots_184 < order_lots_152) order_lots_184 = order_lots_152; if (Ld_88 - Point > Ld_48 || Ld_88 == 0.0 && Ld_48 != 0.0) { if (MathAbs(Ld_128 - Ld_48) / Point >= spread_28) { if (ticket_160 != 0) { OrderDelete(ticket_160, Blue); Print("удаление ", ticket_160, " StopOrderUp ", Ld_88, " FrUp ", Ld_48); Sleep(500); } if (Ld_128 != 0.0) { lots_40 = NormalizeDouble(order_lots_184 * K_lot, Gi_272); if (lots_40 > Maxlot) lots_40 = Maxlot; } if (lots_40 != 0.0) { if (Li_36 && Gi_328 != Time[0]) { if (OrderSend(Symbol(), OP_BUYSTOP, lots_40, NormalizeDouble(Ld_48, Digits), 3, 0, 0, 0, Magic, 0, Blue) == -1) Print("Ошибка открытия BUYSTOP ", f0_6(0/* NO_ERROR */), " ", Symbol(), " Тек.цена ", Ask, " Lot ", lots_40, " FrUp ", Ld_48); else Gi_328 = Time[0]; } } else Comment(Symbol(), "BUYSTOP недостаточно средств Lot=", lots_40, " MAXLOT ", Gd_224, " MinLot ", Gd_232); } } if (Ld_96 + Point < Ld_56) { if (MathAbs(price_136 - Ld_56) / Point >= spread_28) { if (ticket_164 != 0) { OrderDelete(ticket_164, Red); Print("удаление ", ticket_164, " StopOrderDn ", Ld_96, " FrDn ", Ld_56); Sleep(500); } if (price_136 != 0.0) { lots_40 = NormalizeDouble(order_lots_184 * K_lot, Gi_272); if (lots_40 > Maxlot) lots_40 = Maxlot; } if (lots_40 != 0.0) { if (Li_36 && Gi_324 != Time[0]) { if (OrderSend(Symbol(), OP_SELLSTOP, lots_40, NormalizeDouble(Ld_56, Digits), 3, 0, 0, 0, Magic, 0, Red) == -1) Print("Ошибка открытия SELLSTOP ", f0_6(0/* NO_ERROR */), " ", Symbol(), " Тек.цена ", Bid, " Lot ", lots_40, " FrDn ", Ld_56); else Gi_324 = Time[0]; } } else Comment(Symbol(), " SELLSTOP недостаточно средств Lot=", lots_40, " MAXLOT ", Gd_224, " MinLot ", Gd_232); } } f0_2(); f0_5(); if (takeprofit != 0) f0_4(); if (Gi_316 + Gi_320 > 3600 * AllTimeStopOrders && AccountProfit() > 0.0) f0_1(100); return (0); } // 83F5C5289426296951D2B9F35FE0FED5 void f0_4() { int cmd_0; int ticket_4; bool bool_8; double order_takeprofit_12; for (int pos_20 = 0; pos_20 < OrdersTotal(); pos_20++) { if (OrderSelect(pos_20, SELECT_BY_POS) == TRUE) { cmd_0 = OrderType(); if (cmd_0 < OP_BUYLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { order_takeprofit_12 = OrderTakeProfit(); ticket_4 = OrderTicket(); if (cmd_0 == OP_BUY && MathAbs(order_takeprofit_12 - G_price_240) / Point > Gd_276) { if (G_price_240 > Ask + Gd_276 * Point && G_price_240 > order_takeprofit_12) { bool_8 = OrderModify(ticket_4, OrderOpenPrice(), OrderStopLoss(), G_price_240, 0, White); Comment("TrailingStop ", ticket_4, " ", TimeToStr(TimeCurrent(), TIME_MINUTES)); if (!bool_8) Print("Error order ", ticket_4, " TakeProfit ", f0_6(0/* NO_ERROR */), " ", Symbol(), " TP ", G_price_240); } } if (cmd_0 == OP_SELL && MathAbs(order_takeprofit_12 - G_price_248) / Point > Gd_276) { if (G_price_248 < Bid - Gd_276 * Point && G_price_248 < order_takeprofit_12 || order_takeprofit_12 == 0.0) { bool_8 = OrderModify(ticket_4, OrderOpenPrice(), OrderStopLoss(), G_price_248, 0, White); Comment("TrailingStop " + ticket_4, " ", TimeToStr(TimeCurrent(), TIME_MINUTES)); if (!bool_8) Print("Error order ", ticket_4, " TakeProfit ", f0_6(0/* NO_ERROR */), " ", Symbol(), " TP ", G_price_248); } } } } } } // 3AB2799732588E34138D987B460B8019 void f0_2() { int cmd_0; int ticket_4; bool bool_8; double Ld_12; double order_stoploss_20; double order_open_price_28; double order_takeprofit_36; for (int pos_44 = 0; pos_44 < OrdersTotal(); pos_44++) { if (OrderSelect(pos_44, SELECT_BY_POS) == TRUE) { cmd_0 = OrderType(); if (cmd_0 < OP_BUYLIMIT && OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { order_stoploss_20 = OrderStopLoss(); order_open_price_28 = OrderOpenPrice(); ticket_4 = OrderTicket(); if (cmd_0 == OP_BUY) { Ld_12 = f0_0(1, Bid - Gd_276 * Point, TrailingStop); order_takeprofit_36 = OrderTakeProfit(); if (Ld_12 > G_price_256 && Ld_12 < Bid - Gd_276 * Point) { if (Ld_12 > order_stoploss_20 && G_price_256 != 0.0) { bool_8 = OrderModify(ticket_4, order_open_price_28, NormalizeDouble(Ld_12, Digits), order_takeprofit_36, 0, White); Comment("TrailingStop ", ticket_4, " ", TimeToStr(TimeCurrent(), TIME_MINUTES)); Sleep(500); if (!bool_8) Print("Error order ", ticket_4, " TrailingStop ", f0_6(0/* NO_ERROR */), " ", Symbol(), " SL ", Ld_12, " TP ", order_takeprofit_36); } } } if (cmd_0 == OP_SELL) { Ld_12 = f0_0(-1, Ask + Gd_276 * Point, TrailingStop); if (Ld_12 != 0.0) { order_takeprofit_36 = OrderTakeProfit(); if (Ld_12 < G_price_264 && Ld_12 > Ask + Gd_276 * Point) { if (Ld_12 < order_stoploss_20 || order_stoploss_20 == 0.0) { bool_8 = OrderModify(ticket_4, order_open_price_28, NormalizeDouble(Ld_12, Digits), order_takeprofit_36, 0, White); Comment("TrailingStop " + ticket_4, " ", TimeToStr(TimeCurrent(), TIME_MINUTES)); Sleep(500); if (!bool_8) Print("Error order ", ticket_4, " TrailingStop ", f0_6(0/* NO_ERROR */), " ", Symbol(), " SL ", Ld_12, " TP ", order_takeprofit_36); } } } } } } } } // 0E521811373FA5F0D1EE10BF0C823CF0 double f0_0(int Ai_0, double Ad_4, int Ai_12) { double Ld_ret_16; if (Ai_12 == 0) return (0); if (Ai_12 > 0) { if (Ai_0 == 1) Ld_ret_16 = Bid - Ai_12 * Point; else Ld_ret_16 = Ask + Ai_12 * Point; } if (Ai_12 == -1) { if (Ai_0 == 1) { for (int Li_24 = 2; Li_24 < 100; Li_24++) { Ld_ret_16 = iFractals(NULL, 0, MODE_LOWER, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 -= Delta * Point; if (Ad_4 > Ld_ret_16) break; } else Ld_ret_16 = 0; } } if (Ai_0 == -1) { for (Li_24 = 2; Li_24 < 100; Li_24++) { Ld_ret_16 = iFractals(NULL, 0, MODE_UPPER, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 += Delta * Point; if (Ad_4 < Ld_ret_16) break; } else Ld_ret_16 = 0; } } } if (Ai_12 == -2) { if (Ai_0 == 1) { for (Li_24 = 1; Li_24 < 100; Li_24++) { Ld_ret_16 = iLow(NULL, 0, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 -= Delta * Point; if (Ad_4 > Ld_ret_16) break; } else Ld_ret_16 = 0; } } if (Ai_0 == -1) { for (Li_24 = 1; Li_24 < 100; Li_24++) { Ld_ret_16 = iHigh(NULL, 0, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 += Delta * Point; if (Ad_4 < Ld_ret_16) break; } else Ld_ret_16 = 0; } } } if (Ai_12 == -3) { if (Ai_0 == 1) { for (Li_24 = 2; Li_24 < 100; Li_24++) { Ld_ret_16 = iCustom(NULL, 0, "Zigzag", Zigzag_Depth, Zigzag_Deviation, Zigzag_Backstep, 0, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 -= Delta * Point; if (Ad_4 > Ld_ret_16) break; } else Ld_ret_16 = 0; } } if (Ai_0 == -1) { for (Li_24 = 2; Li_24 < 100; Li_24++) { Ld_ret_16 = iCustom(NULL, 0, "Zigzag", Zigzag_Depth, Zigzag_Deviation, Zigzag_Backstep, 0, Li_24); if (Ld_ret_16 != 0.0) { Ld_ret_16 += Delta * Point; if (Ad_4 < Ld_ret_16) break; } else Ld_ret_16 = 0; } } } return (Ld_ret_16); } // A4FE30EBC3C35A417D1DE6E660341002 void f0_5() { int Li_0; int Li_4; double order_open_price_8; double Ld_16; double Ld_24; double order_lots_32; double Ld_52; double Ld_60; color color_68; if (takeprofit != 0) { Gd_284 = 0; Gd_292 = 0; G_price_256 = 0; G_price_264 = 0; Gd_300 = 0; Gd_308 = 0; for (int pos_48 = 0; pos_48 < OrdersTotal(); pos_48++) { if (OrderSelect(pos_48, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (Magic == OrderMagicNumber() && OrderSymbol() == Symbol()) { order_open_price_8 = OrderOpenPrice(); order_lots_32 = OrderLots(); if (OrderType() == OP_BUY) { Ld_16 += order_open_price_8 * order_lots_32; Li_0++; Gd_292 += order_lots_32; Gd_308 += OrderProfit(); } if (OrderType() == OP_SELL) { Ld_24 += order_open_price_8 * order_lots_32; Li_4++; Gd_284 += order_lots_32; Gd_300 += OrderProfit(); } } } } if (Li_0 == 0) G_price_240 = NormalizeDouble(Ask + takeprofit * Point, Digits); else G_price_240 = NormalizeDouble(Ld_16 / Gd_292 + takeprofit * Point, Digits); if (Li_4 == 0) G_price_248 = NormalizeDouble(Bid - takeprofit * Point, Digits); else G_price_248 = NormalizeDouble(Ld_24 / Gd_284 - takeprofit * Point, Digits); if (G_price_240 < Ask + Gd_276 * Point) G_price_240 = Ask + Gd_276 * Point; if (G_price_248 > Bid - Gd_276 * Point) G_price_248 = Bid - Gd_276 * Point; if (DrawInfo) { ObjectDelete("SLb"); ObjectDelete("SLb_"); } if (Li_0 != 0) { G_price_256 = Ld_16 / Gd_292; if (DrawInfo) { ObjectCreate("SLb", OBJ_ARROW, 0, Time[0], G_price_240, 0, 0, 0, 0); ObjectSet("SLb", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); ObjectSet("SLb", OBJPROP_COLOR, Blue); ObjectCreate("SLb_", OBJ_ARROW, 0, Time[0], G_price_256, 0, 0, 0, 0); ObjectSet("SLb_", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); ObjectSet("SLb_", OBJPROP_COLOR, Navy); } } if (DrawInfo) { ObjectDelete("SLs"); ObjectDelete("SLs_"); } if (Li_4 != 0) { G_price_264 = Ld_24 / Gd_284; if (DrawInfo) { ObjectCreate("SLs", OBJ_ARROW, 0, Time[0], G_price_248, 0, 0, 0, 0); ObjectSet("SLs", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); ObjectSet("SLs", OBJPROP_COLOR, Red); ObjectCreate("SLs_", OBJ_ARROW, 0, Time[0], G_price_264, 0, 0, 0, 0); ObjectSet("SLs_", OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); ObjectSet("SLs_", OBJPROP_COLOR, Maroon); } } Ld_52 = AccountBalance(); if (DrawInfo) { Ld_60 = Gd_308 + Gd_300; color_68 = Green; ObjectSetText("БАЛАНС", " БАЛАНС = " + DoubleToStr(Ld_52, 2) + " |своб " + DoubleToStr(AccountFreeMargin(), 2) + " | " + DoubleToStr(Gd_224, 2) + " | " + WindowFirstVisibleBar(), 8, "Arial", G_color_212); if (Ld_60 < 0.0) color_68 = Red; ObjectSetText("доход", StringConcatenate("Общий доход = ", DoubleToStr(Ld_60, 2)), 8, "Arial", color_68); if (Gd_300 < 0.0) color_68 = Red; else color_68 = Green; ObjectSetText("доходS", StringConcatenate(Li_4, " SELL ", DoubleToStr(Gd_284, Gi_272), " лот доход = ", DoubleToStr(Gd_300, 2), " Т ", TimeToStr(Gi_320, TIME_MINUTES)), 8, "Arial", color_68); if (Gd_308 < 0.0) color_68 = Red; else color_68 = Green; ObjectSetText("доходB", StringConcatenate(Li_0, " BUY ", DoubleToStr(Gd_292, Gi_272), " лот доход = ", DoubleToStr(Gd_308, 2), " Т ", TimeToStr(Gi_316, TIME_MINUTES)), 8, "Arial", color_68); } if (-(Gd_308 + Gd_300) > Ld_52 * MaxRisk / 100.0) f0_1(100); } } // EACBC5153792350B62D432B45DA8471C string f0_6(int A_error_0) { if (A_error_0 == 0/* NO_ERROR */) A_error_0 = GetLastError(); switch (A_error_0) { case 0/* NO_ERROR */: return/*(WARN)*/; case 1/* NO_RESULT */: return/*(WARN)*/; case 2/* COMMON_ERROR */: return ("Общая ошибка "); case 3/* INVALID_TRADE_PARAMETERS */: return ("неправильные параметры "); case 6/* NO_CONNECTION */: return ("Нет связи с торговым сервером "); case 130/* INVALID_STOPS */: return ("Неправильные стопы "); case 131/* INVALID_TRADE_VOLUME */: return ("Неправильный объем "); case 133/* TRADE_DISABLED */: return ("Торговля запрещена "); case 134/* NOT_ENOUGH_MONEY */: return ("Недостаточно денег "); case 136/* OFF_QUOTES */: return ("Нет цен "); case 146/* TRADE_CONTEXT_BUSY */: return ("Подсистема торговли занята "); case 129/* INVALID_PRICE */: return ("Неправильная цена "); case 131/* INVALID_TRADE_VOLUME */: return ("Неправильный объем "); case 4051/* INVALID_FUNCTION_PARAMETER_VALUE */: return ("Недопустимое значение параметра функции "); case 4059/* FUNCTION_NOT_ALLOWED_IN_TESTING_MODE */: return ("Функция не разрешена в тестовом режиме"); case 4063/* INTEGER_PARAMETER_EXPECTED */: return ("Ожидается параметр типа integer "); case 4105/* NO_ORDER_SELECTED */: return ("Ни один ордер не выбран "); case 4107/* INVALID_PRICE_PARAM */: return ("Неправильный параметр цены для торговой функции "); case 4108/* INVALID_TICKET */: return ("Неверный номер тикета "); case 4109/* TRADE_NOT_ALLOWED */: return ("Торговля не разрешена. Необходимо включить опцию `Разрешить советнику торговать` в свойствах эксперта."); case 4200/* OBJECT_ALREADY_EXISTS */: return ("Объект уже существует "); } return (StringConcatenate("Error ", A_error_0, " ")); } // 13A2725CD087895B12CCDC6D026BFC6C int f0_1(int A_cmd_0) { int error_8; int Li_12; string str_concat_16; int count_28; bool is_closed_4 = TRUE; while (true) { for (int pos_24 = 0; pos_24 < OrdersTotal(); pos_24++) { if (OrderSelect(pos_24, SELECT_BY_POS)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if (A_cmd_0 == OP_BUY || A_cmd_0 == 100 && OrderType() == OP_BUY) { is_closed_4 = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), 3, Red); if (is_closed_4) { str_concat_16 = StringConcatenate(str_concat_16, "Закрыт ордер N ", OrderTicket(), " прибыль ", OrderProfit(), " ", TimeToStr(TimeCurrent(), TIME_MINUTES), "\n"); } } if (A_cmd_0 == OP_SELL || A_cmd_0 == 100 && OrderType() == OP_SELL) { is_closed_4 = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), 3, Red); if (is_closed_4) { str_concat_16 = StringConcatenate(str_concat_16, "Закрыт ордер N ", OrderTicket(), " прибыль ", OrderProfit(), " ", TimeToStr(TimeCurrent(), TIME_MINUTES), "\n"); } } if (!is_closed_4) { pos_24--; error_8 = GetLastError(); if (error_8 >= 2/* COMMON_ERROR */) { if (error_8 == 129/* INVALID_PRICE */) { Sleep(5000); RefreshRates(); continue; } if (error_8 == 146/* TRADE_CONTEXT_BUSY */) { if (!(!IsTesting())) continue; if (!(IsTradeContextBusy())) continue; Sleep(2000); continue; } str_concat_16 = StringConcatenate("Ошибка закрытия ордера N ", OrderTicket(), " ", f0_6(error_8), " ", TimeToStr(TimeCurrent(), TIME_MINUTES), "\n"); } } } } } Comment(str_concat_16); count_28 = 0; str_concat_16 = ""; for (pos_24 = 0; pos_24 < OrdersTotal(); pos_24++) { if (OrderSelect(pos_24, SELECT_BY_POS)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == A_cmd_0 || A_cmd_0 == 100) { str_concat_16 = StringConcatenate(str_concat_16, OrderTicket(), "\n"); count_28++; } } } if (count_28 == 0) break; Sleep(2000); Comment("Не все ордера удалены, осталось еще ", count_28, "\n", str_concat_16); Li_12++; if (Li_12 <= 100) continue; Comment("не могу закрыть ордер"); break; } return (0); } // 4C1C6E4F825F696CC5A1FC961A319091 void f0_3() { for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) { if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if (OrderType() > OP_SELL) if (!OrderDelete(OrderTicket())) Print("=== Error DeleteStopOrders ", GetLastError()); } } } }
Комментарии к исходному коду форекс советника ZigZagTrader v4~.mq4
В целях безопасности и борьбы со спамом в тексте комментариев запрещено размещать html-теги и ссылки. Благодарим за понимание.