Backtest
Run your first backtest and interpret the results
With your algorithm created, it’s time to see how it would have performed on historical data.
-
Configure a Backtest
With your algorithm selected, open the backtest panel:
- Symbol:
BTC/USDC - Start Date: 6 months ago
- End Date: Today
- Starting Capital:
$1,000(or whatever notional you want to simulate) - Leverage: starts at
1x— increase if your live deployment will use higher leverage
- Symbol:
-
Run the Backtest
Click Run Backtest. The engine simulates your strategy against 6 months of historical BTC data using the exact same logic that would run live. Wait for it to complete.
-
Read Your Results
The results panel shows everything you need:
Key metrics — Check these first:
Metric What It Tells You Good Range Win Rate % of trades that were profitable > 40% (depends on R:R) Profit Factor Gross profit / gross loss > 1.5 Sharpe Ratio Risk-adjusted return (annualized) > 1.0 Sortino Ratio Like Sharpe but only penalizes downside > 1.5 Max Drawdown Largest peak-to-trough decline < 20% Equity curve — This is the visual story of your strategy. A steadily rising curve is what you want. Sharp drops are drawdowns.
Indicator usefulness — Each indicator gets a score (0-100) showing how much it contributes. Low scores mean the indicator might be redundant.
-
Interpret What You See
Ask yourself:
- Sharpe > 1.0? The strategy has risk-adjusted edge.
- Max drawdown < 20%? The risk is manageable.
- Win rate + profit factor make sense together? A 35% win rate with 3:1 R:R is fine.
- Equity curve smooth? Or does all profit come from 2-3 lucky trades?
If the numbers don’t look great — that’s normal for a first attempt! The next step is to iterate: adjust thresholds, try different indicators, or test on a different timeframe.
-
Switch to Optimize Mode
Happy with your strategy logic but not sure about the exact parameter values? Instead of manually tweaking and re-running, let the optimizer find better settings for you.
At the top of the Test Workspace, switch from Backtest to Optimize. The panel changes to show optimization configuration.
-
Configure Your Optimization
Set up three things:
1. Optimization Goal — What should the optimizer maximize?
Goal Best For Balanced (Sharpe) General-purpose — good risk-adjusted returns (default) Max Sharpe Maximizing risk-adjusted performance Min Drawdown Conservative strategies — minimize worst-case loss Max PnL Aggressive strategies — maximize raw profit 2. Search Ranges — Which parameters should the optimizer vary, and within what bounds?
The optimizer comes pre-loaded with sensible defaults:
Parameter Range Step RSI Threshold 20–40 1 Stop Loss % 0.5–3.0 0.1 Take Profit % 0.5–5.0 0.1 Use the range sliders to adjust bounds, or click + Add to include more parameters. Each parameter needs a name, a path to the algorithm setting it controls, and a range.
3. Validation Settings — How should the optimizer split historical data?
Setting What It Does Example Train Days Window used to test each parameter set 90 Test Days Out-of-sample window to validate 20 Step Days How far the window slides forward between folds 20 4. Trials — How many parameter combinations to try (default: 10, minimum: 5).
-
Run the Optimization
Click Run Optimize. The optimizer uses Bayesian search (Optuna TPE) to intelligently explore parameter combinations — each trial informs the next, so it converges faster than random search.
Watch the progress bar as trials complete. You’ll see:
- Trial count — how many have run out of the total
- Best score — the highest score found so far
- Top 5 leaderboard — the best parameter combinations ranked by score, with test PnL for each
If you see the score plateau early, hit Stop Search — results from completed trials are preserved.
-
Read Your Optimization Results
When the optimizer finishes, review the results:
- Best parameters — the parameter values that scored highest
- Leaderboard — top 5 trials with their scores and test PnL
- Fold detail — performance breakdown per cross-validation fold (switch to the Folds tab)
Take the best parameters, update your algorithm, and run a fresh backtest to confirm. If the results hold up — you’re ready to deploy.
What’s Next?
Section titled “What’s Next?”| Want to… | Go to |
|---|---|
| Deploy your algorithm live | Deploy Walkthrough → |
| Learn all backtest metrics in depth | Backtest Features → |
| Understand optimization and cross-validation | Backtest Features → Optimization |