price.ew.option {RND} | R Documentation |
Price Options with Edgeworth Approximated Density
Description
price.ew.option
computes the option prices based on Edgeworth approximated densities.
Usage
price.ew.option(r, te, s0, k, sigma, y, skew, kurt)
Arguments
r |
risk free rate |
te |
time to expiration |
s0 |
current asset value |
k |
strike |
sigma |
volatility |
y |
dividend rate |
skew |
normalized skewness |
kurt |
normalized kurtosis |
Details
Note that this function may produce negative prices if skew
and kurt
are
not well estimated from the data.
Value
call |
Edgeworth based call |
put |
Edgeworth based put |
Author(s)
Kam Hamidieh
References
E. Jondeau and S. Poon and M. Rockinger (2007): Financial Modeling Under Non-Gaussian Distributions Springer-Verlag, London
R. Jarrow and A. Rudd (1982) Approximate valuation for arbitrary stochastic processes. Journal of Finanical Economics, 10, 347-369
C.J. Corrado and T. Su (1996) S&P 500 index option tests of Jarrow and Rudd's approximate option valuation formula. Journal of Futures Markets, 6, 611-629
Examples
#
# Here, the prices must match EXACTLY the BSM prices:
#
r = 0.05
y = 0.03
s0 = 1000
sigma = 0.25
te = 100/365
k = seq(from=800, to = 1200, by = 50)
v = sqrt(exp(sigma^2 * te) - 1)
ln.skew = 3 * v + v^3
ln.kurt = 16 * v^2 + 15 * v^4 + 6 * v^6 + v^8
ew.option.prices = price.ew.option(r = r, te = te, s0 = s0, k=k, sigma=sigma,
y=y, skew = ln.skew, kurt = ln.kurt)
bsm.option.prices = price.bsm.option(r = r, te = te, s0 = s0, k=k, sigma=sigma, y=y)
ew.option.prices
bsm.option.prices
###
### Now ew prices should be different as we increase the skewness and kurtosis:
###
new.skew = ln.skew * 1.10
new.kurt = ln.kurt * 1.10
new.ew.option.prices = price.ew.option(r = r, te = te, s0 = s0, k=k, sigma=sigma,
y=y, skew = new.skew, kurt = new.kurt)
new.ew.option.prices
bsm.option.prices