Quantitative Finance · Book 5 · Derivatives

Derivatives and Volatility

Derivatives and Volatility · Derivatives

10Stochastic Volatility

Asked why the calibrated correlation of her index model is −0.7-0.7, an options trader answers without a formula: because when the index falls, volatility rises. Asked why the volatility of volatility is 0.6, she points at the wings of the one-year smile, which the model can only reach if variance itself swings. Asked why the mean-reversion speed is 2, she draws the at-the-money term structure bending back to its long-run level within a year. Each of the five numbers of the Heston model has a meaning on the desk, and that is why it has survived thirty years of better-fitting alternatives. This chapter introduces stochastic volatility, derives what can be derived about the Heston model, prices options with its characteristic function, calibrates it to the surface of chapter 9, and reads its parameters the way a trader does. It also measures where it fails: at short expiries its skew is half what the market shows.

10.1 Stochastic volatility models

Local volatility makes volatility a function of the spot, and so ties every move of the smile to a move of the spot. Real volatility has a life of its own: it rises after falls, but it also rises and falls on days when the spot does not move. The leverage effect (One Quant Book 4, chapter 18) is the first fact, measured as a negative correlation between returns and subsequent volatility, strong and short-lived for indices and weaker for single stocks; volatility clustering is the second.

Definition 10.1 (Stochastic volatility model)

A stochastic volatility model specifies, under the pricing measure,

dSt=(r−q)St dt+vt St dWt1,dvt=α(vt) dt+β(vt) dWt2,d⟨W1,W2⟩t=ρ dt,dS_t=(r-q)S_t\,dt+\sqrt{v_t}\,S_t\,dW^1_t,\qquad dv_t=\alpha(v_t)\,dt+\beta(v_t)\,dW^2_t,\qquad d\langle W^1,W^2\rangle_t=\rho\,dt,

where the instantaneous variance vtv_t is a second state variable. The spot–volatility correlation ρ\rho ties the two shocks together, and the scale of β\beta relative to vv is the volatility of volatility.

Two sources of randomness and one traded risky asset make the market incomplete (chapter 1): an option cannot be replicated with the share and cash alone. It can with the share and a second option, which hedges the variance risk. The drift α\alpha under the pricing measure absorbs a market price of volatility risk that the real-world dynamics do not determine; calibration to option prices, not a regression on history, fixes it.

10.2 The Heston model

Definition 10.2 (Heston model)

The Heston model takes the variance to be a square-root process (One Quant Book 4, chapter 4):

dvt=κ(vˉ−vt) dt+ηvt dWt2,dv_t=\kappa(\bar v-v_t)\,dt+\eta\sqrt{v_t}\,dW^2_t,

with five parameters: the initial variance v0v_0, the mean-reversion speed κ\kappa, the long-run variance vˉ\bar v, the volatility of volatility η\eta and the correlation ρ\rho. The variance stays non-negative and never reaches zero when the Feller condition 2κvˉ≥η22\kappa\bar v\ge\eta^2 holds.

The model’s value is that it is affine: the log-price and the variance enter the pricing equation linearly in the exponent, and its characteristic function is known in closed form.

Proposition 10.3 (Heston characteristic function)

Let xT=ln⁡(ST/F0,T)x_T=\ln(S_T/F_{0,T}). Its characteristic function (One Quant Book 4, chapter 1) is φxT(u)=exp⁡(C(u)+D(u)v0)\varphi_{x_T}(u)=\exp\bigl(C(u)+D(u)v_0\bigr), with ξ=κ−ρηiu\xi=\kappa-\rho\eta iu, d=ξ2+η2(iu+u2)d=\sqrt{\xi^2+\eta^2(iu+u^2)}, g=(ξ−d)/(ξ+d)g=(\xi-d)/(\xi+d) and

C=κvˉη2((ξ−d)T−2ln⁡1−ge−dT1−g),D=ξ−dη2 1−e−dT1−ge−dT.C=\frac{\kappa\bar v}{\eta^2}\Bigl((\xi-d)T-2\ln\frac{1-ge^{-dT}}{1-g}\Bigr),\qquad D=\frac{\xi-d}{\eta^2}\,\frac{1-e^{-dT}}{1-ge^{-dT}} .

Proof. Admitted here. ∎

The functions CC and DD solve two ordinary differential equations (a Riccati equation and an integral of it) obtained by substituting an exponential-affine guess into the pricing equation; Heston solved them in 1993. The form above keeps the complex logarithm on its principal branch for all uu; Heston’s original form, algebraically equal, jumps between branches for long expiries and gives wrong prices, a defect known as the little Heston trap.

10.3 The characteristic function and pricing

With the characteristic function, a European option is one integral. In forward terms, with k=ln⁡(K/F)k=\ln(K/F),

C(K,T)=P(0,T)(F−FKπ∫0∞Re⁡(e−iukφxT(u−i2))duu2+14),(10.1)C(K,T)=P(0,T)\Bigl(F-\frac{\sqrt{FK}}{\pi}\int_0^\infty\operatorname{Re}\bigl(e^{-iuk} \varphi_{x_T}(u-\tfrac i2)\bigr)\frac{du}{u^2+\frac14}\Bigr),\tag{10.1}

a formula that chapter 24 derives and generalises to any model with a known characteristic function. All strikes of one expiry share the evaluation of φ\varphi, so a whole smile costs one vectorised integral. Three checks guard the implementation: φ(0)=φ(−i)=1\varphi(0)=\varphi(-i)=1 (the forward is a martingale); as η→0\eta\to0 the smile flattens at the root-mean variance of the deterministic path; and a simulation of the two equations reproduces the prices. On the chapter’s base parameters (v0=vˉ=0.04v_0=\bar v=0.04, κ=1.5\kappa=1.5, η=0.6\eta=0.6, ρ=−0.7\rho=-0.7) the one-year smile runs from 23.4% at the 80 strike to 13.3% at 120, and a 200 000-path simulation agrees with the integral within its noise.

10.4 Calibration

Calibrating Heston to a surface is a nonlinear least-squares problem in five parameters, solved by the Levenberg–Marquardt algorithm (One Quant Book 4, chapter 24) on implied-volatility residuals, with parameters transformed (logarithms, a hyperbolic tangent for ρ\rho) so that no step leaves the admissible set.

Example 10.4 (Heston on the chapter 9 surface)

Fitted to nine strikes (80 to 120) at four expiries (three months to two years) of the surface of chapter 9, Heston returns v0=0.0267v_0=0.0267 (a spot volatility of 16.3%), κ=2.05\kappa=2.05, vˉ=0.060\bar v=0.060 (24.5% long-run), η=0.66\eta=0.66 and ρ=−0.70\rho=-0.70, with a root-mean-square error of 0.37 volatility point and at most 0.7 point, at two years (Figure 10.1). The Feller condition fails, 2κvˉ−η2=−0.192\kappa\bar v-\eta^2=-0.19: the fitted variance can touch zero, as it does in most index calibrations.

The calibrated Heston model (dashed) against the surface it was fitted to (solid) at three months and two years. Five parameters fit four expiries to within 0.7 volatility point. Data: the tutorial.
Figure 10.1. The calibrated Heston model (dashed) against the surface it was fitted to (solid) at three months and two years. Five parameters fit four expiries to within 0.7 volatility point. Data: the tutorial.

The fit hides a structural gap that shows at expiries outside the calibration set. Heston’s at-the-money skew tends to a finite limit as the expiry shrinks, while market skews keep steepening, roughly like T−1/2T^{-1/2} in this surface. At one week the calibrated model’s skew is half the market’s (Figure 10.2); jumps (chapter 13) and rough volatility (chapter 12) are the two answers.

At-the-money skew by expiry, on log scales: the market surface’s skew keeps steepening at short expiries, the calibrated Heston model’s levels off near 0.7. At one week the model’s skew is half the market’s; between three months and a year they agree, which is where the model was calibrated. Data: the tutorial.
Figure 10.2. At-the-money skew by expiry, on log scales: the market surface’s skew keeps steepening at short expiries, the calibrated Heston model’s levels off near 0.7. At one week the model’s skew is half the market’s; between three months and a year they agree, which is where the model was calibrated. Data: the tutorial.

10.5 What the parameters mean to a trader

Each parameter moves one feature of the surface (Figures 10.3 and 10.4):

  • ρ\rho tilts the smile: more negative, steeper skew. Moving ρ\rho from −0.7-0.7 to −0.5-0.5 lowers the one-year 90–110 skew from 5.71 to 3.94 volatility points.
  • η\eta bends it: the wings rise with the volatility of volatility. The one-year curvature measure 12(σ90+σ110)−σ100\tfrac12(\sigma_{90}+\sigma_{110})-\sigma_{100} is 0.30 point at η=0.6\eta=0.6; a curvature of 0.5 point needs η=0.77\eta=0.77.
  • v0v_0 and vˉ\bar v set the short and long ends of the at-the-money term structure, and κ\kappa the speed at which one becomes the other; κ\kappa also makes the skew fade with the expiry, since variance shocks are forgotten at that rate.
One-year Heston smiles around the base parameters (v_0= v=0.04, =1.5, =0.6, =-0.7): the correlation rotates the smile (left), the volatility of volatility raises its wings and, with a negative correlation, its skew (right). Data: the chapter’s code.
Figure 10.3. One-year Heston smiles around the base parameters (v0=vˉ=0.04v_0=\bar v=0.04, κ=1.5\kappa=1.5, η=0.6\eta=0.6, ρ=−0.7\rho=-0.7): the correlation rotates the smile (left), the volatility of volatility raises its wings and, with a negative correlation, its skew (right). Data: the chapter’s code.
At-the-money term structures for three initial variances with the long-run variance at 0.04 (20%) and =1.5: a calm market’s upward-sloping term structure and a stressed market’s inverted one, both converging at the speed . With v_0= v the curve is not flat: it falls from 19.6% to 16.9% at one year, since the at-the-money price is nearly linear in volatility, not in variance, and averaging over random variance lowers the average volatility (the mixing formula below); the negative correlation lowers it further. Data: the chapter’s code.
Figure 10.4. At-the-money term structures for three initial variances with the long-run variance at 0.04 (20%) and κ=1.5\kappa=1.5: a calm market’s upward-sloping term structure and a stressed market’s inverted one, both converging at the speed κ\kappa. With v0=vˉv_0=\bar v the curve is not flat: it falls from 19.6% to 16.9% at one year, since the at-the-money price is nearly linear in volatility, not in variance, and averaging over random variance lowers the average volatility (the mixing formula below); the negative correlation lowers it further. Data: the chapter’s code.

For a trader the most useful identity is the one that holds without correlation.

Proposition 10.5 (Mixing formula)

If ρ=0\rho=0, a European option in a stochastic volatility model is worth the Black–Scholes price at the path’s root-mean variance, averaged over the variance paths: C=E[CBS(σˉ)]C=\E\bigl[C_{\mathrm{BS}}(\bar\sigma)\bigr] with σˉ2=1T∫0Tvt dt\bar\sigma^2=\frac1T\int_0^Tv_t\,dt. With ρ≠0\rho\ne0 the same holds after replacing the spot by an adjusted spot and the variance by (1−ρ2)(1-\rho^2) times it; this is the mixing formula.

Proof for ρ=0\rho=0. Conditionally on the whole variance path, ln⁡ST\ln S_T is normal with variance ∫0Tvt dt\int_0^Tv_t\,dt, since W1W^1 is independent of W2W^2: the conditional price is Black–Scholes with that variance. Take the expectation. ∎

The formula explains the smile’s shape at once: Black–Scholes prices are convex in volatility away from the money, so averaging over random volatility raises out-of-the-money prices more than at-the-money ones, and the smile curves up (the volga of chapter 4 at work). A simulation of variance paths with ρ=0\rho=0 gives, through the formula, 7.136 for the one-year at-the-money call against 7.137 from the characteristic function, well within its standard error of 0.011.

10.6 Tutorial: pricing and calibrating Heston

Goal. Price with the characteristic function, check it three ways, calibrate to a surface and read the parameters. End state: the four figures of the chapter and the numbers of Example 10.4.

  1. The characteristic function and the integral, one smile at a time:

        def cf(self, u, t: float):
            """E[exp(i u x_T)], x_T = ln(S_T / F_T), for real or complex u (numpy arrays accepted)."""
            u = np.asarray(u, complex)
            xi = self.kappa - self.rho * self.eta * 1j * u
            d = np.sqrt(xi * xi + self.eta ** 2 * (1j * u + u * u))
            g = (xi - d) / (xi + d)
            e = np.exp(-d * t)
            c = self.kappa * self.vbar / self.eta ** 2 * ((xi - d) * t - 2.0 * np.log((1 - g * e) / (1 - g)))
            dd = (xi - d) / self.eta ** 2 * (1 - e) / (1 - g * e)
            return np.exp(c + dd * self.v0)
    
        def feller(self) -> float:
            """2 kappa vbar - eta^2: non-negative when the variance cannot reach zero."""
            return 2 * self.kappa * self.vbar - self.eta ** 2
    
    
    def call_prices(model: Heston, fwd: float, strikes, t: float, df: float = 1.0) -> np.ndarray:
        """European calls for many strikes of one expiry (one characteristic-function evaluation)."""
        ks = np.log(np.asarray(strikes, float) / fwd)
        phi = model.cf(U - 0.5j, t)
        integrand = np.real(np.exp(-1j * np.outer(ks, U)) * phi[None, :]) / (U * U + 0.25)
        integral = np.trapezoid(integrand, U, axis=1)
        return df * (fwd - np.sqrt(fwd * np.asarray(strikes, float)) / math.pi * integral)
    Listing 10.1. Heston characteristic function (principal-branch form) and the Fourier price of a smile. code/firm/heston/firm_heston.py
  2. Levenberg–Marquardt on implied-volatility residuals, with transformed parameters and a damping that adapts to success:

    def calibrate(quotes: list[tuple[float, np.ndarray, np.ndarray]], fwd: float, start: Heston,
                  max_iter: int = 60, lam: float = 1e-2) -> tuple[Heston, float]:
        """Levenberg-Marquardt on implied-volatility residuals; quotes are (t, strikes, vols). Parameters are
        transformed (logs, artanh) so that every step stays admissible. Returns the model and the RMSE."""
        def residuals(z):
            m = _to_model(z)
            return np.concatenate([implied_vols(m, fwd, ks, t) - vols for t, ks, vols in quotes])
        z = _from_model(start)
        r = residuals(z)
        cost = float(r @ r)
        for _ in range(max_iter):
            h = 1e-5
            jac = np.column_stack([(residuals(z + h * e) - r) / h for e in np.eye(5)])
            a, g = jac.T @ jac, jac.T @ r
            while True:
                step = np.linalg.solve(a + lam * np.diag(np.diag(a) + 1e-12), -g)
                z_new = z + step
                try:
                    r_new = residuals(z_new)
                    c_new = float(r_new @ r_new)
                except (ValueError, FloatingPointError, OverflowError):
                    c_new = math.inf
                if c_new < cost:
                    z, r, cost, lam = z_new, r_new, c_new, max(lam / 3, 1e-9)
                    break
                lam *= 4
                if lam > 1e8:
                    return _to_model(z), math.sqrt(cost / len(r))
            if float(np.max(np.abs(step))) < 1e-7:
                break
        return _to_model(z), math.sqrt(cost / len(r))
    Listing 10.2. Calibrating the five parameters. code/firm/heston/firm_heston.py
  3. Run dv_heston.calibration(), mixing_check() and fig_heston.py.

What to change next. Replace the principal-branch form by Heston’s original one and price a five-year option with a large volatility of volatility: find the strikes where the price jumps; then add the one-week and one-month expiries to the calibration and watch the fit degrade elsewhere.

10.7 Build: the Heston model

Purpose. The miniature firm’s first model with its own volatility dynamics: it prices products that depend on forward smiles (chapter 16), it is the stochastic part of stochastic-local volatility (chapter 20), and it is the test case of the Fourier and calibration engines (chapter 24).

Interface. Heston(v0, kappa, vbar, eta, rho) with cf(u, t) and feller(); call_prices(model, fwd, strikes, t, df); implied_vols; calibrate(quotes, fwd, start) -> (model, rmse); simulate(model, s0, t, steps, n_paths, seed).

Rules. Characteristic function in the principal-branch form; the forward as numeraire; calibration on implied-volatility residuals with transformed parameters; report the Feller gap, never impose it silently.

Acceptance tests. code/firm/heston/tests/: φ(0)=φ(−i)=1\varphi(0)=\varphi(-i)=1; the small-η\eta limit equals Black–Scholes at the deterministic root-mean variance; simulation agrees with the integral within three standard errors; calibration recovers known parameters from their own smiles.

Stretch. The quadratic-exponential simulation scheme (chapter 23) and analytic gradients of prices in the parameters for a faster calibration.

Sources and further reading

  • S. L. Heston, “A closed-form solution for options with stochastic volatility with applications to bond and currency options”, Review of Financial Studies 6 (1993) 327–343.
  • H. Albrecher, P. Mayer, W. Schoutens and J. Tistaert, “The little Heston trap”, Wilmott (2007) 83–92.
  • J. Hull and A. White, “The pricing of options on assets with stochastic volatilities”, Journal of Finance 42 (1987) 281–300.
  • M. Romano and N. Touzi, “Contingent claims and market completeness in a stochastic volatility model”, Mathematical Finance 7 (1997) 399–412.
  • J.-P. Bouchaud, A. Matacz and M. Potters, “Leverage effect in financial markets: the retarded volatility model”, Physical Review Letters 87 (2001) 228701.
  • J. Gatheral, The Volatility Surface, Wiley, 2006, chapters 2–3.

10.8 Exercises

Exercise 10.1 ★

Check the Feller condition for the base parameters and for the calibrated ones.

Solution

Solution of Exercise 10.1.

Base: 2×1.5×0.04−0.62=−0.242\times1.5\times0.04-0.6^2=-0.24; calibrated: 2×2.05×0.060−0.662=−0.192\times2.05\times0.060-0.66^2=-0.19. Both fail: the variance can reach zero, which the characteristic function handles, but a naive simulation must truncate.

Exercise 10.2 ★

With v0=0.08v_0=0.08, vˉ=0.04\bar v=0.04 and κ=1.5\kappa=1.5, give the deterministic variance after six months and one year, and the at-the-money volatility of a one-year option as η→0\eta\to0.

Solution

Solution of Exercise 10.2.

v(t)=vˉ+(v0−vˉ)e−κtv(t)=\bar v+(v_0-\bar v)e^{-\kappa t}: 0.0589 at six months, 0.0489 at one year. The one-year total variance is 0.04+0.04(1−e−1.5)/1.5=0.06070.04+0.04(1-e^{-1.5})/1.5=0.0607: a volatility of 24.6%.

Exercise 10.3 ★

Why must φxT(−i)=1\varphi_{x_T}(-i)=1? What would a value of 1.01 mean?

Solution

Solution of Exercise 10.3.

φ(−i)=E[exT]=E[ST]/F=1\varphi(-i)=\E[e^{x_T}]=\E[S_T]/F=1 because the forward is the expectation of STS_T under the pricing measure. A value of 1.01 means the model’s forward is 1% off: every call is mispriced by about 1% of the forward, an arbitrage against the futures market, usually a sign of a wrong branch or a coding error.

Exercise 10.4 ★★

Why does the market price of volatility risk not appear in the calibrated model, and what does that imply about using historical volatility to set vˉ\bar v?

Solution

Solution of Exercise 10.4.

Under the pricing measure the drift of the variance already contains it: calibration to options estimates κvˉ\kappa\bar v and κ\kappa as they are priced, not as they behave. Historical volatility estimates the real-world level, which is typically below the priced one (the variance risk premium of chapter 14); setting vˉ\bar v from history underprices options.

Exercise 10.5 ★★

Use the mixing formula to explain why, with ρ=0\rho=0, the Heston smile is symmetric in log-moneyness around the forward and why its at-the-money volatility lies below the root-mean variance.

Solution

Solution of Exercise 10.5.

With ρ=0\rho=0 the price is an average of Black–Scholes prices with the forward fixed; in log-moneyness the Black–Scholes implied volatility of such an average is symmetric around k=0k=0 (put and call at ±k\pm k correspond by put–call symmetry). Near the money the Black–Scholes price is nearly linear in volatility, so the average price corresponds to the average volatility E[σˉ]\E[\bar\sigma], which is below E[σˉ2]\sqrt{\E[\bar\sigma^2]} by Jensen’s inequality.

Exercise 10.6 ★★

Which parameter would you move to fit a market in which the one-month skew steepened overnight while the one-year skew did not? Why can Heston not fit it with one parameter move?

Solution

Solution of Exercise 10.6.

The short skew is steered by ρ\rho and η\eta, the long skew too, and κ\kappa controls how fast the skew decays with expiry: steepening only the short end needs a higher κ\kappa and a larger η\eta at once, which also changes the curvature and the term structure. Heston’s skew term structure has a fixed shape, and a local event in one part of it cannot be fitted by moving one parameter.

Exercise 10.7 ★★★

Coding. With eta_for_butterfly, find the volatility of volatility that gives a one-year curvature of 0.5 volatility point, and the one-year 90–110 skew at that η\eta.

Solution

Solution of Exercise 10.7.

η=0.77\eta=0.77; the one-year 90–110 skew rises to 6.45 points, since with a negative correlation the volatility of volatility also steepens the skew.

Exercise 10.8 ★★★

Find the flaw. “Our Heston calibration fits the three-month to two-year surface within 0.4 points, so we use it to price weekly options on the index.”

Solution

Solution of Exercise 10.8.

The model was calibrated where it fits; at one week its skew is half the market’s, so it underprices short out-of-the-money puts and gives the wrong hedges there. Price weeklies from the market’s own short-dated smile, or with a model that produces steep short skews (jumps, rough volatility).

10.9 Problem: Reading the Parameters

Problem 10.1

Weekend problem — what each Heston number does to the smile

A junior trader inherits the base Heston model (v0=vˉ=0.04v_0=\bar v=0.04, κ=1.5\kappa=1.5, η=0.6\eta=0.6, ρ=−0.7\rho=-0.7, zero rates) and must adjust it to two changes in the market: the one-year 90–110 skew falls by about 1.8 points, and the one-year curvature rises to 0.5 point.

Part I — The base smile.

  1. Give the one-year implied volatilities at the 80, 90, 100, 110 and 120 strikes.
  2. Give the one-year 90–110 skew and the curvature measure.
  3. Is the Feller condition satisfied?
  4. Why is the at-the-money volatility below 20% although v0=vˉ=0.04v_0=\bar v=0.04?
  5. What does the model predict for the at-the-money volatility at five years?

Part II — The correlation.

  1. Give the 90–110 skew with ρ=−0.5\rho=-0.5.
  2. Give the change in skew for the change of 0.2 in correlation.
  3. Does the at-the-money volatility move when ρ\rho changes? Why?
  4. Which products are most exposed to ρ\rho?
  5. What does ρ=−0.7\rho=-0.7 say about the index when it falls 1% in a day?

Part III — The volatility of volatility.

  1. Give the η\eta that produces a one-year curvature of 0.5 point.
  2. What happens to the skew at that η\eta, and why?
  3. How would you restore the skew?
  4. What is the Feller gap at that η\eta?
  5. Which products are most exposed to η\eta?

Part IV — Judgement.

  1. Why should the trader recalibrate all five parameters rather than move one at a time?
  2. Why might the desk keep κ\kappa fixed across days?
  3. What does the model get wrong at one week?
  4. State the named result: the change in the one-year 90–110 skew for a change of +0.2+0.2 in the correlation, and the volatility of volatility that matches a curvature of 0.5 point.
  5. In one sentence: what does the volatility of volatility price?
Solution

Solution of Problem 10.1.

1. 23.4%, 20.1%, 16.9%, 14.4%, 13.3%. 2. Skew 5.71 points; curvature 0.30 point. 3. No: 2κvˉ−η2=−0.242\kappa\bar v-\eta^2=-0.24. 4. Averaging over random variance lowers the average volatility (Jensen), and the negative correlation lowers the at-the-money volatility further: 16.9% at one year. 5. 17.4%, still below 20% for the same reason. 6. 3.94 points. 7. −1.77-1.77 points. 8. A little: the correlation shifts probability between the tails and the forward is fixed, so the at-the-money price changes by a second-order amount. 9. Risk reversals, and every product whose value depends on the skew: barriers, digitals, autocallables. 10. That volatility tends to rise when the index falls. A 1% fall is a shock dW1=−0.01/v=−0.05dW^1=-0.01/\sqrt{v}=-0.05; since dv≈12η dW2d\sqrt v\approx\tfrac12\eta\,dW^2 and E[dW2∣dW1]=ρ dW1\E[dW^2\mid dW^1]=\rho\,dW^1, the expected rise of v\sqrt v is 12×0.6×0.7×0.05=0.0105\tfrac12\times0.6\times0.7\times0.05=0.0105: about one volatility point. 11. η=0.77\eta=0.77. 12. It steepens to 6.45 points: with a negative correlation the volatility of volatility adds skew as well as curvature. 13. Make the correlation less negative until the skew is back at its target. 14. 2×1.5×0.04−0.772=−0.472\times1.5\times0.04-0.77^2=-0.47. 15. Wing options, variance swaps’ convexity (chapter 14), cliquets and volatility-of-volatility products. 16. Parameters interact (here η\eta moves the skew too); moving them one at a time leaves the others wrong. 17. κ\kappa and η\eta are nearly redundant for a surface up to a few years; fixing κ\kappa removes a flat direction of the fit and makes the other parameters stable day to day (chapter 24). 18. Its skew levels off where the market’s keeps steepening: half the market’s at one week. 19. −1.77-1.77 volatility points for +0.2+0.2 in ρ\rho; η=0.77\eta=0.77 for a curvature of 0.5 point. 20. The uncertainty of future variance, which raises the price of options whose value is convex in volatility: the wings.

10.10 Interview questions

Interview question 10.1 ★ trader, researcher

Write the Heston model and say what each parameter does to the smile.

Solution

Solution of Interview question 10.1.

dS=vS dW1dS=\sqrt vS\,dW^1, dv=κ(vˉ−v)dt+ηv dW2dv=\kappa(\bar v-v)dt+\eta\sqrt v\,dW^2, d⟨W1,W2⟩=ρ dtd\langle W^1,W^2\rangle=\rho\,dt. v0v_0: short-dated level; vˉ\bar v: long-dated level; κ\kappa: how fast one becomes the other, and how fast the skew fades; η\eta: the smile’s curvature (wings); ρ\rho: its skew.

What the interviewer is looking for: one sentence per parameter, on the surface.

Interview question 10.2 ★ researcher

Why is a stochastic volatility market incomplete, and how do you hedge an option in it?

Solution

Solution of Interview question 10.2.

Two Brownian motions, one traded risky asset: the variance risk cannot be hedged with the share. Hedge the delta with the share and the vega (variance exposure) with another option, typically of the same expiry; the second option makes the market complete in the model.

What the interviewer is looking for: the count of risks against instruments.

Interview question 10.3 ★★ researcher

Derive the price of a European option in a stochastic volatility model with zero correlation.

Solution

Solution of Interview question 10.3.

Condition on the whole variance path: with zero correlation ln⁡ST\ln S_T is normal with variance ∫v dt\int v\,dt, so the conditional price is Black–Scholes at that variance; average over variance paths (the mixing formula).

What the interviewer is looking for: conditioning and independence.

Interview question 10.4 ★★ developer, researcher

Your Heston pricer returns wrong prices for long expiries with a large volatility of volatility. What do you suspect?

Solution

Solution of Interview question 10.4.

The complex logarithm in the characteristic function jumping branches (the “little Heston trap”): use the form with g=(ξ−d)/(ξ+d)g=(\xi-d)/(\xi+d) and e−dTe^{-dT}, which stays on the principal branch; also check the integration range and the damping of the Fourier integral.

What the interviewer is looking for: branch cuts, then numerics.

Interview question 10.5 ★★ trader, risk

Your calibrated Heston correlation moved from −0.7-0.7 to −0.4-0.4 overnight with the same fit error. What do you do?

Solution

Solution of Interview question 10.5.

Check the inputs first (a bad quote, a stale expiry); then check whether the fit has a flat direction (ρ\rho and η\eta trading off); stabilise the calibration (fix κ\kappa, penalise parameter changes, chapter 24) and measure the P&L effect of the jump on exotics before accepting it; if the market really moved, the exotics’ reserves should reflect it.

What the interviewer is looking for: data, identifiability, stability, P&L impact.

Interview question 10.6 ★★★ researcher

Why is the Heston skew too flat at short expiries? Name two ways to fix it.

Solution

Solution of Interview question 10.6.

Its short-dated smile comes only from the diffusion of variance over a short time, so the at-the-money skew tends to a constant proportional to ρη/v0\rho\eta/\sqrt{v_0} as the expiry shrinks, while the market’s grows. Fixes: add jumps (chapter 13), which produce skew at short expiries, or make volatility rough (chapter 12), which produces a skew exploding like a power of the expiry.

What the interviewer is looking for: the short-expiry limit, and the two families of fixes.

Terms defined in this chapter

See all 2333 terms in the glossary