Login  Register

Re: lmm process

Posted by Klaus Spanderen on Nov 19, 2005; 11:53am
URL: http://quantlib.414.s1.nabble.com/LMM-and-finite-difference-methods-tp4222p4225.html

Enrico Michelotti wrote:

>1- Why th first forward is set to start at time zero and not at any time?
>If you have a general schedule not starting today? Do I need to interpolate
>rates?

At the time being it is more important for me to get various volatility and
correlation parameterizations working. Supporting non matching accrual
periods should IMO be implemented after a "real" calibration of libor forward
models is working.

>2- The simulated forwards are very good (and also caplets) for maturities
>shorter than 5y-8y. But if the mk caplet volatility is not well behaved (or
>sufficiently smooth) the process crasches during the costruction of lambdas:
>In fact if vol2 = vol(i)*vol(i)*t(i) is smaller then vol1 =
>vol(i-1)*vol(i-1)*t(i-1) then l = vol2- vol1 <0 and sqrt(l/delta(i-1))
>crashes. Dou you have any ideas? Do you think could be possible to use a
>parametric version of caplet volatility?

The caplet volatility boostrapping is known to be "sensitive" if the caplet
volatility is not sufficiently smooth;-(

In my current version the lmm process can be parameterized using different
volatility and correlation models including the caplet volatility
bootstrapping but also parametric versions are available. (see  e.g.
http://www.exoticderivatives.com/Mas_papers.html). For the parametric
versions we need the calibration facility working and that is what I'm
currently working on (calibration helper stuff etc.). Hopefully I get this
stuff ready before 0.3.12 is out.

>3- Why does the drift function take the deltas instead the accrual periods? I
>think it should use the accrual period instead, due to the fact that: P(ti,
>ti+1) = 1/(1+ delta(i)*Fi) and the delta should be the accrual period on
>which the forward is built.

At the beginning I followed the Hull White article
(www.rotman.utoronto.ca/~amackay/fin/libormktmodel2.pdf) where the deltas are
defined as the time periods between the reset dates. I fixed this imprecision
for the CapletLiborMarketModelProcess::discountBond method but I've missed
the drift method.  For non-pathological situations one will hardly recognize
the difference in a Monte-Carlo simulation. I ran some examples with millions
of paths and didn't get differences bigger than the MC error. Thanks for the
hint, I'll fix this with the next version.

cheers
_______________________________________________________
Klaus Spanderen
Hubertustal 13f
48734 Reken (Germany)
Email: [hidden email]
(remove NOSPAM from the address)
http://www.spanderen.de