An implied-volatility surface free of static arbitrage
A synthetic SSVI surface shaped like an equity index, in live 3D, with implied and local volatility and the Greeks at any point. It takes a simulated volatility shock and stays free of static arbitrage through every frame; Fig. 2 lets you break the condition.
Calm. Options are priced for modest swings. Insurance against a crash already costs a little more than the rest.
| Strike, % of the forward | 1M | 3M | 6M | 1Y | 2Y |
|---|---|---|---|---|---|
| 70% | 58.0% | 45.9% | 39.6% | 34.2% | 29.5% |
| 85% | 43.0% | 35.6% | 31.8% | 28.3% | 25.3% |
| 100% | 25.6% | 25.0% | 24.1% | 22.9% | 21.5% |
| 115% | 21.2% | 19.6% | 19.3% | 19.0% | 18.6% |
| 130% | 25.3% | 21.1% | 19.3% | 18.0% | 17.1% |
What it is
An implied-volatility surface says what volatility the market prices into an option at each strike and expiry. Quoting it well is a modelling problem, because a surface drawn freehand will usually admit arbitrage somewhere: a butterfly that costs less than nothing, or a longer-dated option that is cheaper than a shorter one.
This one uses SSVI, the surface parametrisation Gatheral and Jacquier published in 2014. Total implied variance w = σ²T is written as a function of log-moneyness k and the at-the-money total variance θ(T), with a correlation-like skew ρ and a curvature function φ(θ) = η / (θγ(1 + θ)1−γ). The at-the-money term structure decays from a short-end volatility to a long-run one at rate κ, the shape a variance term structure takes under mean reversion.
- σ short
- 26%
- σ long
- 19%
- κ
- 1.5
- ρ
- −0.62
- η
- 1.1
- γ
- 0.5
Why these conditions
Static arbitrage comes in two kinds and the surface has to rule out both. Across strikes, the smile at one expiry must imply a non-negative probability density — Durrleman’s condition g(k) ≥ 0 — or a butterfly spread prices below zero. Across expiries, total variance must not fall as maturity lengthens, or a calendar spread does.
SSVI makes both checkable in closed form. θ(T) here is strictly increasing, which settles the calendar condition at the money, and with γ = ½ the inequality η(1 + |ρ|) ≤ 2 is sufficient for no butterfly arbitrage at any strike. For the calm parameters it is 1.78. The shock in Fig. 1 steepens ρ, so η is capped as it does: the product never passes 1.96, and every frame of the shock is checked directly.
| η | Lowest g |
|---|---|
| 1.10 | 0.284 |
| 1.23 | 0.273 |
| 2.91 | −0.000 |
| 3.50 | −0.210 |
What the margin reads
At the probe, the margin gives implied volatility and prices a call on Black’s formula, on a forward of 100 with rates and dividends at zero, so nothing depends on a curve the figure would have to invent. Delta, gamma, vega per volatility point and theta per calendar day are the closed-form Greeks at that point’s own implied volatility. All of it is computed from the parameters on screen, so in the shock every number moves with the surface.
Local volatility is Dupire’s, written in total variance: the calendar slope of w divided by Durrleman’s g. It is the volatility a diffusion would need at that strike and time to reproduce every price on the surface, which is why it runs steeper than implied volatility on the downside: the skew compounds. At the money it runs below implied, because the calm term structure slopes down and the variance still to come is less than the variance already priced. The shock inverts that slope further: at its peak, one year out, at-the-money local volatility is 23.7% against 32.1% implied.
How it is checked
Because the parameters are chosen rather than fitted, the tests hold the surface to the standard real quotes would face. Durrleman’s g is evaluated across the drawn expiries at strikes well beyond the drawn range and must stay positive; ∂w/∂T must stay positive everywhere the figure draws. Each Greek is compared with a finite difference of the price, and put–call parity is checked away from the money.
Local volatility is checked by an independent route: call prices are built from the surface, differentiated numerically in strike and time, and Dupire’s formula in prices has to agree with the total-variance form the margin uses, at calm, at the peak of a full shock and at the largest shock the slider allows. The shock itself is held to the same standard: both conditions are checked on a dense grid at hundreds of moments along its path, at every size the slider reaches.
How it is drawn
The surface is drawn on the server too, projected and lit from the same functions and the same camera, with its numbers in the margin: without any script the figure is still the finished picture, and the keyboard reads it as soon as the page is interactive. On a first visit that picture waits for the surface to form out of the page. Where the browser has WebGL2 on a graphics processor, the reader has not asked for reduced motion or reduced data, and the figure is on screen, a renderer written directly against WebGL2 takes over, with no library: the vertex shader evaluates SSVI from the parameters of the moment, so the shock is the formula on every frame, not a mesh morphed between keyframes; the fragment shader draws the contours and the light; picking marches a ray against the surface’s own height function. On a first visit the surface forms, its smiles first, and takes one shock; after that it rests, and the shock is the slider’s. Where the renderer does not run, the slider redraws the still frame.
- synthetic; parameters set by hand
- Gatheral and Jacquier, Arbitrage-free SVI volatility surfaces, Quantitative Finance 14(1), 2014