#property copyright "Copyright © 2009 EA4FX" #property link "www.ea4fx.com" string gs_76 = "FX Navigator EA"; extern bool SignalMail = FALSE; extern double MaximumRisk = 3.0; extern double MaxLots = 10.0; extern int Slippage = 5; bool gi_108 = TRUE; bool gi_112 = FALSE; extern string Part1 = "---------- Part 1 ----------"; extern int MagicNumber_1 = 303030; extern int MinTakeProfit_1 = 30; extern int TrailingStop_1 = 15; extern int MinStopLoss_1 = 520; extern int APeriod_1 = 19; extern int IndPeriod_1 = 19; extern int LBuy_1 = 55; extern int ReserveTake_1 = 30; extern int ReserveStop_1 = 520; bool gi_160 = TRUE; bool gi_164 = FALSE; extern string Part2 = "---------- Part 2 ----------"; extern int MagicNumber_2 = 404040; extern int MinTakeProfit_2 = 40; extern int TrailingStop_2 = 20; extern int MinStopLoss_2 = 480; extern int APeriod_2 = 14; extern int IndPeriod_2 = 19; extern int LSell_2 = 40; extern int ReserveTake_2 = 40; extern int ReserveStop_2 = 480; bool gi_212 = TRUE; bool gi_216 = FALSE; extern string Part3 = "---------- Part 3 ----------"; extern int MagicNumber_3 = 454545; extern int MinTakeProfit_3 = 45; extern int TrailingStop_3 = 35; extern int MinStopLoss_3 = 160; extern int LBuy_3 = 45; extern int IndPeriod_3 = 14; extern int ReserveTake_3 = 45; extern int ReserveStop_3 = 160; bool gi_260 = TRUE; bool gi_264 = FALSE; extern string Part4 = "---------- Part 4 ----------"; extern int MagicNumber_4 = 252525; extern int MinTakeProfit_4 = 25; extern int TrailingStop_4 = 15; extern int MinStopLoss_4 = 860; extern int LSell_4 = 35; extern int IndPeriod_4 = 14; extern int ReserveTake_4 = 25; extern int ReserveStop_4 = 860; double g_lots_308 = 1.0; int g_bars_316; int g_bars_320; int g_bars_324; int g_bars_328; int gi_332; bool gi_336 = FALSE; bool gi_340 = FALSE; bool gi_344 = FALSE; bool gi_348 = FALSE; int init() { g_bars_316 = Bars; g_bars_320 = Bars; g_bars_324 = Bars; g_bars_328 = Bars; if (gi_112) gi_332 = 0; else gi_332 = 1; if (gi_164) gi_332 = 0; else gi_332 = 1; if (gi_216) gi_332 = 0; else gi_332 = 1; if (gi_264) gi_332 = 0; else gi_332 = 1; return (0); } int deinit() { return (0); } int start() { int l_ticket_0; double l_price_4; double l_price_12; int li_20; int li_24; int li_28; int li_32; Comment("\n ----------------------------------------------" + "\n" + gs_76 + "" + "\n FROM WWW.EA4FX.COM" + "\n CONTACT US AT SUPPORT@EA4FX.COM" + "\n ----------------------------------------------"); if (Symbol() != "EURUSD" && Symbol() != "EURUSDm") return; if (!IsDemo()) { Alert("This account :" + AccountNumber() + " is not licensed to trade this EA. Contact sales@ea4fx.com for a live trading license."); Comment("=== The Navigator EA work ONLY Demo Account ==="); Print("=== The Navigator EA work ONLY Demo Account ==="); return; } int li_36 = 4; int li_40 = 11; int li_44 = 2019; if ((TimeDay(TimeCurrent()) > li_36 && TimeMonth(TimeCurrent()) >= li_40 && TimeYear(TimeCurrent()) >= li_44) || (TimeMonth(TimeCurrent()) > li_40 && TimeYear(TimeCurrent()) >= li_44) || TimeYear(TimeCurrent()) > li_44) { Comment(" The Navigator EA - EXPIRED "); Print(" The Navigator EA - EXPIRED "); return; } int li_48 = 0; g_lots_308 = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 50000.0, 1); if (g_lots_308 > MaxLots) g_lots_308 = MaxLots; if (gi_112 && Bars != g_bars_316) gi_336 = FALSE; if (gi_164 && Bars != g_bars_320) gi_340 = FALSE; if (gi_216 && Bars != g_bars_324) gi_344 = FALSE; if (gi_264 && Bars != g_bars_328) gi_348 = FALSE; int l_ord_total_52 = OrdersTotal(); li_48 = 0; double l_iadx_56 = iADX(NULL, PERIOD_H1, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_iadx_64 = iADX(NULL, PERIOD_H1, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 1); double l_iadx_72 = iADX(NULL, PERIOD_H1, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_iadx_80 = iADX(NULL, PERIOD_H1, APeriod_1, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_imfi_88 = iMFI(NULL, PERIOD_M30, IndPeriod_1, 0); double ld_96 = LBuy_1; double l_imfi_104 = iMFI(NULL, PERIOD_M30, IndPeriod_1, 0); double l_imfi_112 = iMFI(NULL, PERIOD_M30, IndPeriod_1, 1); double l_iadx_120 = iADX(NULL, PERIOD_M5, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_iadx_128 = iADX(NULL, PERIOD_M5, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 1); double l_iadx_136 = iADX(NULL, PERIOD_M5, APeriod_1, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_iadx_144 = iADX(NULL, PERIOD_M5, APeriod_1, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_iadx_152 = iADX(NULL, PERIOD_H1, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_iadx_160 = iADX(NULL, PERIOD_H1, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 1); double l_iadx_168 = iADX(NULL, PERIOD_H1, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_iadx_176 = iADX(NULL, PERIOD_H1, APeriod_2, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_imfi_184 = iMFI(NULL, PERIOD_M30, IndPeriod_2, 0); double ld_192 = LSell_2; double l_imfi_200 = iMFI(NULL, PERIOD_M30, IndPeriod_2, 0); double l_imfi_208 = iMFI(NULL, PERIOD_M30, IndPeriod_2, 1); double l_iadx_216 = iADX(NULL, PERIOD_M5, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_iadx_224 = iADX(NULL, PERIOD_M5, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 1); double l_iadx_232 = iADX(NULL, PERIOD_M5, APeriod_2, PRICE_CLOSE, MODE_MINUSDI, gi_332 + 0); double l_iadx_240 = iADX(NULL, PERIOD_M5, APeriod_2, PRICE_CLOSE, MODE_PLUSDI, gi_332 + 0); double l_iclose_248 = iClose(NULL, PERIOD_M30, gi_332 + 0); double l_isar_256 = iSAR(NULL, PERIOD_M30, 0.02, 0.2, gi_332 + 0); double l_iclose_264 = iClose(NULL, PERIOD_H4, gi_332 + 0); double l_isar_272 = iSAR(NULL, PERIOD_H4, 0.02, 0.2, gi_332 + 0); double l_imfi_280 = iMFI(NULL, 0, IndPeriod_3, 0); double ld_288 = LBuy_3; double l_imfi_296 = iMFI(NULL, 0, IndPeriod_3, 0); double l_imfi_304 = iMFI(NULL, 0, IndPeriod_3, 1); double l_iclose_312 = iClose(NULL, PERIOD_M30, gi_332 + 0); double l_isar_320 = iSAR(NULL, PERIOD_M30, 0.02, 0.2, gi_332 + 0); double l_iclose_328 = iClose(NULL, PERIOD_H4, gi_332 + 0); double l_isar_336 = iSAR(NULL, PERIOD_H4, 0.02, 0.2, gi_332 + 0); double l_imfi_344 = iMFI(NULL, 0, IndPeriod_4, 0); double ld_352 = LSell_4; double l_imfi_360 = iMFI(NULL, 0, IndPeriod_4, 0); double l_imfi_368 = iMFI(NULL, 0, IndPeriod_4, 1); bool li_376 = FALSE; for (int l_pos_380 = l_ord_total_52 - 1; l_pos_380 >= 0; l_pos_380--) { if (OrderSelect(l_pos_380, SELECT_BY_POS, MODE_TRADES)) if (OrderMagicNumber() == MagicNumber_1) li_20++; } if (li_20 > 0) li_376 = TRUE; bool li_384 = FALSE; for (int l_pos_388 = l_ord_total_52 - 1; l_pos_388 >= 0; l_pos_388--) { if (OrderSelect(l_pos_388, SELECT_BY_POS, MODE_TRADES)) if (OrderMagicNumber() == MagicNumber_2) li_24++; } if (li_24 > 0) li_384 = TRUE; bool li_392 = FALSE; for (int l_pos_396 = l_ord_total_52 - 1; l_pos_396 >= 0; l_pos_396--) { if (OrderSelect(l_pos_396, SELECT_BY_POS, MODE_TRADES)) if (OrderMagicNumber() == MagicNumber_3) li_28++; } if (li_28 > 0) li_392 = TRUE; bool li_400 = FALSE; for (int l_pos_404 = l_ord_total_52 - 1; l_pos_404 >= 0; l_pos_404--) { if (OrderSelect(l_pos_404, SELECT_BY_POS, MODE_TRADES)) if (OrderMagicNumber() == MagicNumber_4) li_32++; } if (li_32 > 0) li_400 = TRUE; int li_unused_408 = 0; for (int l_pos_412 = 0; l_pos_412 < l_ord_total_52; l_pos_412++) { OrderSelect(l_pos_412, SELECT_BY_POS, MODE_TRADES); if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_1) { li_unused_408 = 1; if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() >= Point * MinTakeProfit_1 || OrderOpenPrice() - Bid >= Point * MinStopLoss_1) li_48 = 3; if (li_48 == 3) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); li_unused_408 = 0; } else { if (TrailingStop_1 > 0) { if (Bid - OrderOpenPrice() > Point * TrailingStop_1) { if (OrderStopLoss() < Bid - Point * TrailingStop_1) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop_1, OrderTakeProfit(), 0, MediumSeaGreen); if (!gi_112) g_bars_316 = Bars; } } } } } else { if (OrderOpenPrice() - Ask >= Point * MinTakeProfit_1 || Ask - OrderOpenPrice() >= Point * MinStopLoss_1) li_48 = 4; if (li_48 == 4) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); li_unused_408 = 0; } else { if (TrailingStop_1 > 0) { if (OrderOpenPrice() - Ask > Point * TrailingStop_1) { if (OrderStopLoss() > Ask + Point * TrailingStop_1 || OrderStopLoss() == 0.0) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop_1, OrderTakeProfit(), 0, DarkOrange); if (!gi_112) g_bars_316 = Bars; } } } } } } } int li_unused_416 = 0; for (int l_pos_420 = 0; l_pos_420 < l_ord_total_52; l_pos_420++) { OrderSelect(l_pos_420, SELECT_BY_POS, MODE_TRADES); if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_2) { li_unused_416 = 1; if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() >= Point * MinTakeProfit_2 || OrderOpenPrice() - Bid >= Point * MinStopLoss_2) li_48 = 7; if (li_48 == 7) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); li_unused_416 = 0; } else { if (TrailingStop_2 > 0) { if (Bid - OrderOpenPrice() > Point * TrailingStop_2) { if (OrderStopLoss() < Bid - Point * TrailingStop_2) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop_2, OrderTakeProfit(), 0, MediumSeaGreen); if (!gi_164) g_bars_320 = Bars; } } } } } else { if (OrderOpenPrice() - Ask >= Point * MinTakeProfit_2 || Ask - OrderOpenPrice() >= Point * MinStopLoss_2) li_48 = 8; if (li_48 == 8) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); li_unused_416 = 0; } else { if (TrailingStop_2 > 0) { if (OrderOpenPrice() - Ask > Point * TrailingStop_2) { if (OrderStopLoss() > Ask + Point * TrailingStop_2 || OrderStopLoss() == 0.0) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop_2, OrderTakeProfit(), 0, DarkOrange); if (!gi_164) g_bars_320 = Bars; } } } } } } } int li_unused_424 = 0; for (int l_pos_428 = 0; l_pos_428 < l_ord_total_52; l_pos_428++) { OrderSelect(l_pos_428, SELECT_BY_POS, MODE_TRADES); if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3) { li_unused_424 = 1; if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() >= Point * MinTakeProfit_3 || OrderOpenPrice() - Bid >= Point * MinStopLoss_3) li_48 = 11; if (li_48 == 11) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); li_unused_424 = 0; } else { if (TrailingStop_3 > 0) { if (Bid - OrderOpenPrice() > Point * TrailingStop_3) { if (OrderStopLoss() < Bid - Point * TrailingStop_3) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop_3, OrderTakeProfit(), 0, MediumSeaGreen); if (!gi_216) g_bars_324 = Bars; } } } } } else { if (OrderOpenPrice() - Ask >= Point * MinTakeProfit_3 || Ask - OrderOpenPrice() >= Point * MinStopLoss_3) li_48 = 12; if (li_48 == 12) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); li_unused_424 = 0; } else { if (TrailingStop_3 > 0) { if (OrderOpenPrice() - Ask > Point * TrailingStop_3) { if (OrderStopLoss() > Ask + Point * TrailingStop_3 || OrderStopLoss() == 0.0) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop_3, OrderTakeProfit(), 0, DarkOrange); if (!gi_216) g_bars_324 = Bars; } } } } } } } int li_unused_432 = 0; for (int l_pos_436 = 0; l_pos_436 < l_ord_total_52; l_pos_436++) { OrderSelect(l_pos_436, SELECT_BY_POS, MODE_TRADES); if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_4) { li_unused_432 = 1; if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() >= Point * MinTakeProfit_4 || OrderOpenPrice() - Bid >= Point * MinStopLoss_4) li_48 = 15; if (li_48 == 15) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); li_unused_432 = 0; } else { if (TrailingStop_4 > 0) { if (Bid - OrderOpenPrice() > Point * TrailingStop_4) { if (OrderStopLoss() < Bid - Point * TrailingStop_4) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop_4, OrderTakeProfit(), 0, MediumSeaGreen); if (!gi_264) g_bars_328 = Bars; } } } } } else { if (OrderOpenPrice() - Ask >= Point * MinTakeProfit_4 || Ask - OrderOpenPrice() >= Point * MinStopLoss_4) li_48 = 16; if (li_48 == 16) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); li_unused_432 = 0; } else { if (TrailingStop_4 > 0) { if (OrderOpenPrice() - Ask > Point * TrailingStop_4) { if (OrderStopLoss() > Ask + Point * TrailingStop_4 || OrderStopLoss() == 0.0) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop_4, OrderTakeProfit(), 0, DarkOrange); if (!gi_264) g_bars_328 = Bars; } } } } } } } if (l_iadx_56 > l_iadx_64 && l_iadx_72 > l_iadx_80 && l_imfi_88 < ld_96 && l_imfi_104 > l_imfi_112 && l_iadx_120 > l_iadx_128 && l_iadx_136 > l_iadx_144) li_48 = 1; if (li_48 == 1 && gi_108 == TRUE && (gi_112 && !gi_336) || (!gi_112 && Bars != g_bars_316)) { if (!li_376) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_1 > 0) l_price_4 = Ask - ReserveStop_1 * Point; else l_price_4 = 0.0; if (ReserveTake_1 > 0) l_price_12 = Ask + ReserveTake_1 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_308, Ask, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_1 + ")", MagicNumber_1, 0, DodgerBlue); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened (Strategy_1): ", MagicNumber_1); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else Print("Error opening BUY order (Strategy_1): ", GetLastError()); } if (gi_112) gi_336 = TRUE; if (!gi_112) g_bars_316 = Bars; return (0); } } if (li_48 == 2 && gi_108 == TRUE && (gi_112 && !gi_336) || (!gi_112 && Bars != g_bars_316)) { if (!li_376) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_1 > 0) l_price_4 = Bid + ReserveStop_1 * Point; else l_price_4 = 0.0; if (ReserveTake_1 > 0) l_price_12 = Bid - ReserveTake_1 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_308, Bid, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_1 + ")", MagicNumber_1, 0, DeepPink); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened (Strategy_1): ", MagicNumber_1); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else Print("Error opening SELL order (Strategy_1): ", GetLastError()); } if (gi_112) gi_336 = TRUE; if (!gi_112) g_bars_316 = Bars; return (0); } } if (l_iadx_152 > l_iadx_160 && l_iadx_168 > l_iadx_176 && l_imfi_184 > ld_192 && l_imfi_200 < l_imfi_208 && l_iadx_216 > l_iadx_224 && l_iadx_232 > l_iadx_240) li_48 = 6; if (li_48 == 5 && gi_160 == TRUE && (gi_164 && !gi_340) || (!gi_164 && Bars != g_bars_320)) { if (!li_384) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_2 > 0) l_price_4 = Ask - ReserveStop_2 * Point; else l_price_4 = 0.0; if (ReserveTake_2 > 0) l_price_12 = Ask + ReserveTake_2 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_308, Ask, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_2 + ")", MagicNumber_2, 0, DodgerBlue); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened (Strategy_2): ", MagicNumber_2); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else Print("Error opening BUY order (Strategy_2): ", GetLastError()); } if (gi_164) gi_340 = TRUE; if (!gi_164) g_bars_320 = Bars; return (0); } } if (li_48 == 6 && gi_160 == TRUE && (gi_164 && !gi_340) || (!gi_164 && Bars != g_bars_320)) { if (!li_384) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_2 > 0) l_price_4 = Bid + ReserveStop_2 * Point; else l_price_4 = 0.0; if (ReserveTake_2 > 0) l_price_12 = Bid - ReserveTake_2 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_308, Bid, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_2 + ")", MagicNumber_2, 0, DeepPink); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened (Strategy_2): ", MagicNumber_2); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else Print("Error opening SELL order (Strategy_2): ", GetLastError()); } if (gi_164) gi_340 = TRUE; if (!gi_164) g_bars_320 = Bars; return (0); } } if (l_iclose_248 > l_isar_256 && l_iclose_264 > l_isar_272 && l_imfi_280 < ld_288 && l_imfi_296 > l_imfi_304) li_48 = 9; if (li_48 == 9 && gi_212 == TRUE && (gi_216 && !gi_344) || (!gi_216 && Bars != g_bars_324)) { if (!li_392) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_3 > 0) l_price_4 = Ask - ReserveStop_3 * Point; else l_price_4 = 0.0; if (ReserveTake_3 > 0) l_price_12 = Ask + ReserveTake_3 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_308, Ask, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_3 + ")", MagicNumber_3, 0, DodgerBlue); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened (Strategy_3): ", MagicNumber_3); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else Print("Error opening BUY order (Strategy_3): ", GetLastError()); } if (gi_216) gi_344 = TRUE; if (!gi_216) g_bars_324 = Bars; return (0); } } if (li_48 == 10 && gi_212 == TRUE && (gi_216 && !gi_344) || (!gi_216 && Bars != g_bars_324)) { if (!li_392) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_3 > 0) l_price_4 = Bid + ReserveStop_3 * Point; else l_price_4 = 0.0; if (ReserveTake_3 > 0) l_price_12 = Bid - ReserveTake_3 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_308, Bid, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_3 + ")", MagicNumber_3, 0, DeepPink); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened (Strategy_3): ", MagicNumber_3); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else Print("Error opening SELL order (Strategy_3): ", GetLastError()); } if (gi_216) gi_344 = TRUE; if (!gi_216) g_bars_324 = Bars; return (0); } } if (l_iclose_312 < l_isar_320 && l_iclose_328 < l_isar_336 && l_imfi_344 > ld_352 && l_imfi_360 < l_imfi_368) li_48 = 14; if (li_48 == 13 && gi_260 == TRUE && (gi_264 && !gi_348) || (!gi_264 && Bars != g_bars_328)) { if (!li_400) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_4 > 0) l_price_4 = Ask - ReserveStop_4 * Point; else l_price_4 = 0.0; if (ReserveTake_4 > 0) l_price_12 = Ask + ReserveTake_4 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_308, Ask, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_4 + ")", MagicNumber_4, 0, DodgerBlue); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened (Strategy_4): ", MagicNumber_4); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else Print("Error opening BUY order (Strategy_4): ", GetLastError()); } if (gi_264) gi_348 = TRUE; if (!gi_264) g_bars_328 = Bars; return (0); } } if (li_48 == 14 && gi_260 == TRUE && (gi_264 && !gi_348) || (!gi_264 && Bars != g_bars_328)) { if (!li_400) { if (AccountFreeMargin() < 1000.0 * g_lots_308) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return (0); } if (ReserveStop_4 > 0) l_price_4 = Bid + ReserveStop_4 * Point; else l_price_4 = 0.0; if (ReserveTake_4 > 0) l_price_12 = Bid - ReserveTake_4 * Point; else l_price_12 = 0.0; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_308, Bid, Slippage, l_price_4, l_price_12, "Navigator(#" + MagicNumber_4 + ")", MagicNumber_4, 0, DeepPink); if (l_ticket_0 > 0) { if (OrderSelect(l_ticket_0, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened (Strategy_4): ", MagicNumber_4); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else Print("Error opening SELL order (Strategy_4): ", GetLastError()); } if (gi_264) gi_348 = TRUE; if (!gi_264) g_bars_328 = Bars; return (0); } } if (!gi_112) g_bars_316 = Bars; if (!gi_164) g_bars_320 = Bars; if (!gi_216) g_bars_324 = Bars; if (!gi_264) g_bars_328 = Bars; return (0); }