Multicurve Swaption Volatility

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Multicurve Swaption Volatility

Kirsten und Peter Caspers
Hi,

I am interested in computing swaption (and also cap) volatilities for non
quoted indices e.g. the volatility for a 2y/5y swaption with the underlying
swap being vs. 3M Euribor. The quoted volatility for this swaption is vs. 6M
Euribor. The market converts this volatility using a normal black76 model
which is level independent contrary to the lognormal standard model.

As far as I can see QuantLib 1.0 supports the separation of discounting and
forwarding curves for curve bootstrapping and swap index estimation.

However, both swaption and cap volatility classes seem to need adjustments.
I started to do some things about swaption volatilities and would be happy
to contribute them to the project. I attach the modified source files. The
modifications are marked with a comment which reads // PC. Perhaps the
people who wrote the classes can have a look at the code and see if
something like that can be introduced in future versions.

1. The ATM swaption class SwaptionVolatilityMatrix does not know anything
about absolute rate levels. So it would probably be a great effort to do
something here. I left this class unchanged and concentrated on the cube
classes solely.

2. The first adjustment I did is to add a method discountingTermStructure()
to the class SwapIndex. In case the index has an exogeneous discount curve,
this is returned, otherwise an empty Handle.

3. The next adjustment is in the class SwaptionVolatilityCube. The
atmStrike() method does not work for swap indices with exogeneous discount
curve. I did the necessary modifications to take this into account. The
interface of the method does not need to be changed.

4. It seems hard to me to extend the existing volatility methods in order to
return volatilities for non quoted indices. Instead I added a method
nonQuotedIndexVolatility() to compute a (lognormal) volatility for a non
quoted index. It should work together with all extensions (SABR, bilinear)
of the base cube class. There is an approximated mode (exact = false which
is also the default) and an exact mode (exact = true) implemented. The
approximation is due to  Kazuhiro Iwasawa , "Analytic Formula for the
European Normal Black Scholes Formula", Section 3.

If I can do anything else to push this forward, please let me know, I am not
so much into the development processes of this project yet...

Thank you, best regards
Peter





------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users

swapindex.cpp (6K) Download Attachment
swapindex.hpp (4K) Download Attachment
swaptionvolcube.cpp (8K) Download Attachment
swaptionvolcube.hpp (4K) Download Attachment