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, ...)
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 |
$$\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.
Carl Bacon, Practical portfolio performance measurement and attribution, second edition 2008 p.103
data(portfolio_bacon) MAR = 0.005 print(OmegaExcessReturn(portfolio_bacon[,1], portfolio_bacon[,2], MAR)) #expected 0.0805#> [1] 0.08053795data(managers) MAR = 0 print(OmegaExcessReturn(managers['1996',1], managers['1996',8], MAR))#> [1] 0.1325302print(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