Omega {PerformanceAnalytics} | R Documentation |
calculate Omega for a return series
Description
Keating and Shadwick (2002) proposed Omega (referred to as Gamma in their original paper) as a way to capture all of the higher moments of the returns distribution.
Usage
Omega(
R,
L = 0,
method = c("simple", "interp", "binomial", "blackscholes"),
output = c("point", "full"),
Rf = 0,
SE = FALSE,
SE.control = NULL,
...
)
Arguments
R |
an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns |
L |
L is the loss threshold that can be specified as zero, return from a benchmark index, or an absolute rate of return - any specified level |
method |
one of: simple, interp, binomial, blackscholes |
output |
one of: point (in time), or full (distribution of Omega) |
Rf |
risk free rate, as a single number |
SE |
TRUE/FALSE whether to ouput the standard errors of the estimates of the risk measures, default FALSE. |
SE.control |
Control parameters for the computation of standard errors. Should be done using the |
... |
any other passthru parameters |
Details
Mathematically, Omega is: integral[L to b](1 - F(r))dr / integral[a to L](F(r))dr
where the cumulative distribution F is defined on the interval (a,b). L is the loss threshold that can be specified as zero, return from a benchmark index, or an absolute rate of return - any specified level. When comparing alternatives using Omega, L should be common.
Input data can be transformed prior to calculation, which may be useful for introducing risk aversion.
This function returns a vector of Omega, useful for plotting. The steeper, the less risky. Above it's mean, a steeply sloped Omega also implies a very limited potential for further gain.
Omega has a value of 1 at the mean of the distribution.
Omega is sub-additive. The ratio is dimensionless.
Kazemi, Schneeweis, and Gupta (2003), in "Omega as a Performance Measure" show that Omega can be written as: Omega(L) = C(L)/P(L) where C(L) is essentially the price of a European call option written on the investment and P(L) is essentially the price of a European put option written on the investment. The maturity for both options is one period (e.g., one month) and L is the strike price of both options.
The numerator and the denominator can be expressed as: exp(-Rf=0) * E[max(x - L, 0)] exp(-Rf=0) * E[max(L - x, 0)] with exp(-Rf=0) calculating the present values of the two, where rf is the per-period riskless rate.
The first three methods implemented here focus on that observation. The first method takes the simplification described above. The second uses the Black-Scholes option pricing as implemented in fOptions. The third uses the binomial pricing model from fOptions. The second and third methods are not implemented here.
The fourth method, "interp", creates a linear interpolation of the cdf of
returns, calculates Omega as a vector, and finally interpolates a function
for Omega as a function of L. This method requires library Hmisc
,
which can be found on CRAN.
Author(s)
Peter Carl
References
Keating, J. and Shadwick, W.F. The Omega Function. working paper. Finance Development Center, London. 2002. Kazemi, Schneeweis, and Gupta. Omega as a Performance Measure. 2003.
See Also
Examples
data(edhec)
Omega(edhec)
Omega(edhec[,13],method="interp",output="point")
Omega(edhec[,13],method="interp",output="full")