Skip to content

Evaluate

Running backtest jobs

Use this guide when you want to evaluate a strategy revision across a historical time range.

By the end, you will be able to:

  • A backtest job is a finite historical evaluation of one strategy revision.
  • A backtest job uses historical market data and simulated execution through the Venue Simulator.
  • The selected revision and Target Position Executor are both part of what you evaluate in the current target-position execution path.
  • Strategy Variables are concrete values you provide for exposed node parameters when configuring the job.
  • Venue and instrument belong to the revision and remain visible with the job result.
  • Results are evidence under recorded assumptions, not performance guarantees.

For the deeper methodology, see Backtest job methodology, Backtest result metrics, and Simulator assumptions and data completeness.

Backtest job path Backtest jobs are finite evaluations that bind job settings, replay historical market data, and record results under simulator assumptions.
Job settings
Selected revision Revision-owned venue and instrument
Strategy Variable values Run-provided exposed node parameters
Historical time range Finite start and end
Starting balances Initial simulated account state
Fees, slippage, latency Recorded simulator settings
Data source
Historical market data server Historical data for the requested range
Data completeness Complete segments and gaps
Evaluation and execution
Strategy engine Evaluates the selected compiled revision
Target Position Executor Turns target positions into order activity
Venue Simulator Applies simulator assumptions
Result
Simulated fills and account state Recorded under assumptions
Result metrics PnL, drawdown, Sharpe, positions, events, completeness
Finite lifetime A backtest job terminates when the requested historical evaluation completes or fails.
Interpretation Backtest job results are evidence under recorded settings and assumptions, not performance guarantees.
Legend
  • Market data Live or historical market data sources.
  • Strategy engine Runtime evaluation of the selected compiled revision.
  • Target Position Executor Target-position intent converted into order activity.
  • Venue Simulator Simulated execution destination and assumptions.
  • Account state Live or simulated positions, fills, balances, and order state.
  • Results Recorded metrics, telemetry, and review context.
  • Backtest path Finite backtest job boundary.
  • Revision-owned Immutable strategy revision logic and settings.
  • Run settings Run-provided values, balances, ranges, or assumptions.
  • You have at least one strategy with a saved revision.
  • The revision has the venue and instrument you intend to evaluate.
  • You know the Strategy Variable values you want to test.

You do not need a connected trading account to run a backtest job. Backtest jobs use historical market data and the Venue Simulator.

  1. Navigate to the Backtest jobs section or a backtest job entry point from a strategy.
  2. Click New backtest job.
  3. Select the strategy and revision you want to evaluate.
  4. Review the saved revision’s venue and instrument.

Each saved revision is immutable. If you need to change fixed strategy logic, fixed node parameters, venue, or instrument, create a new revision before running the job.

Backtest job settings include:

  • Historical time range:
    • Start date and time.
    • End date and time.
  • Strategy Variable values:
    • Concrete values for exposed node parameters.
  • Starting balances:
    • The simulated balances used at the beginning of the job.
  • Fees:
    • The fee setting applied to simulated trading activity.
  • Slippage:
    • The slippage setting used by the Venue Simulator.
  • Latency:
    • The latency assumption used during simulated evaluation.
  • Simulator assumptions:

Venue and instrument are not job parameters. They belong to the selected revision and stay visible with the job result.

Before submitting, review:

  • Selected strategy.
  • Selected revision.
  • Revision-owned venue and instrument.
  • Historical time range.
  • Strategy Variable values.
  • Starting balances.
  • Fees.
  • Slippage.
  • Latency.
  • Simulator assumptions.

When the configuration is correct, click Run backtest job.

This creates a backtest job that Structure can track through its lifecycle.

Backtest jobs move through finite lifecycle states:

  • drafting: you are filling out the job parameters.
  • provisioning: Structure is preparing the selected revision and runtime path.
  • running: historical data is driving the selected revision.
  • completed: the job finished and results are available.
  • failed: the job stopped before completion and exposes an error reason where available.

Open the job detail view to review current state, selected revision, historical time range, Strategy Variable values, simulator settings, and any error details.

A backtest job can fail for reasons such as:

  • Historical time range outside available data.
  • Missing or insufficient historical data for the selected venue and instrument.
  • Missing or invalid Strategy Variable values.
  • Starting balances or simulator settings that are incompatible with the selected revision.
  • Resource or duration limits.
  • Transient infrastructure or data issues.

When a job is failed:

  1. Open the job detail view.
  2. Review the error message and recorded job settings.
  3. Adjust the historical time range, Strategy Variable values, starting balances, or simulator settings.
  4. Run a new backtest job when the configuration is ready.

If the error persists and appears internal, contact support with the backtest job ID.

When a job reaches completed, open the job detail view.

The result surface includes the metrics and context needed to interpret the job:

The result surface keeps metrics, assumptions, and data completeness together. Optional exports can be used when available, but the recorded job context remains the source for interpreting the result.

Do not read a single metric in isolation. PnL, drawdown, Sharpe-style metrics, rolling position, trade count, event count, simulator assumptions, and data completeness all describe different parts of the same evaluation.

For metric definitions, read Backtest result metrics.

Use backtest job results to answer questions such as:

  • Did the selected revision behave as expected across the historical time range?
  • Did the Strategy Variable values produce the intended target positions?
  • Did the Target Position Executor produce order activity consistent with the revision’s target positions?
  • How did fees, slippage, latency, and liquidity assumptions affect the result?
  • Was the historical data complete enough for the comparison you want to make?

When comparing jobs, keep settings attached to the metrics. Compare across:

  • Revision changes.
  • Fixed node parameter changes.
  • Strategy Variable values.
  • Historical time range.
  • Starting balances.
  • Fees.
  • Slippage.
  • Latency.
  • Liquidity assumptions.
  • Data completeness.
  • Metrics and position behavior.

A metric summary is useful only with the settings and assumptions that produced it.

When comparing jobs, prefer narrow comparisons:

  • Same revision, different Strategy Variable values.
  • Same revision, same settings, different historical ranges.
  • Same revision and range, one changed simulator assumption.
  • Two revisions over the same range and assumptions.

Avoid comparing jobs if the data completeness, starting balances, fees, slippage, latency, or liquidity assumptions differ in ways that are not part of the question you are testing.

A backtest job does not become a live deployment by itself.

When a result supports the next step, choose one of these actions:

  • Create a new revision when the result points to a strategy change.
  • Run another backtest job when you need to test different Strategy Variable values, time ranges, balances, or simulator assumptions.
  • Start a live deployment when you are ready to select the tested revision, Strategy Variable values, connected account, venue context, permissions, and deployment settings for live operation.