adding Equity Option Volatility Matrix

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

adding Equity Option Volatility Matrix

Xavier.Abulker
Dear Quantlib user group,

I would like to perform a surface of implied volatility matrix for equity
Option and deduce from it a generic structure (i.e 6m,1y,2y,....) with
bilinear interpollation.
It looks like it's not yet developped in Quantlib.
Is someone will be interested in debugging this developpement? (not yet
done)
I intend to copy the swaptionvolatilitymatrix to do something like
Observable<-EquityOptionVolatilityStructure<-EquityOptionVolatilityMatrix

Thanks
Xavier



Reply | Threaded
Open this post in threaded view
|

Re: adding Equity Option Volatility Matrix

Ferdinando M. Ametrano-2
Hi Xavier

>I would like to perform a surface of implied volatility matrix for equity
>Option and deduce from it a generic structure (i.e 6m,1y,2y,....) with
>bilinear interpollation.
>It looks like it's not yet developped in Quantlib.
It is not in the 0.3.0 release, but I've added it to the CVS in the last week.
I'm not going to release a CVS snapshot in the next few days, but you can
take a look at the development checking out the code using CVS
(quantlib.org/cvs.html)
For a quick glimpse follow these links (watch out the wrap):
the vol term structure interface:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quantlib/QuantLib/ql/voltermstructure.hpp?rev=HEAD&content-type=text/vnd.viewcvs-markup

a constant vol term structure:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quantlib/QuantLib/ql/Volatilities/constantvol.hpp?rev=HEAD&content-type=text/vnd.viewcvs-markup

a time dependent vol curve:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quantlib/QuantLib/ql/Volatilities/blackvariancecurve.hpp?rev=HEAD&content-type=text/vnd.viewcvs-markup

a time/strike dependent vol surface:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/quantlib/QuantLib/ql/Volatilities/blackvariancesurface.hpp?rev=HEAD&content-type=text/vnd.viewcvs-markup

the classes are template of the interpolation method (as of now bilinear is
the only 2D interpolation method in QuantLib), and use interpolation on
variance instead of volatility.

These functionalities are also available in QuantLibXL: to compile
QuantLibXL you will need up-to-date versions of both QuantLib and xlw. In
QuantLib Excel there is also a spreadsheet that explain why one should
interpolate on variances and not on vols

Early feedback on this work is more than welcome.

I'm tackling these issues as side effect of a general review of the Pricing
Engine framework Luigi suggested (see the original proposal at
http://quantlib.org/quep/quep005.html)
I pushed forward the engine framework, developing generic quanto and
forward engines that will provide quanto/forward version of whatever
existing engine you provide as input.
The development line is to integrate in the pricing framework the generic
class for Exercise (European, American, Bermudan -- Sad's suggestion) and
last but not least to have all pricing engines able to handle
time-dependent yield and vol curves.

For vol surface we will need extraction of local volatilities from Black
vol surface, and this won't be a quick job. Any volunteer for this task?

Any help/feedback appreciated

ciao -- Nando