Run Backtest
Two-layer backtest flow: first create a task (exchange, spot/futures, time range, fees/slippage), then for each trading pair set the timeframe, capital, leverage, strategy, and execution config. Once started, it produces metrics like return and drawdown.
Run Backtest takes the "strategy + execution config" trading algorithm and replays it over historical K-lines to validate performance, assess risk, and decide whether to move on to paper or live. It uses a "task level + per-pair level" two-layer structure: first create a backtest task (pick the exchange, market type, time range, fees / slippage), then add one or more trading pairs under the task and configure the timeframe, initial capital, leverage (for futures), strategy, and execution config per pair; once launched, the system simulates matching by realistic trading rules and produces a separate report per pair. This structure lets a single task compare the same signals across multiple pairs side-by-side, with capital and risk parameters tunable independently per pair. You can run a backtest via the UI or the AI Agent.
Two ways to run a backtest
Option 1: Via the AI Agent
In the AI Agent, describe the backtest you want—e.g. "Backtest a dual-MA strategy on Binance spot BTC/USDT and ETH/USDT 1H over the last 3 months"—and the AI Agent fills in the task-level and per-pair configuration and launches the run; you can also ask it to interpret return, drawdown, and other metrics. For a conversation example see 5-minute quick start.
Option 2: Via the UI
- From the strategy: in the "Strategy Library", find the strategy, click "Backtest", and fill in the task / pair configuration in the backtest creation form before launching.
- From the backtest module: open the "Backtest" page, click "Create Backtest", and configure a blank task following the flow below.
Two-layer configuration
Task-level configuration (shared across the task)
| Item | Description |
|---|---|
| Task name / description | For identification and bookkeeping |
| Exchange | e.g. Binance, OKX; determines the market data source and the available pairs |
| Market type | spot or futures; determines the available pairs and whether leverage can be configured |
| Time range | The start and end of the backtest; we recommend at least 1 month and ideally covering different market regimes |
| Fees / slippage | Optional; once set, the backtest deducts the corresponding cost, bringing it closer to live |
Per-pair configuration (one set per pair)
| Item | Description |
|---|---|
| Trading pair | e.g. BTC/USDT, ETH/USDT; one task can include multiple pairs |
| Timeframe | The pair's main K-line timeframe (e.g. 15m / 1H / 4H) |
| Initial capital | Initial capital for spot; initial margin for futures |
| Leverage | Only configurable for futures tasks; ignored for spot |
| Strategy (signals) | Pick a strategy from the Strategy Library; indicator parameters can be tuned specifically for this pair (e.g. swap MA(5)/MA(20) for MA(10)/MA(30)), and the change only affects this pair—the original strategy in the library is untouched, which lets you tune appropriate values per coin |
| Execution config (risk) | Position (fixed amount / percentage), stops / targets, max drawdown, scale-in rules, etc.; see Execution Config |
When a task spans multiple pairs, each pair holds its own "strategy + execution config"—which is exactly why execution config sits separately from the strategy: BTC vs. small-cap volatility, futures vs. spot leverage needs—all of it can be tuned at this layer.
For field-by-field details see Create Backtest, Backtest Config; for risk recommendations see Risk Management.
Run Backtest flow
Create a backtest task
Fill in the task name and description, pick the exchange and market type (spot / futures), set the backtest time range, and optionally configure fees and slippage.
Add trading pairs
Add one or more trading pairs under the task (e.g. BTC/USDT, ETH/USDT); pairs in the same task share the task-level settings.
Configure each pair
For each pair, set the timeframe, initial capital, and leverage (for futures), pick the strategy to use (with optional per-pair indicator tuning that only applies to this pair), and fill in the execution config (position, stops, targets, max drawdown, scale-in, etc.).
Launch the backtest
Click "Start Backtest"; the system simulates each pair in parallel and produces reports.
Review and iterate
Inspect each pair's return, max drawdown, win rate, trade count, etc.; use Result Analysis to interpret. If results aren't great, adjust the strategy or execution config and re-run, or open Backtest Optimization for parameter search.
What to look at in the backtest results
- Return: total return, annualized return
- Risk: max drawdown, Sharpe ratio, etc. (evaluated under this run's execution-config constraints, useful as a live-risk reference)
- Trading: trade count, win rate, profit factor
After the backtest you can view K-line charts and individual entry / exit points for tuning and iteration in the Adjust phase. For a deeper read of the metrics see Backtest Result Analysis.
Tips
- Time range: at least 1 month, ideally covering different market regimes (up, down, ranging).
- Run multiple pairs at once: running the same signals across multiple pairs independently lets you compare how well the strategy fits each coin and calibrate execution config side-by-side.
- Avoid overfitting: don't over-tune for a single window—watch out-of-sample behavior.
- Backtest vs. live: live includes slippage, fees, liquidity, and other factors; after a backtest passes, we recommend Paper Trading before going live.
Next steps
- Create Backtest — Field-level details and the creation form
- Backtest Config — All task-level and per-pair configuration items
- Backtest Result Analysis — Deeper interpretation of the report and metrics
- Backtest Optimization — Signal- and execution-parameter search
- Live Trading (workflow) / Paper Trading — Start a trading bot once the backtest passes