#property copyright "Copyright© 2009 FOREX Developers, LLC" #property link "http://www.forexshocker.com" #import "shocker.dll" int Activate(int a0, int a1); int GetState(int a0, int a1); double TradeFunction(int a0, int a1, double a2, double a3); double TradeFunction2(int a0, int a1, double a2, double a3, double a4); #import extern string Version = "1.0"; extern int VerificationCode = 0; extern string _A = "System Parameters"; extern bool IsFiveDigits = FALSE; extern bool MoneyManagement = FALSE; extern bool Aggressive = FALSE; extern bool SuperAggressive = FALSE; extern string _B = "If MM=false, Lots below will be used"; extern double Lots = 0.1; extern bool MicroLots = FALSE; extern string _C = "Platform Hours"; extern int StartTime = 22; extern int EndTime = 24; extern string _D = "NN Parameters"; extern double NN1 = 70.0; extern double NN2 = 64.0; extern double NN3 = 30.0; extern double NN4 = 36.0; extern double NN5 = 100.15; extern string _E = "Magic Numbers"; extern int magic1 = 100119; extern int magic2 = 1717170; double gd_212 = -150.0; double gd_220 = -120.0; double gd_228 = -150.0; double gd_236 = -120.0; double gd_244 = 150.0; double gd_252 = 120.0; double gd_260 = 150.0; double gd_268 = 120.0; double gd_unused_276 = 200.0; double gd_unused_284 = 10.0; int gi_292 = 1; int gi_unused_296 = 10; double g_lots_300; int gi_308 = 2; double gd_312 = 0.0001; double g_pips_320 = 4.0; double gd_unused_328 = 50.0; bool gi_336 = TRUE; bool gi_340 = TRUE; double gd_344 = 6.0; double gd_352 = 32.0; int g_slippage_360 = 3; int gi_364 = 32; int gi_368 = 15; bool gi_372 = TRUE; bool gi_376 = TRUE; bool gi_380 = TRUE; bool gi_384 = TRUE; bool gi_388 = TRUE; bool gi_392 = TRUE; int gi_404 = 0; int g_count_408 = 0; int g_count_412 = 0; int g_count_416 = 0; int g_count_420 = 0; int g_count_424 = 0; int g_count_428 = 0; int gi_432 = 0; int gi_436 = 0; int g_count_440 = 0; int g_count_444 = 0; int g_count_448 = 0; double gd_452 = 0.0; double g_price_460 = 0.0; int gi_468 = 0; int gi_unused_472 = 0; double gd_476 = 0.0; int gi_484 = 0; string gs_488; bool gi_unused_496 = FALSE; bool gi_unused_500 = FALSE; string gs_unused_504 = "Forex Shocker v1.0"; int gi_unused_512; int gi_516; int gi_520; int g_ticket_524; int g_ticket_528; int g_ticket_532; int g_ticket_536; int g_ticket_540; int g_ticket_544; int g_ticket_548; int g_ticket_552; int g_ticket_556; int g_ticket_560; int g_ticket_564; int g_ticket_568; double g_ifractals_572; double g_ifractals_580; double g_ifractals_588; double g_ifractals_596; double gd_unused_604; double gd_unused_612; double gd_unused_620; double gd_unused_628; int init() { return (0); } int deinit() { return (0); } void ScreenMsg() { string ls_0; string ls_unused_8; string ls_16; string ls_24; string ls_32; double ld_40 = 10000.0 * (Ask - Bid); int li_unused_48 = NormalizeDouble(ld_40, 0); string ls_52 = "\n"; string ls_60 = "--------------------\n"; string ls_unused_68 = "\n"; if (Minute() < 10) ls_16 = Hour() + ":0" + Minute(); else ls_16 = Hour() + ":" + Minute(); string ls_76 = "\n" + "\n" + " Forex Shocker v1.0 Copyright © 2009" + "\n"; string ls_84 = " Account Number: " + AccountNumber() + "\n" + " Server Time: " + TimeToStr(TimeCurrent(), TIME_SECONDS) + "\n" + " TIMEFRAME: M15\n" + " " + gs_488 + "\n"; Comment(ls_76 + ls_52 + ls_60 + ls_0 + ls_32 + ls_24 + ls_84); } int start() { double l_iwpr_120; double ld_128; double ld_136; double ld_144; double ld_152; double ld_160; double ld_168; double ld_176; double ld_184; double ld_192; double ld_200; gi_516 = Activate(AccountNumber(), VerificationCode); double l_irsi_0 = iRSI(NULL, PERIOD_M15, 6, PRICE_CLOSE, 0); double l_irsi_8 = iRSI(NULL, PERIOD_M1, 20, PRICE_CLOSE, 0); if (MicroLots == TRUE) gi_unused_512 = 2; else gi_unused_512 = 1; if (IsExpertEnabled() == FALSE) { Alert("Please allow expert advisors"); return (0); } if (IsTradeContextBusy()) { Print("Trade context is busy. Please wait"); return (0); } if (Period() != PERIOD_M15) { Alert("Please attach the EA to the M15 Timeframe"); return (0); } gi_520 = GetState(gi_516, AccountNumber()); if (gi_520 == 1) gs_488 = "Authenticated"; else if (gi_520 == 2) gs_488 = "Not Authenticated"; ScreenMsg(); HideTestIndicators(TRUE); gd_452 = gd_344; g_price_460 = 0; for (int li_16 = 1; li_16 < Bars; li_16++) { if (iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16) != 0.0) { g_ifractals_580 = iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16); gd_unused_612 = Time[li_16]; break; } } for (int li_20 = 1; li_20 < Bars; li_20++) { if (iFractals(NULL, PERIOD_M15, MODE_UPPER, li_20) != 0.0) { g_ifractals_572 = iFractals(NULL, PERIOD_M15, MODE_UPPER, li_20); gd_unused_604 = 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_596 = iFractals(NULL, PERIOD_H1, MODE_LOWER, li_24); gd_unused_620 = Time[li_16]; break; } } for (int li_28 = 1; li_28 < Bars; li_28++) { if (iFractals(NULL, PERIOD_H1, MODE_UPPER, li_28) != 0.0) { g_ifractals_588 = iFractals(NULL, PERIOD_H1, MODE_UPPER, li_28); gd_unused_628 = Time[li_28]; break; } } gi_468 = MathRound((g_ifractals_572 - g_ifractals_580) / gd_312); gi_unused_472 = MathRound((g_ifractals_588 - g_ifractals_596) / gd_312); gd_476 = 0; gd_476 = TradeFunction2(AccountNumber(), VerificationCode, g_ifractals_572, g_ifractals_572, g_ifractals_580); gi_484 = MathRound(iATR(Symbol(), PERIOD_M15, 4, 0) / gd_312); double l_ibands_32 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_UPPER, 1); double l_ibands_40 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_WEIGHTED, MODE_LOWER, 1); bool li_48 = FALSE; if (Close[0] <= g_ifractals_588 && Close[0] >= g_ifractals_596) li_48 = TRUE; double l_icci_52 = iCCI(Symbol(), PERIOD_M15, 14, PRICE_CLOSE, 0); double l_icci_60 = iCCI(Symbol(), PERIOD_M5, 42, PRICE_CLOSE, 0); double l_icci_68 = iCCI(Symbol(), PERIOD_M1, 210, PRICE_CLOSE, 0); double l_icci_76 = iCCI(Symbol(), PERIOD_M1, 80, PRICE_CLOSE, 0); g_count_408 = 0; g_count_412 = 0; g_count_416 = 0; g_count_420 = 0; g_count_424 = 0; g_count_428 = 0; gi_432 = 0; gi_436 = 0; g_count_440 = 0; g_count_444 = 0; g_count_448 = 0; for (int l_pos_84 = 0; l_pos_84 < OrdersTotal(); l_pos_84++) { OrderSelect(l_pos_84, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == magic1 || OrderMagicNumber() == magic2) { g_count_408++; if (OrderType() == OP_BUY) g_count_440++; if (OrderType() == OP_SELL) g_count_420++; } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == magic1) { g_count_412++; if (OrderType() == OP_BUY) g_count_444++; if (OrderType() == OP_SELL) g_count_424++; } else { if (OrderSymbol() == Symbol() && OrderMagicNumber() == magic2) { g_count_416++; if (OrderType() == OP_BUY) g_count_448++; if (OrderType() == OP_SELL) g_count_428++; } } } } double l_imomentum_88 = iMomentum(Symbol(), PERIOD_M5, 4, PRICE_CLOSE, 0); if (gi_336 == TRUE) { for (int l_pos_96 = 0; l_pos_96 < OrdersTotal(); l_pos_96++) { OrderSelect(l_pos_96, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { if (OrderMagicNumber() == magic1) { if (Bid >= OrderOpenPrice() + gd_344 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } } else { if (OrderMagicNumber() == magic2) { if (Bid >= OrderOpenPrice() + (gd_344 - 2.0) * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } } } } if (OrderType() == OP_SELL) { if (OrderMagicNumber() == magic1) { if (Ask <= OrderOpenPrice() - gd_344 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } } else { if (OrderMagicNumber() == magic2) { if (Ask <= OrderOpenPrice() - (gd_344 - 2.0) * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } } } } } } double l_ima_100 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_HIGH, 0); double l_ima_108 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_LOW, 0); for (int l_pos_116 = 0; l_pos_116 < OrdersTotal(); l_pos_116++) { OrderSelect(l_pos_116, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && OrderMagicNumber() == magic1 || OrderMagicNumber() == magic2) { if (TimeCurrent() - OrderOpenTime() > 3600 && TimeCurrent() - OrderOpenTime() < 8400 && Bid >= OrderOpenPrice() + 3.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 8400 && TimeCurrent() - OrderOpenTime() < 10200 && Bid >= OrderOpenPrice() + 2.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 10200 && TimeCurrent() - OrderOpenTime() < 12000 && Bid >= OrderOpenPrice() + 1.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 12000 && TimeCurrent() - OrderOpenTime() < 14400 && Bid >= OrderOpenPrice() - 1.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 14400 && Bid >= OrderOpenPrice() - 4.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (DayOfWeek() == 5 && Hour() >= 19) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_360, Orange); } if (OrderType() == OP_SELL && OrderMagicNumber() == magic1 || OrderMagicNumber() == magic2) { if (TimeCurrent() - OrderOpenTime() > 3600 && TimeCurrent() - OrderOpenTime() < 8400 && Ask <= OrderOpenPrice() - 3.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 8400 && TimeCurrent() - OrderOpenTime() < 10200 && Ask <= OrderOpenPrice() - 2.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 10200 && TimeCurrent() - OrderOpenTime() < 12000 && Ask <= OrderOpenPrice() - 1.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 12000 && TimeCurrent() - OrderOpenTime() < 14400 && Ask <= OrderOpenPrice() + 1.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } if (TimeCurrent() - OrderOpenTime() > 14400 && Ask <= OrderOpenPrice() + 4.0 * gd_312) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } if (DayOfWeek() == 5 && Hour() >= 19) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_360, Orange); } } } } if (iOpen(Symbol(), PERIOD_M5, 0) < Ask + 0.001) { if (iOpen(Symbol(), PERIOD_M5, 0) > Bid - 0.001) { if (iOpen(Symbol(), PERIOD_M5, 1) < Ask + 0.001) { if (iOpen(Symbol(), PERIOD_M5, 1) > Bid - 0.001) { if (iOpen(Symbol(), PERIOD_M5, 2) < Ask + 0.0012) { if (iOpen(Symbol(), PERIOD_M5, 2) > Bid - 0.0012) { l_iwpr_120 = iWPR(Symbol(), PERIOD_M5, 14, 0); if (IsFiveDigits == FALSE) { if (Ask - Bid > g_pips_320 * Point) { Print("Spread Protection System: Broker spread is too high"); return (0); } } gi_404 = NormalizeDouble(gi_308 / 2, 0); ld_128 = NormalizeDouble(iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_WEIGHTED, 1), 4); ld_136 = NormalizeDouble(iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_WEIGHTED, 1), 4); if (MoneyManagement == TRUE && Aggressive == FALSE && SuperAggressive == FALSE) gi_292 = 1; else { if (MoneyManagement == TRUE && Aggressive == TRUE && SuperAggressive == TRUE) gi_292 = 1; else { if (MoneyManagement == TRUE && Aggressive == TRUE && SuperAggressive == FALSE) gi_292 = 2; else if (MoneyManagement == TRUE && Aggressive == FALSE && SuperAggressive == TRUE) gi_292 = 3; } } if (AccountFreeMargin() >= 100.0 && AccountFreeMargin() <= 200.0) g_lots_300 = gi_292 / 100.0; else { if (AccountFreeMargin() > 200.0 && AccountFreeMargin() <= 300.0) g_lots_300 = gi_292 / 50.0; else { if (AccountFreeMargin() > 300.0 && AccountFreeMargin() <= 400.0) g_lots_300 = 0.03 * gi_292; else { if (AccountFreeMargin() > 400.0 && AccountFreeMargin() <= 500.0) g_lots_300 = 0.04 * gi_292; else { if (AccountFreeMargin() > 500.0 && AccountFreeMargin() <= 600.0) g_lots_300 = 0.05 * gi_292; else { if (AccountFreeMargin() > 600.0 && AccountFreeMargin() <= 700.0) g_lots_300 = 0.06 * gi_292; else { if (AccountFreeMargin() > 700.0 && AccountFreeMargin() <= 800.0) g_lots_300 = 0.07 * gi_292; else { if (AccountFreeMargin() > 800.0 && AccountFreeMargin() <= 900.0) g_lots_300 = 0.08 * gi_292; else { if (AccountFreeMargin() > 900.0 && AccountFreeMargin() < 980.0) g_lots_300 = 0.09 * gi_292; else { if (AccountFreeMargin() >= 980.0 && AccountFreeMargin() <= 1980.0) g_lots_300 = gi_292 / 10.0; else { if (AccountFreeMargin() > 1980.0 && AccountFreeMargin() <= 2980.0) g_lots_300 = 0.2 * gi_292; else { if (AccountFreeMargin() > 2980.0 && AccountFreeMargin() <= 3980.0) g_lots_300 = 0.3 * gi_292; else { if (AccountFreeMargin() > 3980.0 && AccountFreeMargin() <= 4980.0) g_lots_300 = gi_292 / 2.0; else { if (AccountFreeMargin() > 4980.0 && AccountFreeMargin() <= 5980.0) g_lots_300 = gi_292 / 2.0; else { if (AccountFreeMargin() > 5980.0 && AccountFreeMargin() <= 6980.0) g_lots_300 = 0.6 * gi_292; else { if (AccountFreeMargin() > 6980.0 && AccountFreeMargin() <= 7980.0) g_lots_300 = 0.7 * gi_292; else { if (AccountFreeMargin() > 7980.0 && AccountFreeMargin() <= 8980.0) g_lots_300 = 0.8 * gi_292; else { if (AccountFreeMargin() > 8980.0 && AccountFreeMargin() <= 9980.0) g_lots_300 = 0.9 * gi_292; else { if (AccountFreeMargin() > 9980.0 && AccountFreeMargin() < 100000.0 && MicroLots == TRUE) g_lots_300 = AccountFreeMargin() / 10000.0 * gi_292; else { if (AccountFreeMargin() > 9980.0 && AccountFreeMargin() < 999980.0 && MicroLots == FALSE) { ld_144 = AccountFreeMargin() / 1000.0; ld_152 = MathFloor(ld_144); g_lots_300 = ld_152 / 10.0 * gi_292; } else if (AccountFreeMargin() >= 999980.0 && AccountFreeMargin() < 1000000.0) g_lots_300 = NormalizeDouble(AccountFreeMargin() / 10000.0, 1) * gi_292; } } } } } } } } } } } } } } } } } } } if (TradeSession() == 1 && g_count_408 < gi_308 && li_48) { if (ExistPosition1() == 0) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_irsi_0 < NN3 || l_irsi_8 < NN4 && ld_128 >= Ask + 20.0 * gd_312) { if (g_count_444 < 1 && gi_372) { gd_452 = 0; g_price_460 = 0; ld_160 = TradeFunction(AccountNumber(), VerificationCode, gd_344, gd_312); ld_168 = TradeFunction(AccountNumber(), VerificationCode, gd_352, gd_312); if (gi_336 == FALSE) gd_452 = Ask + ld_160; g_price_460 = Ask - ld_168; if (MoneyManagement == TRUE) { g_ticket_524 = OrderSend(Symbol(), OP_BUY, g_lots_300, Ask, 0, 0, 0, "Forex Shocker v1.0", magic1, 0, Green); Print("Ticket= ", g_ticket_524); if (g_ticket_524 > 0) { OrderSelect(g_ticket_524, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_528 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, 0, 0, "Forex Shocker v1.0", magic1, 0, Green); Print("Ticket1= ", g_ticket_528); if (g_ticket_528 > 0) { OrderSelect(g_ticket_528, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_372 = FALSE; gi_376 = TRUE; } } if (l_irsi_0 > NN1 || l_irsi_8 > NN2 && ld_136 <= Bid - 20.0 * gd_312) { if (g_count_424 < 1 && gi_376) { gd_452 = 0; g_price_460 = 0; ld_176 = TradeFunction(AccountNumber(), VerificationCode, gd_344, gd_312); ld_184 = TradeFunction(AccountNumber(), VerificationCode, gd_352, gd_312); if (gi_336 == FALSE) gd_452 = Bid - ld_176; g_price_460 = Bid + ld_184; if (MoneyManagement == TRUE) { g_ticket_532 = OrderSend(Symbol(), OP_SELL, g_lots_300, Bid, 0, 0, 0, "Forex Shocker v1.0", magic1, 0, Red); Print("Ticket2= ", g_ticket_532); if (g_ticket_532 > 0) { OrderSelect(g_ticket_532, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_536 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, 0, "Forex Shocker v1.0", magic1, 0, Red); Print("Ticket3= ", g_ticket_536); if (g_ticket_536 > 0) { OrderSelect(g_ticket_536, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_376 = FALSE; gi_372 = TRUE; } } if (l_irsi_0 < 60.0 && l_irsi_0 > 40.0) { gi_376 = TRUE; gi_372 = TRUE; } } } if (TradeSession() == 1 && gi_468 < gi_364 && gi_484 < gi_368 && g_count_408 < gi_308 && li_48) { if (ExistPosition2() == 0) { if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_icci_60 <= gd_212 && l_icci_68 <= gd_220 || l_icci_52 <= gd_228 && l_icci_68 <= gd_236 && Bid <= gd_476 - 3.0 * gd_312) { if (g_count_448 < gi_404 && gi_380) { gd_452 = 0; g_price_460 = 0; ld_192 = TradeFunction(AccountNumber(), VerificationCode, gd_352, gd_312); if (gi_336) gd_452 = g_ifractals_572; g_price_460 = Ask - ld_192; if (MoneyManagement == TRUE) { g_ticket_540 = OrderSend(Symbol(), OP_BUY, g_lots_300, Ask, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Green); Print("Ticket4= ", g_ticket_540); if (g_ticket_540 > 0) { OrderSelect(g_ticket_540, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_544 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Green); Print("Ticket5= ", g_ticket_544); if (g_ticket_544 > 0) { OrderSelect(g_ticket_544, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_380 = FALSE; gi_384 = TRUE; } } if (l_icci_60 >= gd_244 && l_icci_68 >= gd_252 || l_icci_52 >= gd_260 && l_icci_68 >= gd_268 && Ask >= gd_476 + 3.0 * gd_312) { if (g_count_428 < gi_404 && gi_384) { gd_452 = 0; g_price_460 = 0; ld_200 = TradeFunction(AccountNumber(), VerificationCode, gd_352, gd_312); if (gi_336) gd_452 = g_ifractals_580; g_price_460 = Bid + ld_200; if (MoneyManagement == TRUE) { g_ticket_548 = OrderSend(Symbol(), OP_SELL, g_lots_300, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket6= ", g_ticket_548); if (g_ticket_548 > 0) { OrderSelect(g_ticket_548, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_552 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket7= ", g_ticket_552); if (g_ticket_552 > 0) { OrderSelect(g_ticket_552, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_384 = FALSE; gi_380 = TRUE; } } if (l_icci_52 < 50.0 && l_icci_52 > -50.0) { gi_384 = TRUE; gi_380 = TRUE; } } if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_imomentum_88 <= NN5 && l_icci_76 >= 200.0 && Ask >= gd_476 + 3.0 * gd_312) { if (gi_432 < gi_404 && gi_388) { gd_452 = 0; g_price_460 = 0; if (gi_336) gd_452 = g_ifractals_580; if (gi_340) g_price_460 = g_ifractals_572 + gd_352 * gd_312; else g_price_460 = Bid + gd_352 * gd_312; if (MoneyManagement == TRUE) { g_ticket_556 = OrderSend(Symbol(), OP_SELL, g_lots_300, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket8= ", g_ticket_556); if (g_ticket_556 > 0) { OrderSelect(g_ticket_556, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_560 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket9= ", g_ticket_560); if (g_ticket_560 > 0) { OrderSelect(g_ticket_560, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_388 = FALSE; } } if (l_icci_76 >= -50.0 && l_icci_76 <= 50.0) gi_388 = TRUE; if (DayOfWeek() == 0 || DayOfWeek() == 5 && Hour() >= 14) return (0); if (l_iwpr_120 >= -10.0 && l_ima_100 > l_ibands_32 && Bid >= gd_476 + 3.0 * gd_312) { if (gi_436 < gi_404 && gi_392) { gd_452 = 0; g_price_460 = 0; if (gi_336) gd_452 = g_ifractals_580; if (gi_340) g_price_460 = Bid + gi_364 * gd_312; else g_price_460 = Bid + gd_352 * gd_312; if (MoneyManagement == TRUE) { g_ticket_564 = OrderSend(Symbol(), OP_SELL, g_lots_300, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket10= ", g_ticket_564); if (g_ticket_564 > 0) { OrderSelect(g_ticket_564, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } else { g_ticket_568 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, 0, "Forex Shocker v1.0", magic2, 0, Red); Print("Ticket11= ", g_ticket_568); if (g_ticket_568 > 0) { OrderSelect(g_ticket_568, SELECT_BY_TICKET); OrderModify(OrderTicket(), OrderOpenPrice(), g_price_460, 0, 0, Green); } else Print("OrderSend Error ", GetLastError()); } gi_392 = FALSE; } } if (l_irsi_0 < 60.0 && l_irsi_0 > 40.0) gi_392 = TRUE; } } } } } } } return (0); } int TradeSession() { if (StartTime < EndTime && TimeHour(TimeCurrent()) < StartTime || TimeHour(TimeCurrent()) >= EndTime) return (0); if (StartTime > EndTime && (TimeHour(TimeCurrent()) < StartTime && TimeHour(TimeCurrent()) >= EndTime)) return (0); if (EndTime == 0) EndTime = 24; if (Hour() == EndTime - 1 && Minute() >= 55) return (0); return (1); } int 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() == magic1) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); } int 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() == magic2) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { li_ret_0 = TRUE; break; } } } } return (li_ret_0); }