Table of downside risk, Annualised downside risk, Downside potential, Omega, Sortino ratio, Upside potential, Upside potential ratio and Omega-Sharpe ratio

table.DownsideRiskRatio(R, MAR = 0, scale = NA, digits = 4)

Arguments

R

an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns

MAR

Minimum Acceptable Return, in the same periodicity as your returns

scale

number of periods in a year (daily scale = 252, monthly scale =

digits

number of digits to round results to

References

Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.98

Author

Matthieu Lestel

Examples


data(managers)
table.DownsideRiskRatio(managers[,1:8])
#>                            HAM1   HAM2   HAM3   HAM4   HAM5   HAM6 EDHEC LS EQ
#> monthly downside risk    0.0145 0.0116 0.0174 0.0341 0.0304 0.0121      0.0098
#> Annualised downside risk 0.0504 0.0401 0.0601 0.1180 0.1054 0.0421      0.0341
#> Downside potential       0.0051 0.0061 0.0079 0.0159 0.0145 0.0054      0.0041
#> Omega                    3.1907 3.3041 2.5803 1.6920 1.2816 3.0436      3.3186
#> Sortino ratio            0.7649 1.2220 0.7172 0.3234 0.1343 0.9102      0.9691
#> Upside potential         0.0162 0.0203 0.0203 0.0269 0.0186 0.0165      0.0137
#> Upside potential ratio   0.7503 2.2078 1.0852 0.8009 0.7557 1.0003      1.1136
#> Omega-sharpe ratio       2.1907 2.3041 1.5803 0.6920 0.2816 2.0436      2.3186
#>                          SP500 TR
#> monthly downside risk      0.0283
#> Annualised downside risk   0.0980
#> Downside potential         0.0132
#> Omega                      1.6581
#> Sortino ratio              0.3064
#> Upside potential           0.0218
#> Upside potential ratio     0.7153
#> Omega-sharpe ratio         0.6581

 # don't test on CRAN, since it requires Suggested packages

require("Hmisc")
result = t(table.DownsideRiskRatio(managers[,1:8]))

textplot(format.df(result, na.blank=TRUE, numeric.dollar=FALSE, cdec=c(3,3,1)),
rmar = 0.8, cmar = 2,  max.cex=.9, halign = "center", valign = "top",
row.valign="center", wrap.rownames=20, wrap.colnames=10,
col.rownames=c("red", rep("darkgray",5), rep("orange",2)), mar = c(0,0,3,0)+0.1)
title(main="Downside risk statistics")