Skip to content
Retired

NightMeanRevert EA

Bollinger-band night session mean-reversion

A disciplined, well-built clean-room EA with no edge. Fails 4 of 6 acceptance gates and misses the ≥200-trade prerequisite by ~8×. Price reverts to the band-center target only 21% of the time and stops out 66% — the mean-reversion thesis simply does not hold in the night window.

Category
Mean-reversion
Window
2018–2026 (8.5y)
Instruments
EURUSD, GBPUSD, USDJPY, AUDUSD
Timeframe
M5 (night session)
Tested
2026-06-20
0.66Profit factor
-0.48Sharpe
-4.3%Max drawdown
29.6%Win rate
71Trades

The story in one line

A clean-room, 985-line MQL5 night-session mean-reversion EA — Bollinger-band rejection in low-vol, low-trend regimes, with genuinely well-built risk controls — loses money on real 2018–2026 Dukascopy M5 data: net −$181 (−3.62%), profit factor 0.655, Sharpe −0.48, win rate 29.6% across 71 trades. It is net-negative in every out-of-sample segment, and every single parameter perturbation tested is break-even at best. This is not a cost problem or a tuning problem — the mean-reversion edge is absent in the data.

This is the opposite failure mode of the basket-grid bots that over-traded into ruin: NightMeanRevert is so selective it produces only ~8 trades/year across 4 pairs, and the few it takes lose. The 4th archetype to fail — and the most disciplined of them.

Headline result

MetricValue
Profit factor0.655
Win rate29.6%
Net P&L−$181 (−3.62%)
Trades (8.5y, 4 pairs)71 (8.4/yr)
Reverts to target21% (15/71)
Stops out66% (47/71)

The realised reward:risk is a healthy 1.56, but a 29.6% win rate needs to be ≥39.1% to break even. It isn’t. Price reaches the BB-center target only 21% of the time and hits the 1.40-ATR stop 66% of the time — the mean-reversion thesis does not hold within the 3-hour night window.

Per-segment performance

SegmentnPFWin%Net $Positive?
Dev 2018–2021330.9836.4−4.01
Validation 2022–2023130.4223.1−60.61
Locked OOS 2024–Jun 2026250.4724.0−116.50

Every segment is negative. The dev period is the “least bad” (a statistical zero on n=33), and performance degrades out-of-sample — the opposite of a robust edge. The README required ≥200 OOS trades; the locked OOS produced 25, an 8× miss, leaving the strategy statistically un-validatable.

No profitable island

A one-at-a-time parameter sweep finds no profitable neighbourhood. The best result anywhere in the grid is short_rsi_min=75 at PF 1.001 (dead flat, no net trades) and bands_period=15 at PF 0.984 — the least-bad perturbations are break-even at best, and they straddle a negative default rather than sitting on a robust plateau. Every other cell lands at PF 0.25–0.72. Loosening filters to get more trades (long_rsi_max=45 → n=181) makes it worse (−7.49%). DST/server-clock offsets (−1h / default / +1h) all lose (−$407 / −$181 / −$151). The “tunings” that nudge PF toward 1.0 do so by removing losing trades until nothing is left — converging to no-trade, not to a profitable system. This is the signature of no edge, not overfitting.

Verdict: REJECT (PF 0.655). Do not deploy. NightMeanRevert is the most disciplined of the failed retail EAs — the clean-room engineering is sound and the risk controls are genuinely well-built — but the signal those controls gate has no demonstrable edge on real data. A backtest that loses before any live frictions (real night spreads, swap, tick-fill slippage) are added will only lose more with them.

Charts & evidence

Portfolio equity curve, four pairs
Net −$181 (−3.6%) over 8.5 years across four pairs — 71 trades total.
Portfolio drawdown
Max drawdown 4.28% — a vacuous pass: it can only stay shallow because the EA trades ~8×/year at 0.25% risk.
Per-pair equity curves
EURUSD+GBPUSD is a statistical zero (PF 1.02); USDJPY and AUDUSD are pure loss centres.

Frequently asked

Does Bollinger-band night mean-reversion work in forex?

Not in this clean-room test. A Bollinger-band night-session mean-reversion EA backtested on real 2018–2026 M5 data returned a profit factor of 0.655 and was net-negative in every out-of-sample segment. Price reverted to the band-center target only 21% of the time while stopping out 66% of the time; a 29.6% win rate needs to be at least 39.1% just to break even.

Could parameter tuning rescue the night mean-reversion EA?

No. Every one-at-a-time parameter perturbation was break-even at best (the least-bad reached PF 1.001 with no trades), and loosening filters to get more trades made it worse. There is no profitable parameter island — the signature of no edge rather than overfitting. It also failed the ≥200-OOS-trade prerequisite by about 8×, producing only ~8 trades per year across four pairs.

Methodology: The Validation Gauntlet — pre-registered spec, 11-gate battery, real market data. Full reproducible report: backtests/nightmr/REPORT.md in the source repository. Author: Brent Akamine (Founder, Vinovest). Backtests are not investment advice.