Bands 2
This EA trades Bollinger Band mean reversion signals, entering buy positions when price touches the lower band and sell positions when price touches the upper band. It uses the middle band (moving average) as the take-profit target and the opposite band as a stop-loss reference. The strategy is a classic Bollinger Band bounce system suitable for ranging markets.
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 | -4.00% | -3.48% | 6.04% | 84 | 55.40% | -0.81 | -0.66 | 4 | −$4.90 | Reliable |
| GBPUSD | -4.76% | -4.15% | 6.50% | 84 | 57.80% | -0.69 | -0.73 | 3 | −$5.38 | Reliable |
| USDJPY | -1.16% | -1.01% | 7.06% | 85 | 58.30% | -0.14 | -0.16 | 7 | −$1.56 | Reliable |
| XAUUSD | +45.17% | +36.06% | 76.32% | 79 | 62.80% | 0.97 | 0.59 | 3 | +$54.75 | Reliable |
Profitable on 1 of 4 markets with reliable results.
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.
Against the other Mean Reversion EAs with a reliable result on the same market: EURUSD: better than 27% of 30 · GBPUSD: better than 22% of 32 · USDJPY: better than 41% of 32 · XAUUSD: better than 68% of 31
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 46% | +3.33% 2026-03 | -3.76% 2026-01 |
| GBPUSD | 46% | +2.37% 2026-05 | -2.58% 2026-01 |
| USDJPY | 46% | +2.85% 2026-05 | -3.79% 2026-01 |
| XAUUSD | 54% | +121.95% 2026-02 | -41.65% 2026-01 |
From the backtest equity curve, sampled about every two days; only reliable results.
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
This EA employs a Bollinger Band mean reversion strategy based on the concept that price oscillates between the upper and lower bands and tends to revert to the middle band (moving average). Entry conditions: buy when price touches or crosses below the lower band, sell when price touches or crosses above the upper band. Exit conditions: take profit when price returns to the middle band, or stop loss when price reaches the opposite band. Position sizing uses a fixed lot parameter without dynamic adjustment based on account equity or volatility. Money management lacks risk-based lot calculation, maximum position limits, or drawdown controls. The strategy can suffer consecutive losses in trending markets where price walks along the band instead of reverting to the mean. No spread filter or session filter is implemented, which could lead to entries during high-spread or low-liquidity periods.
Strengths
- Simple and clear strategy logic that is easy to understand and verify
- Bollinger Bands are a well-established technical indicator with statistical significance
- Performs well in ranging markets by capturing mean reversion profits
- Uses standard deviation for dynamic band width adaptation
- Straightforward entry and exit rules reduce ambiguity in signal generation
Weaknesses
- Sustained losses in strong trending markets as price walks the bands without reverting
- Lacks dynamic position sizing; fixed lots cannot adapt to varying market volatility
- No spread filter which may lead to unfavorable entries during high-spread periods
- No multi-timeframe confirmation increases risk of counter-trend entries
- Missing drawdown control or maximum loss limits could lead to significant account damage
Possible improvements
- Add multi-timeframe confirmation to avoid counter-trend entries against the primary trend direction
- Implement dynamic position sizing based on ATR or account risk percentage
- Add spread filter and trading session restrictions to avoid unfavorable execution conditions
Risk assessment
Overall risk: Medium
- No trend filter leading to potential consecutive counter-trend entries during trending markets
- No maximum drawdown limit or account risk control mechanism
- Fixed lot size does not account for account equity changes or volatility
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Bands_Period | 20 | Bollinger Bands period parameter |
Bands_Shift | 0 | Bollinger Bands offset |
Bands_Deviation | 2 | Bollinger Bands standard deviation multiplier |
LotSize | 0.1 | Fixed trading lot size |
StopLoss | 0 | Stop loss in points, 0 to disable |
TakeProfit | 0 | Take profit in points, 0 to disable |
Similar Mean Reversion EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.