Omega excess return is another form of downside risk-adjusted return. It is calculated by multiplying the downside variance of the style benchmark by 3 times the style beta.

OmegaExcessReturn(Ra, Rb, MAR = 0, ...)

Arguments

Ra

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

Rb

return vector of the benchmark asset

MAR

the minimum acceptable return

…

any other passthru parameters

Details

$$\omega = r_P - 3*\beta_S*\sigma_{MD}^2$$

where \(\omega\) is omega excess return, \(\beta_S\) is style beta, \(\sigma_D\) is the portfolio annualised downside risk and \(\sigma_{MD}\) is the benchmark annualised downside risk.

References

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

Examples

data(portfolio_bacon) MAR = 0.005 print(OmegaExcessReturn(portfolio_bacon[,1], portfolio_bacon[,2], MAR)) #expected 0.0805
#> [1] 0.08053795
data(managers) MAR = 0 print(OmegaExcessReturn(managers['1996',1], managers['1996',8], MAR))
#> [1] 0.1325302
print(OmegaExcessReturn(managers['1996',1:5], managers['1996',8], MAR))
#> HAM1 HAM2 HAM3 HAM4 HAM5 #> Omega Excess Return (MAR = 0) 0.1325302 NA 0.3991416 0.1985718 NA