Walk-Forward Tool

Walk-Forward Visualizer

Paste or upload a returns series, set a window length and step, pick rolling or anchored, and see in-sample vs out-of-sample Sharpe per window. The mean degradation and passing-window count tell you whether your strategy parameters survive multiple regimes — or just the one you happened to fit on.

By Keel Research Team · Updated May 17, 2026
Inputs

One return per period (daily assumed). Decimal or % accepted. Sample below has a regime shift mid-series.

IS and OOS each use this length in rolling mode; OOS only in anchored.

How far the window slides between iterations.

Result
Mean OOS Sharpe
1.93
Mean degradation
+156.0%
Windows produced
19 (480 bars total)
Passing windows (OOS > 0.5 × IS)
9 / 19

Rough robustness floor. ≥ 60% passing is a useful signal; < 40% is fragile.

Mode
Rolling
IS vs OOS Sharpe per window
How it works

Methodology

The visualizer runs the canonical walk-forward split: it slices your returns series into IS/OOS window pairs and computes annualized Sharpe on each side. In rolling mode the IS window is fixed-size and slides forward by the step value; in anchored mode the IS window starts at the first observation and expands with each step.

# Per-window annualized Sharpe
sharpe = (mean(returns) / stddev(returns)) * sqrt(252)

# Per-window degradation
degradation = (oos_sharpe - is_sharpe) / abs(is_sharpe)

# Aggregate "passing" rule
passing = count(windows where oos_sharpe > 0.5 * is_sharpe and is_sharpe > 0)

The annualization factor (sqrt(252) — daily-bar assumption) is the same on both sides of the degradation ratio, so it cancels out for IS-vs-OOS comparison. The visualizer is built for comparison, not absolute-number reporting; for absolute Sharpe with the right periodicity use the dedicated Sortino vs Sharpe calculator.

Walk-forward is a structural defense against parameter overfit, not a substitute for out-of-sample testing on truly fresh data after deployment. Strategies that survive walk-forward can still degrade live if the underlying market dynamics shift outside historical experience. For the full picture pair this tool with walk-forward optimization for Hyperliquid strategies.

Automate it

Trade systematically on Keel

Keel is a Strategy OS for AI-assisted systematic trading on Hyperliquid. Build, backtest, and run live strategies with realistic fees, slippage, and funding modeled. Free to start — connect a Hyperliquid wallet when you’re ready to go live.

What you can do
  • Backtest any strategy with realistic fees, slippage, and funding modeled.
  • Optimize across parameter grids — Sharpe, drawdown, hit rate.
  • Deploy live to Hyperliquid with stop-loss + position limits.
  • Iterate with AI — describe a thesis, get a tradeable pipeline.
FAQ

Calculator questions

What does this visualizer actually do?

It splits a returns series into rolling or anchored in-sample / out-of-sample windows, computes annualized Sharpe on each side, and surfaces the degradation. The point is to make parameter overfit visible: a strategy whose OOS Sharpe collapses across most windows is fragile, even if its single-shot backtest looked great.

Why is the Sharpe annualization fixed at sqrt(252)?

The visualizer is for ratio comparison — IS vs OOS within the same series. The annualization factor cancels out of the degradation calculation, so a daily-default works fine for visual inspection even if your series is hourly or weekly. For absolute Sharpe values you trust, use the Sortino vs Sharpe calculator with the correct periodicity.

Rolling vs anchored — which should I pick?

Rolling drops the oldest in-sample bar each step, keeping the IS window fixed-size. Anchored keeps everything from the start of the series and lets IS grow. Anchored is more sample-efficient (more data per fit); rolling is more honest about regime drift (old data gets discarded). When in doubt, run both and compare degradation.

What does the "passing windows" count mean?

A pragmatic robustness floor: count the windows where OOS Sharpe > 0.5 × IS Sharpe (and IS Sharpe was positive). 60%+ passing is a useful signal that the strategy parameters generalize; under 40% suggests the IS performance was sample-specific. It is a heuristic, not a formal test — pair with Monte Carlo or PBO for stricter overfitting diagnostics.

Does this tool ship with Keel?

This visualizer is a standalone browser tool — no Keel account needed, no upload to server, computed locally. Keel itself ships single-window parameter optimization today via the strategy optimize CLI. Native walk-forward optimization inside the backtest engine is on the roadmap.