Model backtesting

← Back to model docs

Exit-rule sweep: does a stop-loss help?

A working trader's question: once a signal fires and you take the trade, when do you sell? Hold to a fixed horizon? Take any gain above X%? Cap the loss at -Y%? This page shows the answer for every (horizon, top-percentile) combination, derived from a brute-force sweep over every reasonable stop-loss rule on two years of v6 model picks (May 2024 to May 2026).

TL;DR: the optimum exit for every horizon and every percentile is just "hold to the horizon". Adding a stop-loss almost never beats it, and usually hurts. The reason is that "saves" on gap-down days fill at the open, well below the stop price, so the expected save is smaller than it looks and the foregone recoveries cost more than the saved drawdowns.

How to read the charts

Each cell shows the mean return when a stop-loss at the row's level (e.g. -5%) activates from the column's day onwards. The bar across the bottom of each chart is the baseline: no stop, just hold to the horizon. Cells are coloured on the same scale: yellow = better than baseline (rare), purple = worse. Win rates are printed under each mean.

Stops in the grid are "late" stops (activated after a breakpoint day). Earlier sweeps that also vary the early-period stops produced cleaner cells when restricted to the pure late-stop dimension, so that's what these charts show. The take-profit dimension was independent: it likewise didn't move the needle, so it's also collapsed out of these visualisations.

Pick a horizon

Click any chart to enlarge. Use ← → in the lightbox to flip between percentiles.
Top 10% heatmap
Top 10% (broadest filter)
Top 5% heatmap
Top 5%
Top 1% (tightest filter)
Top 1% (tightest filter)

Caveats

Sample sizes shrink with horizon and percentile. The 30-day top 10% sweep covers 3,404 trades after dedup; the 120-day top 1% sweep is just 136. Treat small-n combos as illustrative.

The window straddles the model's training cutoff. Roughly the first year is in-sample, the second is out-of-sample. The "hold-to-horizon" finding is robust across both halves (see per-half stats in the per-combo CSV).

Transaction tax is off. These charts are pre-tax / pre-commission. The Belgian 0.35% tax shaves roughly 70bps off each combo's mean and 2pp off each win rate; the relative shape of the heatmap is unchanged.