Net profit tells you how much a backtest made; it says nothing about how rough the ride was. Risk-adjusted ratios exist to fix that, and the two you'll see everywhere are Sharpe and Sortino. They look almost identical on paper — same numerator, different denominator — but that one difference changes what they reward and punish, and for certain strategy profiles the two ratios genuinely disagree. This guide covers what each one measures on a backtest, how they're computed and annualized, and how to read a disagreement between them.
The definitions, precisely
Both ratios start from a series of returns — per-trade or per-day percentage changes in equity — and both use the same numerator: the mean return in excess of a risk-free rate (for short-horizon strategy analysis the risk-free rate is often set to zero, which simplifies the numerator to just the mean return).
- Sharpe ratio = mean excess return ÷ standard deviation of all returns. Every deviation from the mean counts as risk — a +4% day widens the denominator exactly as much as a −4% day.
- Sortino ratio = mean excess return ÷ downside deviation — the standard deviation computed only over returns below the target (typically zero). Upside surprises don't enter the denominator at all.
That's the whole difference. Sharpe treats volatility as risk regardless of direction; Sortino takes the position that nobody complains about upside volatility, so only downside dispersion should count against a strategy.
Annualization: the √252 convention
A raw Sharpe computed on daily returns is a per-day number and looks uselessly small (0.05-ish values are common). The convention is to annualize by multiplying by the square root of the number of periods per year: √252 for daily returns (252 trading days), √52 for weekly, √12 for monthly. A daily Sharpe of 0.08 annualizes to roughly 0.08 × 15.87 ≈ 1.27.
Two practical notes. First, the √-scaling assumes returns are roughly independent across periods — a fair working assumption for most strategy analysis, but worth remembering it's an assumption. Second, always check what was annualized before comparing numbers across tools: a Sharpe computed on per-trade returns and annualized by trade count will not match one computed on daily equity changes, even for the same strategy. When two sources disagree on "the" Sharpe, the computation basis is the usual reason.
Why you need an equity base — and why TradingView doesn't show these
Here's the detail that trips people up with Strategy Tester exports: the trade list reports P&L in dollars, but Sharpe and Sortino are defined on returns. A $500 winning trade is a 5% return on $10,000 of equity and a 0.5% return on $100,000 — same dollar row, order-of-magnitude different return, and therefore a different ratio. Converting dollar P&L into a return series requires knowing the equity base each trade was risked against.
This is exactly why DataViz Studio asks for a starting-equity input before computing Sharpe and Sortino: without it, any ratio derived from a dollar-denominated trade list would be arbitrary. It's also part of why TradingView's standard performance report doesn't show either ratio — you get net profit, profit factor, max drawdown and win rate, but no risk-adjusted return figures. If you want them, you export the trade list and compute them downstream; the export mechanics (and the traps in the file format) are covered in How to Export TradingView Strategy Tester Results to Excel.
When the two ratios disagree — and what that tells you
For a strategy whose returns are roughly symmetric — winners and losers of similar size — Sharpe and Sortino move together and the choice barely matters. The interesting case is asymmetric return distributions, and trading strategies are asymmetric by design.
Consider a trend-following profile: many small losses, occasional very large winners. Those big winning trades are large deviations from the mean, so they inflate the all-returns standard deviation — Sharpe punishes the strategy for its best trades. Sortino's denominator ignores them entirely (they're above target), so the same strategy typically reads meaningfully higher on Sortino. The reverse profile — a high-win-rate strategy that collects small gains but takes rare large losses — shows the opposite pattern: its downside deviation is dominated by those tail losses, and Sortino reads relatively worse than Sharpe.
| Return profile | Sharpe | Sortino | Why |
|---|---|---|---|
| Big winners, small losses | Understated | Higher | Upside outliers widen Sharpe's denominator only |
| Small winners, rare big losses | Flattered | Lower | Tail losses dominate downside deviation |
| Symmetric wins/losses | Broadly agree | Volatility is similar on both sides | |
Read as a pair, the two ratios become a shape diagnostic. Sortino well above Sharpe describes a sample whose volatility was mostly on the profitable side. Sortino at or below Sharpe on a "high win rate" strategy is worth a close look at the loss tail — the smooth equity curve may be punctuated by rare deep losses that the win rate hides. Either way, these are descriptions of the historical sample, not predictions; a ratio computed on one path of history inherits every limitation of that history, including the overfitting risks discussed in Is My Backtest Overfit? A Practical Stability Test.
Computing both from a Strategy Tester export
- Export the report to .xlsx and take the closed trades from the "List of trades" sheet. Exclude open positions — TradingView writes them into the list as exit rows dated at export time, and including one distorts the return series (see The Open-Position Trap in TradingView Backtest Exports).
- Choose an equity base and convert each trade's dollar P&L to a return — simplest is P&L ÷ starting equity; compounding against running equity is the more precise variant.
- Compute the mean return (subtract a risk-free rate if you're using one).
- For Sharpe, divide by the standard deviation of all returns. For Sortino, divide by the standard deviation of the negative returns only (with below-target counted and above-target contributing zero).
- Annualize by √(periods per year) — √252 if you built a daily return series, or scale by trades-per-year if working per-trade — and state which basis you used.
This is straightforward spreadsheet work but easy to get subtly wrong (mixed open/closed rows, wrong deviation formula for Sortino, silent basis mismatches). DataViz Studio computes both ratios from your export automatically once you provide the equity input, alongside the rest of the risk metrics — and the free instant report gives you win rate, profit factor, max drawdown, and hourly P&L from the same file with no signup, processed in memory only.
Which one should you trust?
Neither, alone — and "trust" is the wrong frame. Each ratio compresses an entire return distribution into one number, and each throws away different information: Sharpe discards the direction of volatility, Sortino discards the upside shape entirely. Used together they describe more of the distribution than either does alone, and a large gap between them is itself informative about asymmetry in the sample. Both also share every weakness of aggregate metrics: no time dimension, no sense of whether the result was earned steadily or in one lucky stretch, and full dependence on the equity base and annualization choices being stated.
Where they fit in the broader picture — alongside profit factor, drawdown, and capture ratio — is laid out in TradingView Backtest Metrics Explained. The one-sentence summary: Sharpe measures return per unit of all volatility; Sortino measures return per unit of downside volatility; the difference between them measures the asymmetry of your historical returns. All three are facts about a sample — worth knowing precisely, and worth never mistaking for a forecast.
