Please find here Johannes and my talk about “*Calibration of Heston Local Volatility Models* ” given at year’s QuantLib User Meeting in Düsseldorf. The zip file contains the PDF and the animations.

Skip to content
# QuantLib User Meeting 2015

##
8 thoughts on “QuantLib User Meeting 2015”

### Leave a Reply

*Calibration of Heston Local Volatility Models* ” given at year’s QuantLib User Meeting in Düsseldorf. The zip file contains the PDF and the animations.

%d bloggers like this:

Thanks for providing this great stuff. What do you think about using a monte carlo simulation for the conditional expectation of variance for the leverage function instead of using a findete difference method like ADI for the fokker planck equation?

The paper is definitely on my todo list as it seems to be pretty easy to implement the Monte-Carlo calibration. Do you have any experiences with the algorithm?

I am implementing it right now in MATLAB and the implementation seems easy, even with my limited CS background. It appears to me though that the calibration Speed/precision trade off is not very good with this MC calibration. But it might be interesting to get more elaborated results on that.

I got it running as well and I have submitted my QuantLib implementation to https://github.com/jschnetm/quantlib/tree/slv as part of the commit f7fd874.

As you’ve outlined what makes the algorithm attractive is the fact that the implementation is fairly easy and the Feller constraint is less of an issue. I’m using a slightly different discretization scheme, which is closer to the original Quadratic-Exponential scheme and which seems to perform slightly better in the few examples I’ve carried out so far.

In addition with QuantLib it is very easy to use Quasi-Monte-Carlo in conjunction with Brownian bridges for the calibration, which can be another plus or improvement. For an example calibration with QMC + Brownian Bridge please see the test case HestonSLVModel::testMonteCarloCalibration()

In the mean time I need to carry out more numerical experiments and compare the performance with the Fokker-Planck based calibration.

Great, that was fast.I will have a look at Brownian bridges, thank you for the hint.

In terms of replicating the vanilla implied vol surface, I am very happy with my results so far. The calibrated heston SLV model performs much better than the heston SV model and almost as good as the LV model, e.g. in terms if Implied Vol RMSE.

However, when I try to price double no touch options, I am for some reason unable to reproduce the known fact that SLV models price them inbetween LV and SV models. For some reason, the SLV double no touch prices are even above the SV model ones and not below the SV and above the LV ones, as they are supposed to be. I have not yet calibrated a mixing fraction to exotics but from how I understand the literature, the SLV price should be inbetween LV and SV even with a constant mixing fraction of 1.

Besides my results not matching the mentioned fact, it is not very clear to me conceptionally. Assuming a perfectly calibrated SLV model and making (the wrong) assumption that there exists a continuum of vanilla prices over the entire surface of strikes and times to maturity,shouldn’t the probability densities of underlying prices of the LV and SLV model be exactly the same for all time horizons? Otherwise, the models would also generate different vanilla implied volatility surfaces? Assuming this is correct, shouldn’t then SLV and LV models also price DNT options equally?

I hope not to bother you with these questions, but the amount of people that could be consulted regarding these issues is quite limited.

I’ve implemented and submitted a Double-No-Touch SLV finite difference engine to https://github.com/jschnetm/quantlib/tree/slv. The test case HestonSLVModelTest::testMoustacheGraph uses Monte-Carlo calibration and sort of replicates the figure 8.8 in Iain Clark’s book “Foreign Exchange Option Pricing”, which compares Double-No-Touch prices for different mixing fractions. Please find the resulting graph of the test case here https://hpcquantlib.files.wordpress.com/2015/12/moustache.png. In this graph the difference between SLV and BS price is plotted against the BS price for different symmetric barrier levels. As expected the Double-No-Touch option prices decrease with decreasing mixing fraction eta.

You are right, independently of the mixing fraction the terminal probability density p(S, t) is the same for all time horizons (neglecting numerical errors). But the forward dynamics of the volatility surface is different. In the SV case the forward smile/skew remains dominant over time whereas in the LV case the forward volatility surface flattens out with time. The Double-No-Touch option has positive vomma and the SV fraction of the model creates more forward smile over the lifetime of the option.

Whether for eta=1 the SLV price is higher or lower than the pure SV price depends IMHO on the “shape” of the calibration RMSE of the SV model. If the SLV calibration creates less volatility than the SV calibration then I’d expect under some circumstances a higher SLV(eta=1) price. But compared with the LV price the SLV(eta=1) and the SV price should be pretty close to each other.

Brilliant, this brought me much closer to understanding why DNT options are priced differently with LV/ SV models in general, thank you very much. Let me rephrase it to make sure I understood it correctly. Having two underlying price evolutions with the same total variance in expectation over the time, DNT options are priced higher with the evolution that produces more smile in expectation, as DNT options have positive vomma. Also their vanna should play a role I assume, because when a smile exists, volatility is highest when they are knocked out anyway(depending on the model)?

Your HO was right regarding the “shape” of the calibration RMSE for being the reason for LSV DNT price > SV DNT price.

I still have an issue when it comes to SLV models which I feel is pretty fundamental. Staying in the Heston SLV case, even with a mixing fraction of one, aren’t all features of the SV process like negative correlation between dS and dV and autocorrelation in variance etc. in expectation offset by the leverage function (offset in the sense of matching the instantaneous volatility to the calibrated local one)? If this is the case, shouldn’t the forward smile of the SLV model be the same as the one of the LV model, even if the mixing fraction is one? Is maybe the remaining randomness of volatility the reason that the forward smiles differ?

It depends on how good the Heston implied vol matches the market observed values.

Let assume for a moment that the market vol is exactly repoduced by the Heston implied vol. In this case with mixing factor equal to one the calibrated leverage function is equal to one everywhere and your SLV models is in fact a pure SV model having the same smile dynamics as the Heston model.

If the mixing factor is zero then the leverage function becomes (modulo a time dependent scaling factor) the local vol surface and the SLV model reduces to a LV model. In this case the SLV model reproduces the local vol flat forward smile