I backtested the DAX overnight-range break over 4 years — here’s what it actually did

July 31, 2026 · 9 min read

We ran the overnight-range break on the DAX future over four years — 5,069 trades across 987 trading days. It finished +2,321 index points, which sounds like a working strategy and isn't. The entire edge is 0.46 points per trade, the FDAX minimum tick is 1.0 point, and resampling the trades gives a 22% chance of finishing four years in the red. Here are the actual numbers.

What was tested

The rule is deliberately plain, because the point is to measure a common setup rather than to find a good one. Every parameter is stated so the run is reproducible:

  • Instrument: FDAX (DAX index future, €25 per index point, 1.0 point minimum tick).
  • Period: 31 July 2022 – 31 July 2026. Four years, 987 trading days.
  • Entry: break of the overnight range, both directions, filled at the range level.
  • Stop: fixed 25 points. Target: fixed 50 points — a 2:1 reward:risk.
  • Session: entries allowed within 150 minutes (2h30m) of the session start. No one-trade-per-day limit and no cap on trades per session, so the strategy re-enters on every qualifying break.

That last setting matters more than it looks: 5,069 trades over 987 days is 5.1 trades per day. Every one of them pays the spread.

How the engine executed these trades

Reported verbatim from the run's execution assumptions, because a backtest you can't interrogate is just a chart:

  • 1-minute resolution — signals on the reference timeframe, execution replayed on 1-minute bars.
  • Intrabar stop-versus-target: the stop fills first. When one bar's range touches both the stop and the target, bar data cannot say which came first. The engine resolves it against the trade — the conservative choice, and the opposite of the default that quietly turns losers into winners.
  • A gap through a level fills at the bar open, not the level. If price jumps past the entry or the stop, the fill is the open — the worse, realistic price — rather than the level that was asked for.
  • Slippage and commission: zero. Nothing is deducted. Every figure in this post is gross, which is exactly why the cost section below exists.

Two of those four choices are deliberately pessimistic, which matters for how you read what follows: this is not a result inflated by a friendly fill engine. The one thing it does not model is costs — and costs are what decide it.

The raw result

MetricValue
Trades5,069 (1,726 W / 3,343 L)
Win rate34.1%
Net points+2,321 (+2 per day)
Profit factor1.03
Expectancy+0.02R, or +0.46 points per trade
Average win+1.99R
Average loss−1.00R
Max drawdown−2,576 points (111% of net gain)
Max losing streak19
Max winning streak8
A real backtest run, not an illustration: FDAX, 31 Jul 2022 – 31 Jul 2026, parameters as listed above. Figures are in DAX index points and are gross — see the costs section below.

Year by year, the four years were not remotely alike. 2022 and 2026 are partial (the window starts in August 2022 and ends in July 2026):

YearNet points
2022 (Aug–Dec)−29
2023+1,257
2024+1,821
2025−351
2026 (Jan–Jul)−377
Same run, monthly returns aggregated by year. The whole result was earned in 2023–24; the most recent 19 months lost money.

The equity curve says the same thing more bluntly. It peaked around +3,400 points in March 2025 and has ground downward ever since. Whatever the strategy was doing in 2023 and 2024, it has not been doing since.

The edge, in one number

With an average win of 1.99R, the win rate at which this strategy exactly breaks even is 1/(1+1.99) = 33.4%. It achieved 34.1%. The entire edge is 0.6 percentage points of win rate — or, in points, 2,321 ÷ 5,069 = 0.46 points per trade.

A 0.46-point average edge on an instrument whose minimum tick is 1.0 point means the strategy earns less than half a tick per round turn. Everything below follows from that one fact.

Costs erase it

At €25 per point, that 0.46-point edge is €11.45 per round turn, gross. One tick of slippage costs €25. Commission is on top. The table below holds the gross result constant and varies only the cost assumption across the 5,069 round turns the strategy actually took:

Cost per round turnTotal costNet result
€0 (as backtested)€0+€58,025
€5 (commission only)−€25,345+€32,680
€30 (commission + 1 tick)−€152,070−€94,045
€55 (commission + 2 ticks)−€278,795−€220,770
The +€58,025 is the run's +2,321 points at €25/point. The cost rows are arithmetic applied to that gross figure across 5,069 round turns, not separate backtests. Break-even sits at €11.45 per round turn — under half of one tick.

A strategy taking one trade a week could absorb a tick. This one takes five a day. Cost scales with trade frequency, not with edge, which is why the same rule with a one-trade-per-day limit is a genuinely different proposition from this one.

It also isn't statistically significant

Set costs aside entirely and the result still doesn't clear the bar. Bootstrapping the trade list — resampling the same 5,069 trades with replacement, 500 times — puts the probability of finishing four years at a net loss at 22%. Better than one in five resampled histories of this exact strategy ends negative.

The arithmetic agrees. Deriving the per-trade standard deviation from the reported distribution gives roughly 35 points against a 0.46-point mean, so the signal-to-noise ratio is about 0.013 and the t-statistic across all 5,069 trades is under 1.0. Reaching the conventional t = 2 would take on the order of 24,000 trades — at 5.1 trades a day, about eighteen years. Four years was never going to settle this question, and neither would eight.

This is the practical meaning of sample size: 5,069 trades sounds like plenty and isn't, because the edge is tiny relative to the noise around it. Trade count alone never answers the question — trade count relative to signal-to-noise does.

The tell was in the losing trades

The run's excursion data shows why the fill assumption carries the whole result. 17.1% of winning trades had a maximum adverse excursion of at least 80% of their stop distance — one in six winners spent time within a whisker of being stopped out. Average adverse excursion was 11.4 points on winners and 30.5 points on losers, against a 25-point stop.

Now recall that the edge is 0.6 percentage points of win rate. Flipping just 1 in 55 winners into a loser is enough to reach break-even. And on every trade that didn't gap, this backtest filled at the range level with no slippage deducted — on an instrument whose smallest possible price change is more than twice the average per-trade edge.

The drawdown you'd have had to sit through

Max drawdown was 2,576 points — 111% of the entire four-year net gain, or €64,400 to earn €58,025 gross. And that was the good case: the bootstrap puts the realised drawdown at only the 26th percentile, meaning three-quarters of resampled paths were worse. The 95th percentile drawdown is 4,614 points, or €115,350.

What this does not say

Being clear about the limits, since the whole point is not to overclaim:

  • This is one parameter set on one instrument over one window. A 25/50-point stop and target on FDAX is not the only way to trade an overnight-range break, and the window excludes 2020 entirely — no COVID-scale volatility shock appears anywhere in it.
  • It says nothing about opening-range breaks, which are a different setup on a different reference range.
  • A negative result on 5,069 trades is not proof of no edge — it's the absence of a detectable one. Given t < 1, that distinction is the honest way to state it.
  • The reported points are gross. Adding costs is the reader's job and we've shown the arithmetic rather than burying it.

The conclusion

The DAX overnight-range break, traded mechanically at 25/50 points with unrestricted re-entries, produced a four-year gross profit that a single tick of slippage would have erased — and which the trade data cannot distinguish from luck in the first place. It is not a strategy with a small edge. It is a strategy whose measured edge is smaller than the instrument's minimum price increment.

That's a more useful finding than a winning curve would have been, and it's the reason to run these tests before trading rather than after. For the biases that make results like this look better than they are, see why your backtest lies; for why a profit factor of 1.03 is more believable than a 3.0 would have been, what a realistic profit factor looks like. Definitions for the statistics used here are in the glossary.