Analyzing Backtest Results
Understanding your backtest results is what separates a profitable strategy from a strategy that looks profitable. Each metric measures a different aspect of performance, and a good single number is rarely enough on its own. This guide walks through every tab in VolatiCloud's backtest results and explains how to read each metric in the context of the others.
For the full backtest workflow, see the running backtests guide. For an overview of how the engine simulates trades, see the backtesting overview.
Overview Tab — High-Level Performance
The Overview tab shows your strategy's high-level performance summary at a glance.
Profitability Metrics
Total Profit %
The total return as a percentage of your initial capital over the backtest period.
- >0% — strategy was profitable
- >50% annually — strong performance
- <0% — strategy lost money; needs revision
Profit Factor
Gross Profit ÷ Gross Loss
| Value | Interpretation |
|---|---|
| >2.0 | Excellent — strong edge |
| 1.5–2.0 | Good — solid strategy |
| 1.0–1.5 | Marginal — borderline viable |
| <1.0 | Losing — unprofitable |
Win Rate
The percentage of trades that closed profitably. A high win rate doesn't always mean a profitable strategy — you also need adequate profit per winning trade relative to losses (see profit factor above).
| Win Rate | Typical use |
|---|---|
| >65% | High win rate strategy (lower risk/reward ratio) |
| 50–65% | Balanced strategy |
| <50% | Trend-following (larger wins, more losses) |
The EMA crossover guide shows why a sub-50% win rate can still produce strong long-run results when paired with a favorable win/loss ratio.
Risk Metrics
Max Drawdown
The largest peak-to-trough decline in your portfolio value.
| Drawdown | Risk level |
|---|---|
| <10% | Low risk |
| 10–20% | Moderate risk |
| 20–35% | High risk |
| >35% | Very high risk |
Always check whether you can psychologically tolerate the max drawdown. A 40% drawdown means your portfolio dropped from $10,000 to $6,000 at its worst point — most traders capitulate before recovery.
Sharpe Ratio
Excess Return ÷ Standard Deviation of Returns
Measures return per unit of total volatility.
| Ratio | Rating |
|---|---|
| >2.0 | Excellent |
| 1.0–2.0 | Good |
| 0.5–1.0 | Acceptable |
| <0.5 | Poor |
Sortino Ratio
Similar to Sharpe, but only penalizes downside volatility (losses), not upside volatility (large gains). Higher is better; a Sortino > 2.0 is generally considered strong.
Calmar Ratio
Annual Return ÷ Max Drawdown
Measures how much return you get per unit of drawdown risk.
| Ratio | Rating |
|---|---|
| >3.0 | Excellent |
| 1.0–3.0 | Good |
| <1.0 | Poor |
Activity Metrics
Trade count
Total number of simulated trades. More trades = more statistically reliable results.
- <30 trades — results are not statistically meaningful
- 30–100 trades — minimal confidence
- >100 trades — good statistical confidence
- >300 trades — high confidence
Average trade duration
How long trades are typically held. This indicates the strategy's trading style:
- Minutes — scalping
- Hours — intraday
- Days — swing trading
- Weeks — position trading
Performance Tab — Pair-by-Pair Breakdown
The Performance tab shows a pair-by-pair breakdown of results.
For each trading pair, you'll see:
- Total profit %
- Trade count
- Win rate
- Average profit per trade
- Best/worst trade
Identifying Problem Pairs
Look for pairs that are consistently losing — you may want to exclude them from your bot's whitelist:
BTC/USDT: +12.4% ✓ 68 trades, 61% win rate
ETH/USDT: +8.2% ✓ 45 trades, 58% win rate
XRP/USDT: -5.6% ✗ 23 trades, 39% win rate ← Consider removing
Trades Tab — Per-Trade Detail
The Trades tab shows every individual simulated trade:
| Column | Description |
|---|---|
| Pair | Trading pair |
| Open Time | When trade was entered |
| Close Time | When trade was exited |
| Duration | Trade hold time |
| Open Rate | Entry price |
| Close Rate | Exit price |
| Profit % | Trade profit/loss |
| Exit Reason | Why the trade closed (exit signal, ROI, stop-loss, trailing stop) |
Exit Reasons
| Reason | Description |
|---|---|
exit_signal | Strategy's exit condition triggered |
roi | Minimum ROI target reached |
stop_loss | Stop-loss hit |
trailing_stop_loss | Trailing stop triggered |
force_exit | Manual force-exit |
A high proportion of stop_loss exits may indicate:
- Stop-loss is too tight for the strategy's volatility profile (consider an ATR-based stop)
- Entry conditions need improvement
- Wrong market conditions for this strategy type
Visualize Tab — Charts and Equity Curves
The Visualize tab provides charts:
- Equity curve — your portfolio value over time
- Drawdown chart — drawdown depth over time
- Trade markers — entry/exit points on the price chart
- Profit distribution — histogram of trade profits
Reading the Equity Curve
A healthy equity curve shows:
- Steady upward trend — consistent profitability
- Smooth growth — low volatility
- Quick recovery from drawdowns — resilient strategy
Warning signs:
- Flat periods — strategy not trading / no signals
- Sharp drops — single catastrophic losses
- Downward trend in recent period — strategy degradation; possibly overfitted to older data (see the avoiding overfitting guide)
Comparing Strategy Versions
From the Strategy detail page, compare backtest statistics across immutable strategy versions:
| Metric | Version 1 | Version 2 | Version 3 |
|---|---|---|---|
| Best Profit | 45.2% | 52.8% | 61.3% |
| Win Rate | 58% | 62% | 64% |
| Max Drawdown | 18% | 15% | 12% |
| Sharpe | 1.2 | 1.5 | 1.8 |
This helps you identify which strategy version performs best — and whether parameter changes are improving results or merely shifting them.
Common Pitfalls in Backtest Analysis
Overfitting
If your strategy has very high performance on one specific date range but poor performance on others, it may be overfit — tuned to past data in a way that won't generalize.
Test: run the same strategy on different date ranges, including out-of-sample periods. The walk-forward optimization workflow operationalizes this check.
Insufficient trades
Less than 30 trades makes results statistically unreliable. Extend the date range or add more pairs.
Survivorship bias
Testing only on currently-listed pairs misses coins that failed or were delisted. Use diverse pairs including both high and low liquidity.
Ignoring fees
Make sure your backtest includes realistic trading fees (typically 0.1% per side on Binance). High-frequency strategies can be significantly impacted by fees — a strategy that looks profitable at 0% fees may net out negative once realistic costs are applied.
Trusting a single backtest run
Even a well-designed backtest is one possible sequence of trades among many. Run Monte Carlo simulation on the trade log to understand the distribution of likely outcomes, not just the single point estimate.
Related Guides
- Backtesting Overview — key concepts and metrics explained
- Running a Backtest — step-by-step guide to launching your first backtest
- Hyperparameter Optimization — automatically tune strategy parameters for better results
- Simulations Overview — Monte Carlo techniques for stress-testing your trade log
- Avoiding Overfitting — keep your strategy honest before going live