Walk-forward testing is a sequence of dated experiments: fit or specify a rule using information available at that point, evaluate it on the next unseen window, then advance the boundary. Unlike one final holdout, it produces several chronological evaluations. The rule can stay fixed throughout or be updated on a written schedule; those answer different questions, so say which one you ran.
Decide the question and window schedule first
Specify the instrument, data source, timeframe, costs, benchmark and evaluation metric. Choose the start date, fit-window length, test-window length and how the windows move before studying outputs. If the strategy is re-estimated on a schedule, set that schedule in advance. Record how each choice relates to the question; window sizes are themselves parameters that someone can overfit.
For illustration, an experiment might use two years of earlier observations to specify a rule, evaluate the next quarter, then advance one quarter and repeat. Those durations are examples only. Decide whether each completed evaluation joins the information available to a later fit, whether the training window expands or rolls, and exactly how parameters may change. A short training window may omit useful conditions; a long one may combine different ones. There is no universally best schedule.
Preserve separation between each window
At each step, record which bars are available for design and which later bars are reserved for evaluation. Ensure all rolling indicators have enough earlier data to warm up without letting future test bars influence that warm-up. Prevent open trades, funding settlements or overlapping labels from leaking across the boundary in a way that changes the declared question. For a strategy with positions that span windows, specify whether they are carried, liquidated at the boundary, or excluded from one calculation.
When the evaluation window is complete, log the results before revising anything. If they prompt a new threshold, exit or window schedule, the new version may be tested on a later segment, but the already-seen evaluation is now part of the research process. Do not keep renaming a repeatedly examined segment “out of sample.”
Match the gap to the outcome horizon
For a supervised model, a row’s target can depend on prices that arrive after its signal. If the target looks ahead two bars, the final training labels beside a test boundary may use prices from inside that test. Exclude those overlapping labels before fitting; a time-ordered timestamp column alone does not prevent this leakage.
The current scikit-learn 1.9.1 TimeSeriesSplit documentation describes expanding training sets by default, a max_train_size option for capping their size, and a gap measured in samples between training and test. It also requires equally spaced samples when comparing equal-duration test folds. In its illustrative 12-sample setup with three two-sample test windows and gap=2, the first split trains on samples 1–4, leaves 5–6 out, and tests 7–8; later training folds expand before the same two-sample gap. That is an index example from a general machine-learning splitter, not a crypto strategy result. Pick any gap from the target and holding horizons you actually use; a row-count gap may not match elapsed time when bars are missing or observations are event-based. scikit-learn documents these split options.
The gap option only separates sample indices. It does not decide how open trades cross a boundary, reproduce exchange orders, account for venue-specific funding, or prove that a feature pipeline is leakage-free. Keep the target’s start and end timestamps, indicator warm-up, trade overlap and any boundary treatment in the experiment record.
Report the whole sequence
Show every evaluation window, including weak and negative results, with its parameters, trade count, costs, exposure and drawdown. Compare the same periods with a stable benchmark, and preserve differences between regimes rather than hiding them in one average. If the rule updates between windows, report the predeclared update procedure and the parameter path. An inspection-driven manual change is a new rule version, not an adaptive algorithm.
Earlier test bars may join later training data only after they are available under the stated refit schedule. Before presenting one overall result, say whether adjacent windows form one continuous account path or each window resets its capital; the arithmetic mean of window percentages is not automatically a portfolio return. Record every manual change and every window, metric and parameter set inspected. A changed rule needs later evidence that was not used to make that change.
Walk-forward performance remains dependent on data quality, fill assumptions, costs and the researcher’s earlier choices. Parameter stability is informative but does not prove future stability. If only a few independent episodes occur, dozens of adjacent bars do not magically create a broad sample. Repeated schedules and metrics also create selection opportunities; the backtest-overfitting guide explains that separate risk.
Product limits and next steps
SuperQuant provides a fixed-rule walk-forward diagnostic: evaluation begins after the first half of the history and reports four chronological test windows without re-optimizing parameters. Earlier candles supply indicator warm-up for each window. This checks how one frozen rule behaved across the later windows; it is not a fit-and-retrain optimization. The separate “last 30%” replay is a single split and is not untouched if the researcher has already inspected that segment.
The Disproof Desk now lets you inspect every window’s UTC test interval, indicator-context and test-data fingerprints, modeled return, drawdown, closed trades, fees, and funding. Every window starts flat with the same starting capital, so the separate returns are not compounded into one account result. The short local fingerprints help detect accidental changes but are not cryptographic signatures.
The bundled histories are synthetic. Review every window, including negative ones, and record if any output informed a rule change. For one later segment kept aside after all choices, read out-of-sample testing; that is a different evaluation design. The product’s current diagnostics are described in its research methodology. Do not describe the fixed-rule check as an adaptive walk-forward system.
Start with the backtesting workflow, read overfitting risks, and record a reserved period in the hypothesis worksheet. A rigorous negative result is still a result worth preserving. This guide is general education, not an investment recommendation or promise of future behavior.