Skip to content
All library documents

Building an Equity Option Volatility Surface from Market Quotes

Article Quant Q&A · Author: brownie74

Summary

The document considers a prototype method for constructing an equity volatility surface to price European calls. The proposed workflow backs out Black–Scholes implied volatilities from option prices, fits a polynomial relationship involving local volatility model outputs, and uses cubic splines to interpolate across strikes and maturities. The response recommends interpolating after forming the surface and questions whether a separate spline step is needed if the fitting already provides interpolation.

The exchange also notes that a surface reflects changing market inputs and should be refreshed as conditions change. Sticky strike and sticky delta are mentioned as approximations for using a prior day's surface when current data is unavailable. The discussion does not assess the proposed fit in detail, demonstrate a specific construction method, or explain how to impose no-arbitrage constraints. It is an introductory pointer rather than a complete implementation guide; readers would need additional material to evaluate model choice, quote cleaning, interpolation behavior, and arbitrage controls.

Key ideas

  • Implied volatility can be obtained by solving the Black–Scholes pricing formula against quoted option prices.
  • A fitted volatility surface can support interpolation across strikes and expiries where quotes are missing.
  • The response suggests interpolating after constructing the surface and questions whether an additional spline stage is necessary.
  • Volatility surfaces change with market inputs, so a prior day's surface is only an approximation.
  • Sticky strike and sticky delta are named as possible ways to adapt an older surface, but no arbitrage-control method is supplied.

Tags

Full text
# Newbie question on volatility surface building


# Newbie question on volatility surface building












I am trying to build a prototype equity volatility surface for pricing european call options, as a way of learning a new programming language that I am looking at.

Is there anything wrong with the following method which I have put together from research:

- back out Black Scholes vols from quoted options prices (solve BS formula for volatility)

- fit = do a polynomial regression between BS vols versus vols from a local volatility model

- apply cubic splines (in two directions) to fitted vols to allow for interpolation where we don't have a vol point

Questions:

- Does my approach sound reasonable or is it completely stupid?

- Should i interpolate missing market data before doing this procedure, for missing options quotes? Or should i interpolate the surface vols instead, once I have fitted the IVs? This I see as building the surface. I anticipate further interpolation will be needed for the days between contract expiries, on an adhoc basis if a user requests an IV for a date we don't have on the built surface.

- Is this volatility surface only good for one day? Tomorrow, do i need to create a new surface to account for the changed inputs (eg. spot)? Or can i somehow roll forward todays surface tomorrow? Or can i simply use todays surface tomorrow?

- How and when do you apply the no-arbitrage constraints that i have read about. Is it done during the fitting, somehow the fitting must consider the constraints?

Thanks in advance for all pointers. I have not built a volatility surface from scratch before and would appreciate any useful tips.

## Answer by william smith (score 2)

https://quant.stackexchange.com/a/59272

- Interpolate after building the surface. Won't your step #2 do this for you, do you really need step #3?

- Definitely it changes every day. Look up "sticky strike" and "sticky delta" if you want to see how you can use a vol surface on a previous day as an approximation, if you don't have a fresher one.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.