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