Evaluate
Running backtest jobs
When to use this guide
Section titled “When to use this guide”Use this guide when you want to evaluate a strategy revision across a historical time range.
By the end, you will be able to:
- Configure and submit a backtest job.
- Track job lifecycle state.
- Review the result surface, recorded assumptions, and data completeness.
- Compare jobs and create new revisions from what you learn.
Key concepts
Section titled “Key concepts”- 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.
- 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.
Prerequisites
Section titled “Prerequisites”- 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.
Choose a strategy and revision
Section titled “Choose a strategy and revision”- Navigate to the Backtest jobs section or a backtest job entry point from a strategy.
- Click New backtest job.
- Select the strategy and revision you want to evaluate.
- 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.
Configure the job
Section titled “Configure 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:
- Fill model, liquidity assumptions, and known simulator limitations.
Venue and instrument are not job parameters. They belong to the selected revision and stay visible with the job result.
Review and submit
Section titled “Review and submit”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.
Track job lifecycle state
Section titled “Track job lifecycle state”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.
Handle failed jobs
Section titled “Handle failed jobs”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:
- Open the job detail view.
- Review the error message and recorded job settings.
- Adjust the historical time range, Strategy Variable values, starting balances, or simulator settings.
- Run a new backtest job when the configuration is ready.
If the error persists and appears internal, contact support with the backtest job ID.
Review results
Section titled “Review results”When a job reaches completed, open the job detail view.
The result surface includes the metrics and context needed to interpret the job:
- PnL.
- Max drawdown.
- High-water mark.
- Continuous-time Sharpe ratio.
- Rolling position.
- Trade count.
- Event count.
- Data completeness.
- Historical time range.
- Strategy Variable values.
- Starting balances.
- Fees.
- Slippage.
- Latency.
- Venue Simulator assumptions.
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.
Interpret and compare
Section titled “Interpret and compare”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.
Promote or revise
Section titled “Promote or revise”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.