Home › Documentation › Validation & robustness
Analysis 6

Walk-Forward

It opens from the Portfolio → Walk-Forward… menu. This is Walk-Forward of the process: on every In-Sample window it re-optimizes (running the Mass Test search over a template), picks the best one, and applies it UNTOUCHED to the Out-of-Sample stretch that follows. All the OOS pieces are stitched into one continuous curve. It is the most honest test of whether a methodology survives the future.

Modes and window schemes

  • →Rolling: a fixed-size IS window that slides along.
  • →Anchored: an IS that grows from the start (inverse WF).
60/12
Conservative
36/6
Medium
24/3
Aggressive

Windows are defined in months (IS / OOS).

The headline metric: OOS / IS

How much of the optimization survives? The real OOS profit against the (optimized) IS profit. 26% means only a quarter of what was "promised" in-sample actually materializes out of sample. It is shown large in the panel.

Turn on «Compare stitched IS» to overlay the IS curve (gray) on the OOS one (white): if the IS shoots for the sky and the OOS goes sideways → overfitting; if they run together → a gem.

Re-optimize (classic, the default)

On every In-Sample window it re-runs the full search and picks the best. It answers: "does the PROCESS keep finding something that works out of sample?"

It is the most demanding test, but it amounts to N Mass Tests (one per window) → slow, especially on minute timeframes.

Fast WF (fixed strategy)

It optimizes only the 1st window and applies that fixed strategy to all the OOS windows that follow (without searching again). It answers: "does THIS strategy hold up out of sample?"

Roughly N× faster: 1 optimization + N standalone backtests. The GPU parallelizes across strategies, but each one's walk through time is serial; that is why re-optimizing N times takes forever and this mode avoids it. In the 360 Analysis it is ideal, because a strategy has already been chosen.

📁

Walk-Forward on one specific strategy

The 📁 Strategy button opens the Strategy Library and loads an edge you have already discovered. The walk-forward runs it as it is, re-optimizing nothing, across every window. It answers the question the other two variants do not: "would THIS particular edge have held up over time, window by window?"

Vs. "fixed strategy"

The Fixed strategy checkbox optimizes the 1st window and freezes THAT one. The Strategy button optimizes nothing: the recipe comes from the Library, identical in every window.

How it looks

A 🎯 chip appears with its name and the Template is disabled. It is saved with the study (the full recipe): you can leave, come back and re-run it. The chip's × returns to Template mode.

Faithful data

It loads the exact file it was tested on (at its native resolution) and gives every window a warm-up buffer, so that long averages (100–200) are warm from day one.

Almost instant (N standalone backtests, no search). Ideal for validating an edge from the Edge Scanner or the Library before taking it to the Portfolio.

The window diagram, live

Preview (without running)

When you change the Mode (Rolling/Anchored) or the IS/OOS months, the diagram redraws instantly showing how the windows will look: in Anchored the blue part (In-Sample) grows from the start; in Rolling it slides.

While it runs

Each OOS window starts white and, once processed, is painted green (it won) or red (it lost) with a yellow dot. While it works, the «Preparing…» label blinks and the progress bar advances at the foot. In fixed-strategy mode the WF is almost instant (millisecond backtests); the gradual window-by-window painting really shows when re-optimizing from a template, where each window takes seconds.

💡 In the cycle table, click any row to highlight it in orange and follow it while you compare that cycle's IS against its OOS.

AQ WF Score (0–100)

A weighted average of five subscores, calibrated on the stitched OOS curve and the cycles:

Stability / WFE — annualized OOS/IS efficiency (target 0.6)30%
OOS return — the absolute annualized return of the OOS curve25%
OOS drawdown — return/DD of the stitched curve (target 2.5)20%
% positive cycles15%
Consistency — R² of the OOS curve (how smooth the growth is)10%
🧮 Example — how a 77 is built
Stability/WFE 85 × 0.30 = 25.5 // WFE 0.55, close to the 0.6 target OOS return 70 × 0.25 = 17.5 // around 12% a year OOS OOS drawdown 72 × 0.20 = 14.4 // return/DD = 2.0 % cycles + 70 × 0.15 = 10.5 // 7 of 10 windows won Consistency 85 × 0.10 = 8.5 // OOS curve R2 = 0.85 TOTAL ≈ 76.4 // ★★★★ Promising

Illustrative values. The point: no single axis dominates. A strategy with a brutal OOS return but a jagged curve (low Consistency and % cycles) never reaches ★★★★★; the Score rewards steady, well-spread growth, not the one big score.

Regime per cycle

Each OOS stretch is classified by the price trend (regression, R²):

Bullish Bearish Sideways

It reveals whether the strategy only works in one kind of market.

Multi-scheme robustness

The «Robustness (3 schemes)» button runs the study with all three schemes and combines them:

AQ WF Robustness = 50% · (worst scheme) + 50% · (average)

While it runs the 3 schemes you see the overall progress (0→100% across all three) with the bar moving and the label blinking. The results window is movable (drag it by the header), large, and closes with its own button — not by clicking outside.

It rewards strategies that hold up with any window, not just with one lucky one.

🗄️
Meta-study

Portfolio → Export meta-study (CSV) dumps every saved Walk-Forward and Survival study to C:\AniQuant\metaestudio\. It is the seed for eventually discovering which metrics (score, OOS/IS, subscores…) genuinely predict real future performance.

Try it yourself

AniQuant can be tried free for 30 days, with every module and no card.

← Previous
Survival test
Next →
Overfitting detection (PBO and DSR)
More in Validation & robustness