Re: Error "irregular fixings not (yet) supported" in LMM calibration with CapHelpers

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Error "irregular fixings not (yet) supported" in LMM calibration with CapHelpers

luca ferraro-2
Klaus Spanderen <klaus <at> spanderen.de> writes:

> Reference date of the term structure used to instantiate the
> calibraton helper and the index should be
>
> index->fixingCalendar().advance(todaysDate, index->fixingDays(),
> Days);
>
> I guess the best way to fix it is to roll your bootstrapped curve
> forward by index->fixingDays()

Klaus, many thanks for your answers.

Anyway, I have many doubts and questions about how to set up QL LMM
calibration, since very little documentation is available. I already
know nobody would answer this kind of post :-) I'm going to attend
Mark's course, but I wish to be already able to do the basics.

Let's start with an example:

Suppose I want to price a 1x4 vanilla european swaption (1Y frequency
for the fixed leg, 6M for the floating EURIBOR 6M index) ... we need to
evolve the forward rates F(t;T_{i-1},T_{i}), where T={1Y6M, ... , 5Y},
up to time t=T_{1Y}.

What I would do in QuantLib is to choose a Volatility and Corr model and
build a LFM process of size 8, bound to a EURIBOR 6M tenor index. Right?
(Any method or class to reduce rank size of the process?)

Questions on calibration with QL:

Now I need 8 instantaneous volatilities \sigma_{T_i} to be calibrated,
using at least 8 caplet vols, related to the following atm caplets:
Caplet1(T_{1Y},T_{1Y6M}) , Caplet2(T_{1Y6M}, T_{2Y}), ... ,
Caplet8(T_{4Y6M}, T_{5Y}). Market provides me 1 year tenor ATM CAPs vols.

1) Which CapHelpers do QL need? I would provide market quoted ATM CAPS
starting from 2Y tenor up to 5 years, is it enough/correct in current QL
LMM framework?

2) Do I have to provide CAPS with the same tenor of the underlying LMM
index? (ATM CAPS quotes are tipically 1Y based, while in my example I
use a EURIBOR 6M index for the LMM process).

3) What if I have "holes" between available market atm caps quotes
(tipically between 10Y and 30Y): how do I extrapolate atm cap vol from
market data?

I really hope someone would answer or at least point me to the right
direction. An example of a LMM calibration with real market data to
price a vanilla swaption would be really appreciated!

Best regards,

luca

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: Error "irregular fixings not (yet) supported" in LMM calibration with CapHelpers

LotharK
This post was updated on .
Hey Luca,

I have pretty much the same problem as you: I also want to setup a QL LMM calibration and started to reconstruct the implementations in "libormarketmodel.cpp" of the testsuite.  

According to Brigo&Mercurio's "Interest Rate Models" (ยง6.4 ff) the purpose of the whole calibration process is the calibration to Caplet ATM volatilities and Swaption ATM volatilities. To this end, one chooses a certain constant-volatility model (e.g. the LmExtLinearExponentialVolModel, i.e.
sigma_{i} = phi_{i}((a(T_{i-1}-t)+d)*exp(-b(T_{i-1}-t))+c) and a certain correlation model (e.g. LmLinearExponentialCorrelationModel).

Then according to the book the parameters phi_{i} can be used to calibrate automatically caplet volatilities via: phi_{i}^2 = v_{i}[MKT]^2/(integral[0][T_{i-1}] sigma{i})^2, where v_{i}[MKT] are caplet volatilities inferred from market data. The additional free parameters a, b, c and d can be used for the swaption calibration.

The market provides quoted ATM Cap volatilities e.g. starting from 2Y tenor up to 5 years. I'm wondering now how to get the corresponding caplet volatilities for the above calibration? Is there any stripping algorithm in QL to recover the caplet volatilities from the market quoted cap volatilities?

It seems to me that the CapHelper doesn't provide such an algorithm and expects to get cap ATM volatilities and not caplet volatilities as an input. Or am I wrong?

Luca, did you find answers or solutions to your questions? If so, it would be great if shared them with me.
I'd really appreciate any kind of help or hint and hope that someone's experienced on such a special issue!

Best regards,
Lothar
Reply | Threaded
Open this post in threaded view
|

Re: Error "irregular fixings not (yet) supported" in LMM calibration with CapHelpers

Klaus Spanderen-2
Hi

> Then according to the book the parameters phi_{i} can be used to calibrate
> automatically caplet volatilities via: phi_{i}^2 =
> v_{i}[MKT]^2/(integral[0][T_{i-1}] sigma{i})^2, where v_{i}[MKT] are caplet
> volatilities inferred from market data. The additional free parameters a,
> b, c and d can be used for the swaption calibration.
>
> The market provides quoted ATM Cap volatilities e.g. starting from 2Y tenor
> up to 5 years. I'm wondering now how to get the corresponding caplet
> volatilities for the above calibration? Is there any stripping algorithm in
> QL to recover the caplet volatilities from the market quoted cap
> volatilities?

No, the optimizer has to choose the parameter of the volatility model to match
the ATM cap volatilities best (and at the same time to match the swaptions as
well). Within the calibration process the caps are priced using the
AnalyticCapFloorEngine (which is using the integratedCovariance method of the
volatility model). The LfmHullWhiteParameterization is using Caplet Vols to
set-up an Libor Model Process.

BTW.: The old libor model "legacy" code. Please have a look at the newer
market model implementation;-)

regards
 Klaus

--
Klaus Spanderen
Ludwig Erhard Str. 12
48734 Reken (Germany)
EMail: [hidden email] (remove NOSPAM from the address)

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users