#property copyright "copyright © 081509 - Dragonpips.com" #property link "http://www.Dragonpips.com" bool gi_76 = TRUE; bool gi_80 = TRUE; bool gi_84 = TRUE; bool gi_88 = TRUE; extern string SetYourBalanceTargetBelow = "-- Stop if balance target equal or bigger than --"; extern double BalanceTarget = 10000000.0; extern string TradingTime = "AutoGmtOffset"; extern int OpenHour = 1; extern int CloseHour = 3; extern double Lots = 0.1; extern double MaxLots = 100.0; extern string lotsOptimizedInfo = "-- False if your balance under $1000 standard account with start Lots 0.01--"; extern bool LotsOptimized = TRUE; extern int LotDecimal = 1; extern int Risk = 50; extern int MaxTrades = 5; double gd_164 = 0.0001; extern string BrokerSpread = "-- Set spread not over than 4 --"; extern double Spread = 3.0; bool gi_188 = TRUE; bool gi_192 = TRUE; extern double TakeProfit = 5.0; extern double StopLoss = 25.0; extern int AllowSunday = 1; extern int AllowMonday = 1; extern int AllowTuesday = 1; extern int AllowWednesday = 1; extern int AllowThursday = 1; extern int AllowFriday = 1; extern int AllowSaturday = 1; int g_slippage_240 = 1; int gi_244 = 32; int gi_248 = 20; int gi_252 = 3; bool gi_256 = TRUE; int g_magic_260 = 371443; int g_magic_264 = 3714431; int g_magic_268 = 3714432; int g_magic_272 = 3714433; int gi_276 = 60; int gi_280 = 3; int gi_284 = 140; int gi_288 = 2; int gi_292 = 170; int gi_296 = 1; int gi_300 = 200; int gi_304 = 1; int gi_308 = 240; int gi_312 = 4; bool gi_316 = TRUE; double gd_320 = 0.001; double gd_328 = 0.001; double gd_336 = 0.0012; int gi_344 = 55; bool gi_348 = TRUE; bool gi_352 = TRUE; bool gi_356 = TRUE; bool gi_360 = TRUE; bool gi_364 = TRUE; bool gi_368 = TRUE; bool gi_372 = TRUE; bool gi_376 = TRUE; double g_minlot_380 = 0.0; double g_maxlot_388 = 0.0; int g_lotsize_396 = 0; int g_leverage_400 = 0; double g_lots_404; double g_lots_412; int g_pos_420; int gi_424 = 0; int g_count_428 = 0; int g_count_432 = 0; int g_count_436 = 0; int g_count_440 = 0; int g_count_444 = 0; int gi_448 = 0; int gi_452 = 0; int gi_456 = 0; int gi_460 = 0; int gi_464 = 0; int gi_468 = 0; int gi_472 = 0; int gi_476 = 0; int gi_480 = 0; int gi_484 = 0; double g_ord_open_price_488 = 0.0; double g_ord_open_price_496 = 0.0; double g_ord_open_price_504 = 0.0; double g_ord_open_price_512 = 0.0; double g_ord_open_price_520 = 0.0; double g_ord_open_price_528 = 0.0; double g_ord_open_price_536 = 0.0; double g_ord_open_price_544 = 0.0; double g_ord_open_price_552 = 0.0; double g_ord_open_price_560 = 0.0; double g_price_568 = 0.0; double g_price_576 = 0.0; double g_ifractals_584; double g_ifractals_592; double gd_unused_600; double gd_unused_608; double g_ifractals_616; double g_ifractals_624; double gd_unused_632; double gd_unused_640; int gi_648 = 0; int gi_unused_652 = 0; double gd_656 = 0.0; int gi_664 = 0; extern string ExpertInfo = "You can change EA name below to hide EA identity"; extern string ExpertName = "DragonpipsXtremeEdition"; bool gi_684 = FALSE; bool gi_688 = FALSE; double gd_692 = 0.0; double gd_700 = 0.0; double gd_708 = 0.0; double gd_716 = 0.0; double gd_724 = 0.0; double gd_732 = 0.0; double gd_740 = 0.0; double gd_748 = 0.0; double gd_756 = 0.0; double gd_764 = 0.0; double gd_772 = 0.0; double gd_780 = 0.0; double gd_788 = 0.0; double gd_796 = 0.0; double gd_804 = 0.0; double gd_812 = 0.0; int gi_unused_820 = 0; int gi_unused_824 = 0; int gi_unused_828 = 0; int gi_unused_832 = 0; int gi_unused_836 = 0; int gi_unused_840 = 0; int gi_unused_844 = 0; double gd_848 = 0.0; double gd_856 = 0.0; double gd_864 = 0.0; double gd_872 = 0.0; double gd_880 = 0.0; double gd_888 = 0.0; double gd_896 = 0.0; double gd_904 = 0.0; double gd_912 = 0.0; double gd_920 = 0.0; double gd_928 = 0.0; double gd_936 = 0.0; double gd_944 = 0.0; double gd_952 = 0.0; double gd_960 = 0.0; double gd_968 = 0.0; double gd_976 = 0.0; double gd_984 = 0.0; double gd_992 = 0.0; double gd_1000 = 0.0; double gd_1008 = 0.0; double gd_1016 = 0.0; double gd_unused_1024 = 0.0; double gd_unused_1032 = 0.0; double gd_unused_1040 = 0.0; double gd_1048 = 0.0; double gd_1056 = 0.0; double gd_1064 = 0.0; double gd_1072; double gd_1080 = 0.0; double gd_1088 = 0.0; double gd_1096 = 0.0; double gd_1104 = 0.0; double gd_1112 = 0.0; double gd_1120 = 0.0; double gd_1128 = 0.0; int init() { if (Digits % 2 != 0) g_slippage_240 = 10 * g_slippage_240; return (0); } int deinit() { return (0); } int start() { int l_ticket_0; bool l_ord_close_4; if (BalanceTarget > 0.0 && AccountEquity() >= BalanceTarget) { for (g_pos_420 = OrdersTotal() - 1; g_pos_420 >= 0; g_pos_420--) { OrderSelect(g_pos_420, SELECT_BY_POS); l_ticket_0 = OrderType(); l_ord_close_4 = FALSE; switch (l_ticket_0) { case 0: l_ord_close_4 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), g_slippage_240, Pink); break; case 1: l_ord_close_4 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), g_slippage_240, Pink); } if (l_ord_close_4 == 0) Sleep(3000); } Print("Account Profit Reached. All Open Trades Have Been Closed"); return (0); } Comment("Balance: ", AccountBalance(), ", Account Equity: ", AccountEquity(), ", Account Profit: ", AccountProfit()); HideTestIndicators(TRUE); findMyOrders(); onScreenComment(98); g_price_568 = TakeProfit; g_price_576 = 0; for (int li_12 = 1; li_12 < Bars; li_12++) { if (iFractals(NULL, PERIOD_M15, MODE_UPPER, li_12) != 0.0) { g_ifractals_584 = iFractals(NULL, PERIOD_M15, MODE_UPPER, li_12); gd_unused_608 = Time[li_12]; break; } } for (int li_16 = 1; li_16 < Bars; li_16++) { if (iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16) != 0.0) { g_ifractals_592 = iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16); gd_unused_600 = Time[li_16]; break; } } for (int li_20 = 1; li_20 < Bars; li_20++) { if (iFractals(NULL, PERIOD_H1, MODE_UPPER, li_20) != 0.0) { g_ifractals_616 = iFractals(NULL, PERIOD_H1, MODE_UPPER, li_20); gd_unused_640 = Time[li_20]; break; } } for (int li_24 = 1; li_24 < Bars; li_24++) { if (iFractals(NULL, PERIOD_H1, MODE_LOWER, li_24) != 0.0) { g_ifractals_624 = iFractals(NULL, PERIOD_H1, MODE_LOWER, li_24); gd_unused_632 = Time[li_16]; break; } } gi_648 = MathRound((g_ifractals_584 - g_ifractals_592) / gd_164); gi_unused_652 = MathRound((g_ifractals_616 - g_ifractals_624) / gd_164); gd_656 = 0; gd_656 = g_ifractals_584 - (g_ifractals_584 - g_ifractals_592) / 2.0; gi_664 = MathRound(iATR(Symbol(), PERIOD_M15, 4, 0) / gd_164); bool li_28 = FALSE; if (Close[0] <= g_ifractals_616 && Close[0] >= g_ifractals_624) li_28 = TRUE; g_count_428 = 0; g_count_432 = 0; g_count_436 = 0; g_count_440 = 0; g_count_444 = 0; gi_448 = 0.0; gi_452 = 0.0; gi_456 = 0.0; gi_460 = 0.0; gi_464 = 0.0; gi_468 = 0.0; gi_472 = 0.0; gi_476 = 0.0; gi_480 = 0.0; gi_484 = 0.0; g_ord_open_price_488 = 0.0; g_ord_open_price_496 = 0.0; g_ord_open_price_504 = 0.0; g_ord_open_price_512 = 0.0; g_ord_open_price_520 = 0.0; g_ord_open_price_528 = 0.0; g_ord_open_price_536 = 0.0; g_ord_open_price_544 = 0.0; g_ord_open_price_552 = 0.0; g_ord_open_price_560 = 0.0; for (int l_pos_32 = 0; l_pos_32 < OrdersTotal(); l_pos_32++) { OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_260 || OrderMagicNumber() == g_magic_264 || OrderMagicNumber() == g_magic_268 || OrderMagicNumber() == g_magic_272) { g_count_428++; if (OrderType() == OP_BUY) { gi_468++; g_ord_open_price_528 = OrderOpenPrice(); } if (OrderType() == OP_SELL) { gi_448++; g_ord_open_price_488 = OrderOpenPrice(); } } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_260) { g_count_432++; if (OrderType() == OP_BUY) { gi_472++; g_ord_open_price_536 = OrderOpenPrice(); } if (OrderType() == OP_SELL) { gi_452++; g_ord_open_price_496 = OrderOpenPrice(); } } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_264) { g_count_436++; if (OrderType() == OP_BUY) { gi_476++; g_ord_open_price_544 = OrderOpenPrice(); } if (OrderType() == OP_SELL) { gi_456++; g_ord_open_price_504 = OrderOpenPrice(); } } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_268) { g_count_440++; if (OrderType() == OP_BUY) { gi_480++; g_ord_open_price_552 = OrderOpenPrice(); } if (OrderType() == OP_SELL) { gi_460++; g_ord_open_price_512 = OrderOpenPrice(); } } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_272) { g_count_444++; if (OrderType() == OP_BUY) { gi_484++; g_ord_open_price_560 = OrderOpenPrice(); } if (OrderType() == OP_SELL) { gi_464++; g_ord_open_price_520 = OrderOpenPrice(); } } } } } } } if (gi_188 == TRUE) { for (int l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) { OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_260) { if (Bid >= OrderOpenPrice() + TakeProfit * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); } } if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_264) { if (Bid >= OrderOpenPrice() + (TakeProfit - 2.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); } } if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_268) { if (Bid >= OrderOpenPrice() + (TakeProfit - 1.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); } } if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_272) { if (Bid >= OrderOpenPrice() + (TakeProfit - 2.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_260) { if (Ask <= OrderOpenPrice() - TakeProfit * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_264) { if (Ask <= OrderOpenPrice() - (TakeProfit - 2.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_268) { if (Ask <= OrderOpenPrice() - (TakeProfit - 1.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_272) { if (Ask <= OrderOpenPrice() - (TakeProfit - 2.0) * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); } } } } if (gi_256 == TRUE) { for (int l_pos_40 = 0; l_pos_40 < OrdersTotal(); l_pos_40++) { OrderSelect(l_pos_40, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_260 || OrderMagicNumber() == g_magic_264 || OrderMagicNumber() == g_magic_268 || OrderMagicNumber() == g_magic_272) { if (TimeCurrent() - OrderOpenTime() > 60 * gi_276 && TimeCurrent() - OrderOpenTime() < 60 * gi_284 && Bid >= OrderOpenPrice() + gi_280 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_284 && TimeCurrent() - OrderOpenTime() < 60 * gi_292 && Bid >= OrderOpenPrice() + gi_288 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_292 && TimeCurrent() - OrderOpenTime() < 60 * gi_300 && Bid >= OrderOpenPrice() + gi_296 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_300 && TimeCurrent() - OrderOpenTime() < 60 * gi_308 && Bid >= OrderOpenPrice() - gi_304 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_308 && Bid >= OrderOpenPrice() - gi_312 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (DayOfWeek() == 5 && Hour() >= 19) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_240, Orange); Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } } if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_260 || OrderMagicNumber() == g_magic_264 || OrderMagicNumber() == g_magic_268 || OrderMagicNumber() == g_magic_272) { if (TimeCurrent() - OrderOpenTime() > 60 * gi_276 && TimeCurrent() - OrderOpenTime() < 60 * gi_284 && Ask <= OrderOpenPrice() - gi_280 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_284 && TimeCurrent() - OrderOpenTime() < 60 * gi_292 && Ask <= OrderOpenPrice() - gi_288 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_292 && TimeCurrent() - OrderOpenTime() < 60 * gi_300 && Ask <= OrderOpenPrice() - gi_296 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_300 && TimeCurrent() - OrderOpenTime() < 60 * gi_308 && Ask <= OrderOpenPrice() + gi_304 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (TimeCurrent() - OrderOpenTime() > 60 * gi_308 && Ask <= OrderOpenPrice() + gi_312 * gd_164) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } if (DayOfWeek() == 5 && Hour() >= 19) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_240, Orange); Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) + " Profit : $ " + DoubleToStr(OrderProfit(), 2)); } } } } if (gi_316 == TRUE) { if (iOpen(Symbol(), PERIOD_M5, 0) >= Ask + gd_320) return; if (iOpen(Symbol(), PERIOD_M5, 0) <= Bid - gd_320) return; if (iOpen(Symbol(), PERIOD_M5, 1) >= Ask + gd_328) return; if (iOpen(Symbol(), PERIOD_M5, 1) <= Bid - gd_328) return; if (iOpen(Symbol(), PERIOD_M5, 2) >= Ask + gd_336) return; if (iOpen(Symbol(), PERIOD_M5, 2) <= Bid - gd_336) return; } if (Ask - Bid > Spread * gd_164) return (0); gi_424 = NormalizeDouble(MaxTrades / 2, 0); g_minlot_380 = MarketInfo(Symbol(), MODE_MINLOT); g_maxlot_388 = MarketInfo(Symbol(), MODE_MAXLOT); g_leverage_400 = AccountLeverage(); g_lotsize_396 = MarketInfo(Symbol(), MODE_LOTSIZE); g_lots_404 = MathMin(g_maxlot_388, MathMax(g_minlot_380, Lots)); if (LotsOptimized && Risk > 0.0 && AccountFreeMargin() > Ask * g_lots_404 * g_lotsize_396 / g_leverage_400) g_lots_404 = NormalizeDouble(AccountFreeMargin() * Risk / g_lotsize_396, LotDecimal); else g_lots_404 = g_minlot_380; g_lots_404 = MathMax(g_minlot_380, MathMin(g_maxlot_388, NormalizeDouble(g_lots_404 / g_minlot_380, 0) * g_minlot_380)); g_lots_404 = NormalizeDouble(g_lots_404 / gi_424, LotDecimal); if (g_lots_404 > MaxLots) g_lots_404 = MaxLots; if (AccountFreeMargin() < Ask * g_lots_404 * g_lotsize_396 / g_leverage_400) { Print("Low Account Balance. Lots = ", g_lots_404, " , Free Margin = ", AccountFreeMargin()); Comment("Low Account Balance. Lots = ", g_lots_404, " , Free Margin = ", AccountFreeMargin()); return; } double l_iclose_44 = iClose(Symbol(), PERIOD_M15, 0); double l_iopen_52 = iOpen(Symbol(), PERIOD_M15, 0); double l_ilow_60 = iLow(Symbol(), PERIOD_M15, 0); double l_ihigh_68 = iHigh(Symbol(), PERIOD_M15, 0); double l_irsi_76 = iRSI(NULL, PERIOD_M15, 6, PRICE_CLOSE, 0); double l_irsi_84 = iRSI(NULL, PERIOD_M1, 20, PRICE_CLOSE, 0); double ld_92 = NormalizeDouble(iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_WEIGHTED, 1), 4); double ld_100 = NormalizeDouble(iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_WEIGHTED, 1), 4); double l_icci_108 = iCCI(Symbol(), PERIOD_M15, 14, PRICE_CLOSE, 0); double l_icci_116 = iCCI(Symbol(), PERIOD_M5, 42, PRICE_CLOSE, 0); double l_icci_124 = iCCI(Symbol(), PERIOD_M1, 210, PRICE_CLOSE, 0); double l_icci_132 = iCCI(Symbol(), PERIOD_M1, 80, PRICE_CLOSE, 0); double l_imomentum_140 = iMomentum(Symbol(), PERIOD_M1, 60, PRICE_CLOSE, 0); double l_imomentum_148 = iMomentum(Symbol(), PERIOD_M5, 4, PRICE_CLOSE, 0); double l_imomentum_156 = iMomentum(Symbol(), PERIOD_M15, 14, PRICE_CLOSE, 0); double l_iwpr_164 = iWPR(Symbol(), PERIOD_M1, 14, 0); double l_iwpr_172 = iWPR(Symbol(), PERIOD_M5, 14, 0); double l_iwpr_180 = iWPR(Symbol(), PERIOD_M15, 14, 0); double l_iforce_188 = iForce(Symbol(), PERIOD_M5, 13, MODE_SMA, PRICE_CLOSE, 0); double l_ibands_196 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_UPPER, 1); double l_ibands_204 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_BASE, 1); double l_ibands_212 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_LOWER, 1); double l_ima_220 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_HIGH, 0); double l_ima_228 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_MEDIAN, 0); double l_ima_236 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_LOW, 0); double l_ibands_244 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_UPPER, 0); double l_ibands_252 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_BASE, 0); double l_ibands_260 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_LOWER, 0); double l_ima_268 = iMA(Symbol(), PERIOD_M1, 1, 0, MODE_EMA, PRICE_HIGH, 0); double l_ima_276 = iMA(Symbol(), PERIOD_M1, 1, 0, MODE_EMA, PRICE_MEDIAN, 0); double l_ima_284 = iMA(Symbol(), PERIOD_M1, 1, 0, MODE_EMA, PRICE_LOW, 0); if (IsTradeTime() && g_count_428 < MaxTrades && li_28) { if (!ExistPosition1() && gi_76 == TRUE) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_irsi_76 < 30.0 || l_irsi_84 < 36.0 && ld_92 >= Ask + 20.0 * gd_164) { if (gi_472 < 1 && gi_348) { g_price_568 = 0; g_price_576 = 0; if (!gi_188) g_price_568 = Ask + TakeProfit * gd_164; g_price_576 = Ask - StopLoss * gd_164; if (NormalizeDouble(g_lots_404 + g_lots_404 / gi_424, LotDecimal) < MaxLots) g_lots_412 = NormalizeDouble(g_lots_404 + g_lots_404 / gi_424, LotDecimal); else g_lots_412 = g_lots_404; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_412, Ask, g_slippage_240, 0, 0, ExpertName, g_magic_260, 0, Green); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Ask, g_price_576, g_price_568, 0); gi_348 = FALSE; gi_352 = TRUE; } } if (l_irsi_76 > 70.0 || l_irsi_84 > 64.0 && ld_100 <= Bid - 20.0 * gd_164) { if (gi_452 < 1 && gi_352) { g_price_568 = 0; g_price_576 = 0; if (!gi_188) g_price_568 = Bid - TakeProfit * gd_164; g_price_576 = Bid + StopLoss * gd_164; if (NormalizeDouble(g_lots_404 + g_lots_404 / gi_424, LotDecimal) < MaxLots) g_lots_412 = NormalizeDouble(g_lots_404 + g_lots_404 / gi_424, LotDecimal); else g_lots_412 = g_lots_404; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_412, Bid, g_slippage_240, 0, 0, ExpertName, g_magic_260, 0, Red); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Bid, g_price_576, g_price_568, 0); gi_352 = FALSE; gi_348 = TRUE; } } if (l_irsi_76 < 60.0 && l_irsi_76 > 40.0) { gi_352 = TRUE; gi_348 = TRUE; } } } if (IsTradeTime() && gi_648 < gi_244 && gi_664 < gi_248 && g_count_428 < MaxTrades && li_28) { if (!ExistPosition2() && gi_80 == TRUE) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_icci_116 <= -150.0 && l_icci_124 <= -120.0 || l_icci_108 <= -150.0 && l_icci_124 <= -120.0 && Bid <= gd_656 - gi_252 * gd_164) { if (gi_476 < gi_424 && gi_356) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_584; g_price_576 = Ask - StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_404, Ask, g_slippage_240, 0, 0, ExpertName, g_magic_264, 0, Green); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Ask, g_price_576, g_price_568, 0); gi_356 = FALSE; gi_360 = TRUE; } } if (l_icci_116 >= 150.0 && l_icci_124 >= 120.0 || l_icci_108 >= 150.0 && l_icci_124 >= 120.0 && Ask >= gd_656 + gi_252 * gd_164) { if (gi_456 < gi_424 && gi_360) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_592; g_price_576 = Bid + StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_404, Bid, g_slippage_240, 0, 0, ExpertName, g_magic_264, 0, Red); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Bid, g_price_576, g_price_568, 0); gi_360 = FALSE; gi_356 = TRUE; } } if (l_icci_108 < 50.0 && l_icci_108 > -50.0) { gi_360 = TRUE; gi_356 = TRUE; } } if (!ExistPosition3() && gi_84 == TRUE) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_imomentum_148 >= 99.85 && l_icci_132 <= -200.0 && Bid <= gd_656 - gi_252 * gd_164) { if (gi_480 < gi_424 && gi_364) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_584; if (gi_192) g_price_576 = g_ifractals_592 - StopLoss * gd_164; else g_price_576 = Ask - StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_404, Ask, g_slippage_240, 0, 0, ExpertName, g_magic_268, 0, Green); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Ask, g_price_576, g_price_568, 0); gi_364 = FALSE; gi_368 = TRUE; } } if (l_imomentum_148 <= 100.15 && l_icci_132 >= 200.0 && Ask >= gd_656 + gi_252 * gd_164) { if (gi_460 < gi_424 && gi_368) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_592; if (gi_192) g_price_576 = g_ifractals_584 + StopLoss * gd_164; else g_price_576 = Bid + StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_404, Bid, g_slippage_240, 0, 0, ExpertName, g_magic_264, 0, Red); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Bid, g_price_576, g_price_568, 0); gi_368 = FALSE; gi_364 = TRUE; } } if (l_icci_132 >= -50.0 && l_icci_132 <= 50.0) { gi_368 = TRUE; gi_364 = TRUE; } } if (!ExistPosition4() && gi_88 == TRUE) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_iwpr_172 <= -90.0 && l_ima_236 < l_ibands_212 && Ask <= gd_656 - gi_252 * gd_164) { if (gi_484 < gi_424 && gi_372) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_584; if (gi_192) g_price_576 = Ask - gi_244 * gd_164; else g_price_576 = Ask - StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_404, Ask, g_slippage_240, 0, 0, ExpertName, g_magic_272, 0, Green); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Ask, g_price_576, g_price_568, 0); gi_372 = FALSE; gi_376 = TRUE; } } if (l_iwpr_172 >= -10.0 && l_ima_220 > l_ibands_196 && Bid >= gd_656 + gi_252 * gd_164) { if (gi_464 < gi_424 && gi_376) { g_price_568 = 0; g_price_576 = 0; if (gi_188) g_price_568 = g_ifractals_592; if (gi_192) g_price_576 = Bid + gi_244 * gd_164; else g_price_576 = Bid + StopLoss * gd_164; l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_404, Bid, g_slippage_240, 0, 0, ExpertName, g_magic_264, 0, Red); if (l_ticket_0 > 0) OrderModify(l_ticket_0, Bid, g_price_576, g_price_568, 0); gi_376 = FALSE; gi_372 = TRUE; } } if (l_irsi_76 < 60.0 && l_irsi_76 > 40.0) { gi_376 = TRUE; gi_372 = TRUE; } } } return (0); } int IsTradeTime() { if (OpenHour < CloseHour && TimeHour(TimeCurrent()) < OpenHour || TimeHour(TimeCurrent()) >= CloseHour) return (0); if (OpenHour > CloseHour && (TimeHour(TimeCurrent()) < OpenHour && TimeHour(TimeCurrent()) >= CloseHour)) return (0); if (CloseHour == 0) CloseHour = 24; if (Hour() == CloseHour - 1 && Minute() >= gi_344) return (0); if (DayOfWeek() == 0 && !AllowSunday) return (0); if (DayOfWeek() == 1 && !AllowMonday) return (0); if (DayOfWeek() == 2 && !AllowTuesday) return (0); if (DayOfWeek() == 3 && !AllowWednesday) return (0); if (DayOfWeek() == 4 && !AllowThursday) return (0); if (DayOfWeek() == 5 && !AllowFriday) return (0); if (DayOfWeek() == 6 && !AllowSaturday) return (0); return (1); } bool ExistPosition1() { bool li_ret_0 = FALSE; 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() == g_magic_260) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); } bool ExistPosition2() { bool li_ret_0 = FALSE; 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() == g_magic_264) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); } bool ExistPosition3() { bool li_ret_0 = FALSE; 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() == g_magic_268) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); } bool ExistPosition4() { bool li_ret_0 = FALSE; 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() == g_magic_272) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); } void onScreenComment(int ai_0) { string ls_4; string ls_unused_12; string ls_20; string ls_28; string ls_36; string l_dbl2str_44 = DoubleToStr(balanceDeviation(2), 2); string l_dbl2str_52 = DoubleToStr(balanceDeviation(1), 2); string l_dbl2str_60 = DoubleToStr(dollarCount(1), 2); string l_dbl2str_68 = DoubleToStr(dollarCount(2), 2); string ls_76 = "\n" + " " + ExpertName + " runtime statistics \n"; string ls_84 = "---------------------------------------\n"; string ls_unused_92 = "\n"; if (Minute() < 10) ls_20 = Hour() + ":0" + Minute(); else ls_20 = Hour() + ":" + Minute(); string ls_100 = "\n" + "----------------------------------------------------------------------------------------------------------------------\n" + " Dragonpips 081509 copyright © \n" + " http://www.dragonpips.com mail : support@dragonpips.com YM : dragon_pips\n" + " Earn 10% Affliate Commission from your link, go to our site for more information\n" + " " + "---------------------------------------------------------------------------------------------------------------------\n\n" + " Use Dragonpips for EUR/USD, GBP/USD, EURGBP, EURCHF on Time Frame M15\n"; string ls_108 = "Trading Account Name : " + AccountName() + "\n" + " Trading Account Number : " + AccountNumber() + "\n" + " Account Leverage : " + "1 : " + AccountLeverage() + "\n" + " Account Type : " + AccountServer() + "\n" + " Server Time : " + TimeToStr(TimeCurrent(), TIME_SECONDS) + "\n" + " Drawdown : " + l_dbl2str_44 + "%\n"; if (gi_688 == FALSE && gi_684 == FALSE) ls_4 = " "; switch (ai_0) { case 91: Comment(ExpertName + " is waiting for the next tick to begin."); return; case 98: Comment(ls_100 + ls_76 + ls_84 + ls_4 + ls_36 + ls_28 + ls_108); return; case 99: Comment(" "); return; return; } } void findMyOrders() { gd_848 = 0; gd_856 = 0; gd_864 = 0; gd_872 = 0; gd_692 = 0; gd_700 = 0; gd_708 = 0; gd_716 = 0; gd_724 = 0; gd_732 = 0; gd_740 = 0; gd_748 = 0; gd_756 = 0; gd_764 = 0; gd_772 = 0; gd_780 = 0; gd_788 = 0; gd_804 = 0; gd_796 = 0; gd_812 = 0; gd_880 = 0; gd_888 = 0; gd_896 = 0; gd_904 = 0; gd_912 = 0; gd_920 = 0; gd_928 = 0; gd_936 = 0; gd_944 = 0; gd_952 = 0; gd_960 = 0; gd_968 = 0; gd_976 = 0; gd_984 = 0; gd_992 = 0; gd_1000 = 0; for (int l_pos_0 = OrdersTotal() - 1; l_pos_0 >= 0; l_pos_0--) { OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { gd_692++; gd_848 += OrderProfit(); gd_856 += (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_BID)) / gd_164; gd_880 += OrderLots(); } if (Symbol() == Symbol() && OrderSymbol() == Symbol() && OrderType() == OP_BUY) { gd_708++; gd_896 += OrderLots(); gd_872 += OrderProfit(); } else { if (OrderType() == OP_SELL) { gd_700++; gd_848 += OrderProfit(); gd_856 += (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK)) / gd_164; gd_888 += OrderLots(); } } if (Symbol() == Symbol() && OrderSymbol() == Symbol() && OrderType() == OP_SELL) { gd_716++; gd_904 += OrderLots(); gd_864 += OrderProfit(); } else { if (OrderType() == OP_BUYSTOP) gd_724++; else { if (OrderType() == OP_SELLSTOP) gd_732++; else { if (OrderType() == OP_BUYLIMIT) gd_740++; else if (OrderType() == OP_SELLLIMIT) gd_748++; } } } } gd_756 = gd_724 + gd_740; gd_764 = gd_732 + gd_748; gd_804 = gd_756 + gd_764; gd_788 = gd_692 + gd_700; gd_772 = gd_724 + gd_740 + gd_692; gd_780 = gd_732 + gd_748 + gd_700; gd_812 = gd_788 + gd_804; gd_944 = gd_912 + gd_928; gd_952 = gd_920 + gd_936; gd_992 = gd_944 + gd_952; gd_960 = gd_912 + gd_928 + gd_880; gd_968 = gd_920 + gd_936 + gd_888; gd_1000 = gd_976 + gd_992; gd_976 = gd_880 + gd_888; gd_796 = gd_708 + gd_716; gd_984 = gd_896 + gd_904; g_lotsize_396 = MarketInfo(Symbol(), MODE_LOTSIZE); gd_1008 = AccountBalance() / g_lotsize_396; gd_1016 = AccountEquity() / g_lotsize_396; gd_1048 = gd_896; gd_1056 = gd_904; gd_1064 = gd_896 - gd_904; gd_1080 = gd_1048 / gd_1016; gd_1088 = gd_1056 / gd_1016; gd_1096 = (gd_1048 + gd_1056) / gd_1016; if (gd_896 - gd_904 > 0.0) gd_1072 = 100.0 * ((gd_896 - gd_904) / gd_1016); else if (gd_896 - gd_904 < 0.0) gd_1072 = 100.0 * ((-1.0 * (gd_896 - gd_904)) / gd_1016); gd_1104 = gd_872 + gd_864; gd_1112 = gd_1048 + gd_1056; gd_1120 = gd_976 / gd_1016; gd_1128 = gd_1016 / gd_1008; } double balanceDeviation(int ai_0) { double ld_ret_4; if (ai_0 == 2) { ld_ret_4 = (AccountEquity() / AccountBalance() - 1.0) / (-0.01); if (ld_ret_4 > 0.0) return (ld_ret_4); return (0); } if (ai_0 == 1) { ld_ret_4 = 100.0 * (AccountEquity() / AccountBalance() - 1.0); if (ld_ret_4 > 0.0) return (ld_ret_4); return (0); } return (0.0); } double dollarCount(int ai_0) { if (ai_0 == 1) { if (gd_848 > 0.0) return (gd_848); return (0); } if (ai_0 == 2) { if (gd_848 < 0.0) return (MathAbs(gd_848)); return (0); } return (0.0); }