Local Volatility and Greeks by OpenGamma

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

LOCAL VOLATILITY

RICHARD WHITE

Abstract. We present details of computing a local volatility surface from market


data, then numerically solving different PDE representations to reproduce the market
prices, and compute greeks.

1. The Black-Scholes-Merton Backwards PDE


Starting from log-normal dynamics for the spot price of some asset, St :
(1) dSt = µSt dt + σSt dWt
where µ is the drift, σ is the constant volatility term and Wt is a Weiner process, the clas-
sic Black-Scholes-Merton equation for the price of an European option, V (t, S; T, K)1,
at time, t, on a underlying, S, struck at K and with an expiry of T , where the risk free
(continuously compounded) rate is r, and cost of carry is q 2 , is given by:
∂V 1 ∂2V ∂V
(2) + σ 2 S 2 2 + (r − q)S − rV = 0
∂t 2 ∂S ∂S
This equation can be solved numerically, backwards in time, starting from the final
condition V (T, S; T, K) = (S − K)+ . For a call option, the Dirichlet boundary condition
V (0, t) = 0 and the Neumann boundary condition ∂V −q(T −t) are imposed for
∂S |S=M = e
some M  k. Of course, this can also be solved analytically by the Black-Scholes-Merton
option pricing formula:
V (t, S; T, K) = ω e−qτ St N (ωd1 ) − e−qτ KN (ωd2 )

(3)
ln(St /K) + (r − q)τ + 21 σ 2 τ √
d1 = √ d2 = d1 − σ τ τ =T −t
σ τ
where ω is +1 for a call and -1 for a put. The model can be extended to term structures
for r, q and σ with the time-averaged values used in the formula, i.e.
Z T Z T Z T
1 1 2 2 1
(4) r → r̄ = rs ds r → q̄ = qs ds σ → σ̄ = σs2 ds
T −t t T −t t T −t t
While this will produce different implied volatility levels at different expiries (the implied
volatility being simply the root-mean-squared (RMS) of the instantaneous volatility), it
Date: First version: 27 January 2012; this version March 30, 2012.
Version 1.0.
1here S and t are the state variables and K and T are parameters of the option.
2For Equity options q is the dividend yield, while for FX r is the domestic risk free rate r d , and q is
the foreign risk free rate rf
1
2 RICHARD WHITE

cannot produce different implied volatility levels across strikes (volatility smiles). How-
ever, if the instantaneous volatility is extended to be a function of both time and the
level of the underlying, σ → σ(t, S), then the market prices of all options written on the
underlying can be recovered by a suitable choice of σ(t, S). Additionally, given a (hypo-
thetical) continuum of prices across expiry and strike, there is a unique Local Volatility
σL (t, S). This is a result from stochastic processes due to Gyöngy (1986).
RT
Defining the forward option price as V̄t = exp( t rs ds)Vt and the forward value of the
underlying as
Z T 
(5) F (t, T ) = exp (rs − qs )ds St
t
equation 2 can be written as
∂ V̄ 1 ∂ 2 V̄
(6) + σ(t, F )2 F 2 =0
∂t 2 ∂F 2
The forward can be identified as
(7) F (t, T ) = ET [ST |Ft ]
where the expectation is under the T-forward measure - i.e. the numeraire is the zero
coupon bond P (t, T ). The option price is Vt = P (t, T )V̄t , and both F (t, T ) and P (t, T )
are market observables (at time t for a range of T ) in many markets. By this transfor-
mation, any reference to the (generally) unobserved r and q is removed.

2. Dupire Local Volatility


Using the Fokker-Planck result that for a SDE
(8) dxt = a(t, xt )dt + b(t, xt )dWt
the transition probability, p(T, xT ) ≡ p(T, xT ; t, xt ),3 is governed by the PDE

∂p(T, x) ∂[a(T, x)p(T, x)] 1 ∂ 2 [b2 (T, x)p(T, x)]


(9) =− +
∂t ∂x 2 ∂x2
together with the Breeden-Litzenberger result that
∂ 2 C(t, St ; T, K)
(10) p(T, x; t, st ) = er(T −t)
∂K 2
K=x
where C(·) denotes a call option, leads to the forward PDE

∂C 1 ∂2C ∂C
(11) = σ 2 (K, T )K 2 2
− (r − q)K − qC
∂T 2 ∂K ∂K
In this equation, the state variables are expiry, T , and strike, K. Numerically solving
the PDE forward in time, T , with the initial condition is C(t, St ; t, K) = (St − K)+ , will
give call prices for all expiries and strikes (within the chosen boundaries). Dupire (1994)
rearranged this equation to:
3the probability of going from x at time t to x at time T ≥ t
t T
LOCAL VOLATILITY 3

v
u ∂C ∂C
u + (r − q)K ∂K + qC
(12) σ(T, K) = t2 ∂T ∂ 2C
K 2 ∂K 2

which, given a continuous, twice-differentiable in strike and once in time, surface of call
options prices, will give a unique local volatility. A real market will only have a finite
number of (liquid) option prices. Direct interpolation of market prices is difficult since
∂2C
calendar arbitrage (i.e. ∂C ∂C
∂T + (r − q)K ∂K + qC < 0) and strike arbitrage (i.e. ∂K 2 < 0)
must be avoided. Even if these conditions are met, finding local volatility this way is
dangerous, not least because for OTM options, the derivatives will be with respect to
very small prices (and thus in turn produce small, possibly inaccurate numbers), leading
to a division of one very small number by another. Since it is a market standard to quote
prices as implied volatility, σimp (T, K), the local volatility formula can be rewritten in
terms of implied volatility and its derivatives:

v
u
2 imp ∂σ imp ∂σ
u σimp + 2σimp T ( ∂T + (r − q)K ∂K )
(13) σ(T, K) = u √ ∂σimp
 
∂σimp 2
u  
∂2σ
1 + 2d1 K T ∂K + K 2 T d1 d2 ∂K + σimp ∂Kimp
t
2

Interpolation of the implied volatility surface is discussed in section 3, but first we


will reformulate equations 11 and 13 to eliminate r and q.
We define the moneyness, x = K/F (t, T ) and the fractional call price as
C(T, xF (t, T ))
(14) Ĉ(T, x) ≡
P (t, T )F (t, T )
With these changes of variables, the forward PDE for the fractional call price is

∂ Ĉ 1 ∂ 2 Ĉ
(15) = σ̂(T, x)2 x2 2
∂T 2 ∂x
and the local volatility is now a function of expiry and moneyness (denoted by the hat
symbol). The relationship between these two local volatility surfaces is trivially
(16) σ(T, K) = σ̂(T, K/F (t, T )) σ̂(T, x) = σ(T, xF (t, T ))
Equation 15 must be solved numerically4, with initial condition Ĉ(0, x) = (1 − x)+ ,
lower boundary condition Ĉ(T, 0) = 1 and upper boundary condition either Ĉ(0, xmax ) =
0 or ∂∂x

|x=xmax = 0, for some xmax  1. After reversing the change of variables, this
gives the call price across all expiries and strikes (within the set boundaries).
Just as in equation 13, we can rearrange equation 15 to give local volatility in terms
of implied volatility:

4Except in the degenerate case where σ̂ is a function of time only, in which case the RMS volatility
can be plugged straight into the Black formula.
4 RICHARD WHITE

v
u
2 ∂ σ̂
imp
u σ̂imp + 2σ̂imp T ∂T
(17) σ̂(T, x) = u √ ∂ σ̂imp
 
∂ σ̂imp 2
u  
2 ∂ 2 σ̂imp
1 + 2d1 x T ∂x + x T d1 d2 + σ̂imp ∂x2
t
∂x

The implied volatility, σ̂imp (T, x), is a function of expiry and moneyness, and
− ln(x) + 21 σ 2 τ √
(18) d1 = √ d2 = d1 − σ τ τ =T −t
σ τ
Again, it is trivial to convert between an implied volatility surface parameterised by
strike to one parameterised by moneyness.
Assuming we have obtained a smooth, interpolated, implied volatility surface from
market prices of options on a single underlying, we can then numerically or analytically
take derivatives to obtain the local volatility surface. Armed with this surface we numer-
ically integrate (i.e. solve) equation 15 once, read off the prices and compare with the
market prices. Alternatively, we can solve equation 6 once for each option. Either way
the only discrepancy with the input market option prices should be due to numerical
error.

3. Interpolation of Volatility Surfaces


The first condition for an interpolated volatility surface is that it matches exactly
the (liquid) market option prices5. To obtain a continuous local volatility surface, the
implied volatility surface should be at least C 1 (once differentiable) in the T direction
and C 2 in the strike/moneyness direction, and in general a (CTn , CK m ) implied volatility
n−1 m−2
surface, will produce a (CT , CK ) local volatility surface.
2 ∂ σ̂imp
The condition to avoid calendar arbitrage is σ̂imp + 2σ̂imp T ∂T ≥ 0. Defining in-
2
tegrated implied variance as ν̂imp (T, x) = T σ̂imp (T, x), the condition can be rewritten
as
∂ ν̂imp
(19) ≥0
∂T
In the strike direction, the arbitrage condition is more complex, but can be satisfied
by using a smile model that does not admit arbitrage.
To make the discussion concrete we consider FX options with ten expiries from 1 week
to 10 years, and 5 strikes per expiry (with deltas of 0.25, 0.35, 0.5, 0.75 and 0.85). Since
these data are dense on an expiry/strike grid, we can fit a separate smile model at each
expiry, then interpolate in the time direction between these fitted smiles.
We choose to use the SABR model6, which has four parameters. As such it is not
possible to guarantee an exact fit to all five option strikes. Since the CEV parameter,
β, and the correlation, ρ, have similar effects on the smile, they tend to play off against
each other when fitting the parameters, and it is common practice to fix β and fit for the
other three parameters. We choose β by running a least-squares fit between model- and
5It is not strictly interpolation if this is not met, however there are situations where a little mispricing
is tolerable to obtain a smooth, arbitrage-free surface.
6SABR is ubiquitous despite its shortcomings, not least of which is that it can admit arbitrage.
LOCAL VOLATILITY 5

market-implied volatilities for all five strikes. With β fixed, we then make three different
fits of SABR to the three sets of three consecutive points. These fits should be exact (a
failure would indicate bad data). Clearly, the fits will agree on the implied volatility at
the market strikes that they share (which in turn will be the market-implied volatilities),
but not at points in between. For the points in between, we take a weighted average.
For a point x, between xi and xi+1 , the weighted average is
    
xi+1 − x xi+1 − x
(20) f (x) = w fi (x) + 1 − w fi+1 (x)
xi+1 − xi xi+1 − xi
where fi () is the fit centred on the point xi and the weight function has the property
w(0) = 0 and w(1) = 1. An obvious choice is w(y) = y, but we must consider how the
derivatives of f () will behave.
The first and second derivatives are;
 
0 1 0 xi+1 − x
f (x) = w [−fi (x) + fi+1 (x)]
(21) ∆xi ∆xi
+wfi0 (x) + (1 − w)fi+1 0
(x)
 
1 xi+1 − x
f 00 (x) = 2 w00 [fi (x) − fi+1 (x)]
∆xi ∆xi
 
(22) 2 0 xi+1 − x  0 0

− w fi (x) − fi+1 (x)
∆xi ∆xi
+wfi00 (x) + (1 − w)fi+1 00
(x)
This means the first derivative is continuous for any choice of the weight function. How-
ever the second derivative can be discontinuous regardless of how smooth the basis
function fi is:
2 0  0
lim f 00 (xi + ) − f 00 (xi − ) = w (1) fi+1 (xi ) − fi0 (xi )

→0 ∆xi
(23)
2
w0 (0) fi0 (xi ) − fi−1
0
 
− (xi )
∆xi−1
If the additional constraint w0 (0) = w0 (1) = 0 is applied, then the second derivative will
be continuous. A candidate weight function is
    
1 1
(24) w(y) = sin π y − +1
2 2
Extrapolation is handled by using either the SABR fit to the lowest three strikes (for
strikes less than the lowest market strike) or the fit to the highest three strikes (for
strikes greater than the highest market strike)7.
3.1. Time interpolation. Clark (2011) points out that in FX markets there is no con-
nection between the volatility levels at a particular strike across expiries, and therefore it
makes little sense to interpolate between common strike levels from the smile fits in the
time direction. Instead, time interpolation should be performed between common delta
7With SABR there is a danger of getting arbitrage at very low strikes.
6 RICHARD WHITE

values. If the volatility at some (T, ∆) is required, the corresponding volatility at each
fitted smile is found by root finding for the strike8. Once these volatilities are known,
we can interpolate for the time T . An extra complication is that the PDEs we will solve
require the volatility at (potentially arbitrary) expiry and strike (or moneyness) points,
rather than expiry and delta, meaning we would have to iterate the above procedure
to find the delta and volatility at the required point. As this would be done several
thousand times to solve the PDE, it makes it impractical.
Clark (2011) suggests interpolating the ATM volatility, risk reversals and strangles9
to the required expiry, then performing a smile fit from these interpolated values. This
may require performing 50-100 separate smile fits, and be liable to numerical instability.
To avoid time consuming root finding, we define a proxy delta as

ln F

(25) d = √K
T

The volatility of common d values on four adjacent fitted smiles is then found, and the
integrated variances computed. Note that the condition of equation 19 (i.e. integrated
variance increases with time) need not hold for these four values as we are not moving
along a line of constant moneyness. We find that a log-log natural cubic spline interpo-
lation10 works best for the data (however we note that this method can admit calendar
arbitrage). Figure 1 shows the implied volatility surface using this method.

4. Local Volatility
If the implied volatility surface is treated as a black box, i.e. you request the volatility
at a given expiry and strike (or moneyness) and get a number back, then the only way
to form the local volatility surface is by forming difference quotients as approximations
to the partial derivatives. For each point in the local volatility surface, the value at
five (close by) points on the implied volatility surface are needed. If we can analytically
differentiate the smile model with respect to strike (which you can for SABR), then all
the information is available to calculate the partial derivatives analytically, which will
be faster and numerically more stable.
Figure 2 shows the local volatility surface derived from the implied volatility surface
of figure 1. As expected, it is considerably less smooth.
Expiry-moneyness is not the best way to display the volatility surface, as there is little
relevance in say the volatility (implied or local) of a 1W expiry, 0.2 moneyness option.
Following the definition of proxy delta above, we show the same local volatility surface
in expiry - proxy delta coordinates in figure 3.

8Of course, if the fitted smile was parameterised by delta in the first place, this root finding would
be unnecessary.
9The typical way FX volatilities are quoted.
10taking the log of the time values and the log of the integrated variance, and interpolate these values.
LOCAL VOLATILITY 7

Implied  Volatility  Surface  

0.5 0.45-­‐0.5
Volatility  

0.4-­‐0.45
0.45 0.35-­‐0.4
0.3-­‐0.35
0.4
0.25-­‐0.3
0.2-­‐0.25
0.35
0.15-­‐0.2

0.3 0.1-­‐0.15
0.05-­‐0.1
0.25 0-­‐0.05

0.2

0.15

0.1

0.05

0
0.00E+00
0.55
1.1
1.65
2.2
2.75

0.2
0.34
3.3

0.48
3.85

0.62
0.76
4.4

0.9
4.95

1.04
1.18
5.5

1.32
1.46
6.05

Expiry   1.6
6.6

1.74
1.88
7.15

2.02
7.7

2.16
2.3
8.25

Moneyness  
2.44
8.8

2.58
2.72
9.35

2.86
9.9
3

Figure 1. The implied volatility surface fitted to FX market data using


the technique discussed in the main text.

5. PDE Solving and Results


We solve the PDE using standard finite difference techniques described in Duffy
(2006), with a weighting between fully explicit and fully implicit time stepping schemes11.
The grid is non-uniform, having a greater density of points near t = 0 and around the
strike (or moneyness equals 1). The details of the PDE solver call be found in another
note, White (2012).
Having formed the local volatility surface (parameterised by moneyness), we solve
equation 15 using 100 points in both time and moneyness directions (a total of 10000
points in the grid), from time (expiry) 0 to 10 years, and moneyness 0 to 3.5. The
fractional call price is then converted to an implied volatility for each grid point12, and
interpolated. Figure 4 shows the market and model implied volatilities - the maximum
error is 0.1% and the average absolute error is 1.5bps.
5.1. Strike Sensitivity. As well as fitting the market well, the smiles should be smooth.
Figure 5 shows the smiles at 1 week and 5 years over a relevant range of strikes. There
is no numerical noise.
11An equal weighting is the Crank-Nicolson scheme, which has some numerical instability problems
(see Duffy (2004).
12actually the moneyness is restricted to 0.3 to 3.0
8 RICHARD WHITE

Local  Volatility  Surface  

0.5 0.45-­‐0.5
Volatility  

0.4-­‐0.45
0.45 0.35-­‐0.4
0.3-­‐0.35
0.4
0.25-­‐0.3
0.2-­‐0.25
0.35
0.15-­‐0.2

0.3 0.1-­‐0.15
0.05-­‐0.1
0.25 0-­‐0.05

0.2

0.15

0.1

0.05

0
0.00E+00
0.55
1.1
1.65
2.2
2.75

0.2
0.34
3.3

0.48
3.85

0.62
0.76
4.4

0.9
4.95

1.04
1.18
5.5

1.32
1.46
6.05

1.6
Expiry  
6.6

1.74
1.88
7.15

2.02
7.7

2.16
2.3
8.25

Moneyness  
2.44
8.8

2.58
2.72
9.35

2.86
9.9
3

Figure 2. The local volatility surface derived from FX market data


using the technique discussed in the main text.

5.2. Bucketed Vega. Another useful diagnostic is to measure the sensitivity of a rep-
resentative point to changes in the input data. The point is an option with six month
expiry and a strike of 1.4 (slightly ITM). Each of the 50 market data points has its im-
plied volatility shifted by 1 basis point in turn, the implied volatility surface refitted, the
local volatility surface recalculated, and finally a PDE solver run with the new surface.
The sensitivity is defined as
σoriginal − σbumped
s=

and  = 1 basis point. Almost identical results are obtained by solving the backwards
PDE (eqn. 6) as solving the forward PDE (eqn. 15). Figure 6 shows the result for
the backwards PDE. There is a large amount of sensitivity to the 6M ATM (which
corresponds to a strike of 1.4413) and the 6M 25% delta (with strike 1.32), with smaller
amounts to the other 6M points, and very little sensitivity to the rest of the market data
- which is desirable.

5.3. Delta and Gamma. In this case, delta refers to the forward delta (or driftless
delta), which is the sensitivity of the future value (FV) of an option to the relevant
13The ATM is taken to be the delta-neutral straddle (DNS), so the strike is given by K =
2
F exp(σAT M T /2).
LOCAL VOLATILITY 9

Local  Volatility  Surface  

0.45 0.4-­‐0.45
Volatility  

0.35-­‐0.4
0.4
0.3-­‐0.35
0.25-­‐0.3
0.35
0.2-­‐0.25
0.15-­‐0.2
0.3
0.1-­‐0.15

0.25 0.05-­‐0.1
0-­‐0.05
0.2

0.15

0.1

0.05

0
0.00E+00
0.55
1.1
1.65
2.2
2.75

0.5
0.45
3.3

0.4
3.85

0.35
0.3
4.4

0.25
4.95

0.2
0.15
5.5

0.1
0.05
6.05

Expiry   0
6.6

-­‐0.05
-­‐0.1
7.15

-­‐0.15
7.7

-­‐0.2
-­‐0.25
8.25

Proxy  Delta  
-­‐0.3
8.8

-­‐0.35
-­‐0.4
9.35

-­‐0.45
9.9
-­‐0.5

Figure 3. The local volatility surface derived from FX market data


using the technique discussed in the main text and shown in expiry -
proxy delta coordiantes.

forward. This is known as pips forward delta in FX, and in a Black-Sholes-Merton world
is given by
(26) ∆F ;Black = ωN (ωd1 )
For a stochastic volatility model where the implied volatility is a function of the forward
(such as SABR), the full delta can be written as
∂σ
(27) ∆F = ∆F ;Black + νF ;Black
∂F
where νF ;Black is the Black forward vega (sensitivity of the forward value of an option to
its implied volatility). For a model with some parameters, θ, that have been calibrated
∂σ
to the market, the term ∂F is understood to be the sensitivity with those parameters
14
fixed.
For local volatility, it is assumed that the local volatility surface (parameterised by
strike) is invariant to a change in the forward - this assumption will produce a different

14The ∂σ
term is known as the backbone, and is sometimes defined extraneously to produce the smile
∂F
dynamics ’expected’ by the trader.
10 RICHARD WHITE

0.22

0.2

0.18
Implied  Volatility  

0.16
Market  Vols
Model  Vols
0.14

0.12

0.1
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Delta  

Figure 4. The market and model (i.e. fit implied volatility surface →
derive the local volatility surface → run a PDE solver) implied volatilities.

delta to that given by a stochastic volatility model even when they agree exactly on
price.
Solving equation 6 for a particular strike and expiry, T , produces a set of forward
values at different initial levels of the relevant forward, F (0, T ). The delta can then
be read off by taking the difference quotient of these values15. To produce delta as a
function of strike, the PDE is solved 100 times at different strikes, with the expiry fixed
at six months.
Extracting deltas from the solution to equation 15 is more challenging since the spatial
variable is now moneyness. Delta can be written as:
∂[F Ĉ] ∂ Ĉ ∂ Ĉ
(28) = Ĉ + = Ĉ − x
∆F = + surface delta
∂F ∂F ∂x
The term surface delta comes from the fact that, if the local volatility parameterised by
strike is invariant to the forward, the surface parameterised by moneyness cannot be.
Writing the local volatility explicitly as a function of the forward, σ̂(T, x; FT ), the delta
is written as:

∂ Ĉ(T, x; σ̂(T, x; FT ))
∆F =Ĉ(T, x; σ̂(T, x; FT )) − x
∂x
(29)
Ĉ(T, x; σ̂(T, x; (1 + )FT )) − Ĉ(T, x; σ̂(T, x; (1 − )FT ))
+ lim
→0 2FT
15To get the delta at the actual forward, if it does no lie on the grid, linear interpolation is used.
LOCAL VOLATILITY 11

1W  
0.19

0.185
Implied  Volatility  

0.18

0.175

0.17

0.165
1.3 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38
Strike  

5Y  
0.17

0.16
Implied  Vol  

0.15

0.14

0.13

0.12
1 1.2 1.4 1.6 1.8 2 2.2
Strike  

Figure 5. The smile at 1 week and 5 years.

The PDE is solved three times; once with an unmodified surface, then once each with a
surface made by fractionally shifting the forward up and down by an amount  = 0.05.
The first term is obtained from the unmodified solution, the second by taking difference
quotients, and the third by taking the difference between the two modified solutions.
12 RICHARD WHITE

Bucketed  Vega  

0.8

0.7

0.6

0.5
Sensitivity  

0.4

0.3

0.2

0.1

-­‐0.1 1W
2W
3W
1M
3M 85%
6M
75%
9M
1Y 50%
5Y 25%
10Y 15%

1W 2W 3W 1M 3M 6M 9M 1Y 5Y 10Y
15% 9.71E-­‐03 3.48E-­‐03 1.11E-­‐03 -­‐1.02E-­‐02 2.63E-­‐02 -­‐6.79E-­‐02 -­‐6.69E-­‐04 3.35E-­‐05 0.00E+00 0.00E+00
25% -­‐2.69E-­‐02 -­‐4.88E-­‐03 -­‐6.38E-­‐03 9.17E-­‐03 9.20E-­‐04 3.20E-­‐01 8.35E-­‐03 -­‐1.60E-­‐04 0.00E+00 0.00E+00
50% 3.74E-­‐02 7.42E-­‐03 4.00E-­‐03 2.76E-­‐04 6.39E-­‐03 7.85E-­‐01 -­‐2.73E-­‐04 -­‐2.45E-­‐04 0.00E+00 0.00E+00
75% -­‐3.84E-­‐02 -­‐5.39E-­‐03 -­‐4.39E-­‐03 -­‐1.06E-­‐02 1.08E-­‐02 -­‐5.67E-­‐02 -­‐3.54E-­‐03 2.66E-­‐05 0.00E+00 0.00E+00
85% 1.87E-­‐02 2.87E-­‐03 -­‐1.75E-­‐03 1.31E-­‐02 -­‐2.79E-­‐02 -­‐7.23E-­‐04 2.44E-­‐04 -­‐4.23E-­‐10 0.00E+00 0.00E+00

Figure 6. Bucketed vega - the sensitivity of the implied volatility of an


option (expiry 6M, strike 1.4) to the implied volatility of market inputs.

Aside: If the third term is missed out, then the implicit assumption is that the
local volatility surface parameterised by moneyness is invariant to the forward curve.
This will give the same delta as a stochastic volatility model whose implied volatility
is a function of moneyness only - this included SABR when β = 1 and the Heston model.

Figure 7 shows the smile produced from solving the forward and backwards PDE
(recall that in the case of the backwards PDE, it is solved 100 times with different
strikes). The agreement is good, only visibly deviating for very large strikes. Figure
8 shows the corresponding delta along with the Black delta. The agreement is good
between the solutions of the two PDEs.
∂σ
A delta below the Black delta indicates (from equation 27) that ∂F < 0. This is the
case for strikes below ATM, and the opposite is true above ATM. From the shape of the
smile, this suggests that the smile will move to the left as the forward increases. This is
confirmed in figure 9 where smiles have been produced as above, but with the forward
increased by 10%. This smile dynamic for local volatility is the opposite of what is seen
in the market, as noted by Hagan (2002).
LOCAL VOLATILITY 13

Smile  for  Foward  and  Backwards  PDE  


0.55

0.5
Backwards  PDE
0.45
Forwards  PDE
0.4
Implied  Vol  

0.35

0.3

0.25

0.2

0.15

0.1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Strike  

Figure 7. The volatility smile at six months from solving the forward
and backwards PDE.

Delta  against  strike  


1

0.9
Black  Delta
0.8
Delta  (Forward  PDE)
0.7 Delta  (Backwards  PDE)

0.6
Delta  

0.5

0.4

0.3

0.2

0.1

0
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5
Strike  

Figure 8. The Black delta and the local volatility delta


14 RICHARD WHITE

0.6
Smile  Dynamics  

0.5

0.4
Implied  Volatility  

0.3

0.2

Original  (Forward  PDE)


0.1 Orginal  (Backwards  PDE)
Forward  up  10%  (Forward  PDE)
Forward  up  10%  (Backwards  PDE)

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Strike  

Figure 9. The change in the smile when the forward is increased by 10%.

5.3.1. Gamma. As with delta, the true gamma can be written as


∂σ ∂2σ
(30) ΓF = ΓF ;Black + 2VannaF ;Black
+ νF ;Black
∂F ∂F 2
There are two correction terms to the Black forward gamma. The local volatility gamma
is easily found from the second order difference quotient of the solution to the backwards
PDE, and repeated 100 times at different strikes. Finding gamma from the forward PDE
is more involved. Using the same notation as for delta, it is written:
(31)
x2 ∂ 2 Ĉ(T, x; σ̂(T, x; FT ))
ΓF =
FT ∂x2
Ĉ(T, x; σ̂(T, x; (1 + )FT )) − Ĉ(T, x; σ̂(T, x; (1 − )FT ))
+
2FT
∂ Ĉ(T,x;σ̂(T,x;(1+)FT ))
∂x − ∂ Ĉ(T,x;σ̂(T,x;(1−)F
∂x
T ))

−x
FT
Ĉ(T, x; σ̂(T, x; (1 + )FT )) + Ĉ(T, x; σ̂(T, x; (1 − )FT )) − 2Ĉ(T, x; σ̂(T, x; FT ))
+
2 FT
The first term is the gamma if the local volatility, parameterised by moneyness, were
invariant to the forward curve. The second term is the surface delta we saw above. The
third term could be called (with a slight abuse of terminology) the surface vanna - it
is the change in the moneyness delta due to a change in the surface. Finally the last
LOCAL VOLATILITY 15

term could obviously be called the surface gamma. Figure 10 shows the gamma from the
two PDE solutions along with the Black gamma. Again, the agreement is good between
the solutions of the two PDEs, although it is not clear what is causing the shoulder to
appear in the forward PDE gamma.16

4.00
Gamma  against  strike  

3.50

3.00

2.50
Gamma  

2.00
BS  Gamma
Gamma  (Forward  PDE)
1.50
Gamma  (Backwards  PDE)

1.00

0.50

0.00
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5

Strike  

Figure 10. The Black gamma and the local volatility gamma

5.4. Volatility Greeks. Vega in a BSM world is well defined, as volatility is a parameter
of the pricing formula. For a local volatility model, it could mean the sensitivity of price
to any deformation of the local volatility surface. Standard deformations could be a
parallel shift (e.g. each point is increased by 1 basis point of volatility) or a fractional
shift (e.g. each point is increased by 0.01% of its value). Figure 11 show the results for
a parallel shift; the surface is moved up and down by 1bp, and the vega calculated as
the difference between the prices divided by 2 bps. As usual, we are taking an expiry of
six months.
5.4.1. Vanna and Vomma. Vanna is the sensitivity of delta to the implied volatility (i.e.
∂2C
∂σ∂F ) and vomma is the second derivative of price with respect to implied volatility
2
(i.e. ∂∂σC2 ). Again, both have very clear definitions in a BSM world. As with vega, we
calculate the local volatility vomma as the second order difference quotient from parallel
16It was thought that this was due to well-known numerical problems with Crank-Nicolson, but
running a fully implicit PDE solver does not cure it.
16 RICHARD WHITE

0.45
Vega  
0.40

0.35

0.30
BS  Vega

0.25 Vega  (parallel  Surface  Shift)


Vega  

0.20

0.15

0.10

0.05

0.00
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5

Strike  

Figure 11. The Black vega and the local volatility vega computed from
parallel shifts of the surface, for six month expiries

shifts in the surface. Vanna is more complex (mainly because computing delta from a
moneyness parameterised forward PDE is complex), and can be expressed as

Ĉ(T, x; σ̂(T, x; FT ) + η) − Ĉ(T, x; σ̂(T, x; FT ) − η)


VannaF =

∂ Ĉ(T,x;σ̂(T,x;FT )+η)
∂x − ∂ Ĉ(T,x;σ̂(T,x;F
∂x
T )+η)

−x
(32) 2η
1 
+ Ĉ(T, x; σ̂(T, x; (1 + )FT ) + η) + Ĉ(T, x; σ̂(T, x; (1 − )FT ) − η)
4η

−Ĉ(T, x; σ̂(T, x; (1 + )FT ) − η) + Ĉ(T, x; σ̂(T, x; (1 − )FT ) + η)

The first term is simply the vega of the fractional price, Ĉ, the second is the vanna
of the fractional price, and the third is the cross second order derivative to changes to
the volatility surface due to deformation from change in the forward, and parallel shifts.
Figures 12 and 13 show the Black and local volatility vanna and vomma.

6. Conclusion
We have shown that our implementation of local volatility (which includes fitting a
smooth implied volatility surface to market data, deriving a local volatility surface from
this, and numerically solving one of two PDEs) reprices the market almost exactly. Fur-
thermore, it produces local behaviour of bucketed vega (i.e. the price of a representative
option only depends on the values of nearby market inputs) and smooth greeks.
LOCAL VOLATILITY 17

2.50
Vanna  
2.00 BS  Vanna
Vanna

1.50

1.00
Vanna  

0.50

0.00

-­‐0.50

-­‐1.00

-­‐1.50
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5
Strike  

Figure 12. The Black vanna and the local volatility vanna computed
from parallel shifts of the surface, for six month expiries

2.50
Vomma  

2.00

BS  Vomma
Vomma

1.50
Vomma  

1.00

0.50

0.00
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3 2.5
Strike  

Figure 13. The Black vomma and the local volatility vomma computed
from parallel shifts of the surface, for six month expiries

References
Clark, Iain J. (2011). Foreign Exchange Option Pricing: A Practitioner’s Guide. Wiley Finance.
Duffy, D J. (2004). A Critique of the Crank Nicolson Scheme Strengths and weaknesses for Financial
18 RICHARD WHITE

Instrument Pricing.
Duffy, D J. (2006) Book
Dupire, B. (January 1994). Pricing with a Smile. Risk Magazine, Incisive Media.
Gatheral, Jim. (2006). The Volatilty Surface. Wiley Finance.
Gyöngy, I. (1986), Mimicking the One-Dimensional Marginal Distributions of Processes Having an Ito
Differential, Probability Theory and Related Fields, 71, 501-516.

E-mail address: richard@opengamma.com

You might also like