# What functional form describes the implied volatility curve?

It is often convenient to parametrize the implied volatility curve to allow easy interpolation of volatility for any strike or maturity. What functional form describes the implied volatility curve for options at varying strikes and fixed maturity?

-

1
I've seen polynomial forms used. Jim Gatheral has some interesting research on parametrizing the volatility surface – Quant Guy Oct 5 '11 at 17:39
For fixed time and near the current price, the implied volatility as a function of price is "bilinear"-- a negative slope line that bottoms out at the current price, and then a positive slope line. However, this yields contradictions if extended too far from the current price AND doesn't help at all w/ volatility over time. Have you tried curve-fitting existing data? – barrycarter Oct 10 '11 at 2:32

## 5 Answers

OptionMetrics uses a kernel smoothing algorithm to interpolate the volatility surface. Their assumptions tend to be based on the academic consensus and have become somewhat industry standard, so the real answer to your question may be that there really is no good functional form.

-

First, note that there are actually quite a few implied volatility curves...I am afraid there is no "the" volatility curve. Right off the bat I can think of

• The put and call bid and offer curves
• The put and call midmarket price curves
• The put and call midmarket vol curves
• The out-of-the-money bid, offer, midmarket price and midmarket vol curves

so that is 12 different curves right there. You can probably already tell that getting a single functional form to fit them all is not going to be easy.

The most common function used is a parabola, though almost always on $\log(K)$ rather than on strike $K$. The second most common choice is cubic splines, either with nodes at every strike or smoothing. It is customary in these cases to specify "cutoffs", which are limiting high and low strikes beyond which volatility is assumed to be constant. That keeps the curve from going negative, or "too" positive.

You will occasionally see implementations based on modifications of the terminal probability distribution, such as Edgeworth expansions.

-
-

3
Hi AMC, welcome to quant.SE and thanks for posting your answer. Your answer would be more helpful if you could synopsize Gatheral's recommendation for modeling the volatility surface, or if you could point out why you think Gatheral's book is relevant to this question. Otherwise, your answer does nothing but repeat @QuantGuy's comment. – Tal Fishman Oct 6 '11 at 16:18

A Polynomial of degree 2 or 3 ?

But Linear interpolation on a datapoints vector works fine in my experience, let's say you have an index whose options strike :

80/82/84/86/88/90

You usually don't need to calculate vol @ 83. The only case is if you have a different volatility smile (estimated vol. for example) whose data points are 80/85/90 then you can just do linear interp to find your estimated vol @ 82/84.

-

1
Historically, we have used a degree 2 polynomial (parabola) but currently it does not produce a good, arbitrage free, fit hence my question. – John Channing Aug 8 '11 at 7:43
Hi lliane, thanks for your answer and welcome to quant.SE. I have had the same question as @John Channing. I think the main problem is actually not one of interpolation but rather of smoothing noisy prices for the available strikes. Accurate "interpolation" may still be important when e.g. comparing IV in the cross section. – Tal Fishman Aug 8 '11 at 11:06

In the rates world (ie swaptions, caps and floors) I believe most banks are using some form of the SABR model (Stochastic Alpha Beta Rho) for building the volatility smile.

When we say 'use the SABR model' what we really mean is that the smile shape function is derived from the shape of the smile in a theoretical model of form: $$\text{d} F_t = \sigma_t F_t^\beta \, \text{d} W^1_t$$ $$\text{d} \sigma_t = \alpha \sigma_t \, \text{d} W^2_t$$ $$\text{d}W^1_t \text{d}W^2_t = \rho \, \text{d}t$$ Some clever people found a way to get a good-quality closed-form approximation for the smile function, so effectively you can just plug in the parameters and get your volatity at a given strike for a given value of the forward.

That said, the formula is known to break down at low strikes -- producing negative values for the implied probability distribution. Therefore most houses have put resources into fixing this in one way or another.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 2, "mathjax_display_tex": 3, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9225186109542847, "perplexity_flag": "middle"}