extern int MagicNumber = 12345; extern double TradeLev = 0.0; extern double Lots = 0.1; extern int StopLoss = 800; extern int TakeProfit = 700; int gi_104 = 70; int gi_108 = 150; int gi_112 = 20; int gi_116 = -5; int gi_120 = 0; int gi_124 = 200; string gs_128 = " ========TIME SETTINGS========"; extern int EntryStartHour = 15; extern int EntryEndHour = 18; int gi_144 = 20; double gd_148 = -200.0; bool gi_156 = TRUE; double gd_160 = 0.0; double gd_168 = 0.0; int gi_176 = 0; int gi_180 = 0; void init() { gi_156 = 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_112; int li_4 = gi_116; int li_8 = gi_120; int li_12 = gi_124; string ls_16 = "Perfect Scalping Analyzer GMT-5(FXCM) Version"; string ls_24 = " "; string ls_32 = " "; string ls_40 = " "; string ls_48 = " "; if (IsTesting() && Year() < 2005) { Print(" Testing is not allowed before year 2005"); Comment("\n Testing is not allowed before year 2005"); return; } if (!IsTesting() && !IsDemo() && AccountNumber() != 81006551 && AccountName() != "Tsuyoshi Harada" && AccountName() != "Harada Tsuyoshi") { Comment("\n Trading Is Not Allowed!!! Wrong Account: " + AccountNumber()); return; } Comment("\n " + ls_16 + " \n " + ls_24 + " \n " + ls_32 + " \n " + ls_40 + " \n " + ls_48 + " "); if (Bars >= li_0) { if (AccountBalance() > 0.0) { if (gi_156) { gi_156 = FALSE; gd_160 = MarketInfo(Symbol(), MODE_MINLOT); gd_168 = MarketInfo(Symbol(), MODE_MAXLOT); gi_176 = AccountLeverage(); gi_180 = MarketInfo(Symbol(), MODE_LOTSIZE); } HideTestIndicators(TRUE); ld_56 = iBands(NULL, PERIOD_M15, li_0, 2, 0, PRICE_CLOSE, MODE_LOWER, 1); ld_64 = iBands(NULL, PERIOD_M15, 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_144 && Bid - OrderOpenPrice() > gd_148 * Point) || Bid >= ld_64 + li_4 * Point) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), gi_108, Violet); else li_84++; } else { if ((Hour() == gi_144 && OrderOpenPrice() - Ask > gd_148 * Point) || Bid <= ld_56 - li_4 * Point) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), gi_108, Violet); else li_88++; } } } } 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_168, MathMax(gd_160, Lots)); if (TradeLev > 0.0) ld_136 = MathMax(gd_160, MathMin(gd_168, NormalizeDouble(TradeLev / 100.0 * AccountFreeMargin() / gd_160 / (gi_180 / 100), 0) * gd_160)); ld_136 = MathMax(gd_160, MathMin(gd_168, NormalizeDouble(ld_136 / gd_160, 0) * gd_160)); if (li_96 >= OP_BUY) { li_80 = OrderSend(Symbol(), li_96, ld_136, ld_112, gi_104, 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()); } } } }