I am new to the area of local volatility interpolation and I am trying to make a decent implementation for calculating the local volatility surface from option prices using the basic methodology from the article "Volatility interpolation" by Andreassen, Huge combined with some later articles and results.

  1. In the article it is assumed all rates are zero. What is the most natural way of generalizing it to standard market conditions where rates are not zero?

  2. In the article a piecewise constant approximation to the local volatility surface is calculated. Then a lot of new call option prices are calculated, using the calculated surface, through a finite difference procedure. From these option prices I see many authors use the Dupire equation to again calculate the local volatility surface using finite differences. Why calculate the local volatility surface again, when we already had the piecewise constant (or optionally linear) surface? Or is that surface far too rough for any serious applications and we need points on a much more smooth surface? Or am I missing something very obvious here?

  3. A more general question. Let say I get so far that I can calculate the local volatility corresponding to all options in the grid. How do I then extract values from this surface when using it for other applications? We only have values at the grid points. Will it be ok to use linear interpolation? Sure, it introduces arbitrage, but if the grid is dense, the error should not be too bad, or?

Regarding question 1 :

  • I tried converting market option prices to market option prices in an economy with zero rates. This is possible by a suitable rescaling the strike levels in Black formula. But somehow I don't know if that is the proper way of doing things.

  • Then I tried thinking about replacing the underlying with the forward value process so that it's drift term is zero. However, There is not just one forward process involved, but one per expiry (since the forward maturity changes at each expiry when we move forward in time). So the current forward make discrete jumps at each expiry since it refers to different maturities. This will lead to strange things in the finite difference scheme in the Andersen article since one of the valuation points in the finite difference quotient for the T derivative of the options in the Dupiere formula will use one version of forward process and the other valuation point another. This did not seem right to me.


1 Answer 1


Ok, I did some investigations, asked around and got some answers to most of my questions. Since it might be of general interest for other people I present my findings here.

  1. How to transfer market data (option prices) from the real world to the simplified zero rate economy (used in the article by J. Andreasen, B. Huge) back and forth. We have an underlying asset $S(t)$ which satisfies $$ \frac{dS(t)}{S(t)} = (r(t) - d(t)) \, dt + \sigma(t, S) \, dW(t), \quad S(0) = S_0, $$ where $W(t)$ is a Brownian motion, $r(t)$ is the short rate, $d(t)$ is the dividend yield and $\sigma(t, S)$ is the local volatility surface (unknown to us so far). Introduce the notation $$ \mu(t) = r(t) - d(t), \quad F(0,t) = S_0 \cdot \exp(\int_0^t \mu(s) \, ds)$$ for the drift and the forward value at time $t$ seen from time $0$. Now introduce the variable $$ X(t) = \frac{S(t)}{F(0,t)}. $$ Using Ito's lemma we get (I skip those calculations. It is just a standard application of Ito's lemma for a quotient) $$ dX(t) = X(t) \cdot \sigma(t,S) \, dW(t), $$ where $W(t)$ is the same Brownian motion as the one used for $S$. We write this as $$ dX(t) = X(t) \cdot \hat{\sigma}(t,X(t)) \, dW(t), $$ where $$ \hat{\sigma}(t,X(t)) = \sigma(t, X(t) \cdot F(0,t)). $$ So once we have calculated $\hat{\sigma}(t,X(t))$ we can get $\sigma(t,S)$ by going backwards $$ \sigma(t,S(t)) = \hat{\sigma}(t, S(t) / F(0,t)). $$ There is one problem remaining here and that is that we want option prices for the variable $X(t)$ when the market prices are given for the variable $S(t)$. This is easily obtained by a rescaling though. Let us write the expression for the Black (undiscounted) call price as the usual expected value $$ \begin{eqnarray*}E[\textrm{max}(X(t) - K,0)] &=& E[\textrm{max}(\frac{S(t)}{F(0,t)} - K, \, 0)] \\ &=& \frac{1}{F(0,t)}E[\textrm{max}(S(t) - K \cdot F(0,t), \, 0)]. \end{eqnarray*} $$ The expectations $E[\textrm{max}(S(t) - K \cdot F(0,t), \, 0)]$ are just Black call option prices for the underlying $S(t)$ with strike $K \cdot F(0,t)$, which are observable on the market. So using this relation we can go back and forth between option prices in the real market and the zero rate market.

So by using this we can make or setup in the zero rate economy, calculate the local vol surface for $X(t)$ and then go back to $S(t)$ using the relations above.

  1. This rough one step proxy of the local volatility surface, was as I expected, not a good candidate for the real local vol surface and it does not satisfy the Dupire equation. One should one use construct and use it as a tool to obtain a denser option price grid which we then can use to construct the real sample points of the local volatility surface (using Dupires equation).

  2. The final question of interpolation of the dense grid of points on the local vol surface is still unknown to me. Or course it will depend on the application where we use the constructed local vol surface. If different kids of greeks need to be computed we need a smooth interpolation of some kind. But if we only need rough values, then I guess linear interpolation might be good enough.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.