Percentage_Crossover_Channel_EA
This EA trades based on a percentage-based channel that dynamically adjusts to price movements. It enters buy positions when price crosses below the lower channel boundary and sell positions when price crosses above the upper channel boundary, aiming to capture mean reversion moves within the channel range.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Conversion problem |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Conversion problem |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Conversion problem |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Conversion problem |
Why this EA never traded: the entry waits for a crossing that cannot happen (for example a price-based indicator crossing zero).
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
- Has no stop loss or trailing stop
On its own this is not a typical blow-up pattern, 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 core strategy concept is a dynamically calculated percentage-based channel, where the upper and lower boundaries are constructed as a percentage offset from price, forming an envelope similar to Bollinger Bands. Entry conditions are: open a buy position when price crosses below the lower channel boundary, expecting mean reversion toward the channel center; open a sell position when price crosses above the upper channel boundary, expecting price to fall back. Exit conditions rely on the reversal of the crossover signal — positions are held until price crosses the opposite channel boundary. Position sizing uses a fixed lot parameter with no dynamic adjustment based on account equity or volatility. Money management lacks explicit maximum position limits and drawdown controls, relying on channel mean reversion assumptions without hard stop-loss protection. The strategy performs well in ranging markets but may suffer consecutive losses in strong trending conditions where price persistently deviates from the channel.
Strengths
- Percentage-based channel dynamically adapts to price changes, offering more flexibility than fixed ranges
- Simple and clear strategy logic with few parameters, easy to understand and optimize
- Mean reversion logic has statistical edge in ranging markets
Weaknesses
- Lacks hard stop-loss, which can cause severe losses in strong trending markets
- Fixed lot position sizing cannot adapt to market volatility changes
- No new bar check mechanism, potentially opening duplicate positions on the same bar
Possible improvements
- Add ATR-based dynamic stop-loss and take-profit mechanism to improve risk control
- Implement new bar detection logic to prevent duplicate signal entries on the same bar
Risk assessment
Overall risk: Medium
- No hard stop-loss protection, losses can expand indefinitely in strong trends
- No new bar check may cause duplicate position openings on the same bar, increasing risk exposure
- Fixed lot size ignores account equity changes, making leverage risk uncontrollable in extreme markets
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Channel_Percent | 0.5 | Channel percent offset for upper/lower band distance |
Lot_Size | 0.1 | Fixed lot size per trade |
Magic_Number | 12345 | EA magic number for order identification |
Timeframe | H1 | trading period |
Max_Spread | 30 | Maximum allowed spread |
Slippage | 3 | Maximum allowed slippage |
Similar Mean Reversion EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.