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

Author

Matthieu Lestel

Examples


data(portfolio_bacon)
MAR = 0.005
print(OmegaExcessReturn(portfolio_bacon[,1], portfolio_bacon[,2], MAR)) #expected 0.0805
#>            [,1]
#> [1,] 0.08053795

data(managers)
MAR = 0
print(OmegaExcessReturn(managers['1996',1], managers['1996',8], MAR))
#>           [,1]
#> [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