I'm trying to build an implied vol surface from some listed options. In particular I have data for calls and puts for different strikes and expiries. I'm not looking to price on the interpolated vols any exotic payoffs, just other vanilla options. To keep things very simple, I'm thinking to use the following approach:

  1. Use cubic splines for smile interpolation on either delta or strike, for a given expiry
  2. Use total variance interpolation across expiries, for ATM vol

Where ATM is ATM forward (i.e. ATM strike = fwd)

While the first point is probably fine, I think the second has two main issues. First of all, I don't have a zero curve or forward. So I would need to first get the fwd from the call-put parity, for each expiry. Then use the interpolation of 1. to get the ATM implied vol, and then use that vol for the total variance curve (so building the ATM curve on some interpolated values). Second, 2. only works for the ATM vol curve, and the key issue becomes, how do I interpolate smiles across expiries?

So my question is, what's the best way to interpolate smiles between expiries? Also would an another approach e.g. local vol, be more appropriate in this situation? (given that I'm not looking to price exotics)


1 Answer 1


First, are you building the surface for european style options or american style, different complexities altogether for american style..

that being said, what data do you have to begin with? just price data? if so, then yes you need to find a way to calculate the zero curve & the dividend yield to get an IV.

Once you have price data, and some approximation of zero curve & dividend yield, you can convert from price space to vol space quite easily. Spline would certainly be the easiest to do - but also would contain the most arb // margin of error. I'd be more than happy to give further thoughts once I know what data / inputs you are working with and what is your arb tolerance level


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.