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, ...)$$\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]
#> [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