Hello guys,
i'm currently diving into volatility surfaces and I have some questions. My first experiment is the creation of a simple BlackVarianceSurface from a set of given Call-Options. That is straight forward, the surface is build from solved implied volatilities. Now i have the situation that i structured my calls for a range of strikes and dates, say: strikes: {10,15,20,25,30} maturities: {31.12.2017,31.12.2018, 31.12.2019,31.12.2020,31.12.2020} These lists span the volatility matrix passed into the variance surface. Given the nature of liquid option availability it is very likely that a point in the matrix is missing (eg. strike 15 has no call with maturity 31.12.2019). The effect on the surface is, that especially at this vola point a value of 0 is returned by surface.blackVol(). My thought was, that this missing vola point will be interpolated with the integrated 2d-interpolation, which obviously is not the case. Am I missing something here? To get around that issue I took a look into the HestonVolSurface structure. That one seems to be very handy with respect to missing volapoints. It builds the Heston model and accurately interpolates the missing strike/maturity pairs. The point here is that given you have the quoted call premiums from the market you first have to derive the implied volatilities and then put them into the HestonModelHelpers that will represent the particular Volapoint in the HestonVolSurface. In the surface then the projected market premium of the call is calculated with the HestonEngine. So you go from market quote to implied vola and then again to market quote and finally to surface implied vola. Is that really the methodology needed for Heston Surfaces? What is your experience / best practice to setup a plain vanilla surface derived from liquid option quotes? Regards, Michael ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hello, the current implementation of bilinear interpolation requires a complete grid. Adding missing points is not straightforward; from a quick search it seems there are different methods, none of which simple. They might be added as functions to be called before passing the data to the BlackVarianceSurface; if you do, please consider contributing the code. About the Heston surface: as far as I can see, it's not based on a grid. It takes a Heston model (which doesn't contain the volatility points used for its calibration, but only the resulting model parameters) and extracts the volatility at a given maturity and strike by calculating the Heston price and solving for the corresponding Black volatility. So yes, you go from prices to volatilities once during the calibration, and you go from prices to volatility again in the Heston surface, but you don't do it twice each time you ask for a volatility; the model calibration is only performed at the beginning, before creating the surface. Later, Luigi Hello guys, ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
I wonder whether Laplace Interpolation would work? There is an implementation in ql/experimental/math, possibly one would have to generalise it to non-equidistant grids before.
Peter
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |