I’m currently working on a project to build a local volatility model out of implied volatility data and am struggling in the selection of an appropriate method to interpolate the volatility surface. I need to interpolate the discrete vendor data (in time and in strike) to create an arbitrage-free implied vol surface that I can then use to calculate local vol.
I am following Gatheral’s arbitrage-free SVI paper [Arbitrage-free SVI Volatility Surface] and there are three methods he discusses to construct an implied volatility surface.
- SVI with different parametrizations (raw, natural, jump-wing, Section 3)
- Surface SVI (SSVI) – (Section 4)
- Reduced SVI (jump-wing form, Section 5.1)
The problem is that SVI gives an excellent fit but doesn’t guarantee that the result is arbitrage-free. Reduced SVI and SSVI work the other way round - they guarantee arbitrage-free but the fit is not as good and can even be quite poor in places.
So here are the questions I have:
- Is there any method that eliminate arbitrage for SVI but does not sacrifice too much quality of fit?
- Are there methods other than SVI-related ones that can be applied for this project? Perhaps a functional form for the local vol surface directly