Sortino proposed an improvement on the Sharpe Ratio to better account for skill and excess performance by using only downside semivariance as the measure of risk.
SortinoRatio(
R,
MAR = 0,
...,
weights = NULL,
threshold = c("MAR", "mean")[1],
SE = FALSE,
SE.control = NULL
)
an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
Minimum Acceptable Return, in the same periodicity as your returns
any other passthru parameters
portfolio weighting vector, default NULL
Parameter to determine whether we use a "MAR" (default) or "mean" threshold.
TRUE/FALSE whether to ouput the standard errors of the estimates of the risk measures, default FALSE.
Control parameters for the computation of standard errors. Should be done using the RPESE.control
function.
Sortino contends that risk should be measured in terms of not meeting the investment goal. This gives rise to the notion of “Minimum Acceptable Return” or MAR. All of Sortino's proposed measures include the MAR, and are more sensitive to downside or extreme risks than measures that use volatility(standard deviation of returns) as the measure of risk.
Choosing the MAR carefully is very important, especially when comparing disparate investment choices. If the MAR is too low, it will not adequately capture the risks that concern the investor, and if the MAR is too high, it will unfavorably portray what may otherwise be a sound investment. When comparing multiple investments, some papers recommend using the risk free rate as the MAR. Practitioners may wish to choose one MAR for consistency, several standardized MAR values for reporting a range of scenarios, or a MAR customized to the objective of the investor.
$$ SortinoRatio=\frac{(\overline{R_{a} - MAR})}{\delta_{MAR}} $$ where
\(\delta_{MAR}\) is the DownsideDeviation
.
Sortino, F. and Price, L. Performance Measurement in a Downside Risk Framework. Journal of Investing. Fall 1994, 59-65.
SharpeRatio
DownsideDeviation
SemiVariance
SemiDeviation
InformationRatio
# NOT RUN {
data(managers)
round(SortinoRatio(managers[, 1]),4)
round(SortinoRatio(managers[, 1:8]),4)
# }
Run the code above in your browser using DataLab