| mln.objective {RND} | R Documentation |
Objective function for the Mixture of Lognormal
Description
mln.objective is the objective function to be minimized in extract.mln.density.
Usage
mln.objective(theta, r, y, te, s0, market.calls, call.strikes, call.weights,
market.puts, put.strikes, put.weights, lambda = 1)
Arguments
theta |
initial values for the optimization |
r |
risk free rate |
y |
dividend yield |
te |
time to expiration |
s0 |
current asset value |
market.calls |
market calls (most expensive to cheapest) |
call.strikes |
strikes for the calls (smallest to largest) |
call.weights |
weights to be used for calls |
market.puts |
market calls (cheapest to most expensive) |
put.strikes |
strikes for the puts (smallest to largest) |
put.weights |
weights to be used for puts |
lambda |
Penalty parameter to enforce the martingale condition |
Details
mln is the density f(x) = alpha.1 * g(x) + (1 - alpha.1) * h(x), where g and h are densities of two lognormals with parameters (mean.log.1, sdlog.1) and (mean.log.2, sdlog.2) respectively.
Value
obj |
value of the objective function |
Author(s)
Kam Hamidieh
References
F. Gianluca and A. Roncoroni (2008) Implementing Models in Quantitative Finance: Methods and Cases
B. Bahra (1996): Probability distribution of future asset prices implied by option prices. Bank of England Quarterly Bulletin, August 1996, 299-311
P. Soderlind and L.E.O. Svensson (1997) New techniques to extract market expectations from financial instruments. Journal of Monetary Economics, 40, 383-429
E. Jondeau and S. Poon and M. Rockinger (2007): Financial Modeling Under Non-Gaussian Distributions Springer-Verlag, London
Examples
#
# The mln objective function should be close to zero.
# The weights are automatically set to 1.
#
r = 0.05
te = 60/365
y = 0.02
meanlog.1 = 6.8
meanlog.2 = 6.95
sdlog.1 = 0.065
sdlog.2 = 0.055
alpha.1 = 0.4
# This is the current price implied by parameter values:
s0 = 981.8815
call.strikes = seq(from = 800, to = 1200, by = 10)
market.calls = price.mln.option(r=r, y = y, te = te, k = call.strikes,
alpha.1 = alpha.1, meanlog.1 = meanlog.1, meanlog.2 = meanlog.2,
sdlog.1 = sdlog.1, sdlog.2 = sdlog.2)$call
put.strikes = seq(from = 805, to = 1200, by = 10)
market.puts = price.mln.option(r = r, y = y, te = te, k = put.strikes,
alpha.1 = alpha.1, meanlog.1 = meanlog.1, meanlog.2 = meanlog.2,
sdlog.1 = sdlog.1, sdlog.2 = sdlog.2)$put
mln.objective(theta=c(alpha.1,meanlog.1, meanlog.2 , sdlog.1, sdlog.2),
r = r, y = y, te = te, s0 = s0,
market.calls = market.calls, call.strikes = call.strikes,
market.puts = market.puts, put.strikes = put.strikes, lambda = 1)