Running backtests and interpreting results
When to use this guide
Section titled “When to use this guide”Use this guide whenever you want to evaluate a strategy revision on historical data before (or alongside) live trading.
By the end, you will be able to:
- Configure and submit a backtest job.
- Track backtest status.
- Access and interpret results and statistics.
- Use insights to create new revisions.
Key concepts
Section titled “Key concepts”- A backtest is a historical simulation of a specific strategy revision over a chosen time window.
- Each backtest is:
- Tied to a strategy and a revision version.
- Uniquely identified by a hash of (strategy, revision, arguments) so identical runs are deduplicated.
Prerequisites
Section titled “Prerequisites”- You have at least one strategy with one or more revisions.
You do not need live trading accounts to run a backtest, because simulations operate on historical market data.
Step 1: Choose a strategy and revision
Section titled “Step 1: Choose a strategy and revision”- Navigate to the Backtests section or a dedicated backtesting entry point.
- Click New backtest.
- Select:
- The strategy you want to test.
- The revision of that strategy to backtest.
Remember: each revision is immutable, so re‑running a backtest on the same revision and inputs will always simulate the same logic.
Step 2: Configure backtest parameters
Section titled “Step 2: Configure backtest parameters”You will typically be asked to provide:
- Time range:
- A start date/time.
- An end date/time.
- Internally, these may be converted to high‑precision timestamps, but you select them as normal dates.
- Markets or instruments:
- Which assets or instruments the backtest should consider (for example,
SOL‑PERPon Drift). - In many cases this is driven by your strategy revision’s settings.
- Which assets or instruments the backtest should consider (for example,
- Execution model (if exposed):
- Latency assumptions or execution delay.
- Slippage or fee models.
- Initial conditions (if exposed):
- Starting balances or positions.
- Risk limits or margin settings.
The app may offer preset configurations (for example, “typical live‑like execution”) that translate into detailed arguments under the hood.
Step 3: Review and submit
Section titled “Step 3: Review and submit”Before submitting, Structure may show:
- The selected revision.
- The requested time window.
- Any relevant execution assumptions or market selections.
Review and confirm:
- Double‑check that the revision is correct (for example,
v3vsv2). - Confirm the time window and, if relevant, markets or instruments.
- Click Run backtest.
This creates a backtest job with:
- A unique ID (for referencing and monitoring).
- Initial status set to
pending.
Step 4: Track backtest status
Section titled “Step 4: Track backtest status”From the Backtests list you will see, for each job:
- Strategy and revision.
- Time range.
- Current status:
pending– queued and waiting to start.running– actively simulating.completed– finished successfully; results are ready.failed– something went wrong; see error details.
- When it was created and last updated.
You can:
- Click into a backtest to see more detail.
- Refresh or wait for the UI to update as the job progresses.
Step 5: Handle failures
Section titled “Step 5: Handle failures”A backtest may fail for reasons such as:
- Invalid or inconsistent arguments (for example, time range outside available data).
- Insufficient historical data for the requested markets or timeframe.
- Exceeding internal resource or time limits.
- Transient infrastructure or data issues.
When a backtest is failed, open its detail page to see:
- A short error message.
- Any structured details the system provides.
Typical next steps:
- Adjust the time window to one known to have data.
- Simplify the configuration (for example, fewer markets) and retry.
- If the error persists and appears internal, contact support with the backtest ID.
Step 6: Access results and statistics
Section titled “Step 6: Access results and statistics”When a backtest reaches completed:
- Open the backtest detail page.
- You will typically find:
- A Result download:
- A file containing time‑series data for the simulation (for example, positions, P&L, trades).
- A Statistics download:
- Pre‑computed summary metrics, such as:
- Total and annualized return.
- Volatility.
- Maximum drawdown.
- Sharpe‑like ratios.
- Win/loss rates and trade counts.
- Pre‑computed summary metrics, such as:
- A Result download:
The UI may also present a visual summary, such as:
- An equity curve over time.
- Drawdown charts.
- Per‑instrument breakdowns.
Under the hood, both the result and statistics files are stored in durable object storage and securely streamed to you; you do not need to manage those locations directly.
Step 7: Interpret and act on results
Section titled “Step 7: Interpret and act on results”Use the backtest outputs to answer questions like:
- “Does this strategy behave as expected in different market regimes?”
- “Are drawdowns acceptable for my risk tolerance?”
- “How sensitive is performance to parameter changes?”
Typical workflows:
- Compare multiple revisions:
- Run the same time window on revisions
v1,v2, andv3. - Compare statistics side‑by‑side.
- Promote the strongest revision to live trading.
- Run the same time window on revisions
- Stress‑test across time periods:
- Backtest across calm, volatile, and crisis periods.
- Look for failure modes or instability.
- Calibrate position sizing and risk:
- Use drawdown and volatility metrics to set leverage and notional size.
When you decide on changes:
- Return to the Strategies section.
- Create a new revision incorporating what you learned.
- Optionally backtest again.
- When confident, start the revised strategy in live trading.
Next steps
Section titled “Next steps”- If you haven’t yet connected accounts and run live, see Creating and running strategies and Connecting trading accounts.
- To understand how backtests fit into the broader mental model, read the Backtests concept page.