#property copyright "Forex Decimator" #property link "" extern int TakeProfit = 500; extern int StopLoss = 200; extern int TrailingStop = 25; extern double Lots = 1.0; extern int MagicNumber = 372571; int gi_unused_100 = 0; int gi_104 = 231; int gi_108 = 45; int gi_112 = 51; int gi_116 = 221; int gi_120 = 45; int g_fontsize_124 = 1; int g_color_128 = Red; int g_color_132 = Red; int g_color_136 = Aqua; int g_color_140 = Red; bool gi_unused_144 = FALSE; int gi_148 = 30; int gi_152 = 55; int gi_156 = 0; int gi_160 = 17; double gd_164 = 0.7; string g_text_172 = ""; double gd_180; double gd_188; double gda_196[]; double gda_200[]; double gda_204[]; double gda_208[]; double gda_212[]; double gda_216[]; double gda_220[]; double gda_224[]; double gda_228[]; double gda_232[]; double gda_236[]; double gda_240[]; double gd_244; double gd_252; double gd_260; double gd_268; double gd_276; double gd_284; double gd_292; double gd_300; double gd_308; double g_point_316; int gi_324 = 0; int gi_328 = 0; int g_ticket_332; int g_ticket_336; int gi_340 = 9999; int gi_344 = 9; int gi_348 = 9; string g_var_name_352 = "LastOrderTimeSell"; string g_var_name_360 = "LastOrderTimeBuy"; int gi_368 = 0; int init() { gd_244 = 0; gd_252 = 0; gd_260 = 0; gd_268 = 0; gd_276 = 0; gd_284 = 0; gd_292 = 0; gd_300 = 0; gd_308 = 0; gd_300 = gd_164 * gd_164; gd_308 = gd_300 * gd_164; gd_244 = -gd_308; gd_252 = 3.0 * (gd_300 + gd_308); gd_260 = -3.0 * (2.0 * gd_300 + gd_164 + gd_308); gd_268 = 3.0 * gd_164 + 1.0 + gd_308 + 3.0 * gd_300; gd_276 = gi_160; if (gd_276 < 1.0) gd_276 = 1; gd_276 = (gd_276 - 1.0) / 2.0 + 1.0; gd_284 = 2 / (gd_276 + 1.0); gd_292 = 1 - gd_284; g_var_name_352 = g_var_name_352 + AccountNumber() + Symbol(); g_var_name_360 = g_var_name_360 + AccountNumber() + Symbol(); if (IsTesting()) { GlobalVariableSet(g_var_name_352, 0); GlobalVariableSet(g_var_name_360, 0); } return (0); } int deinit() { Comment(""); ObjectDelete("a label"); ObjectDelete("b label"); ObjectDelete("c label"); ObjectDelete("d label"); return (0); } int start() { if (ObjectFind("a label") != 0) { ObjectCreate("a label", OBJ_LABEL, 0, 0, 0); ObjectSetText("a label", "", g_fontsize_124, "Arial", g_color_128); ObjectSet("a label", OBJPROP_XDISTANCE, 350); ObjectSet("a label", OBJPROP_YDISTANCE, 0); } if (ObjectFind("b label") != 0) { ObjectCreate("b label", OBJ_LABEL, 0, 0, 0); ObjectSetText("b label", g_text_172, g_fontsize_124, "Arial", g_color_132); ObjectSet("b label", OBJPROP_XDISTANCE, 320); ObjectSet("b label", OBJPROP_YDISTANCE, 25); } if (ObjectFind("c label") != 0) { ObjectCreate("c label", OBJ_LABEL, 0, 0, 0); ObjectSetText("c label", "", g_fontsize_124, "Arial", g_color_136); ObjectSet("c label", OBJPROP_XDISTANCE, 335); ObjectSet("c label", OBJPROP_YDISTANCE, 50); } if (Year() > gi_340 || (Year() == gi_340 && Month() > gi_344) || (Year() == gi_340 && Month() == gi_344 && Day() > gi_348)) { if (ObjectFind("d label") != 0) { ObjectCreate("d label", OBJ_LABEL, 0, 0, 0); ObjectSetText("d label", "", g_fontsize_124, "Arial", g_color_140); ObjectSet("d label", OBJPROP_XDISTANCE, 255); ObjectSet("d label", OBJPROP_YDISTANCE, 75); } return (0); } if (Point == 0.00001) g_point_316 = 0.0001; else { if (Point == 0.001) g_point_316 = 0.01; else g_point_316 = Point; } double ld_0 = TrailingStop; double ld_8 = TrailingStop; if (ld_0 > 0.0 || ld_8 > 0.0) { TrailingPositionsBuy(ld_0); TrailingPositionsSell(ld_8); } if (Year() > gi_340 || (Year() == gi_340 && Month() > gi_344) || (Year() == gi_340 && Month() == gi_344 && Day() > gi_348)) { if (ObjectFind("d label") != 0) { ObjectCreate("d label", OBJ_LABEL, 0, 0, 0); ObjectSetText("d label", "the expert has expired , contact us", g_fontsize_124, "Arial", g_color_140); ObjectSet("d label", OBJPROP_XDISTANCE, 255); ObjectSet("d label", OBJPROP_YDISTANCE, 75); } return (0); } if ((DayOfWeek() == gi_112 && Hour() >= gi_116 && Minute() >= gi_120) || (DayOfWeek() == gi_112 && Hour() > gi_116)) { DeleteBuyPendingOrders(MagicNumber); DeleteSellPendingOrders(MagicNumber); CloseBuyOrders(MagicNumber); CloseSellOrders(MagicNumber); } if ((Hour() == gi_104 && Minute() >= gi_108) || Hour() > gi_104) { DeleteBuyPendingOrders(MagicNumber); DeleteSellPendingOrders(MagicNumber); CloseBuyOrders(MagicNumber); CloseSellOrders(MagicNumber); } Procces_1(); return (0); } int Procces_1() { double l_price_0; double l_price_8; double l_price_16; double l_price_24; double ld_32; double ld_40; int l_count_48 = 0; for (int l_pos_52 = 0; l_pos_52 < OrdersTotal(); l_pos_52++) { OrderSelect(l_pos_52, SELECT_BY_POS); if (OrderSymbol() == Symbol()) { if (OrderMagicNumber() == MagicNumber) { if (OrderType() <= OP_SELL) { l_count_48++; if (OrderType() == OP_SELL) GlobalVariableSet(g_var_name_352, OrderOpenTime()); if (OrderType() == OP_BUY) GlobalVariableSet(g_var_name_360, OrderOpenTime()); } } } } int li_56 = GlobalVariableGet(g_var_name_352); int li_60 = GlobalVariableGet(g_var_name_360); int li_64 = TimeCurrent() - li_60 >= 60 * Period(); int li_68 = TimeCurrent() - li_56 >= 60 * Period(); double l_ask_72 = Ask; double l_bid_80 = Bid; if (StopLoss > 0) { l_price_0 = l_ask_72 - StopLoss * g_point_316; l_price_8 = l_bid_80 + StopLoss * g_point_316; } else { l_price_0 = 0; l_price_8 = 0; } if (TakeProfit > 0) { l_price_16 = l_ask_72 + TakeProfit * g_point_316; l_price_24 = l_bid_80 - TakeProfit * g_point_316; } else { l_price_16 = 0; l_price_24 = 0; } double ld_88 = Ask - gi_148 * g_point_316; double ld_96 = Bid + gi_148 * g_point_316; double ld_104 = ld_88 - gi_152 * g_point_316; double ld_112 = ld_96 + gi_152 * g_point_316; if (gi_156 > 0) { ld_32 = ld_88 + gi_156 * g_point_316; ld_40 = ld_96 - gi_156 * g_point_316; } else { ld_32 = 0; ld_40 = 0; } int li_120 = 600; int li_124 = li_120 - 1; ArrayResize(gda_196, li_120 + 1); ArrayResize(gda_200, li_120 + 1); ArrayResize(gda_204, li_120 + 1); ArrayResize(gda_208, li_120 + 1); ArrayResize(gda_212, li_120 + 1); ArrayResize(gda_216, li_120 + 1); ArrayResize(gda_220, li_120 + 1); ArrayResize(gda_224, li_120 + 1); ArrayResize(gda_228, li_120 + 1); ArrayResize(gda_232, li_120 + 1); ArrayResize(gda_236, li_120 + 1); ArrayResize(gda_240, li_120 + 1); if (gi_368 != Time[1]) { for (int li_128 = li_124; li_128 >= 1; li_128--) { gda_196[li_120 - li_128] = gd_284 * Close[li_128] + gd_292 * (gda_196[li_120 - li_128 - 1]); gda_200[li_120 - li_128] = gd_284 * (gda_196[li_120 - li_128]) + gd_292 * (gda_200[li_120 - li_128 - 1]); gda_204[li_120 - li_128] = gd_284 * (gda_200[li_120 - li_128]) + gd_292 * (gda_204[li_120 - li_128 - 1]); gda_208[li_120 - li_128] = gd_284 * (gda_204[li_120 - li_128]) + gd_292 * (gda_208[li_120 - li_128 - 1]); gda_212[li_120 - li_128] = gd_284 * (gda_208[li_120 - li_128]) + gd_292 * (gda_212[li_120 - li_128 - 1]); gda_216[li_120 - li_128] = gd_284 * (gda_212[li_120 - li_128]) + gd_292 * (gda_216[li_120 - li_128 - 1]); gda_220[li_120 - li_128 + 1] = gd_284 * (Close[li_128 + 1]) + gd_292 * (gda_220[li_120 - li_128]); gda_224[li_120 - li_128 + 1] = gd_284 * (gda_220[li_120 - li_128 + 1]) + gd_292 * (gda_224[li_120 - li_128]); gda_228[li_120 - li_128 + 1] = gd_284 * (gda_224[li_120 - li_128 + 1]) + gd_292 * (gda_228[li_120 - li_128]); gda_232[li_120 - li_128 + 1] = gd_284 * (gda_228[li_120 - li_128 + 1]) + gd_292 * (gda_232[li_120 - li_128]); gda_236[li_120 - li_128 + 1] = gd_284 * (gda_232[li_120 - li_128 + 1]) + gd_292 * (gda_236[li_120 - li_128]); gda_240[li_120 - li_128 + 1] = gd_284 * (gda_236[li_120 - li_128 + 1]) + gd_292 * (gda_240[li_120 - li_128]); gd_180 = gd_244 * (gda_216[li_120 - li_128]) + gd_252 * (gda_212[li_120 - li_128]) + gd_260 * (gda_208[li_120 - li_128]) + gd_268 * (gda_204[li_120 - li_128]); gd_188 = gd_244 * (gda_240[li_120 - li_128 + 1]) + gd_252 * (gda_236[li_120 - li_128 + 1]) + gd_260 * (gda_232[li_120 - li_128 + 1]) + gd_268 * (gda_228[li_120 - li_128 + 1]); } gi_368 = Time[1]; } if (MyBuyRealOrdersTotal(MagicNumber) != 0 || MySellRealOrdersTotal(MagicNumber) != 0) { if (MyBuyRealOrdersTotal(MagicNumber) > 0) { gi_324 = TRUE; gi_328 = FALSE; } if (MySellRealOrdersTotal(MagicNumber) > 0) { gi_324 = FALSE; gi_328 = TRUE; } } if (Close[1] - 5.0 * g_point_316 > gd_180 && li_64 && !gi_324 && Close[2] - 5.0 * g_point_316 <= gd_188) { CloseSellOrders(MagicNumber); if (Year() > gi_340 || (Year() == gi_340 && Month() > gi_344) || (Year() == gi_340 && Month() == gi_344 && Day() > gi_348)) { if (ObjectFind("d label") != 0) { ObjectCreate("d label", OBJ_LABEL, 0, 0, 0); ObjectSetText("d label", "the expert has expired , contact us ", g_fontsize_124, "Arial", g_color_140); ObjectSet("d label", OBJPROP_XDISTANCE, 255); ObjectSet("d label", OBJPROP_YDISTANCE, 75); } return (0); } if (MyBuyRealOrdersTotal(MagicNumber) == 0) OrderSend(Symbol(), OP_BUY, Lots, l_ask_72, 3, l_price_0, l_price_16, g_text_172, MagicNumber, 0, Green); } else { if (Close[1] + 5.0 * g_point_316 < gd_180 && li_68 && !gi_328 && Close[2] + 5.0 * g_point_316 >= gd_188) { CloseBuyOrders(MagicNumber); if (Year() > gi_340 || (Year() == gi_340 && Month() > gi_344) || (Year() == gi_340 && Month() == gi_344 && Day() > gi_348)) { if (ObjectFind("d label") != 0) { ObjectCreate("d label", OBJ_LABEL, 0, 0, 0); ObjectSetText("d label", "the expert has expired , contact us", g_fontsize_124, "Arial", g_color_140); ObjectSet("d label", OBJPROP_XDISTANCE, 255); ObjectSet("d label", OBJPROP_YDISTANCE, 75); } return (0); } if (MySellRealOrdersTotal(MagicNumber) == 0) OrderSend(Symbol(), OP_SELL, Lots, l_bid_80, 3, l_price_8, l_price_24, g_text_172, MagicNumber, 0, Red); } } return (0); } int MyBuyRealOrdersTotal(int a_magic_0) { int l_count_4 = 0; int l_ord_total_8 = OrdersTotal(); g_ticket_332 = -1; g_ticket_336 = -1; for (int l_pos_12 = 0; l_pos_12 < l_ord_total_8; l_pos_12++) { OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol() && OrderType() == OP_BUY) { if (g_ticket_332 == -1) g_ticket_332 = OrderTicket(); else if (g_ticket_336 == -1) g_ticket_336 = OrderTicket(); l_count_4++; } } return (l_count_4); } int MySellRealOrdersTotal(int a_magic_0) { int l_count_4 = 0; int l_ord_total_8 = OrdersTotal(); g_ticket_332 = -1; g_ticket_336 = -1; for (int l_pos_12 = 0; l_pos_12 < l_ord_total_8; l_pos_12++) { OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol() && OrderType() == OP_SELL) { if (g_ticket_332 == -1) g_ticket_332 = OrderTicket(); else if (g_ticket_336 == -1) g_ticket_336 = OrderTicket(); l_count_4++; } } return (l_count_4); } int DeleteBuyPendingOrders(int a_magic_0) { int l_ord_total_4 = OrdersTotal(); for (int l_pos_8 = l_ord_total_4 - 1; l_pos_8 >= 0; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT) OrderDelete(OrderTicket()); } return (0); } int DeleteSellPendingOrders(int a_magic_0) { int l_ord_total_4 = OrdersTotal(); for (int l_pos_8 = l_ord_total_4 - 1; l_pos_8 >= 0; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol() && OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT) OrderDelete(OrderTicket()); } return (0); } int CloseBuyOrders(int a_magic_0) { int l_ord_total_4 = OrdersTotal(); for (int l_pos_8 = 0; l_pos_8 < l_ord_total_4; l_pos_8++) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol()) { if (OrderType() == OP_BUY) { if (OrderClose(OrderTicket(), OrderLots(), Bid, 3) == 0) RefreshRates(); else { l_pos_8 = 0; l_ord_total_4 = OrdersTotal(); } } } } return (0); } int CloseSellOrders(int a_magic_0) { int l_ord_total_4 = OrdersTotal(); for (int l_pos_8 = 0; l_pos_8 < l_ord_total_4; l_pos_8++) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == a_magic_0 && OrderSymbol() == Symbol()) { if (OrderType() == OP_SELL) { if (OrderClose(OrderTicket(), OrderLots(), Ask, 3) == 0) RefreshRates(); else { l_pos_8 = 0; l_ord_total_4 = OrdersTotal(); } } } } return (0); } void TrailingPositionsBuy(int ai_0) { for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) { if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > ai_0 * g_point_316) if (OrderStopLoss() < Bid - ai_0 * g_point_316) ModifyStopLoss(Bid - ai_0 * g_point_316); } } } } } void TrailingPositionsSell(int ai_0) { for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) { if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_SELL) { if (OrderOpenPrice() - Ask > ai_0 * g_point_316) if (OrderStopLoss() > Ask + ai_0 * g_point_316 || OrderStopLoss() == 0.0) ModifyStopLoss(Ask + ai_0 * g_point_316); } } } } } void ModifyStopLoss(double a_price_0) { int l_bool_8 = OrderModify(OrderTicket(), OrderOpenPrice(), a_price_0, OrderTakeProfit(), 0, CLR_NONE); }