Skip to content
TradingTune
Validation that rolls forward Advanced

Walk-forward analysis

A single out-of-sample test is one coin flip. Walk-forward analysis runs the optimize-then-test cycle many times across rolling windows, so a strategy has to keep proving itself on fresh data. It is the closest a backtest gets to simulating how you would actually trade and re-tune over time.

Why a single split is not enough

A 70/30 in-sample / out-of-sample split is a real test, but it judges the strategy on exactly one stretch of future. Pass it and you have one piece of evidence; fail it and you might just have caught one bad regime. Walk-forward turns that single test into many: it slides the whole optimize-then-test process forward through history, so the strategy is validated on window after window of data it never optimized on.

Each fold optimizes on a training window, then tests on the period right after it, then the whole pair rolls forward and repeats.

How walk-forward works

Split the history into a sequence of folds. In each fold you optimize on a training window, then test the resulting settings on the test window that immediately follows, then move both windows forward and repeat. You stitch the test segments together into one continuous out-of-sample equity curve. That stitched curve, built entirely from data the optimizer never saw at the time, is the honest estimate of how the strategy would have performed.

A walk-forward fold schedule (YAML)

YAML

Rolling windows: each fold optimizes on its train window, tests on the next test window, then slides forward by the test length.

window:
  train_months: 18      # optimize on this much history
  test_months: 6        # then test on the next slice, unseen
  roll_months: 6        # slide both windows forward by this much
folds:
  - { train: 2019-01..2020-06, test: 2020-07..2020-12 }
  - { train: 2019-07..2020-12, test: 2021-01..2021-06 }
  - { train: 2020-01..2021-06, test: 2021-07..2021-12 }
stitch: concatenate test segments into one OOS curve

Anchored versus rolling windows

There are two flavours. A rolling window keeps the training length fixed and slides it forward, so the strategy always tunes on the most recent N months and adapts to changing regimes. An anchored window keeps the training start fixed and lets it grow, so the strategy tunes on all history to date. Rolling adapts faster and is better for markets that change character; anchored is more stable and uses more data. Try both and see which the strategy prefers.

  • Rolling: fixed-length training window, slides forward, adapts to regime change.
  • Anchored: fixed start, growing training window, more data and more stability.

Reading walk-forward efficiency

Compare the stitched out-of-sample performance to the in-sample performance the optimizer found in each fold. If out-of-sample is a reasonable fraction of in-sample, the strategy generalises and you can believe it. If out-of-sample collapses to near zero while in-sample looked great, the optimizer is fitting noise every fold and the edge is imaginary. A few weak folds among many strong ones is normal; consistent out-of-sample failure is the verdict to act on.

Warning

Too few folds, overlapping windows

Two or three folds is not a walk-forward, it is a couple of splits. And if your windows overlap heavily, the tests are not independent. Use enough non-overlapping folds that the result is more than chance.

Key takeaways

  • Walk-forward repeats optimize-then-test across many rolling windows.
  • Stitch the test segments into one honest out-of-sample curve.
  • Rolling windows adapt to regime change; anchored ones use more data.
  • Consistent out-of-sample collapse means the edge is overfit.

Frequently asked questions

What is walk-forward analysis?

A validation method that repeatedly optimizes on a training window then tests on the period immediately after, rolling both windows forward through history and stitching the test segments into one continuous out-of-sample curve.

What is the difference between anchored and rolling walk-forward?

A rolling window keeps the training length fixed and slides it forward, adapting to regime change. An anchored window keeps the start fixed and lets training grow, using more data and staying more stable.

How many folds does a walk-forward need?

Enough non-overlapping folds that the stitched result is more than chance, typically at least five or six. Two or three folds is really just a couple of out-of-sample splits, and heavily overlapping windows are not independent tests.

Share this guide
X LinkedIn Email

All guides

Put it into practice

Install TradingTune and optimize any TradingView strategy right in your browser. Free tier, no API keys. A free account is required to run.

Add to Chrome, it's free