Skip to content
A pale moon and twinkling stars above a teal chart curve dipping into a valley; an orange arrow bounces off the support line and ascends.A pale moon and twinkling stars above a teal chart curve dipping into a valley; an orange arrow bounces off the support line and ascends.A pale moon and twinkling stars above a teal chart curve dipping into a valley; an orange arrow bounces off the support line and ascends.A pale moon and twinkling stars above a teal chart curve dipping into a valley; an orange arrow bounces off the support line and ascends.
RetiredNMR

Overnight Mean Reversion

NMR · 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

Pending validation

A scaled equity curve appears here once this strategy clears the data needed to compute one honestly. We don't show a curve we can't stand behind.

See what the gates require →
0.66Profit factor
-0.48Sharpe
-4.3%Max drawdown
29.6%Win rate
71Trades
Not runGates passed
Not runPlacebo

How it works

  1. The bet

    What market behavior this strategy is wagering on.

    It wagers that during the quiet overnight session, when volatility and trend are low, price stretched outside its Bollinger bands is an overreaction that snaps back toward the band center rather than continuing to run.

  2. How it decides

    What makes it enter, size, and exit a position.

    During the 3-hour night window it waits for price to reject a Bollinger band in a low-volatility, low-trend regime, enters a fixed 0.25%-risk reversion trade, targets the band center, and stops out at 1.40 times ATR.

  3. How it can break

    The regimes and failure modes that turn the edge negative.

    The edge turns negative whenever the night-window stretch keeps running instead of reverting: price reaches the center target only 21% of the time and stops out 66%, so the 29.6% win rate falls far below the 39.1% needed to break even.

Explainer compiled 2026-06-28 · opus-4.8

Market context

Live chart

Context only · not backtest evidence

Chart powered by TradingView. Live prices can differ from the point-in-time dataset used in the published test.

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

Metric Value
Profit factor 0.655
Win rate 29.6%
Net P&L −$181 (−3.62%)
Trades (8.5y, 4 pairs) 71 (8.4/yr)
Reverts to target 21% (15/71)
Stops out 66% (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

Segment n PF Win% Net $ Positive?
Dev 2018–2021 33 0.98 36.4 −4.01
Validation 2022–2023 13 0.42 23.1 −60.61
Locked OOS 2024–Jun 2026 25 0.47 24.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: Independent research screen — the full 11-gate battery was not run; data and execution limits are stated in the report. Full reproducible report: backtests/nightmr/REPORT.md in the source repository.Author: Validated Research Team (Methodology v1.0 — 11-gate validation). Backtests are not investment advice.