Skip to main content

Running Backtests

This guide walks you through setting up and launching a crypto strategy backtest on VolatiCloud — from a saved strategy version to a complete trade log in under a minute.

For an overview of how backtesting fits into the broader strategy validation workflow, see the backtesting overview and the crypto backtesting deep dive. If you're still evaluating the platform, the backtesting feature page on volaticloud.com summarizes what the engine covers before you sign up.

Starting a Backtest

There are two entry points: launching from a strategy you're editing, or from the Backtests page.

From the Strategy page

  1. Open a strategy from the Strategies list.

    Strategies list page with a data grid row for Demo Strategy, including name, version, updated date, and action buttons, ready to open in Strategy Studio

  2. In Strategy Studio, click the Run Backtest toolbar button.

    Strategy Studio top bar showing strategy name, version chip, and an outlined Run Backtest button alongside Run Hyperopt and Save actions

  3. Configure the backtest parameters in the drawer.

    Run Backtest drawer with Strategy, Runner, Exchange, Pairs, Timeframe fields and a Backtest Time Range section with quick-select chips and start/end date pickers

From the Backtests page

  1. Navigate to BacktestsNew Backtest
  2. Select the strategy to backtest
  3. Configure parameters

Backtest Configuration

Exchange

Select which exchange's historical OHLCV data to use. This affects:

  • Available trading pairs
  • Historical data coverage (Binance has the deepest history; newer exchanges may only have 1–2 years)
  • Exchange-specific rules (fees, tick sizes, lot sizes)
tip

Use Binance for backtesting when possible — it has the deepest historical data and the broadest trading pair coverage. You can still deploy the live bot to a different exchange afterwards via the exchange wizard.

Trading pair(s)

Enter the trading pair(s) to backtest:

  • BTC/USDT — single pair
  • ETH/USDT, BNB/USDT — multiple pairs (comma-separated)
  • .*USDT — regex to match all USDT-quoted pairs

Date range

FieldDescriptionRecommendation
Start DateWhen the backtest beginsAt least 12 months ago
End DateWhen the backtest stopsYesterday or earlier

Use at least 12 months of data for meaningful results. Longer periods (2–3 years) give more reliable statistics, including different market conditions (bull, bear, sideways). Reserve the most recent 20–30% as a holdout for out-of-sample validation.

Stake amount

The amount per trade in your stake currency. This affects:

  • Absolute profit/loss values
  • Fee calculations
  • Position sizing

For comparative testing across strategy versions, use a consistent stake amount (e.g., 100 USDT).

Stake currency

The currency used as the base for trades (typically USDT or BTC).

Running the Backtest

  1. Review your configuration
  2. Click Run Backtest
  3. Monitor progress in real time via the progress indicator

Backtests typically complete in:

  • Simple strategies: 10–30 seconds
  • Complex strategies with many pairs: 1–5 minutes
  • Large date ranges (5+ years): 5–15 minutes

Backtest Progress

While running, the UI shows:

  • Real-time progress percentage
  • Current phase (downloading data, backtesting)
  • Estimated time remaining

Status updates stream over GraphQL WebSocket subscriptions — no page refresh needed.

Cancelling a Backtest

Click Stop to cancel a running backtest. This immediately terminates the backtest and frees the runner for other jobs.

Viewing Backtest Results

Once complete, the backtest results are available immediately. Click the backtest to view:

  • Overview — summary metrics and statistics (profit, drawdown, Sharpe, etc.)
  • Performance — pair-by-pair performance breakdown
  • Breakdown — detailed per-period analysis
  • Trades — list of every simulated trade with entry/exit reasons
  • Visualize — equity curve, drawdown chart, trade markers
  • Config — the configuration used for this backtest (preserved with the strategy version)

For a complete walkthrough of every metric and tab, see analyzing backtest results.

Running Multiple Backtests

You can run multiple backtests on the same strategy:

  • Different date ranges — test across different market conditions
  • Different trading pairs — compare performance per pair
  • Different stake amounts — test position sizing
  • Different timeframes — compare 1h vs 4h vs daily candles

VolatiCloud stores all backtest results indefinitely, linked to the exact immutable strategy version used. You can compare metrics across versions side-by-side from the Strategy detail page.

Common Backtest Issues

No trades generated

Possible causes:

  • Strategy entry conditions are too restrictive
  • The date range doesn't include market conditions that trigger your conditions
  • Selected pairs don't have data for the selected date range

Fix: relax entry conditions or try a different date range.

Low trade count

Fewer than 30 trades makes statistical analysis unreliable. Try:

  • Extending the date range
  • Adding more pairs
  • Relaxing entry conditions slightly

Backtest failed

Common failure causes:

  • Invalid pair format (use BASE/QUOTE format, e.g., BTC/USDT)
  • Selected pair not available on chosen exchange
  • Date range outside available historical data
  • Strategy code error (for Code Mode strategies)

Check the error message in the backtest detail view.

Hyperparameter Optimization

Freqtrade supports hyperparameter optimization (hyperopt) to find optimal parameter values automatically. VolatiCloud supports hyperopt as an active bot operation mode — when running, the bot enters the hyperopt status. See Bot Overview for the full list of bot statuses, and Hyperparameter Optimization for the configuration guide.

Next Steps