info@d-metrics.de
2017-04-01 10:34:50 UTC
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
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