Description Usage Arguments Details Value Author(s) References Examples
mln.extraction
extracts the parameters of the mixture of two lognormals densities.
1 2 3 |
initial.values |
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 |
hessian.flag |
if F, no hessian is produced |
cl |
list of parameter values to be passed to the optimization function |
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.
alpha.1 |
extracted proportion of the first lognormal. Second one is 1 - |
meanlog.1 |
extracted mean of the log of the first lognormal |
meanlog.2 |
extracted mean of the log of the second lognormal |
sdlog.1 |
extracted standard deviation of the log of the first lognormal |
sdlog.2 |
extracted standard deviation of the log of the second lognormal |
converge.result |
Did the result converge? |
hessian |
Hessian matrix |
Kam Hamidieh
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-4
E. Jondeau and S. Poon and M. Rockinger (2007): Financial Modeling Under Non-Gaussian Distributions Springer-Verlag, London
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #
# Create some calls and puts based on mln and
# see if we can extract the correct values.
#
r = 0.05
y = 0.02
te = 60/365
meanlog.1 = 6.8
meanlog.2 = 6.95
sdlog.1 = 0.065
sdlog.2 = 0.055
alpha.1 = 0.4
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
s0 = 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)$s0
s0
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
###
### The extracted values should be close to the actual values.
###
extract.mln.density(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, hessian.flag = FALSE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.