Skip to main content

Sharpe Ratio vs Sortino Ratio

TL;DR

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

RatioSharpeSortino
< 0Losing strategyLosing strategy
0 – 0.5WeakWeak
0.5 – 1.0AcceptableAcceptable
1.0 – 2.0GoodGood (usually 1.5–2.5 corresponds to "good" Sharpe)
2.0 – 3.0Very goodExcellent
> 3.0Exceptional — audit for curve-fittingExceptional — 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.