Reading results
Every backtest produces three things: stat cards, an interactive chart, and a trades table.
The stat cards
Seven numbers summarise the run. Their colour-coding tells you at a glance whether the strategy was healthy.
Sharpe ratio
The single most important number. It measures risk-adjusted return — how much profit you got per unit of volatility.
| Sharpe | Interpretation |
|---|---|
| ≥ 2.0 | Excellent (rare in practice) |
| 1.5 – 2.0 | Strong |
| 1.0 – 1.5 | Good |
| 0.5 – 1.0 | Marginal — strategy might be picking up randomness |
| < 0.5 | Probably not worth deploying |
| 0 | Could not be computed (only one trading day in the run) |
Sharpe is annualised, computed from daily PnL using all calendar days in the run's date range.
Win rate
The percentage of trades that closed profitable. High win rate is not the same as profitable — a strategy with 80% wins of $1 and 20% losses of $10 is a money pit.
Avg duration
How long the average trade is held. Useful sanity check — a strategy meant to scalp shouldn't be holding for hours.
Best day / Worst day
The single most-profitable and most-losing day in the run.
A worst day of $0 with all-positive days means the strategy never had a losing day in this dataset (small sample — be cautious).
Avg win / Avg loss
The arithmetic mean profit on winning trades and mean loss on losing trades. Together with win rate they reconstruct the expectancy per trade:
expectancy = win_rate × avg_win − (1 − win_rate) × avg_loss
Positive expectancy is necessary (but not sufficient) for profitability.
The chart
The candlestick chart shows the price series with every trade marked.
| Marker | Meaning |
|---|---|
| 🟢 ↑ below bar | Buy entry |
| 🔴 ↓ above bar | Sell entry |
| 🟢 ○ above/below bar | Win exit |
| 🔴 ■ above/below bar | Loss exit |
Toolbar controls
- Time range presets —
1m,3m,5m,10m,15m,30m,4h,Day,Week,Month,All. All measured from the last candle. - Custom — pick start/end dates explicitly. The date pickers are bounded by what's actually in the data file.
- Indicators — toggle which line overlays (EMA, SMA, etc.) are visible.
Chart navigation
- Drag — pan
- Mouse wheel — zoom in/out
- Hover — read the OHLCV under the crosshair
The trades table
Switch to the Trades tab to see every individual trade as a row:
| Column | Meaning |
|---|---|
| # | Trade ID |
| Side | BUY (long) or SELL (short) |
| Entry time | Candle close where the position opened |
| Entry $ / Exit $ | Effective entry and exit prices (after slippage) |
| PnL | Net profit/loss in dollars |
| Result | WIN / LOSS / BREAKEVEN |
| Exit reason | TP / SL / KILL_SWITCH / END_OF_DATA |
Sort by clicking column headers (when supported) or scroll through to spot patterns — for example, if all losses happened in the same day or at a particular hour.
Score & grade
The score is a 100-point summary of seven sub-metrics:
| Component | Max points | What's rewarded |
|---|---|---|
| Net profit | 20 | Higher % return |
| Win rate | 15 | Higher % wins |
| Max drawdown | 20 | Lower drawdown |
| Profit factor | 15 | More profit per dollar of loss |
| Sharpe ratio | 15 | Risk-adjusted return |
| Lot risk | 10 | Smaller max lot used |
| Stability | 5 | Shorter loss streaks |
Grade brackets:
| Grade | Range |
|---|---|
| A | 80–100 |
| B | 60–79 |
| C | 40–59 |
| D | 20–39 |
| F | 0–19 |
A score is a starting point for evaluation, not a verdict. Two A-grade strategies can have very different risk profiles.