#property copyright "Forex Transporter" #property link "Forex Transporter" extern double slip = 3.0; extern double Lots = 0.1; extern double TakeProfit = 25.0; extern double PipStep = 85.0; extern int MagicNumber = 5469; double g_pips_112 = 30.0; double gd_120 = 10.0; double gd_128 = 10.0; double gd_136 = 1.0; int gi_144 = 2; double gd_148 = 6.0; double gd_156 = 445.0; double gd_164 = 3.0; double gd_172 = 2.0; double gd_unused_180 = 4.0; double g_pips_188 = 6.0; int gi_196 = 0; int g_timeframe_200 = 0; double gd_204 = 54.0; double gd_212 = 68.0; double gd_220 = 4.0; double gd_228 = 5.0; double gd_236 = 6.0; double gd_244 = 7.0; double gd_252 = 8.0; double gd_260 = 5.0; double g_magic_268 = 3.0; double g_magic_276 = 2.0; int gi_284 = 3; double gd_288 = 1.0; double gd_296 = 8.0; double g_high_304 = 3.0; double gd_312 = 6.0; double gd_unused_320 = 7.0; double gd_328 = 8.0; double g_pips_336 = 9.0; double g_lots_344 = 5.0; double gd_unused_352 = 34.0; double g_pos_360 = 5.0; double g_pips_368 = 78.0; double g_low_376 = 2.0; int gi_384 = 13; int gi_388 = 144; double g_ticket_392 = 3.0; double g_pips_400 = 4.0; double g_pips_408 = 5.0; double g_pips_416 = 6.0; double g_pips_424 = 7.0; double gd_432 = 8.0; double gd_440 = 3.0; double g_ord_total_448 = 4.0; double gd_456 = 5.0; double g_pips_464 = 34.0; double g_magic_472 = 2.0; int gi_480 = 10; bool gi_484 = FALSE; double gd_488 = 0.05; bool gi_496 = FALSE; bool gi_500 = FALSE; double gd_504 = 48.0; double g_price_512; double gd_520; double gd_unused_528; double gd_unused_536; double g_price_544; double g_bid_552; double g_ask_560; double gd_568; double gd_576; int gi_584 = 2; double gd_588; bool gi_596; string gs_600 = "Forex Transporter"; double gd_608 = 23.0; double gd_unused_616 = 3.0; double gd_624 = 4.0; double g_pos_632 = 5.0; double g_magic_640 = 6.0; double gd_648 = 7.0; double gd_656 = 3.0; double gd_664 = 23.0; double gd_672 = 12.0; double gd_680 = 3.0; double g_ima_688 = 5.0; double g_ima_696 = 7.0; double gd_704 = 8.0; int g_time_712 = 0; int gi_716; double gd_720 = 334.0; double gd_728 = 2.0; double gd_736 = 12.0; double gd_744 = 34.0; double gd_752 = 34.0; double gd_760 = 54.0; double gd_768 = 34.0; double gd_776 = 5.0; double gd_784 = 3.0; double gd_792 = 4.0; double gd_800 = 3.0; double gd_808 = 2.0; double gd_816 = 4.0; double gd_824 = 5.0; double gd_832 = 34.0; double g_iadx_840 = 54.0; double g_iadx_848 = 23.0; int gi_856 = 0; int gi_unused_860 = 1; double gd_864; double g_pips_872 = 546.0; double g_slippage_880 = 45.0; double gd_unused_888 = 34.0; double g_price_896 = 34.0; double g_price_904 = 2.0; double gd_unused_912 = 3.0; double gd_920 = 34.0; int g_pos_928 = 0; int gi_932; int gi_936 = 1; double gd_940 = 3.0; double gd_948 = 3.0; double g_pips_956 = 3.0; double gd_964 = 12.0; double gd_972 = 12.0; int gi_980; double gd_984 = 0.0; double gd_992 = 8.0; double gd_1000 = 9.0; double gd_1008 = 4.0; double gd_unused_1016 = 12.0; double gd_1024 = 45.0; bool gi_1032 = FALSE; double g_magic_1036 = 5.0; double gd_1044 = 66.0; double gd_unused_1052 = 3.0; bool gi_1060 = FALSE; bool gi_1064 = FALSE; double gd_1068 = 1.0; double g_high_1076 = 12.0; double gd_1084 = 1.0; double g_low_1092 = 1.0; double gd_1100 = 1.0; double gd_1108 = 2.0; double gd_1116 = 3.0; double gd_1124 = 4.0; double gd_1132 = 6.0; double gd_1140 = 7.0; double gd_unused_1148 = 2.0; double gd_1156 = 3.0; double gd_unused_1164 = 4.0; double gd_unused_1172 = 5.0; double gd_1180 = 6.0; double gd_unused_1188 = 7.0; double gd_unused_1196 = 8.0; double gd_1204 = 9.0; bool gi_1212 = FALSE; int gi_1216; bool gi_1220 = FALSE; double gd_1224; double gd_1232; int g_acc_number_1240; double gd_1244 = 2.0; double gd_1252 = 1.0; double gd_1260 = 3.0; double g_pips_1268 = 4.0; double gd_1276 = 3.0; double gd_1284 = 1.0; double g_point_1292; int init() { if (Point == 0.00001) g_point_1292 = 0.0001; else { if (Point == 0.001) g_point_1292 = 0.01; else g_point_1292 = Point; } gd_588 = MarketInfo(Symbol(), MODE_SPREAD) * g_point_1292; g_acc_number_1240 = AccountNumber(); Print("Start trading on account: " + g_acc_number_1240); gi_980 = func032(g_pos_928); return (0); } double func019(double ad_0, int ai_8) { if (ai_8 == 0) return (gi_936 - gi_584); return (ad_0 + ai_8 * g_point_1292); } double func058(double ad_0, int ai_8) { if (ai_8 == 0) return (gi_936 - gi_584); return (ad_0 - ai_8 * g_point_1292); } double func018() { string ls_0 = "5254063123656788998751661"; double ld_ret_8 = 0; for (g_pos_928 = OrdersTotal() - 1; g_pos_928 >= 0; g_pos_928--) { OrderSelect(g_pos_928, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_8 += OrderProfit(); } func057(ls_0); return (ld_ret_8); } void func057(string as_0) { int li_8; for (int li_12 = 0; li_12 < StringLen(as_0); li_12++) { li_8 = StrToInteger(StringSubstr(as_0, li_12, func003(li_12))) - li_12 - func045(li_12); gi_unused_860 = iClose(Symbol(), 0, li_8) - iOpen(Symbol(), 0, li_8) / 2.0 + iHigh(Symbol(), 0, li_8 + 1) + iLow(Symbol(), 0, li_8 + 1) / 2.0; } } int func056(double ad_0) { if (ad_0 * iLow(Symbol(), PERIOD_M15, 5) == iOpen(Symbol(), PERIOD_H1, 2)) return (0); return (3); } double func017() { double l_ord_open_price_0; int l_ticket_8; double ld_unused_12 = func032(l_ticket_8) - 1; int l_ticket_20 = 0; for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 >= gi_936 - gi_584; l_pos_24--) { OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL) { l_ticket_8 = OrderTicket(); if (l_ticket_8 > l_ticket_20) { l_ord_open_price_0 = OrderOpenPrice(); ld_unused_12 = l_ord_open_price_0; l_ticket_20 = l_ticket_8; } } } return (l_ord_open_price_0); } int func055(int ai_0) { return (0.0 * (ai_0 * (iHigh(Symbol(), 0, 3) - iLow(Symbol(), 0, 3))) + 5.0); } void func054() { gd_1244 = 60.0 * (gd_288 - gd_296) / Period(); g_high_304 = High[iHighest(NULL, 0, MODE_HIGH, gd_1244, 1)]; g_low_376 = Low[iLowest(NULL, 0, MODE_LOW, gd_1244, 1)]; gd_1252 = 1440 / Period(); gd_148 = g_high_304 - g_low_376; gd_744 = 0; for (gd_720 = 1; gd_720 <= gd_728; gd_720++) { gd_744 += High[iHighest(NULL, 0, MODE_HIGH, gd_1252, gd_1252 * (gd_720 - 1.0) + 60.0 * (Hour() - gd_720) / Period() + 1.0)] - Low[iLowest(NULL, 0, MODE_LOW, gd_1252, gd_1252 * (gd_720 - 1.0) + 60.0 * (Hour() - gd_720) / Period() + 1.0)]; gd_736 = MathRound(gd_744 / gd_720 / g_point_1292); } func016(); gd_752 = MathRound(gd_736 / gd_768); gd_760 = NormalizeDouble(g_low_376 - gd_752 * g_point_1292, 4); gd_776 = NormalizeDouble(g_high_304 + gd_752 * g_point_1292, 4); } void func016() { gd_1084 = 60.0 * gd_1068 / Period(); g_high_1076 = High[iHighest(NULL, 0, MODE_HIGH, gd_1084, 1)]; g_low_1092 = Low[iLowest(NULL, 0, MODE_LOW, gd_1084, 1)]; gd_1252 = 1440 / Period(); gd_784 = g_high_1076 - g_low_1092; gd_220 = 0; for (gd_720 = 1; gd_720 <= gd_728; gd_720++) { gd_220 += High[iHighest(NULL, 0, MODE_HIGH, gd_1252, gd_1252 * (gd_720 - 1.0) + 60.0 * (Hour() - gd_720) / Period() + 1.0)] - Low[iLowest(NULL, 0, MODE_LOW, gd_1252, gd_1252 * (gd_720 - 1.0) + 60.0 * (Hour() - gd_720) / Period() + 1.0)]; gd_228 = MathRound(gd_220 / gd_720 / g_point_1292); } gd_236 = MathRound(gd_228 / gd_244); gd_252 = NormalizeDouble(g_low_1092 - gd_236 * g_point_1292, 4); gd_260 = NormalizeDouble(g_high_1076 + gd_236 * g_point_1292, 4); } void func053() { for (gd_720 = 0; gd_720 < OrdersTotal(); gd_720++) { if (OrderType() == OP_BUY) { for (int li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; RefreshRates(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } func016(); func040(1); if (OrderType() == OP_SELL) { for (li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; func004(); RefreshRates(); func015(); func049(); func013(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } } } void func015() { for (gd_720 = 0; gd_720 < OrdersTotal(); gd_720++) { func002(); if (OrderType() == OP_BUY && Close[1] - NormalizeDouble(OrderOpenPrice(), 4) >= gd_1116 * g_point_1292 || NormalizeDouble(OrderOpenPrice(), 4) - Close[1] >= gd_1124 * g_point_1292) { for (int li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; RefreshRates(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } if (OrderType() == OP_SELL) { for (li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; RefreshRates(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } } } int func052(int ai_0, double a_lots_4, double a_price_12, int a_slippage_20, double ad_24, int ai_32, int ai_36, string a_comment_40, int a_magic_48, int a_datetime_52, color a_color_56) { int l_ticket_60 = 0; int l_error_64 = 0; int l_count_68 = 0; int li_72 = 100; switch (ai_0) { case 2: for (l_count_68 = func032(0) - 1; l_count_68 < li_72; l_count_68++) { l_ticket_60 = OrderSend(Symbol(), OP_BUYLIMIT, a_lots_4, a_price_12, a_slippage_20, func014(ad_24, ai_32), func019(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(1000); } break; case 4: for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) { l_ticket_60 = OrderSend(Symbol(), OP_BUYSTOP, a_lots_4, a_price_12, a_slippage_20, func014(ad_24, ai_32), func019(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(5000); } break; case 0: for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) { RefreshRates(); l_ticket_60 = OrderSend(Symbol(), OP_BUY, a_lots_4, Ask, a_slippage_20, func014(Bid, ai_32), func019(Ask, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(5000); } break; case 3: for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) { l_ticket_60 = OrderSend(Symbol(), OP_SELLLIMIT, a_lots_4, a_price_12, a_slippage_20, func051(ad_24, ai_32), func058(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(5000); } break; case 5: for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) { l_ticket_60 = OrderSend(Symbol(), OP_SELLSTOP, a_lots_4, a_price_12, a_slippage_20, func051(ad_24, ai_32), func058(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(5000); } break; case 1: for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) { l_ticket_60 = OrderSend(Symbol(), OP_SELL, a_lots_4, Bid, a_slippage_20, func051(Ask, ai_32), func058(Bid, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56); l_error_64 = GetLastError(); if (l_error_64 == 0/* NO_ERROR */) break; if (!((l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */))) break; Sleep(5000); } } return (l_ticket_60); } double func014(double ad_0, int ai_8) { if (ai_8 == func032(0) - 1) return (gi_936 - gi_584); return (ad_0 - ai_8 * g_point_1292); } double func051(double ad_0, int ai_8) { if (ai_8 == func032(0) - 1) return (gi_936 - gi_584); return (ad_0 + ai_8 * g_point_1292); } void func050(int ai_0) { gi_584 = ai_0; gi_936 = gi_584; } void func049() { for (gd_720 = 0; gd_720 < OrdersTotal(); gd_720++) { if (OrderType() == OP_BUY && Close[1] - NormalizeDouble(OrderOpenPrice(), 4) >= gd_1132 * g_point_1292 || NormalizeDouble(OrderOpenPrice(), 4) - Close[1] >= gd_1124 * g_point_1292) { for (int li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; RefreshRates(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } if (OrderType() == OP_SELL && Close[1] - NormalizeDouble(OrderOpenPrice(), 4) >= gd_1124 * g_point_1292 || NormalizeDouble(OrderOpenPrice(), 4) - Close[1] >= gd_1132 * g_point_1292) { for (li_0 = 1; li_0 <= gd_1100; li_0++) { gi_1032 = FALSE; RefreshRates(); if (gi_1032) { gd_1108 = 500; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } } } double func013() { if (gd_1140 == 0.0) return (gd_992); double ld_ret_0 = MathRound(AccountBalance() / 100.0 * gd_1140 / 100.0) / 10.0; if (ld_ret_0 < 0.1) ld_ret_0 = 0.1; if (ld_ret_0 > gd_1000) ld_ret_0 = gd_1000; return (ld_ret_0); } void func048() { gd_1116 = MathRound(gd_228 / gd_1008); gd_1124 = MathRound(gd_228 / gd_940); gd_948 = MathRound(gd_1124 * gd_964); if (Close[1] >= gd_260) { for (int li_0 = 1; li_0 <= gd_1100; li_0++) { RefreshRates(); func009(); if (gd_972 > 0.0) { gd_unused_1016 = Day(); gd_1108 = 1000; break; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } if (gd_252 >= Close[1]) { for (li_0 = 1; li_0 <= gd_1100; li_0++) { RefreshRates(); Lots = func013(); if (gd_972 > 0.0) { gd_unused_1016 = Day(); gd_1108 = 1000; return; } gd_1108 = 2.0 * gd_1108; if (li_0 == gd_1100) { gd_1108 = 1000; return; } func046(); } } } void func012() { gd_1132 = MathRound(gd_736 / gd_1024); gd_1124 = MathRound(gd_736 / gd_940); gd_948 = MathRound(gd_1124 * gd_964); if (Close[1] >= gd_776) { for (int li_0 = 1; li_0 <= gd_1100; li_0++) { RefreshRates(); Lots = func013(); if (gd_972 > 0.0) { gd_unused_1016 = Day(); gd_1108 = 1000; break; } gd_1108 = 2.0 * gd_1108; func054(); if (li_0 == gd_1100) { gd_1108 = 1000; break; } } } if (gd_760 >= Close[1]) { for (li_0 = 1; li_0 <= gd_1100; li_0++) { RefreshRates(); Lots = func013(); if (gd_972 > 0.0) { gd_unused_1016 = Day(); gd_1108 = 1000; return; } gd_1108 = 2.0 * gd_1108; func015(); func041(); if (li_0 == gd_1100) { gd_1108 = 1000; return; } func011(); } } } int func047() { int l_ord_total_0 = OrdersTotal(); if (g_pips_956 == 0.0) return (0); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES); if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_268 || OrderMagicNumber() == g_magic_276) { if (OrderType() == OP_BUY) { if (g_pips_956 <= 0.0) continue; if (Bid - OrderOpenPrice() <= g_point_1292 * g_pips_956) continue; if (OrderStopLoss() >= Bid - g_point_1292 * g_pips_956) continue; return (0); } if (g_pips_956 > 0.0) { if (OrderOpenPrice() - Ask > g_point_1292 * g_pips_956) { if (OrderStopLoss() > Ask + g_point_1292 * g_pips_956) { func008(); func007(); return (0); } } } } } return (0); } int func011() { int l_count_0 = 0; func043(); for (int li_4 = OrdersTotal(); li_4 > 0; li_4--) { OrderSelect(li_4 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == g_magic_1036) l_count_0++; } return (l_count_0); } double func046() { double ld_ret_0 = 0; for (int li_8 = OrdersTotal(); li_8 > 0; li_8--) { OrderSelect(li_8 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber() == g_magic_1036) ld_ret_0 += OrderProfit(); } func006(1); return (ld_ret_0); } void func010(int ai_0, int ai_4, double a_price_8) { int li_16; double l_ord_stoploss_20; double l_price_28; string ls_unused_36 = "224556752511231114025065061661"; if (ai_4 != 0) { for (int l_pos_44 = OrdersTotal() - 1; l_pos_44 >= 0; l_pos_44--) { if (OrderSelect(l_pos_44, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() || OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { li_16 = NormalizeDouble((Bid - a_price_8) / g_point_1292, gi_936 - gi_584); if (li_16 < ai_0) continue; l_ord_stoploss_20 = OrderStopLoss(); l_price_28 = Bid - ai_4 * g_point_1292; if (l_ord_stoploss_20 == 0.0 || (l_ord_stoploss_20 != 0.0 && l_price_28 > l_ord_stoploss_20)) OrderModify(OrderTicket(), a_price_8, l_price_28, OrderTakeProfit(), 0, Aqua); } if (OrderType() == OP_SELL) { li_16 = NormalizeDouble((a_price_8 - Ask) / g_point_1292, gi_936 - gi_584); if (li_16 < ai_0) continue; l_ord_stoploss_20 = OrderStopLoss(); l_price_28 = Ask + ai_4 * g_point_1292; if (l_ord_stoploss_20 == 0.0 || (l_ord_stoploss_20 != 0.0 && l_price_28 < l_ord_stoploss_20)) OrderModify(OrderTicket(), a_price_8, l_price_28, OrderTakeProfit(), 0, Red); } } Sleep(1000); } } } } int func045(int ai_0) { if (func003(ai_0) + func056(ai_0) == Ask) return (func055(ai_0)); return (func055(2 * ai_0)); } void func009() { double l_ask_0; double l_bid_8; bool li_16 = TRUE; bool li_20 = FALSE; func044(PERIOD_M1); while (!li_20) { li_16 = TRUE; for (int li_24 = OrdersTotal(); li_24 > 0; li_24--) { OrderSelect(li_24 - 1, SELECT_BY_POS, MODE_TRADES); l_ask_0 = MarketInfo(OrderSymbol(), MODE_ASK); l_bid_8 = MarketInfo(OrderSymbol(), MODE_BID); } li_20 = li_16; } } int func044(int a_timeframe_0) { int l_period_4; double l_ima_8 = iMA(Symbol(), a_timeframe_0, l_period_4, 0, MODE_EMA, PRICE_CLOSE, 1); double l_ima_16 = iMA(Symbol(), a_timeframe_0, l_period_4, 0, MODE_EMA, PRICE_CLOSE, 2); if (l_ima_8 > l_ima_16) return (0); if (l_ima_8 < l_ima_16) return (1); return (-1); } int func008() { for (int li_0 = OrdersTotal(); li_0 > 0; li_0--) { OrderSelect(li_0 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > g_pips_336 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Black); } else { if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > g_pips_336 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Black); } } return (0); } double func043() { if (gd_1140 == 0.0) return (g_lots_344); double ld_ret_0 = MathRound(AccountBalance() / 100.0 * gd_1140 / 100.0) / 10.0; if (ld_ret_0 < 0.1) ld_ret_0 = 0.1; return (ld_ret_0); } int func007() { for (int li_0 = OrdersTotal(); li_0 > 0; li_0--) { OrderSelect(li_0 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && OrderSymbol() == Symbol()) { if (Bid - OrderOpenPrice() > g_pips_368 * g_point_1292 && OrderStopLoss() == 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Black); } else { if (OrderType() == OP_SELL && OrderSymbol() == Symbol()) if (OrderOpenPrice() - Ask > g_pips_368 * g_point_1292 && OrderStopLoss() == 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Black); } } return (0); } void func042() { gd_1180 = 1; gd_unused_1188 = gd_1044; gd_unused_1196 = gd_1156; } void func041() { int li_0; if (gd_1204 > 0.0) { if (gd_792 != 0.0 && gd_800 != 0.0) { li_0 = OrderCloseBy(gd_792, gd_800); if (li_0 == 1) gd_1204--; else Print("Error close double orders:" + GetLastError()); } else { if (gd_800 == 0.0 && gd_792 != 0.0) { li_0 = OrderClose(gd_792, g_lots_344, Ask, 3); if (li_0 == 1) gd_1204--; else Print("Error close sell:" + GetLastError()); } else { if (gd_792 == 0.0 && gd_800 != 0.0) { li_0 = OrderClose(gd_800, g_lots_344, Bid, 3); if (li_0 == 1) gd_1204--; else Print("Error close buy:" + GetLastError()); } } } } if (gd_808 > 0.0) { li_0 = OrderDelete(g_ticket_392); if (li_0 == 1) gd_808--; else func005(); } func005(); if (gd_808 == 0.0 && gd_1204 == 0.0) func042(); } int func006(double a_price_0) { int l_ticket_8; double l_price_12; double l_price_20; if (!gd_1180) return (0); if (g_pips_400 > 0.0) l_price_12 = a_price_0 - g_pips_400 * g_point_1292; else l_price_12 = 0; if (g_pips_408 > 0.0) l_price_20 = a_price_0 + g_pips_408 * g_point_1292; else l_price_20 = 0; l_ticket_8 = OrderSend(Symbol(), OP_BUYSTOP, g_lots_344, a_price_0, 3, l_price_12, l_price_20, "", g_magic_1036, 0, CLR_NONE); return (l_ticket_8); } int func040(double a_price_0) { double l_price_8; double l_price_16; if (!gd_1180) return (0); if (g_pips_416 > 0.0) l_price_8 = a_price_0 + g_pips_416 * g_point_1292; else l_price_8 = 0; if (g_pips_424 > 0.0) l_price_16 = a_price_0 - g_pips_424 * g_point_1292; else l_price_16 = 0; int l_ticket_24 = OrderSend(Symbol(), OP_SELLSTOP, g_lots_344, a_price_0, 3, l_price_8, l_price_16, "", g_magic_1036, 0, CLR_NONE); func008(); return (l_ticket_24); } int func039() { string ls_0 = "5254063014025065061661"; int l_count_8 = 0; for (int l_pos_12 = OrdersTotal() - 1; l_pos_12 >= gi_936 - gi_584; l_pos_12--) { OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) if (OrderType() == OP_SELL || OrderType() == OP_BUY) l_count_8++; } func057(ls_0); return (l_count_8); } void func005() { ArrayInitialize(g_ticket_392, 0); gd_808 = 0; ArrayInitialize(gd_800, 0); gd_432 = 0; ArrayInitialize(gd_792, 0); gd_440 = 0; gd_1204 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_ord_total_4 = l_ord_total_0; l_ord_total_4 >= 0; l_ord_total_4--) { OrderSelect(l_ord_total_4, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUYSTOP && OrderMagicNumber() == g_magic_1036) { gd_808++; g_ticket_392 = OrderTicket(); } if (OrderType() == OP_SELLSTOP && OrderMagicNumber() == g_magic_1036) { gd_808++; g_ticket_392 = OrderTicket(); } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_1036) { gd_440++; gd_792 = OrderTicket(); } if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_1036) { gd_432++; gd_800 = OrderTicket(); } } gd_1204 = gd_432; if (gd_440 > gd_1204) gd_1204 = gd_440; } double func004() { double ld_ret_0 = 0; int l_ord_total_8 = OrdersTotal(); func037(23); func036(23); for (int l_ord_total_12 = l_ord_total_8; l_ord_total_12 >= 0; l_ord_total_12--) { OrderSelect(l_ord_total_12, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_1036) ld_ret_0 = ld_ret_0 + OrderProfit() + OrderSwap(); if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_1036) ld_ret_0 = ld_ret_0 + OrderProfit() + OrderSwap(); } func043(); return (ld_ret_0); } int func003(int ai_0) { if (iClose(Symbol(), 0, ai_0) < 0.0) return (1); return (func056(iClose(Symbol(), 0, ai_0 + 1))); } int func002() { if (Bars < 100) { Comment("bars less than 100"); return (0); } g_ord_total_448 = OrdersTotal(); int li_0 = gd_456; func023(); func034(); if (g_ord_total_448 > 0.0) { for (gd_720 = 0; gd_720 < g_ord_total_448; gd_720++) { OrderSelect(g_pos_360, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_472) { Comment("Контролирую на BUY: ", OrderTicket()); func022(); if (iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 1) > iRVI(NULL, PERIOD_M5, 8, MODE_SIGNAL, 1) && iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 0) < iRVI(NULL, PERIOD_M5, 8, MODE_SIGNAL, 0) && iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 1) > 0.15) { if (Bid > OrderOpenPrice() + g_pips_464 * g_point_1292) { gd_816 = 1; gd_832 = 0; } } if (iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_MAIN, 1) < iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_SIGNAL, 1) && iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_SIGNAL, 1) > 70.0 && gd_824 > 0.0) { if (Bid > OrderOpenPrice() + (g_pips_464 - 3.0) * g_point_1292) { gd_816 = 1; gd_832 = 0; func059(2); } } g_iadx_840 = iADX(NULL, Period(), 14, PRICE_CLOSE, MODE_MAIN, 0); g_iadx_848 = iADX(NULL, Period(), 14, PRICE_CLOSE, MODE_MAIN, 1); if (g_iadx_848 > g_iadx_840 && g_iadx_840 < gd_156) { if (Bid > OrderOpenPrice() + g_pips_872 * g_point_1292) { gd_816 = 1; gd_832 = 0; func028(); } } if (gd_816 > 0.0) { gd_972 = OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_880, Aqua); if (gd_972 > 0.0) { gd_unused_888 = TimeCurrent(); gd_816 = 0; Alert(" Эксперт # ASTRA #", "\n", "Баланс =", AccountBalance(), "\n", "Закрыл ", OrderProfit(), " пунктов. Причина ", gd_832); func020(); return (0); } } if (g_pips_464 > 0.0) { if (Bid - OrderOpenPrice() > 10.0 * g_point_1292) { if (OrderStopLoss() < Bid - 10.0 * g_point_1292) { Comment("Модифицирую."); g_price_896 = Low[iLowest(NULL, PERIOD_M1, MODE_LOW, 10, 10)]; g_price_904 = High[iHighest(NULL, PERIOD_M1, MODE_HIGH, 10, 10)]; if (g_price_904 - Ask < TakeProfit * g_point_1292) g_price_904 = Ask + TakeProfit * g_point_1292; if (Bid - g_price_896 < g_pips_464 * g_point_1292) g_price_896 = Bid - g_pips_464 * g_point_1292; if (OrderOpenPrice() - OrderStopLoss() < 0.0) g_price_896 = Bid - 10.0 * g_point_1292; if (g_price_896 > OrderStopLoss()) { Print("order=", OrderTicket(), "open=", OrderOpenPrice(), "sl=", g_price_896, "tp=", g_price_904); if (OrderModify(OrderTicket(), OrderOpenPrice(), g_price_896, g_price_904, 0, Aqua)) { gd_unused_912 = 1; gd_824++; return (0); } } } } } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_472) { Comment("Контролирую на SELL: ", OrderTicket()); if (iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 1) < iRVI(NULL, PERIOD_M5, 8, MODE_SIGNAL, 1) && iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 0) > iRVI(NULL, PERIOD_M5, 8, MODE_SIGNAL, 0) && iRVI(NULL, PERIOD_M5, 8, MODE_MAIN, 1) < -0.15) { if (Ask < OrderOpenPrice() - g_pips_464 * g_point_1292) { gd_608 = 1; gd_832 = 1; } } if (iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_MAIN, 1) > iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_SIGNAL, 1) && iStochastic(NULL, PERIOD_M5, 12, 4, 3, MODE_EMA, 1, MODE_SIGNAL, 1) < 30.0 && gd_824 > 0.0) { if (Ask < OrderOpenPrice() - (g_pips_464 - 3.0) * g_point_1292) { gd_608 = 1; gd_832 = 1; } } g_iadx_840 = iADX(NULL, Period(), 14, PRICE_CLOSE, MODE_MAIN, 0); g_iadx_848 = iADX(NULL, Period(), 14, PRICE_CLOSE, MODE_MAIN, 1); if (g_iadx_848 > g_iadx_840 && g_iadx_840 < gd_156) { if (Ask < OrderOpenPrice() - g_pips_872 * g_point_1292) { gd_608 = 1; gd_832 = 1; } } if (gd_608 > 0.0) { gd_972 = OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_880, Gold); if (gd_972 > 0.0) { gd_unused_616 = TimeCurrent(); gd_608 = 0; return (0); } } if (g_pips_464 > 0.0) { if (OrderOpenPrice() - Ask > 10.0 * g_point_1292) { if (OrderStopLoss() > Ask + 10.0 * g_point_1292 || OrderStopLoss() == 0.0) { Comment("Модифицирую."); g_price_904 = Low[iLowest(NULL, PERIOD_M1, MODE_LOW, 10, 10)]; g_price_896 = High[iHighest(NULL, PERIOD_M1, MODE_HIGH, 10, 10)]; if (g_price_896 - Ask < g_pips_464 * g_point_1292) g_price_896 = Ask + g_pips_464 * g_point_1292; if (OrderStopLoss() - OrderOpenPrice() < 0.0) g_price_896 = Ask + 10.0 * g_point_1292; if (Bid - g_price_904 < TakeProfit * g_point_1292) g_price_904 = Bid - TakeProfit * g_point_1292; } if (g_price_896 < OrderStopLoss()) { Print("order=", OrderTicket(), "open=", OrderOpenPrice(), "sl=", g_price_896, "tp=", g_price_904); if (OrderModify(OrderTicket(), OrderOpenPrice(), g_price_896, g_price_904, 0, Gold)) { gd_unused_912 = 1; gd_824++; return (0); } } } } } } } g_ord_total_448 = OrdersTotal(); gd_624 = 0; g_pos_632 = 0; int l_count_4 = 0; int l_count_8 = 0; while (g_pos_632 < g_ord_total_448) { OrderSelect(g_pos_632, SELECT_BY_POS); g_magic_640 = OrderMagicNumber(); if (g_magic_640 == g_magic_472) { if (OrderType() == OP_BUY) l_count_4++; if (OrderType() == OP_SELL) l_count_8++; gd_624++; } g_pos_632++; } int li_12 = MathCeil(gd_624 / 2.0); if (g_pips_872 == 0.0 && g_iadx_840 > gd_156) return (0); gd_648 = 1; gd_672 = func027(gd_648); gd_648 = 0; gd_680 = func027(gd_648); gd_656 = 0; gd_664 = 0; if (gd_680 > 0.0 && gd_672 < 0.0) gd_656 = 1; if (gd_680 < 0.0 && gd_672 > 0.0) gd_664 = 1; g_ima_688 = iMA(NULL, Period(), 8, 0, MODE_EMA, PRICE_CLOSE, 0); g_ima_696 = iMA(NULL, Period(), 8, 0, MODE_EMA, PRICE_CLOSE, 1); if (g_ima_688 > g_ima_696) gd_656 = 0; if (g_ima_688 < g_ima_696) gd_664 = 0; if (l_count_4 >= li_12 || l_count_8 >= li_12) { if (l_count_4 >= li_12 && gd_656 == 1.0) li_0 = gd_456 + li_12; if (l_count_8 >= li_12 && gd_664 == 1.0) li_0 = gd_456 + li_12; } if (gd_624 < li_0) { if (AccountFreeMargin() * gd_704 < 1000.0 * Lots) { Print("Нарушаются условия Money Managment!!! Разрешено =", AccountFreeMargin() * gd_704); return (0); } if (gd_164 > 0.0 && TimeCurrent() - gd_920 > 60 * Period()) gd_164 = 0; if (gd_172 > 0.0 && TimeCurrent() - gd_920 > 60 * Period()) gd_172 = 0; if (gd_656 == 0.0) gd_164 = 0; if (gd_664 == 0.0) gd_172 = 0; if (gd_656 == 0.0 && gd_664 == 0.0) return (0); if (gd_656 == 1.0) { gd_164++; gd_664 = 0; gd_920 = TimeCurrent(); } if (gd_664 == 1.0) { gd_172++; gd_656 = 0; gd_920 = TimeCurrent(); } if (gd_172 > 0.0) { Comment("Поступил сигнал. Торгую. Контрольный шаг__№ ", gd_172, "\n", "Намереваюсь открыть ордер SELL", "\n", "открытие на шаге ", gd_1260); PlaySound("Alert2.wav"); } if (gd_164 > 0.0) { Comment("Поступил сигнал. Торгую. Контрольный шаг__№ ", gd_164, "\n", "Намереваюсь открыть ордер BUY", "\n", "открытие на шаге ", gd_1260); PlaySound("Alert2.wav"); } if (gd_172 >= gd_1260) { gd_972 = OrderSend(Symbol(), OP_SELL, Lots, Bid, g_slippage_880, Ask + g_pips_188 * g_point_1292 + g_pips_1268 * g_point_1292, Bid - TakeProfit * g_point_1292 + g_pips_1268 * g_point_1292, "ASTRA " + gd_1276, g_magic_472, 0, Gold); if (gd_972 < 0.0) { func025(); return (0); } gd_172 = 0; gd_824 = 0; Alert(" Эксперт # ASTRA # открыл ордер Sell №", gd_972, " по ", Symbol(), "\n", "Время :", TimeToStr(TimeCurrent()), "\n", "Баланс :", AccountBalance()); return (0); } if (gd_164 >= gd_1260) { gd_972 = OrderSend(Symbol(), OP_BUY, Lots, Ask, g_slippage_880, Bid - g_pips_188 * g_point_1292 - g_pips_1268 * g_point_1292, Ask + TakeProfit * g_point_1292 - g_pips_1268 * g_point_1292, "ASTRA " + gd_1276, g_magic_472, 0, Aqua); func038(); if (gd_972 < 0.0) return (0); gd_164 = 0; gd_824 = 0; Alert(" Эксперт # ASTRA # открыл ордер BUY №", gd_972, " по ", Symbol(), "\n", "Время :", TimeToStr(TimeCurrent()), "\n", "Баланс :", AccountBalance()); func026(); return (0); } } return (0); } void func001() { string ls_0 = "15203203414440526507658061661"; for (int l_pos_8 = OrdersTotal() - func032(1); l_pos_8 >= gi_936 - gi_584; l_pos_8--) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue); if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red); } Sleep(1000); } } func057(ls_0); } int func027(int ai_0) { double ld_4; double ld_12; double ld_20; double ld_28 = 0; double ld_36 = 0; for (int li_44 = ai_0; li_44 <= ai_0 + gd_312; li_44++) { ld_28 += MathAbs(High[li_44] - Low[li_44]); ld_4 = High[li_44]; if (ld_12 < ld_4) ld_12 = ld_4; ld_4 = Low[li_44]; if (ld_20 >= ld_4) ld_20 = ld_4; } ld_36 = ld_28 / (gd_312 + 1.0); ld_12 = High[ai_0]; ld_20 = Low[ai_0]; double ld_48 = ld_20 + (ld_12 - ld_20) * gd_1284 / 100.0; double ld_56 = ld_12 - (ld_12 - ld_20) * gd_1284 / 100.0; if (Close[ai_0] < ld_48) gd_328 = -1; if (Close[ai_0] > ld_56) gd_328 = 1; return (gd_328); } int func026() { int li_0; double l_ima_4; double l_ima_12; double l_ima_20; double l_ima_28; double l_imfi_36; double l_imfi_44; double l_ivolume_52; double l_ivolume_60; double l_imacd_68; double l_imacd_76; double l_imacd_84; double l_imacd_92; double ld_100; double ld_108; double ld_116; double l_pips_124; double ld_132; double ld_140; double ld_148; double ld_156; double l_magic_164; bool li_172; if (ld_100 != Open[0]) { l_ima_20 = iMA(NULL, PERIOD_H4, 1, 0, MODE_SMA, PRICE_CLOSE, 1); l_ima_28 = iMA(NULL, PERIOD_H4, 1, 0, MODE_SMA, PRICE_OPEN, 1); l_ima_12 = iMA(NULL, PERIOD_H4, 1, 0, MODE_SMA, PRICE_HIGH, 1); l_ima_4 = iMA(NULL, PERIOD_H4, 1, 0, MODE_SMA, PRICE_LOW, 1); l_imfi_36 = iMFI(NULL, PERIOD_H4, 14, 1); l_imfi_44 = iMFI(NULL, PERIOD_H4, 14, 2); l_ivolume_52 = iVolume(NULL, PERIOD_H4, 1); l_ivolume_60 = iVolume(NULL, PERIOD_H4, 2); l_imacd_68 = iMACD(NULL, PERIOD_H4, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1); l_imacd_76 = iMACD(NULL, PERIOD_H4, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2); l_imacd_84 = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1); l_imacd_92 = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2); li_0 = ld_116; if (l_imacd_68 > l_imacd_76 && l_imacd_84 > l_imacd_92) { li_0 = ld_108; if (l_ima_20 > l_ima_28 + l_pips_124 * g_point_1292 && l_ima_12 - l_ima_4 < 1.6 * l_pips_124 * g_point_1292 && l_ivolume_52 > l_ivolume_60 && l_imfi_36 > l_imfi_44 && l_imfi_36 > ld_132) li_0 = ld_140; } else { if (l_imacd_68 < l_imacd_76 && l_imacd_84 < l_imacd_92) { li_0 = ld_148; if (l_ima_20 < l_ima_28 - l_pips_124 * g_point_1292 && l_ima_12 - l_ima_4 < 1.6 * l_pips_124 * g_point_1292 && l_ivolume_52 > l_ivolume_60 && l_imfi_36 > l_imfi_44 && l_imfi_36 > ld_132) li_0 = ld_156; } } li_172 = FALSE; for (int l_pos_176 = 0; l_pos_176 < OrdersTotal(); l_pos_176++) { OrderSelect(l_pos_176, SELECT_BY_POS); if (OrderSymbol() == Symbol() && OrderMagicNumber() == l_magic_164) { if (OrderType() == OP_BUY && li_0 < ld_116) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Red); else { if (OrderType() == OP_SELL && li_0 > ld_116) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Blue); else li_172 = TRUE; } } } if (!li_172) { if (li_0 == ld_140) OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, 0, l_magic_164, 0, Red); else if (li_0 == ld_156) OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, 0, l_magic_164, 0, Blue); } ld_100 = Open[0]; } return (0); } void func038() { double l_pips_0; if (l_pips_0 != 0.0) { for (int l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) { if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol()) { if (OrderType() == OP_BUY) if (Bid - OrderStopLoss() > l_pips_0 * g_point_1292) func035(Bid - l_pips_0 * g_point_1292); } } } } } void func025() { double l_pips_0; if (l_pips_0 != 0.0) { for (int l_pos_8 = 0; l_pos_8 < OrdersTotal(); l_pos_8++) { if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol()) { if (OrderType() == OP_SELL) if (OrderStopLoss() - Ask > l_pips_0 * g_point_1292) func035(Ask + l_pips_0 * g_point_1292); } } } } } int start() { double l_iclose_0; double l_iclose_8; if (gi_496) func010(gd_120, gd_128, g_price_544); if (gi_500) { if (TimeCurrent() >= gi_716) { func001(); Print("Closed All due to TimeOut"); } } if (g_time_712 == Time[func032(0) - 1]) return (0); g_time_712 = Time[func032(0) - 1]; double ld_16 = func018(); if (gi_484) { if (ld_16 < 0.0 && MathAbs(ld_16) > gd_488 / 100.0 * func031()) { func001(); Print("Closed All due to Stop Out"); gi_1220 = FALSE; } } gi_932 = func039(); if (gi_932 == 0) gi_596 = FALSE; for (g_pos_928 = OrdersTotal() - 1; g_pos_928 >= 0; g_pos_928--) { OrderSelect(g_pos_928, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { gi_1064 = TRUE; gi_1212 = FALSE; break; } } if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_SELL) { gi_1064 = FALSE; gi_1212 = TRUE; break; } } } if (gi_932 > 0 && gi_932 <= gi_480) { RefreshRates(); gd_568 = func024(); gd_576 = func017(); if (gi_1064 && gd_568 - Ask >= PipStep * g_point_1292) gi_1060 = TRUE; if (gi_1212 && Bid - gd_576 >= PipStep * g_point_1292) gi_1060 = TRUE; } if (gi_932 < func032(112)) { gi_1212 = FALSE; gi_1064 = FALSE; gi_1060 = TRUE; gd_520 = AccountEquity(); } if (gi_1060) { gd_568 = func024(); gd_576 = func017(); if (gi_1212) { gi_856 = gi_932; gd_864 = NormalizeDouble(Lots * MathPow(gd_136, gi_856), gi_144); RefreshRates(); gi_1216 = func052(1, gd_864, Bid, slip, Ask, gi_936 - gi_584, 0, gs_600 + "-" + gi_856, MagicNumber, 0, HotPink); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_576 = func017(); gi_1060 = FALSE; gi_1220 = TRUE; } else { if (gi_1064) { gi_856 = gi_932; gd_864 = NormalizeDouble(Lots * MathPow(gd_136, gi_856), gi_144); gi_1216 = func052(0, gd_864, Ask, slip, Bid, gi_936 - gi_584, 0, gs_600 + "-" + gi_856, MagicNumber, 0, Lime); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_568 = func024(); gi_1060 = FALSE; gi_1220 = TRUE; if (gi_1060 == gi_1220) { func048(); func012(); func047(); } } } } if (gi_1060 && gi_932 < 1) { l_iclose_0 = iClose(Symbol(), 0, func032(2) + 1); l_iclose_8 = iClose(Symbol(), 0, func032(1)); g_bid_552 = Bid; g_ask_560 = Ask; if (!gi_1212 && !gi_1064) { gi_856 = gi_932; gd_864 = NormalizeDouble(Lots * MathPow(gd_136, gi_856), gi_144); if (gi_196 == 0) { if (l_iclose_0 > l_iclose_8) { if (iRSI(NULL, g_timeframe_200, 14, PRICE_CLOSE, func032(1)) > gd_204) { gi_1216 = func052(1, gd_864, g_bid_552, slip, g_bid_552, 0, gi_936 - gi_584, gs_600 + "-" + gi_856, MagicNumber, 0, HotPink); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_568 = func024(); gi_1220 = TRUE; } } else { if (iRSI(NULL, g_timeframe_200, 14, PRICE_CLOSE, func032(1)) < gd_212) { gi_1216 = func052(0, gd_864, g_ask_560, slip, g_ask_560, 0, gi_936 - gi_584, gs_600 + "-" + gi_856, MagicNumber, 0, Lime); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_576 = func017(); gi_1220 = TRUE; } } } if (gi_196 == 1) { if (l_iclose_0 > l_iclose_8) { if (iCustom(NULL, g_timeframe_200, "AO", gi_284, gi_384, gi_388, gi_936 - gi_584, func032(1)) > 0.0) { gi_1216 = func052(1, gd_864, g_bid_552, slip, g_bid_552, 0, 0, gs_600 + "-" + gi_856, MagicNumber, 0, HotPink); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_568 = func024(); gi_1220 = TRUE; } } else { if (iCustom(NULL, g_timeframe_200, "AO", gi_284, gi_384, gi_388, func032(1), 1) > 0.0) { gi_1216 = func052(0, gd_864, g_ask_560, slip, g_ask_560, gi_936 - gi_584, 0, gs_600 + "-" + gi_856, MagicNumber, 0, Lime); if (gi_1216 < 0) { Print("Error: ", GetLastError()); return (0); } gd_576 = func017(); if (gd_576 == gd_576 + 10.0) func053(); gi_1220 = TRUE; } } } if (gi_1216 > 0) gi_716 = TimeCurrent() + 60.0 * (60.0 * gd_504); gi_1060 = FALSE; } } gi_932 = func039(); g_price_544 = 0; double ld_24 = 0; for (g_pos_928 = OrdersTotal() - 1; g_pos_928 >= 0; g_pos_928--) { OrderSelect(g_pos_928, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { g_price_544 += OrderOpenPrice() * OrderLots(); ld_24 += OrderLots(); } } } if (gi_932 > 0) g_price_544 = NormalizeDouble(g_price_544 / ld_24, Digits); if (gi_1220) { for (g_pos_928 = OrdersTotal() - func032(1); g_pos_928 >= gi_936 - gi_584; g_pos_928--) { OrderSelect(g_pos_928, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_BUY) { g_price_512 = g_price_544 + TakeProfit * g_point_1292; gd_unused_528 = g_price_512; gd_984 = g_price_544 - g_pips_112 * g_point_1292; gi_596 = TRUE; } } if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if (OrderType() == OP_SELL) { g_price_512 = g_price_544 - TakeProfit * g_point_1292; gd_unused_536 = g_price_512; gd_984 = g_price_544 + g_pips_112 * g_point_1292; gi_596 = TRUE; } } } } if (gi_1220) { if (gi_596 == TRUE) { for (g_pos_928 = OrdersTotal() - func032(1); g_pos_928 >= gi_936 - gi_584; g_pos_928--) { OrderSelect(g_pos_928, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) OrderModify(OrderTicket(), g_price_544, OrderStopLoss(), g_price_512, gi_936 - gi_584, Yellow); gi_1220 = FALSE; } } } return (0); } void func037(int ai_0) { if (ai_0 != 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()) { if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > ai_0 * g_point_1292) if (OrderStopLoss() < Bid - ai_0 * g_point_1292) func035(Bid - ai_0 * g_point_1292); } } } } } } void func036(int ai_0) { if (ai_0 != 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()) { if (OrderType() == OP_SELL) { if (OrderOpenPrice() - Ask > ai_0 * g_point_1292) if (OrderStopLoss() > Ask + ai_0 * g_point_1292 || OrderStopLoss() == 0.0) func035(Ask + ai_0 * g_point_1292); } } } } } } void func035(double a_price_0) { OrderModify(OrderTicket(), OrderOpenPrice(), a_price_0, OrderTakeProfit(), 0, Black); } void func023() { double ld_0; double l_lots_8; double l_price_16; double l_price_24; if (OrdersTotal() < ld_0) { l_lots_8 = func034(); l_price_16 = func033(); l_price_24 = func030(); OrderSend(Symbol(), OP_BUY, l_lots_8, Ask, g_slippage_880, l_price_16, l_price_24, "", 0, 0, White); } } double func024() { double l_ord_open_price_0; int l_ticket_8; string ls_12 = "5334254454046333021420534425023561661"; double ld_unused_20 = gi_936 - gi_584; int li_28 = func032(0) - func032(4); for (int l_pos_32 = OrdersTotal() - 1; l_pos_32 >= 0; l_pos_32--) { OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) { l_ticket_8 = OrderTicket(); if (l_ticket_8 > li_28) { l_ord_open_price_0 = OrderOpenPrice(); ld_unused_20 = l_ord_open_price_0; li_28 = l_ticket_8; } } } func057(ls_12); return (l_ord_open_price_0); } void func022() { double ld_0; double l_lots_8; double l_price_16; double l_price_24; if (OrdersTotal() < ld_0) { l_lots_8 = func034(); l_price_16 = func021(); l_price_24 = func029(); OrderSend(Symbol(), OP_SELL, l_lots_8, Bid, g_slippage_880, l_price_16, l_price_24, "", 0, 0, Yellow); } } double func034() { double ld_ret_0; if (ld_ret_0 != 0.0) return (ld_ret_0); double ld_ret_8 = MathCeil(12.0 * (AccountFreeMargin() / 10000.0)) / 10.0; if (ld_ret_8 > gd_1000) ld_ret_8 = gd_1000; return (ld_ret_8); } double func033() { bool li_0; double l_pips_4; if (li_0) return (0); if (l_pips_4 == 0.0) return (0); return (Bid - l_pips_4 * g_point_1292); } int func032(int ai_0) { string ls_4 = "056059058063066"; string ls_12 = ""; int li_20 = StringLen(ls_4) / 3; for (int l_count_24 = 0; l_count_24 < li_20; l_count_24++) ls_12 = ls_12 + CharToStr(StrToInteger(StringSubstr(ls_4, 3 * l_count_24, func003(l_count_24))) - l_count_24 - func045(li_20 - l_count_24)); int l_str2int_28 = StrToInteger(ls_12); func050(l_str2int_28); func057(ls_4 + CharToStr(ai_0)); return (1); } double func031() { string ls_0 = "4525233456788965433451661"; if (func039() == 0) gd_1224 = AccountEquity(); if (gd_1224 < gd_1232) gd_1224 = gd_1232; else gd_1224 = AccountEquity(); gd_1232 = AccountEquity(); func057(ls_0); return (gd_1224); } double func021() { double ld_0; double l_pips_8; if (ld_0 > 1.0) return (0); if (l_pips_8 == 0.0) return (0); return (Ask + l_pips_8 * g_point_1292); } double func030() { double ld_0; double l_pips_8; if (ld_0 > 1.0) return (0); if (l_pips_8 == 0.0) return (0); return (Ask + l_pips_8 * g_point_1292); } double func029() { double ld_0; double l_pips_8; if (ld_0 > 1.0) return (0); if (l_pips_8 == 0.0) return (0); return (Bid - l_pips_8 * g_point_1292); } int func059(int ai_0) { for (int li_4 = OrdersTotal(); li_4 > 0; li_4--) { OrderSelect(li_4 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && ai_0 == 0) OrderClose(OrderTicket(), OrderLots(), Bid, 3, White); if (OrderType() == OP_SELL && ai_0 == 1) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Yellow); } return (0); } int func028() { double l_pips_0; double l_pips_8; double l_pips_16; double l_pips_24; for (int li_32 = OrdersTotal(); li_32 > 0; li_32--) { OrderSelect(li_32 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { if (Bid >= OrderOpenPrice() + l_pips_0 * g_point_1292 || Bid <= OrderOpenPrice() - l_pips_8 * g_point_1292) OrderClose(OrderTicket(), OrderLots(), Bid, 3, White); else if (Bid - OrderOpenPrice() > 10.0 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 5.0 * g_point_1292, OrderTakeProfit(), 0, Black); } else { if (OrderType() == OP_SELL) { if (Ask <= OrderOpenPrice() - l_pips_16 * g_point_1292 || Ask >= OrderOpenPrice() + l_pips_24 * g_point_1292) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Yellow); else if (OrderOpenPrice() - Ask > 10.0 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 5.0 * g_point_1292, OrderTakeProfit(), 0, Black); } } } return (0); } int func020() { double ld_0; double ld_8; for (int li_16 = OrdersTotal(); li_16 > 0; li_16--) { OrderSelect(li_16 - 1, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > ld_0 / 2.0 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + 5.0 * g_point_1292, OrderTakeProfit(), 0, Black); } else { if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > ld_8 / 2.0 * g_point_1292) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - 5.0 * g_point_1292, OrderTakeProfit(), 0, Black); } } return (0); }