Skip to main content
Thrive is live on Product Hunt.Check us out (opens in a new tab)

Downside

Sortino and Calmar calculator downside, not all noise

Sortino uses downside deviation instead of total volatility. Calmar divides annualized return by max drawdown. Same closes, two ratios that punish different mistakes.

Closes

One column per asset, oldest first. The sample is already filled. First close 64203.60.

BTC

Sortino 1.30

Calmar is 1.40: annualized compounded return 29.2% divided by max drawdown 20.9%.

Sortino
1.30

Annualized excess over downside deviation

Calmar
1.40

Annualized return over max drawdown

Downside deviation
1.4%

Per period, below your floor

Max drawdown
20.9%

Denominator of Calmar

  • Each row is daily, 365 periods a year. Annualized figures use 365 periods.
  • 90 closes in the series. Computed by Thrive's portfolio engine. Rounded to the digit shown.

Upside volatility is not a defect

Sharpe treats a sharp rally as risk. Sortino does not. It divides excess return by the semideviation below a minimum acceptable return. This page uses your risk-free rate as that floor.

Calmar ignores day-to-day noise and asks one question: how much annualized return did you earn per unit of the worst peak-to-trough loss? A smooth 8% with a 40% hole scores poorly. A jumpy 8% with a 10% hole scores well.

How this page runs it

Thrive's portfolio engine measures semideviation from the closes and the minimum acceptable return, plus the mean return and the maximum drawdown of the same path. Sortino is excess mean over semideviation, annualized. Calmar is the compounded annualized return divided by max drawdown.

If the path never falls, Calmar is undefined. The page says so instead of printing infinity.

How to run it

  1. Paste closes.
  2. Set the floor. Zero means Sortino only counts negative periods.
  3. Read Sortino next to Sharpe. A wide gap means the volatility was mostly upside.
  4. Read Calmar next to max drawdown so the ratio has a denominator you can see.

FAQ

People also ask

Excess return divided by downside deviation. This page annualizes it the same way as the Sharpe page, using the square root of the number of periods in a year.

Compounded annualized return divided by the maximum drawdown in the same window. A Calmar of 1 means you earned one unit of annual return per unit of worst loss.

The annual risk-free field is converted to a per-period floor and sent as the minimum acceptable return. Use zero if you only want to penalize losing periods.

The series made most of its volatility on up days. Sortino is doing what you asked. Still check the drawdown. A high Sortino can sit on top of one ugly hole.

Downside on the series. Downside on the account.

Sortino on Bitcoin is a market fact. Sortino on your fills is whether you kept the upside and cut the rest. That is the journal.