Sharpe Ratio vs Sortino Ratio
Both measure return per unit of risk. The Sharpe Ratio uses total volatility (both upside and downside). The Sortino Ratio uses only downside volatility — it doesn't penalize big up-days. For trading strategies where upside volatility is desirable, Sortino is usually the better measure.
The formulas
Sharpe Ratio:
Sharpe = (Return − Risk-Free Rate) / Standard Deviation of Returns
Sortino Ratio:
Sortino = (Return − Risk-Free Rate) / Downside Deviation
Downside deviation is the standard deviation calculated using only returns below a target (usually zero or the risk-free rate).
Both are typically reported annualized. For daily returns on futures, you multiply the raw ratio by √252 (number of trading days per year).
Why Sortino exists
Standard deviation treats a big up-day the same as a big down-day — both count as "volatility." But if you're a trader, a big up-day is exactly what you want. Sharpe penalizes it anyway.
Sortino fixes that asymmetry. It only counts deviations from the target that are negative. A strategy with occasional huge wins and steady small losses gets a much better Sortino than Sharpe.
What values are good
| Ratio | Sharpe | Sortino |
|---|---|---|
| < 0 | Losing strategy | Losing strategy |
| 0 – 0.5 | Weak | Weak |
| 0.5 – 1.0 | Acceptable | Acceptable |
| 1.0 – 2.0 | Good | Good (usually 1.5–2.5 corresponds to "good" Sharpe) |
| 2.0 – 3.0 | Very good | Excellent |
| > 3.0 | Exceptional — audit for curve-fitting | Exceptional — audit |
For context: the S&P 500's long-term Sharpe is around 0.4–0.5. A strategy Sharpe of 1.0 is genuinely good. A backtest Sharpe of 4.0 is probably noise or over-fitting.
Sortino is usually higher than Sharpe
Because downside deviation only captures negative days and total standard deviation captures both, Sortino ≥ Sharpe (almost always). A strategy with Sharpe 1.2 typically shows Sortino 1.6–1.8.
The gap tells you something: if Sortino is much higher than Sharpe, the strategy has asymmetric volatility — mostly small losses punctuated by large gains. If Sortino ≈ Sharpe, the upside and downside are roughly symmetric.
Calculating from a trade log
import numpy as np
import pandas as pd
trades = pd.read_csv("trades.csv")
# Convert to daily returns; assumes "date" column and "pnl" in dollars on a fixed equity base
daily = trades.groupby("date")["pnl"].sum() / 100_000 # pct return on $100k account
rf = 0.04 / 252 # 4% annual risk-free, daily
# Sharpe (annualized)
sharpe = (daily.mean() - rf) / daily.std() * np.sqrt(252)
# Sortino (annualized)
downside = daily[daily < 0]
sortino = (daily.mean() - rf) / downside.std() * np.sqrt(252)
print(f"Sharpe: {sharpe:.2f}")
print(f"Sortino: {sortino:.2f}")
Which should you care about?
For a systematic trading strategy: Sortino, primarily. Your goal is asymmetric payoff — big wins, controlled losses. Sortino rewards exactly that structure.
For fund reporting / external investors: Sharpe, because it's the industry standard. Allocators compare everything in Sharpe.
Most traders track both.
Common mistakes
- Not annualizing. Raw daily Sharpe of 0.08 sounds bad until you annualize it to ≈1.27. Always report annualized.
- Using the wrong risk-free rate. In rate environments above 0%, ignoring it inflates both ratios. Use current T-bill rate.
- Comparing ratios across wildly different timeframes. A 1-year Sharpe and a 10-year Sharpe are not apples to apples. Long samples tend to have lower Sharpe because outlier events pull down the average.
Frequently Asked Questions
What is a good Sharpe ratio for a trading strategy?
Annualized Sharpe of 1.0 is good, 2.0 is very good, 3.0+ is exceptional and worth auditing for over-fitting. For reference, the S&P 500's long-term Sharpe is roughly 0.4–0.5.
Sharpe vs Sortino — which is higher?
Sortino is almost always higher than Sharpe because it only counts downside volatility. A typical ratio is Sortino ≈ 1.3–1.5× Sharpe. When they're very close, the strategy has symmetric upside/downside.
Why do traders prefer Sortino?
Because trading strategies intentionally seek upside volatility (big winners). Sharpe punishes that; Sortino doesn't. For asymmetric-payoff strategies like trend-following, Sortino is the more honest measure.
How do I annualize Sharpe or Sortino?
Multiply the ratio calculated on daily returns by √252 (trading days per year). For weekly data, use √52. For monthly, √12. Always report annualized unless the reader knows the raw timeframe.