extern int MagicNumber = 23456; int gi_80 = PERIOD_M15; extern double TradeLev = 0.0; extern double Lots = 0.1; extern int StopLoss = 650; extern int TakeProfit = 650; int gi_108 = 70; int gi_112 = 150; int gi_116 = 17; int gi_120 = 0; int gi_124 = -30; int gi_128 = 100; int gi_132 = 10000; string gs_136 = " ========TIME SETTINGS========"; extern int EntryStartHour = 16; extern int EntryEndHour = 19; int gi_152 = 21; double gd_156 = 100.0; int gi_164 = 15; bool gi_168 = TRUE; double gd_172 = 0.0; double gd_180 = 0.0; int gi_188 = 0; int gi_192 = 0; void init() { gi_168 = TRUE; } void start() { double ld_56; double ld_64; double ld_72; int li_80; int li_84; int li_88; int li_96; string ls_100; color li_108; double ld_112; double ld_120; double ld_128; double ld_136; int li_0 = gi_116; int li_4 = gi_120; int li_8 = gi_124; int li_12 = gi_128; string ls_16 = "Perfect Scalping Analyzer GMT-5(FXCM) Version"; string ls_24 = " "; string ls_32 = " "; string ls_40 = " "; string ls_48 = " "; if (!IsTesting() && !IsDemo() && AccountNumber() != 81006551 && AccountName() != "Tsuyoshi Harada" && AccountName() != "Harada Tsuyoshi") { Comment("\n Trading Is Not Allowed!!! Wrong Account: " + AccountNumber()); return; } if (DayOfWeek() == 5 && Hour() > gi_164) return; if (Bars >= li_0) { if (AccountBalance() > 0.0) { if (gi_168) { gi_168 = FALSE; gd_172 = MarketInfo(Symbol(), MODE_MINLOT); gd_180 = MarketInfo(Symbol(), MODE_MAXLOT); gi_188 = AccountLeverage(); gi_192 = MarketInfo(Symbol(), MODE_LOTSIZE); } HideTestIndicators(TRUE); ld_56 = iBands(NULL, gi_80, li_0, 2, 0, PRICE_CLOSE, MODE_LOWER, 1); ld_64 = iBands(NULL, gi_80, li_0, 2, 0, PRICE_CLOSE, MODE_UPPER, 1); HideTestIndicators(FALSE); ld_72 = ld_64 - ld_56; li_84 = 0; li_88 = 0; for (int li_92 = OrdersTotal() - 1; li_92 >= 0; li_92--) { if (!OrderSelect(li_92, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", li_92); else { if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { RefreshRates(); if (OrderType() == OP_BUY) { if ((Hour() == gi_152 && Bid - OrderOpenPrice() > gd_156 * Point) || Bid >= ld_64 + li_4 * Point) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), gi_112, Violet); else li_84++; } else { if ((Hour() == gi_152 && OrderOpenPrice() - Ask > gd_156 * Point) || Bid <= ld_56 - li_4 * Point) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), gi_112, Violet); else li_88++; } } } } if (MathAbs(iClose(NULL, PERIOD_D1, 1) - iOpen(NULL, PERIOD_D1, 0)) <= gi_132 * Point) { li_96 = -1; if ((EntryStartHour <= EntryEndHour && TimeHour(TimeCurrent()) >= EntryStartHour && TimeHour(TimeCurrent()) <= EntryEndHour) || (EntryStartHour > EntryEndHour && TimeHour(TimeCurrent()) >= EntryStartHour || TimeHour(TimeCurrent()) <= EntryEndHour) && li_84 < 1 && Bid < ld_56 - li_8 * Point && ld_72 >= li_12 * Point) { ls_100 = "BUY"; li_96 = 0; li_108 = Blue; RefreshRates(); ld_112 = NormalizeDouble(Ask, Digits); ld_120 = NormalizeDouble(Bid - StopLoss * Point, Digits); ld_128 = NormalizeDouble(Ask + TakeProfit * Point, Digits); } if ((EntryStartHour <= EntryEndHour && TimeHour(TimeCurrent()) >= EntryStartHour && TimeHour(TimeCurrent()) <= EntryEndHour) || (EntryStartHour > EntryEndHour && TimeHour(TimeCurrent()) >= EntryStartHour || TimeHour(TimeCurrent()) <= EntryEndHour) && li_88 < 1 && Bid > ld_64 + li_8 * Point && ld_72 >= li_12 * Point) { ls_100 = "SELL"; li_96 = 1; li_108 = Red; RefreshRates(); ld_112 = NormalizeDouble(Bid, Digits); ld_120 = NormalizeDouble(Ask + StopLoss * Point, Digits); ld_128 = NormalizeDouble(Bid - TakeProfit * Point, Digits); } ld_136 = MathMin(gd_180, MathMax(gd_172, Lots)); if (TradeLev > 0.0) ld_136 = MathMax(gd_172, MathMin(gd_180, NormalizeDouble(TradeLev / 100.0 * AccountFreeMargin() / gd_172 / (gi_192 / 100), 0) * gd_172)); ld_136 = MathMax(gd_172, MathMin(gd_180, NormalizeDouble(ld_136 / gd_172, 0) * gd_172)); if (AccountFreeMargin() < Ask * ld_136 * gi_192 / gi_188 && Symbol() != "EURJPY" && Symbol() != "USDJPY" && Symbol() != "GBPJPY") { Print("We have no money. Lots = ", ld_136, " , Free Margin = ", AccountFreeMargin()); Comment("We have no money. Lots = ", ld_136, " , Free Margin = ", AccountFreeMargin()); } else { if (li_96 >= OP_BUY && IsTradeAllowed()) { li_80 = OrderSend(Symbol(), li_96, ld_136, ld_112, gi_108, ld_120, ld_128, "Perfect Scalping Analyzer", MagicNumber, 0, li_108); Sleep(5000); if (li_80 > 0) { if (OrderSelect(li_80, SELECT_BY_TICKET, MODE_TRADES)) Print("Order " + ls_100 + " opened!: ", OrderOpenPrice()); } else Print("Error opening " + ls_100 + " order!: ", GetLastError()); } } } } } }