R/table.DownsideRiskRatio.R
table.DownsideRiskRatio.RdTable 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)Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.98
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")