//-------------------------------------------------------------------- // // Backtested on EURUSD / H1, 2003.05.05 - 2023.07.26 // Backtest engine: MetaTrader4 //-------------------------------------------------------------------- //-------------------------------------------------------------------- // Strategy Parameters //-------------------------------------------------------------------- int MagicNumber = 11111; int ROCPeriod1 = 60; double PriceEntryMult1 = 0.4; double ProfitTarget1 = 8; double StopLoss1 = 50; double TrailingStopCoef1 = 2.1; int BBWidthRatioPeriod1 = 131; Main chart = Current Symbol / Current TF; //-------------------------------------------------------------------- // Trading options logic //-------------------------------------------------------------------- Don't Trade On Weekends = false (Friday 0038 - Sunday 0038); Exit at End Of Day = false (2304); Exit On Friday = true (2040); LimitSignalsTimeRange = false (0800 - 1600, Exit at End: false, Orders to close: All); LimitMaxDistanceFromMarketPrice = false; //Limit max distance MaxDistanceFromMarketPct = 6; //Max distance % MaxTradesPerDay = 0; Min SL: 0, Max SL: 0, Min PT: 0, Max PT: 0; // in ticks/pips, 0 means unlimited //-------------------------------------------------------------------- // Trading rule: Trading signals (On Bar Open) //-------------------------------------------------------------------- LongEntrySignal = ROC(Main chart,ROCPeriod1)[3] is rising; ShortEntrySignal = ROC(Main chart,ROCPeriod1)[3] is falling; LongExitSignal = false; ShortExitSignal = false; //-------------------------------------------------------------------- // Trading rule: Long entry (On Bar Open) //-------------------------------------------------------------------- if LongEntrySignal { // Action #1 Open Long order at (HeikenAshiHigh(Main chart)[2] + (PriceEntryMult1 * BB Width Ratio(Main chart,BBWidthRatioPeriod1, 2.4, PRICE_TYPICAL)[2])) Stop; Order valid for 159 bars; Duplicate trades: disabled; Replacing pending orders: allowed; Stop Loss = StopLoss1 pips; Profit target = ProfitTarget1 %; Trailing Stop = TrailingStopCoef1 * ATR(85); } //-------------------------------------------------------------------- // Trading rule: Short entry (On Bar Open) //-------------------------------------------------------------------- if (ShortEntrySignal and Not LongEntrySignal) { // Action #1 Open Short order at (HeikenAshiLow(Main chart)[2] - (PriceEntryMult1 * BB Width Ratio(Main chart,BBWidthRatioPeriod1, 2.4, PRICE_TYPICAL)[2])) Stop; Order valid for 159 bars; Duplicate trades: disabled; Replacing pending orders: allowed; Stop Loss = StopLoss1 pips; Profit target = ProfitTarget1 %; Trailing Stop = TrailingStopCoef1 * ATR(85); } //-------------------------------------------------------------------- // Trading rule: Long exit (On Bar Open) //-------------------------------------------------------------------- if ((LongExitSignal and Not LongEntrySignal) and (MarketPosition("Any", MagicNumber, "") is Long)) { // Action #1 Close all positions for Symbol = Any and Magic Number = MagicNumber; } //-------------------------------------------------------------------- // Trading rule: Short exit (On Bar Open) //-------------------------------------------------------------------- if ((ShortExitSignal and Not ShortEntrySignal) and (MarketPosition("Any", MagicNumber, "") is Short)) { // Action #1 Close all positions for Symbol = Any and Magic Number = MagicNumber; }