extern bool SignalAlert = TRUE; extern bool SignalMail = FALSE; bool gi_84 = FALSE; extern double Fixed_Lots = 0.1; double gd_96 = 10.0; double gd_104 = 1.0; double g_slippage_112 = 7.0; extern bool UseFollower = FALSE; bool gi_124 = TRUE; bool gi_128 = TRUE; bool gi_132 = TRUE; double gd_136 = 200.0; double gd_144 = 1.7; int gi_152 = 5; int gi_156 = 8; int gi_160 = 40; int gi_164 = 100; double gd_168 = 1.4; int gi_176 = 1; int gi_180 = 22; int gi_184 = 4; int gi_188 = 18; bool gi_192 = TRUE; bool gi_196 = FALSE; double g_pips_200 = 50.0; double g_pips_208 = 30.0; bool gi_216 = TRUE; double g_pips_220 = 15.0; double g_pips_228 = 50.0; int gi_236 = 1; int gi_240 = 10; int g_period_244 = 10; int gi_248 = 5; int gi_252 = 5; int gi_256 = 5; int gi_260 = 15; int gi_264 = 10; int g_period_268 = 500; int gi_272 = 0; double gd_276 = 0.1; double gd_284 = 0.3; double gd_292 = 0.3; bool gi_300 = TRUE; double gd_304 = 0.5; bool gi_312 = TRUE; double gd_316 = 3.2; double gd_324 = 0.2; int gi_332 = 2; int gi_336 = 80; double gd_340 = 0.5; double gd_348 = 0.7; double gd_356 = 0.7; double gd_364 = 70.0; double gd_372 = 30.0; bool gi_380 = FALSE; double gd_384 = 1.9; int g_period_392 = 25; bool gi_396 = TRUE; int g_period_400 = 2; double gd_404 = 0.6; int gi_412 = 0; int gi_416 = 20; int gi_420 = 5; int gi_424 = 6; int gi_428 = 11; int gi_432 = 12; int gi_436 = 19; bool gi_440 = TRUE; bool gi_444 = TRUE; int gi_448 = 5; int gi_452 = 5; int gi_456 = 13; int gi_460 = 20; bool gi_464 = FALSE; int gi_468 = 0; int gi_472 = 0; int gi_476 = 0; int gi_480 = 0; double gd_484 = 1.0; double gd_492 = 1.0; double gd_500 = 1.0; double gd_508 = 1.0; double gd_516 = 1.0; double gd_524 = 1.0; double gd_532; double gd_540; double gd_548; double gd_556; int gi_564; int g_ticket_580; double g_price_584; int gi_592; int gi_596; int gi_600; double gd_604; double gd_612; double gd_620; double g_ima_628; double g_ima_636; double g_ima_644; double g_ima_652; double g_ima_660; double g_ima_668; double g_ima_676; double gd_700; double gd_708; double g_high_716; double g_low_724; double g_irsi_732; double g_ima_740; double gd_748; double g_istddev_756; double gd_764; double gd_772; int init() { gi_592 = MagicfromSymbol() + 56798; gi_596 = MagicfromSymbol() + 25495; gd_604 = Take_Profit(g_pips_220); gd_612 = Take_Profit(gd_136); gd_540 = gd_316; gd_548 = gd_316; return (0); } int deinit() { return (0); } int start() { int li_48; int li_52; int li_56; int l_datetime_72; double l_ord_open_price_76; double l_high_124; double l_low_132; if (AccountName() != "Shinya Hatta") return (0); int li_unused_0 = 0; int l_count_4 = 0; int l_count_8 = 0; int l_count_12 = 0; int l_count_16 = 0; bool li_20 = FALSE; bool li_24 = FALSE; bool li_28 = FALSE; bool li_32 = FALSE; int l_datetime_36 = TimeCurrent(); int l_hour_40 = TimeHour(l_datetime_36); int l_minute_44 = TimeMinute(l_datetime_36); if (!IsTradeAllowed()) return (0); if (gi_464) { li_48 = 60 * l_hour_40 + l_minute_44; li_52 = 60 * gi_468 + gi_472; li_56 = 60 * gi_476 + gi_480; if (li_52 < li_56 && li_52 < li_48 && li_48 < li_56) li_20 = TRUE; if (li_52 > li_56 && li_52 < li_48 || li_48 < li_56) li_20 = TRUE; } if (gi_440 == TRUE && DayOfWeek() == gi_448 && l_hour_40 >= gi_456) li_20 = TRUE; if (gi_440 == TRUE && DayOfWeek() > gi_448) li_20 = TRUE; if (gi_444 == TRUE && DayOfWeek() == gi_452 && l_hour_40 >= gi_460) li_24 = TRUE; if (gi_444 == TRUE && DayOfWeek() > gi_452) li_24 = TRUE; int li_60 = OrdersHistoryTotal() - 1; int l_count_64 = 0; for (int l_pos_68 = li_60; l_pos_68 >= 0; l_pos_68--) { if (OrderSelect(l_pos_68, SELECT_BY_POS, MODE_HISTORY) == TRUE) { if (OrderMagicNumber() != gi_592) continue; l_datetime_72 = OrderCloseTime(); l_ord_open_price_76 = OrderOpenPrice(); l_count_64++; } if (l_ord_open_price_76 > 0.0) break; } int l_hour_84 = TimeHour(l_datetime_36 - l_datetime_72); if (l_hour_84 >= 1 || l_count_64 == 0 || Ask <= l_ord_open_price_76 - g_pips_228 * Point) li_28 = TRUE; if (l_hour_84 >= 1 || l_count_64 == 0 || Bid >= l_ord_open_price_76 + g_pips_228 * Point) li_32 = TRUE; if (!gi_396) { li_28 = TRUE; li_32 = TRUE; } double l_ord_open_price_88 = 0; for (int l_pos_96 = 0; l_pos_96 < OrdersTotal(); l_pos_96++) { if (OrderSelect(l_pos_96, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderMagicNumber() == gi_592) { if (OrderType() == OP_BUY) l_count_4++; if (OrderType() == OP_SELL) l_count_8++; l_ord_open_price_88 = OrderOpenPrice(); } } } int li_100 = l_count_4 + l_count_8; if (li_100 == 0 || li_100 > gi_600) { gi_600 = li_100; if (gi_600 > 1 && gi_192 && gi_196) Changes_Stoploss(gi_592, gi_600); } double l_ord_open_price_104 = 0; for (l_pos_96 = 0; l_pos_96 < OrdersTotal(); l_pos_96++) { if (OrderSelect(l_pos_96, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderMagicNumber() == gi_596) { if (OrderType() == OP_BUY) l_count_12++; if (OrderType() == OP_SELL) l_count_16++; l_ord_open_price_104 = OrderOpenPrice(); } } } int li_112 = l_hour_40 + gi_412; gi_564 = MaShift_Custom(li_112); gd_556 = Xox_Custom(li_112); gd_532 = Limit_Percent_Custom(li_112); RefreshRates(); g_ima_628 = iMA(NULL, 0, g_period_244, gi_564, MODE_SMA, PRICE_OPEN, 0); g_ima_636 = iMA(NULL, 0, 25, 0, MODE_EMA, PRICE_OPEN, 0); g_ima_644 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_OPEN, 0); g_ima_652 = iMA(NULL, 0, 100, 0, MODE_EMA, PRICE_OPEN, 0); g_ima_660 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_OPEN, 0); g_ima_668 = iMA(NULL, 0, 300, 0, MODE_EMA, PRICE_OPEN, 0); g_ima_676 = iMA(NULL, 0, 400, 0, MODE_EMA, PRICE_OPEN, 0); double ld_116 = 0; for (l_pos_96 = 0; l_pos_96 < gi_260; l_pos_96++) { l_high_124 = High[iHighest(NULL, 0, MODE_OPEN, gi_264, l_pos_96)]; l_low_132 = Low[iLowest(NULL, 0, MODE_OPEN, gi_264, l_pos_96)]; ld_116 += MathLog(l_high_124 / l_low_132); } double ld_140 = ld_116 / gi_260; if (ld_140 < gd_532 / 100.0) ld_140 = gd_532 / 100.0; gd_700 = g_ima_628 * (ld_140 + 1.0); gd_708 = g_ima_628 * (1 - ld_140); gd_764 = g_ima_628 * (gd_304 / 100.0 + 1.0); gd_772 = g_ima_628 * (1 - gd_304 / 100.0); g_ima_740 = iMA(NULL, 0, g_period_268, gi_272, MODE_SMMA, PRICE_OPEN, 0); g_istddev_756 = iStdDev(NULL, PERIOD_H4, g_period_392, 0, MODE_EMA, PRICE_CLOSE, 0); g_high_716 = High[iHighest(NULL, 0, MODE_CLOSE, gi_336, 0)]; g_low_724 = Low[iLowest(NULL, 0, MODE_CLOSE, gi_336, 0)]; gd_748 = (g_high_716 - g_low_724) / (g_ima_740 / 100.0); g_irsi_732 = iRSI(NULL, 0, 14, PRICE_CLOSE, 0); double l_iatr_148 = iATR(NULL, 0, g_period_400, 0); double l_icustom_156 = iCustom(Symbol(), PERIOD_M5, "Reinhard001", gi_152, gi_156, gi_160, gi_164, gd_168, 1, 0, 0); double l_icustom_164 = iCustom(Symbol(), PERIOD_M5, "Reinhard001", gi_152, gi_156, gi_160, gi_164, gd_168, 1, 1, 0); bool li_172 = FALSE; bool li_176 = FALSE; if (!li_20 && l_count_4 < gi_236 && l_count_16 == 0 && gd_748 >= gd_556 && g_irsi_732 <= gd_372 && gd_708 >= Ask && l_iatr_148 <= gd_404 && Ask <= l_ord_open_price_88 - g_pips_228 * Point || l_count_4 == 0) li_172 = TRUE; if (!li_28 || (!gi_380 && g_istddev_756 >= gd_384)) li_172 = FALSE; if (g_ima_676 > g_ima_668 && g_ima_668 > g_ima_660 && g_ima_660 > g_ima_652 && g_ima_652 > g_ima_644 && g_ima_644 > g_ima_636) li_172 = FALSE; if (gi_300 && !li_20 && li_28 && l_count_4 < gi_236 && l_count_16 == 0 && g_ima_676 < g_ima_668 && g_ima_668 < g_ima_660 && g_ima_660 < g_ima_652 && g_ima_652 < g_ima_636 && gd_772 >= Ask && Ask <= l_ord_open_price_88 - g_pips_228 * Point || l_count_4 == 0) li_172 = TRUE; if (gi_312 && !li_20 && g_ima_676 > g_ima_668 && g_ima_668 > g_ima_660 && g_ima_660 > g_ima_652 && g_ima_652 > g_ima_644 && g_ima_644 > g_ima_636) { if (l_count_4 < gi_236 && gd_748 >= gd_540 && g_irsi_732 <= gd_372) { li_172 = TRUE; gd_540 += gd_324; } } else gd_540 = gd_316; if (li_172 == TRUE) { ClosePositions(1, 4, gi_592); OrderPositions(1, l_count_4, l_count_8, gi_592, gd_604); li_172 = FALSE; li_28 = FALSE; return (0); } if (!li_20 && l_count_8 < gi_236 && l_count_12 == 0 && gd_748 >= gd_556 && g_irsi_732 >= gd_364 && l_iatr_148 <= gd_404 && gd_700 <= Bid && Bid >= l_ord_open_price_88 + g_pips_228 * Point || l_count_8 == 0) li_176 = TRUE; if (!li_32 || (!gi_380 && g_istddev_756 > gd_384)) li_176 = FALSE; if (g_ima_676 < g_ima_668 && g_ima_668 < g_ima_660 && g_ima_660 < g_ima_652 && g_ima_652 < g_ima_644 && g_ima_644 < g_ima_636) li_176 = FALSE; if (gi_300 && !li_20 && li_32 && l_count_8 < gi_236 && l_count_12 == 0 && g_ima_676 > g_ima_668 && g_ima_668 > g_ima_660 && g_ima_660 > g_ima_652 && g_ima_652 > g_ima_636 && gd_764 <= Bid && Bid >= l_ord_open_price_88 + g_pips_228 * Point || l_count_8 == 0) li_176 = TRUE; if (gi_312 && !li_20 && g_ima_676 < g_ima_668 && g_ima_668 < g_ima_660 && g_ima_660 < g_ima_652 && g_ima_652 < g_ima_644 && g_ima_644 < g_ima_636) { if (l_count_8 < gi_236 && gd_748 >= gd_548 && g_irsi_732 >= gd_364) { li_176 = TRUE; gd_548 += gd_324; } } else gd_548 = gd_316; if (li_176 == TRUE) { ClosePositions(1, 3, gi_592); OrderPositions(2, l_count_4, l_count_8, gi_592, gd_604); li_176 = FALSE; li_32 = FALSE; return (0); } double ld_180 = Bid - l_ord_open_price_88; if (gi_216 && l_count_4 > 0 && gd_604 > g_pips_220 * Point && ld_180 > g_pips_220 * Point) ClosePositions(0, 3, gi_592); double ld_188 = l_ord_open_price_88 - Ask; if (gi_216 && l_count_8 > 0 && gd_604 > g_pips_220 * Point && ld_188 > g_pips_220 * Point) ClosePositions(0, 4, gi_592); int li_196 = gi_600; if (li_196 != 0) { if (li_196 != 1) { if (li_196 != 2) { if (li_196 != 3) { if (li_196 != 4) { } } } } } if (l_count_4 > 0 && g_high_716 - Bid <= gi_332 * Point || gd_700 < Bid || li_24) { ClosePositions(1, 3, gi_592); return (0); } if (l_count_8 > 0 && Ask - g_low_724 <= gi_332 * Point || gd_708 > Ask || li_24) { ClosePositions(1, 4, gi_592); return (0); } int li_200 = 0; li_200 = isNarrowRange(li_200, l_hour_40, gi_128, gi_132); bool li_204 = FALSE; bool li_208 = FALSE; if (UseFollower && !li_20 && li_200 && li_28 && l_count_12 < 1 && l_count_8 > 1 && gd_700 <= Ask && l_icustom_156 < l_icustom_164 && l_icustom_164 > gd_144) li_204 = TRUE; if (g_ima_676 > g_ima_668 && g_ima_668 > g_ima_660 && g_ima_660 > g_ima_652 && g_ima_652 > g_ima_644 && g_ima_644 > g_ima_636) li_204 = FALSE; if (li_204 == TRUE) { if (gi_124) ClosePositions(1, 4, gi_592); OrderPositions(1, l_count_12, l_count_16, gi_596, gd_612); li_204 = FALSE; li_28 = FALSE; return (0); } if (UseFollower && !li_20 && li_200 && li_32 && l_count_16 < 1 && l_count_4 > 1 && gd_708 >= Bid && l_icustom_156 < l_icustom_164 && l_icustom_164 > gd_144) li_208 = TRUE; if (g_ima_676 < g_ima_668 && g_ima_668 < g_ima_660 && g_ima_660 < g_ima_652 && g_ima_652 < g_ima_644 && g_ima_644 < g_ima_636) li_208 = FALSE; if (li_208 == TRUE) { if (gi_124) ClosePositions(1, 3, gi_592); OrderPositions(2, l_count_12, l_count_16, gi_596, gd_612); li_208 = FALSE; li_32 = FALSE; return (0); } if (l_count_12 > 0 && l_icustom_156 > l_icustom_164) { ClosePositions(1, 3, gi_596); return (0); } if (l_count_16 > 0 && l_icustom_156 > l_icustom_164) { ClosePositions(1, 4, gi_596); return (0); } return (0); } double lotSizeCalc(int ai_0) { int li_4 = 1; double ld_ret_8 = 0; int li_16 = 0; double l_lotsize_20 = MarketInfo(Symbol(), MODE_LOTSIZE); double l_maxlot_28 = MarketInfo(Symbol(), MODE_MAXLOT); double l_minlot_36 = MarketInfo(Symbol(), MODE_MINLOT); double l_free_magrin_44 = AccountFreeMargin(); string ls_52 = AccountCurrency(); if (ls_52 == "JPY") li_4 = 100; if (ls_52 == "USD") li_4 = 1; double ld_60 = l_free_magrin_44 * gd_104 / (li_4 * l_lotsize_20); if (l_minlot_36 >= 1.0) li_16 = 0; else { if (l_minlot_36 >= 0.1) li_16 = 1; else if (l_minlot_36 >= 0.01) li_16 = 2; } switch (ai_0) { case 0: ld_ret_8 = NormalizeDouble(ld_60 * gd_484, li_16); break; case 1: ld_ret_8 = NormalizeDouble(ld_60 * gd_492, li_16); break; case 2: ld_ret_8 = NormalizeDouble(ld_60 * gd_500, li_16); break; case 3: ld_ret_8 = NormalizeDouble(ld_60 * gd_508, li_16); break; case 4: ld_ret_8 = NormalizeDouble(ld_60 * gd_516, li_16); break; default: ld_ret_8 = NormalizeDouble(ld_60 * gd_524, li_16); } if (ld_ret_8 < l_minlot_36) ld_ret_8 = l_minlot_36; if (ld_ret_8 > l_maxlot_28) ld_ret_8 = l_maxlot_28; if (ld_ret_8 > gd_96) ld_ret_8 = gd_96; return (ld_ret_8); } int MaShift_Custom(int ai_0) { bool li_ret_4 = FALSE; if (gi_424 <= gi_428) { if (ai_0 >= gi_424 && ai_0 <= gi_428) li_ret_4 = gi_252; } else if (ai_0 >= gi_424 || ai_0 <= gi_428) li_ret_4 = gi_252; if (gi_432 <= gi_436) { if (ai_0 >= gi_432 && ai_0 <= gi_436) li_ret_4 = gi_256; } else if (ai_0 >= gi_432 || ai_0 <= gi_436) li_ret_4 = gi_256; if (gi_416 <= gi_420) { if (ai_0 >= gi_416 && ai_0 <= gi_420) li_ret_4 = gi_248; } else if (ai_0 >= gi_416 || ai_0 <= gi_420) li_ret_4 = gi_248; return (li_ret_4); } double Xox_Custom(int ai_0) { double ld_ret_4 = 0; if (gi_424 <= gi_428) { if (ai_0 >= gi_424 && ai_0 <= gi_428) ld_ret_4 = gd_348; } else if (ai_0 >= gi_424 || ai_0 <= gi_428) ld_ret_4 = gd_348; if (gi_432 <= gi_436) { if (ai_0 >= gi_432 && ai_0 <= gi_436) ld_ret_4 = gd_356; } else if (ai_0 >= gi_432 || ai_0 <= gi_436) ld_ret_4 = gd_356; if (gi_416 <= gi_420) { if (ai_0 >= gi_416 && ai_0 <= gi_420) ld_ret_4 = gd_340; } else if (ai_0 >= gi_416 || ai_0 <= gi_420) ld_ret_4 = gd_340; return (ld_ret_4); } double Limit_Percent_Custom(int ai_0) { double ld_ret_4 = 0; if (gi_424 <= gi_428) { if (ai_0 >= gi_424 && ai_0 <= gi_428) ld_ret_4 = gd_284; } else if (ai_0 >= gi_424 || ai_0 <= gi_428) ld_ret_4 = gd_284; if (gi_432 <= gi_436) { if (ai_0 >= gi_432 && ai_0 <= gi_436) ld_ret_4 = gd_292; } else if (ai_0 >= gi_432 || ai_0 <= gi_436) ld_ret_4 = gd_292; if (gi_416 <= gi_420) { if (ai_0 >= gi_416 && ai_0 <= gi_420) ld_ret_4 = gd_276; } else if (ai_0 >= gi_416 || ai_0 <= gi_420) ld_ret_4 = gd_276; return (ld_ret_4); } int MagicfromSymbol() { int li_ret_0 = 0; for (int li_4 = 0; li_4 < 5; li_4++) li_ret_0 = 3 * li_ret_0 + StringGetChar(Symbol(), li_4); li_ret_0 = 3 * li_ret_0 + Period(); return (li_ret_0); } double Take_Profit(int ai_0) { int l_stoplevel_4 = MarketInfo(Symbol(), MODE_STOPLEVEL); int l_freezelevel_8 = MarketInfo(Symbol(), MODE_FREEZELEVEL); if (l_stoplevel_4 > ai_0) gd_620 = l_stoplevel_4; else gd_620 = ai_0; if (l_freezelevel_8 > gd_620) gd_620 = l_freezelevel_8; return (gd_620); } void ClosePositions(int ai_0, int ai_4, int a_magic_8) { int l_error_12; int l_cmd_20; RefreshRates(); for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 >= 0; l_pos_16--) { if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES) == FALSE) break; if (OrderMagicNumber() == a_magic_8) { l_cmd_20 = OrderType(); if ((l_cmd_20 == OP_BUY && ai_4 == 3) || (l_cmd_20 == OP_SELL && ai_4 == 4)) { switch (l_cmd_20) { case OP_BUY: OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_112, MediumSeaGreen); l_error_12 = GetLastError(); if (l_error_12 != 0/* NO_ERROR */) Print("Close Positions Error OrderTicket = ", OrderTicket()); else { if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (SignalAlert) Alert("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); } if (ai_0 == 0) return; break; case OP_SELL: OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_112, DarkOrange); l_error_12 = GetLastError(); if (l_error_12 != 0/* NO_ERROR */) Print("Close Positions Error OrderTicket = ", OrderTicket()); else { if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (SignalAlert) Alert("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); } if (ai_0 == 0) return; } } } } } void OrderPositions(int ai_0, int ai_4, int ai_8, int a_magic_12, double a_pips_16) { double ld_unused_24 = 0; double l_price_32 = 0; int li_40 = MathAbs(ai_4 - ai_8); double ld_44 = 0; if (gi_84) ld_44 = lotSizeCalc(li_40); else ld_44 = Fixed_Lots; if (ai_0 == 1) { g_ticket_580 = 0; if (AccountFreeMarginCheck(Symbol(), OP_BUY, ld_44) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return; } if (gi_192) l_price_32 = Ask - g_pips_200 * Point; else l_price_32 = 0.0; if (gi_216) g_price_584 = Ask + a_pips_16 * Point; else g_price_584 = 0.0; for (int li_52 = 1; li_52 <= gi_240; li_52++) { g_ticket_580 = OrderSend(Symbol(), OP_BUY, ld_44, Ask, g_slippage_112 * Point, l_price_32, g_price_584, "Buy(#" + a_magic_12 + ")", a_magic_12, 0, DodgerBlue); if (g_ticket_580 > 0) { if (!(OrderSelect(g_ticket_580, SELECT_BY_TICKET, MODE_TRADES))) continue; Print("BUY order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + "@" + DoubleToStr(ld_44, 2) + "@ Open Buy"); if (!(SignalAlert)) break; Alert("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + "@" + DoubleToStr(ld_44, 2) + "@ Open Buy"); break; } if (SignalAlert) Alert("Error opening BUY order : ", GetLastError()); Sleep(5000); } } if (ai_0 == 2) { g_ticket_580 = 0; if (AccountFreeMarginCheck(Symbol(), OP_SELL, ld_44) <= 0.0 || GetLastError() == 134/* NOT_ENOUGH_MONEY */) Print("We have no money. Free Margin = ", AccountFreeMargin()); else { if (gi_192) l_price_32 = Bid + g_pips_200 * Point; else l_price_32 = 0.0; if (gi_216) g_price_584 = Bid - a_pips_16 * Point; else g_price_584 = 0.0; for (int li_56 = 1; li_56 <= gi_240; li_56++) { g_ticket_580 = OrderSend(Symbol(), OP_SELL, ld_44, Bid, g_slippage_112 * Point, l_price_32, g_price_584, "Sell(#" + a_magic_12 + ")", a_magic_12, 0, DeepPink); if (g_ticket_580 > 0) { if (!(OrderSelect(g_ticket_580, SELECT_BY_TICKET, MODE_TRADES))) continue; Print("SELL order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + "@" + ld_44 + "@ Open Sell"); if (!(SignalAlert)) break; Alert("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + "@" + ld_44 + "@ Open Sell"); return; } if (SignalAlert) Alert("Error opening SELL order : ", GetLastError()); Sleep(5000); } } } } void Changes_Stoploss(int a_magic_0, int ai_unused_4) { int l_error_8; int l_cmd_20; int li_12 = OrdersTotal() - 1; for (int l_pos_16 = 0; l_pos_16 < li_12; l_pos_16++) { if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES) == FALSE) break; if (OrderMagicNumber() == a_magic_0) { l_cmd_20 = OrderType(); switch (l_cmd_20) { case OP_BUY: OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() - Point * g_pips_208, OrderTakeProfit(), 0, Yellow); l_error_8 = GetLastError(); if (l_error_8 != 0/* NO_ERROR */) Print("Changes Stoploss Error OrderTicket = ", OrderTicket()); break; case OP_SELL: OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss() + Point * g_pips_208, OrderTakeProfit(), 0, Yellow); l_error_8 = GetLastError(); if (l_error_8 != 0/* NO_ERROR */) Print("Changes Stoploss Error OrderTicket = ", OrderTicket()); } } } } int isNarrowRange(int ai_0, int ai_4, bool ai_8, bool ai_12) { double ld_32; bool li_16 = FALSE; bool li_20 = FALSE; if (ai_12) { if (DayOfWeek() == gi_176 && ai_4 <= gi_180) li_16 = TRUE; if (DayOfWeek() < gi_176) li_16 = TRUE; if (DayOfWeek() == gi_184 && ai_4 >= gi_188) li_16 = TRUE; if (DayOfWeek() > gi_184) li_16 = TRUE; } else li_16 = TRUE; double ld_24 = 1000.0; int li_40 = 7; int li_44 = -1; if (ai_8) { for (int li_48 = 1; li_48 <= li_40; li_48++) { ld_32 = iHigh(NULL, PERIOD_D1, li_48) - iLow(NULL, PERIOD_D1, li_48); if (TimeDayOfWeek(iTime(NULL, PERIOD_D1, li_48)) == 0 || TimeDayOfWeek(iTime(NULL, PERIOD_D1, li_48)) == 6) continue; if (ld_32 <= ld_24) { li_44 = li_48; ld_24 = ld_32; } } if (li_44 == 1) li_20 = TRUE; else li_20 = FALSE; } else li_20 = TRUE; if (ai_12 && ai_8) { if (li_16 || li_20) ai_0 = 1; } else if (li_16 && li_20) ai_0 = 1; return (ai_0); }