EA-30304 · Breakout

RangeFollower

This EA monitors the daily price range relative to the ATR and enters a trade when the price moves beyond a configurable trigger percentage of the average daily range. It determines trade direction based on which side of the daily range is closer to the current price, using ATR-based values for stop loss and take profit. All open positions are automatically closed at the end of the trading day.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryBreakout
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM5, M15, M30, H1
IndicatorsATR
AuthorMokara

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.00%0.00%0.00%0—————Not convertible yet

Why this EA never traded: no entry rule survived the conversion.

Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.

Blow-up risk: No blow-up pattern found

None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.

High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →

Strategy analysis

The strategy concept is an intraday range breakout system based on ATR, entering trades when the daily price movement exceeds a configurable trigger percentage of the average daily ATR range. Entry conditions: a buy is triggered when the distance from the current bid to the daily low exceeds the ATR trigger threshold, and a sell is triggered when the distance from the daily high to the current ask exceeds the threshold. Exit conditions include a take profit set at the ATR remainder (atr_rest = total ATR range minus trigger), a stop loss set at the ATR trigger value, and a mandatory end-of-day close via the timer. Position sizing uses a fixed lot size input with basic validation against broker minimum/maximum/step constraints. Money management only checks if free margin exceeds 1000 times the lot size, lacking percentage-based risk control or maximum position limits. The risk-reward ratio is approximately (100-perTrigger)/perTrigger, which at the default 60% trigger yields a ratio of about 0.67, meaning the stop loss is larger than the take profit.

Strengths

  • Clear and concise strategy logic with ATR-based dynamic SL/TP that adapts to different instrument volatilities
  • End-of-day forced close mechanism avoids overnight risk and capital tie-up
  • Refuses entry when daily range threshold is already reached, avoiding chasing price at extremes

Weaknesses

  • Default parameters produce a risk-reward ratio below 1 (SL larger than TP), leading to negative long-term expectancy
  • Only one trade per day with no pyramiding logic, missing opportunities from sustained intraday trends
  • Lacks spread filter, slippage protection, and reconnection handling, risking abnormal orders in live trading
  • OnInit trigger validation alert says 20-90 but actual code checks 10-90, inconsistent error message

Possible improvements

  • Adjust SL/TP calculation to achieve a risk-reward ratio above 1, or allow independent user-configurable SL/TP percentages
  • Add spread filter and maximum slippage limit to avoid entering during high-spread periods
  • Add new bar detection to prevent duplicate triggers on the same bar, and fix the inconsistent error message in OnInit

Risk assessment

Overall risk: Medium

  • Stop loss larger than take profit, meaning single trade loss exceeds potential gain
  • No spread filter, high-volatility period spread widening can cause unfavorable entry prices
  • Timer-based close depends on local time; platform disconnection or restart may prevent timely position closure
  • Boolean flag trade_opened resets on EA restart, potentially causing duplicate daily entries

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management2.0
Robustness2.0
Innovation2.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
perTrigger60Trigger percentage (10%-90%), entry when intraday range reaches this ATR ratio
iLots0.1Fixed trading lot size

Similar Breakout EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.