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 |
Free forum by Nabble | Edit this page |