What a forward test is

A forward test takes a completed backtest run and keeps running it on new trading days. The run's version, settings, symbols, costs and starting capital are frozen when you start. The forward part uses the backtester's own fills, and nothing is sent to a broker. Paper trading is a Trade deployment; see Backtest, forward test and paper.

A strategy has one forward test at a time. Rules and Program strategies can be forward tested; a Signals strategy, which replays rows you supplied, cannot. Chat, agents and the Orbital AI connector cannot start or stop a forward test, or see its card.

Start a forward test

  1. Open the strategy in Backtesting

    The page opens on a run still in progress, else on the main version's newest completed run. To test a different run, click its period in the Runs view. Forward test… is offered to project editors and above on a completed run that has a saved version, while no forward test is running.

  2. Click Forward test…

    The Forward test dialog states the Version, frozen, and the Settings, which are the run on screen's.

  3. Click Start forward test

    The header line under the strategy's settings reads Forward test starts with the start date, then the first update lands around noon ET the next day.

How updates work

The start date is the first session that opens after you click. After each session settles, Orbital's half-hourly check runs the frozen run again with only its end date moved; if the session's data has not reached Orbital yet, the update waits for the next check. Updates land around noon ET, the first on the day after the start date. Friday's session settles on Saturday, so Saturday's update covers Friday.

Every update runs from the first day of the frozen run's period and keeps positions open at the end, so each longer update repeats the shorter one's trades and curve. A later correction to the history, such as a restated split, can still shift the backtest part. Updates run only while the Backtesting app is on in the project and the strategy is not in Trash.

While the test runs, the header line reads Forward testing since the start date, then · waiting for its first update or · updated through the newest settled session. If the latest update could not start, the line adds The last update could not start: with the reason, and Orbital tries again at the next check.

Each update is an ordinary run, billed like a run of its window, and it counts toward the workspace's run limits. At most one update per workspace, and four across Orbital, are queued or running at once.

What the page shows

While the test runs, the strategy page opens on its newest update. The chart shades everything from the start date in a band labelled Forward · since the start date, and the Forward toggle hides and shows it. The five tiles and Overall statistics describe the whole run, backtest part and forward part together.

Between the chart and the tiles, the Forward test card isolates the forward part and counts its sessions:

  • Return since start: the forward part's return from the close before the start date, beside the benchmark's over the same days.
  • Max drawdown: the deepest fall inside the forward part, or none.
  • Against the backtest: a range bar and a sentence. They show where the backtest's stretches of the same length landed nine times in ten, their median, and whether the forward return is inside that range. A backtest too short for twenty such stretches says so.

Latest trades and the Trades view tint trades entered on or after the start date, below a divider reading Forward test started with the date. The Runs view marks updates with a Forward chip.

The live view during the session

For an intraday strategy that the live engine can run, the test also steps through the session minute by minute, with simulated fills. The card gains a Today row, the chart a dashed segment after the last settled close, and the trade list Open and Live rows. The live view is provisional: when the session's settled update lands, the settled curve takes over. It is not billed and does not count toward the run limits.

Besides Live during the session and Closed between sessions, the Today chip can read:

  • Prices only after the live data had a gap or its program failed on a live bar. The strategy makes no new decisions, but orders placed earlier can still fill, and stops, targets and time stops still apply.
  • Waiting for market data, or Paused when there is no room: a workspace has at most three live views at once, and Trade's deployments come first. The settled update still runs.
  • Settled only, with the reason the strategy has no live view, such as runs on daily bars, screened universe or fills at the next close.

Stop a forward test

  1. Open More actions

    On the strategy page, open the More actions menu (⋯).

  2. Click Stop forward test…

    The dialog Stop the forward test? says that nothing more is run, and that what the test has done so far stays on this strategy.

  3. Click Stop forward test

    The header line reads Forward test stopped, and the card reads stopped on the date. Forward test… is offered again, and a new test starts from whichever completed run you pick, with a new start date.

When a test stops itself

A test stops itself when its window outgrows one run or its updates are refused, and a single failed update is retried. See A forward test stopped.