WhitmanTrading

Forward Testing: Nothing Can Be Tuned

Forward testing records a method's signals in advance and scores them once the outcome arrives. Because nothing can be adjusted after the fact, it is the only test that cannot be contaminated by hindsight, and it is slow enough that almost nobody completes one.

How it works

A candlestick chart of the site's shared price history. The headline on the chart reads: Recording the signals before the outcome is known.
Recording the signals before the outcome is known. Illustrative chart - not real market data.

A forward test writes down what the method says, before anything happens. Entry price, stop, target, size and reason, recorded at the time the signal appears and scored later.

A gently rising stretch of the long price series with an account equity curve beneath it. The headline on the chart reads: The difference from a backtest is the direction of time.
The difference from a backtest is the direction of time. Illustrative chart - not real market data.

The difference from a backtest is direction. A backtest runs rules over data that already exists; a forward test waits for data that does not.

A calmly advancing stretch of the long price series with a slowly rising equity curve beneath it. The headline on the chart reads: Nothing can be tuned afterwards, which is the entire value.
Nothing can be tuned afterwards, which is the entire value. Illustrative chart - not real market data.

That single property removes most of the ways a test can lie. No lookahead, no parameter fitting, no selective sampling — because the rules were fixed before the outcome existed.

The cost of the honesty

A flat, quiet stretch of the long price series with a gradually rising equity curve beneath it. The headline on the chart reads: And it is slow, which is why almost nobody does it.
And it is slow, which is why almost nobody does it. Illustrative chart - not real market data.

It runs in real time, and that is the whole objection to it. A backtest of ten years takes seconds; ten years of forward testing takes ten years.

A strongly rising stretch of the long price series with an account curve that tracks a coin flip. The headline on the chart reads: A slow method takes months to reach a usable sample.
A slow method takes months to reach a usable sample. Illustrative chart - not real market data.

Sample size is the binding constraint. A method producing four signals a week needs about six months to reach a hundred trades, and a hundred is the point at which the result starts to mean something.

A choppy, directionless stretch of the long price series. The headline on the chart reads: Write the entry, the stop and the target before the bar.
Write the entry, the stop and the target before the bar. Illustrative chart - not real market data.

The discipline is in the writing, not the waiting. A signal recorded after the bar closed is a recollection, and a stop decided once price has moved is a different stop from the one the method specified.

A declining stretch of the long price series. The headline on the chart reads: And record the setups you did not take.
And record the setups you did not take. Illustrative chart - not real market data.

Skipped setups belong in the record. They are the half of the sample no broker statement contains, and a pattern of skipping in one direction — or after a loss — is a finding available no other way. The gap between the recorded signals and the trades actually taken is often the most valuable output of the whole exercise.

In practice

A 72-bar candlestick section of the shared price history with an account curve shown with and without fees. The headline on the chart reads: Include the cost or the result is not a result.
Include the cost or the result is not a result. Illustrative chart - not real market data.

Score the trades net of cost. Each round trip is 2% of a median bar’s range on this site’s shared history, and a forward test recording gross results has quietly reintroduced the error a backtest is criticised for.

A candlestick chart with a volume histogram beneath it, with the volume histogram emphasised. The headline on the chart reads: It captures the conditions a backtest flattens away.
It captures the conditions a backtest flattens away. Illustrative chart - not real market data.

It records conditions as well as outcomes. Volume, session and whether news was scheduled are all available at the time and worth tagging, because sorting a hundred trades by tag produces findings reading them chronologically never will.

A long-horizon candlestick view of the same price series. The headline on the chart reads: On a daily chart a hundred trades is most of a year.
On a daily chart a hundred trades is most of a year. Illustrative chart - not real market data.

Timeframe decides how long the test takes. A daily method reaching a hundred trades is most of a year of patience with no verdict available in the meantime.

A candlestick series containing several opening gaps, with the largest opening gap marked. The headline on the chart reads: And it records the gaps a simulator would have ignored.
And it records the gaps a simulator would have ignored. Illustrative chart - not real market data.

It captures gap behaviour correctly because the gap actually happens, which is the specific thing most simulators model wrongly.

A declining stretch of the long price series, with the entry price and the level at which a stop would trigger drawn as horizontal lines. The headline on the chart reads: The planned stop against the actual fill is the point.
The planned stop against the actual fill is the point. Illustrative chart - not real market data.

Planned stop against actual fill is the measurement to keep. The difference is your real slippage, it is measurable, and most traders have never checked theirs.

A candlestick chart of the site's shared price history, annotated with the round-trip cost. The headline on the chart reads: Every recorded trade costs a share of a bar in real life.
Every recorded trade costs a share of a bar in real life. Illustrative chart - not real market data.

Costs are where a forward test and a backtest most often diverge. The backtest assumed a number; the forward test can look it up.

Running one without waiting a year

A forward test does not have to be the only thing you are doing. Record the signals in parallel with whatever you are already trading — the recording costs nothing, needs no capital, and produces a clean sample alongside a messy one.

Then compare the two at the end. If the recorded signals did better than the executed trades, the problem is execution and no amount of method-changing will fix it. If they did the same, the method is what it is. That comparison is the reason to run a forward test even when you are confident in the method, and it is unavailable from any other kind of testing.

The record needs one more column than most people put in it: what you expected to happen. A sentence written before entry, saying where price should go and roughly how fast, turns a list of outcomes into a list of predictions — and only predictions can be graded.

Without it, a review reads results and invents reasons for them. Memory assembles an explanation consistent with whatever happened, and the explanation feels like a recollection. The expectation column is the cheapest defence against that and it is the difference between a forward test that teaches something and a trade log that confirms what you already believed.

What forward testing is not

It is not paper trading. That tests mechanics; this tests the method.

It is not a backtest. Nothing in it can be re-run or adjusted.

It is not fast. Real time is the price of the honesty.

And it is not conclusive at twenty trades. Sample size still applies.

When it fails

A sideways, range-bound candlestick series. The headline on the chart reads: In a range it produces a run of losses and no verdict.
In a range it produces a run of losses and no verdict. Illustrative chart - not real market data.

A test that lands entirely inside one regime says nothing about the method. Three months of range will fail a trend method that is perfectly sound, and the sample is too small to separate the regime from the rules.

The second failure is adjusting mid-test. One change and the sample restarts, which is why methods get tested for two years and never accumulate a sample.

A third is recording only the trades taken. The skipped ones are the diagnostic half.

A fourth is scoring gross. Costs decide the verdict on most short-horizon methods.

And a fifth is abandoning it after a losing run. Twenty trades cannot distinguish an edge from noise, which means a decision made at twenty is made on nothing.

The original data

On this site’s shared 576-bar history the base rate for a higher close after one bar is 52% across 571 observations, and 54% after ten across 566. Close-direction runs average 2.01 bars with a longest of 11 across 286 runs. The round-trip cost is 2% of a median bar’s range and 45% of the smallest bar. The figures are in research/series-measurements.json, produced by site/measure_series.py.

A 72-bar window of the shared price history, cut short at the decision bar. The headline on the chart reads: Thirty forward trades and slightly down. Stop?
Thirty forward trades and slightly down. Stop? Illustrative chart - not real market data.

The 2.01-bar average run length explains why short forward tests mislead so reliably. Direction persists for about two bars at a time, so a fortnight of testing can easily contain one dominant condition and produce a verdict about that condition rather than about the method. Decide the sample size before starting and hold to it — a hundred trades scored net of costs, with the skipped setups recorded, is worth more than a year of impressions.

Backtesting is the fast filter and its six failure modes. Paper trading tests the mechanics rather than the method. And trading journal is the record a forward test is written into.

What I actually do

Three months of forward testing told me something six years of reading never did: my method was fine and my execution was not. The signals I recorded in advance beat the trades I actually took, and the gap between them was the whole problem.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.