Test a strategy on past data
A backtest replays a strategy across historical market data so you can see how it would have performed — without risking real money.
Pick a preset below, hit "Send to bot creator", and on the dashboard click "Run Backtest" — that's the existing one-click flow we already had. The Monte Carlo button next to it stress-tests the same parameters by reshuffling trades.
Conservative · BTC spot
Slow timeframe, tight risk per trade, small drawdown profile.
Expected: Low trade frequency, smoother equity curve.
Send to bot creator →Balanced · ETH swing
Mid-speed setup that aims for day-to-multi-day moves.
Expected: Moderate activity, balanced wins/losses.
Send to bot creator →Aggressive · SOL scalping
Fast reactions on short candles with tighter exits.
Expected: Many trades, larger drawdown swings.
Send to bot creator →What you'll see in the results
A line chart of your account value over time. Smooth and rising = good. Jagged with deep dips = risky.
Already have a bot? Backtest from the form
On the dashboard the create-bot form already has "Run Backtest" and "Run Monte Carlo" buttons — they run the parameters you've entered against the bot you've selected on the sidebar. Use this page when you want to start from a preset; use the dashboard when you've already built the bot.
Open dashboardAdvanced: full config schema
Power users can paste a full historical_test JSON into the bot form's advanced editor. Schema mirrors the backend backtest engine.
Show schema reference
{
"data_dir": "/tmp/past_data",
"symbol": "BTCUSDT",
"timeframe": "5m",
"max_candles": 1500,
"bot": { /* full BotFormState payload (see bot creator form) */ },
"backtest": {
"initial_balance": 10000.0,
"fee_bps": 6.0,
"slippage_bps": 10.0
},
"monte_carlo": {
"iterations": 100,
"horizon_steps": 288,
"trades_per_step": 0.15
}
}