How to chart a rolling Sortino ratio
Quick answer
To chart a rolling Sortino ratio, compute the annualized excess return over a moving window divided by the downside deviation of those returns, and plot one point per window as a line. Downside deviation is the catch: you square only the returns that fall below your target, but you divide by the full sample size, not by the count of those downside periods - so it is not the standard deviation of negative returns. Because the denominator ignores upside volatility, a Sortino reads higher than the Sharpe on the same series; above 1 is good and above 2 is excellent.
A rolling Sortino ratio takes the same excess-return-over-risk shape as a rolling Sharpe but swaps total volatility for downside deviation, so it only penalizes the moves that actually hurt. Compute the annualized mean excess return over a trailing window, divide by the downside deviation of that window, and plot one point per day as a line. The single decision that makes or breaks it is how you define downside deviation, and most implementations get it subtly wrong.
The denominator everyone gets wrong
Downside deviation is not the standard deviation of the negative returns. The standard convention squares only the returns that fall below a target, sums those squares, and then divides by the full sample size - every period, including the ones that were above target and contributed zero. Divide instead by the count of downside periods, which feels natural, and you inflate the denominator and understate the ratio. Formally, for returns r with target T, downside deviation is the square root of the mean of min(r - T, 0) squared, taken over all n periods. The positive periods stay in the count even though they add nothing to the sum. That asymmetry is the whole point: upside dispersion is not risk, so it does not belong in the numerator of the sum, but the periods still exist and the average is taken over all of them.
Pick a target and say so
The target - also called the minimum acceptable return, or MAR - is conventionally either zero or the risk-free rate. Zero says any loss is downside; the risk-free rate says any return below cash is downside. Both are defensible and they produce different numbers, so the only rule is to state which you used. A Sortino quoted without its MAR is unreadable, the same way a Sharpe is unreadable without its risk-free assumption.
Annualize with the square root of time
The window gives you a periodic ratio; to make it comparable across strategies you annualize. Mean excess return scales linearly with the number of periods per year, and downside deviation scales with the square root of that number, so the ratio scales with the square root of time - multiply a daily figure by the square root of 252, not by 252. This is the same silent 16x error that dogs the rolling Sharpe ratio, and it bites Sortino identically. Annualize numerator and denominator consistently, or not at all, but never mix.
Why the window has to be long enough
Downside deviation is built from only part of the sample - the below-target periods - so it needs more data than a Sharpe to be stable. In a strong stretch a short window can contain very few downside periods, the sum of squares collapses toward zero, and the ratio spikes to a meaningless height. Keep the window long enough to hold a representative count of down periods; for daily data that usually means at least a quarter, and often a full year. Show the window length in the caption so a reader knows how much smoothing they are looking at.
A worked example
Take an illustrative monthly series with a mean excess return of 0.8 percent a month. Suppose its total monthly standard deviation is 3.0 percent, but the downside deviation, measured against a zero target over the full sample, is 2.0 percent because the good months drop out of the sum. The monthly Sharpe is 0.8 / 3.0 = 0.27; the monthly Sortino is 0.8 / 2.0 = 0.40. Annualized by the square root of 12, the Sharpe is about 0.92 and the Sortino about 1.39. Same returns, higher Sortino, because the metric refuses to count the upside swings as risk. These numbers are a textbook illustration - run it on your own series and the gap between the two ratios tells you how asymmetric the return stream is.
Read it against the Sharpe, not alone
The Sortino earns its keep when you chart it beside the Sharpe. When the two lines sit close together, the strategy's volatility is roughly symmetric and the distinction barely matters. When the Sortino runs well above the Sharpe, the swings are lopsided - most of the volatility is upside - and the plain Sharpe has been penalizing it unfairly. When the gap narrows in a drawdown, downside volatility is doing the damage, which is exactly when you want to know. A Sortino above 1 is good and above 2 is excellent, higher thresholds than the Sharpe precisely because the denominator is smaller.
Rolling Sortino is the downside-risk companion to the rolling Sharpe ratio, and it reads best alongside an underwater drawdown panel and the return distribution view that shows the left tail it is reacting to. Quadesto takes a return series, a target, and a window and plots the rolling Sortino with the MAR and window named in the caption and the annualization handled correctly. [QUADESTO-EMBED: rolling Sortino ratio, MAR = 0, 1-year daily window, annualized, Sharpe overlaid for comparison]. The free tier embeds it live with a Made with Quadesto credit; Pro (149 pounds a month) removes the attribution and adds branded themes.