By Implication: Peter J Ackel
By Implication: Peter J Ackel
By Implication: Peter J Ackel
Peter Jackel
First version:
This version:
Abstract
Introduction
A plain vanilla call or put option price p in the BlackScholes-Merton [BS73, Mer73] framework is given by
dS = [qS + (1 q) S0 ] dW ,
(1.2)
h
i
p = F ln(F/K)
+ 2
(1.1) the vanilla option price for strike can also be computed
F S0 /q
where = 1 for call options and = 1 for put options,
K + (1q)/q S0
T,
is the root-mean-square lognormal volatility, T
volatility skew such as it is observed in the equity and inis the time to expiry, and () is the standard cumulative
terest rate market for low strikes, q often has to take on
normal distribution function. In the Black-Scholes-Merton
values as small as 104 . Conversely, for some high strikes
framework, the quantitity represents a discount factor to
in the FX or commodity markets, q may need to exceed
time T , and in general, might be referred to as the deflater
2. All of this means that the effective standard deviation
of the option price.
number in the Black formula (1.1) can easily be in the
Black [Bla76] extended the applicability of the geomet- range [104 %, 1000%], or possibly even outside. As a conric Brownian motion framework to (what we might call to- sequence, any implied volatility solver should be able to
day) an arbitrary numeraire by ingeniously separating the produce a comparatively, i.e. relatively, accurate figure even
price deflation from the calculation of an option value rel- for parameter combinations that mean that is a very small
ative to todays value of the numeraire, thus making (1.1) or moderately large number, since it shouldnt assume that
applicable to almost all areas of financial option valuation the returned number is used straightaway: it may yet, for
theory. To value an interest rate swaption, for instance, we instance, undergo division by q T for small or large q
evaluate (1.1) with F representing the forward swap rate, and small or large T . This clearly requires any solver termination criterion to be based on relative accuracy in , not
in function value.
Implying volatility
Given an option price p, the task at hand is to find the loglim b = e /2 4/ ( /2)
(2.7)
+
x
(
(2.8)
sion (1.1) for the forward F and strike K. Once we
know
0
x
, the implied volatility figure is given by
= / T . So
far, it all seems easy.
using the definition of the normalised intrinsic value
Using the definitions
x
x/2
/2
:= h(x) e e
.
(2.9)
p
x := ln ( F/K )
b :=
,
(2.1)
FK
From equation (2.8) we can see what happens as volatilthe equation we need to solve for becomes
ity approaches zero (for x 6= 0): since (y) decays more
rapidly than y n for any positive integer n as y ,
x/2
x/2
b = e ([ x/ + /2]) e
([ x/ /2]) . the Black option price does not permit for any regular ex(2.2) pansion for small volatilities. The extremely flat functional
form of b for small for x 6= 0 can also be seen in figure 1,
The special but very important case F = K reduces to
and this is where the trouble starts.
b|x=0 = 1 2( /2)
(2.3)
1.4
solution1
= 2 1
1
2 (1
x = 1/2
x = 1/4
x=0
x = -1/4
x = -1/2
1.2
)
(2.4)
1
0.8
x = -1
b
0.6
0.4
2.1
Limits
0.2
The normalised option price b is a positively monotic function in [0, ) with the limits
x
x
x/2
/2
(2.5)
b < e /2
h(x) e e
0
0
0.5
1.5
2.5
3.5
n
management system where it is invoked literally billions or
|/|
4
4.E-06
even trillions of times every day . Ideally, when the correct
implied volatility is in the convex domain of the function,
3.E-06
we would want to converge from above (in function value),
2.E-06
when it is in the concave domain, we would want to con1.E-06
verge from below, since we are then guaranteed to never 0.001%
0.E+00
5.594%
leave the respective domain. Fortunately, the normalised
52.699%
-3.0
-1.9
-0.9
0.2
Black option formula (2.2) allows for the solution for the 254.163%
1.3
x
x
2.4
point of inflection. It is at
Figure 3: Left: residual relative difference between the correct implied
volatility and the number attained after Newton-iterating with start value
p
c =
2|x| .
(2.10) c given in (2.10) until the current relative step size is less than 104 of
700
600
500
400
300
200
100
0.001%
3.842%
32.828%
147.844%
489.898%
20%
70%
18%
14%
12%
40%
10%
8%
30%
6%
4%
2%
0%
20%
10% 0.001%
3.842%
0%
32.828%
147.844%
489.898%
2.4
1.3
0.2
-0.9
-1.9
32.828%
-3.0
147.844%
489.898%
2.4
1.3
0.2
-0.9
-1.9
-3.0
8%
12%
7%
10%
6%
8%
4%
6%
2%
0%
32.828%
147.844%
489.898%
2.4
1.3
0.2
-0.9
-1.9
-3.0
-1.9
-3.0
5%
using
3%
4%
0.001%
3.842%
-0.9
f() =
(3.1)
b
else
16%
60%
50%
0.001%
3.842%
80%
0.2
The temptation is now to simply start at c and Newtoniterate until we are converged. This works fine for all >
c , but fails for many < c . The reason for this failure
is the near-flat shape of the normalised Black function for
small volatilities. If you try it, you will find that the iteration
almost grinds to a halt since the update step for the next
guess converges practically as rapidly to zero as the current
guess to the correct solution (for low volatilities and x 6= 0)
as shown in figures5 2 and 3. Clearly, we would prefer to
2.4
1.3
2%
bc = bc (x, ) := b(x, c , ) .
1%
0.001%
3.842%
32.828%
(3.2)
0%
147.844%
489.898%
2.4
1.3
0.2
-0.9
-1.9
Alas, this leaves us with a new dilemma: our simplistic initial guess c is no longer such a good idea for all < bc
since, with the function value on a logarithmic scale, the
normalised Black function is no longer convex but concave, and the first step is likely to attempt overshooting
into the domain of negative . We can overcome this issue by finding a better initial guess. In order to do this,
we use a technique similar to asymptotic matching known
in some sciences. Let us recapitulate: the functional form
of the asymptotic
expansion6 for 0 given in (2.8) is
( x/) 3 x2 which, alas, is not invertible in . The term
( x/), which is what gives rise to the near-flat behaviour,
is invertible in , though! Whats more, a function of the
form c(x) ( x/) (for some c(x) depending only on x)
will, for small enough be always larger than (2.8), which
means that, when inverted, it will give rise to an estimate
for that is lower than the target root. This means, in the
areas where it matters most, namely for small and thus
-3.0
Figure 2: The absolute difference between the correct implied volatility and the number attained after n iterations when starting at c and
simply Newton-iteratingwith start value c given in (2.10) for different
n on (, x) [105 , 2 2 3] [3, 3]. Top left: n = 5, top right:
n = 50, bottom left: n = 100, bottom right: n = 150. Note that
the -axis has been scaled non-linearly to highlight the region of interest. The calculations for x = 0 have been done without iteration using
equation (2.4).
The implied volatility function is not only used for the representation of market prices but often also implicitly in exotic pricing models
or analytical approximations.
5
Note that the zero levels at the back of all shown diagrams for nonzero x and very small represent outright calculation failures since for
those parameter combinations the normalised Black function value is
smaller than the smallest representable floating point number (whence it
was rounded down to zero). In other words, those areas in the parameter
plane are not attainable in practice.
6
assuming that we are only dealing with out-of-the-money option
prices
|x|
12
4
( x ) + .
b
when the given value is larger than bc . In that case, we
else
b0
can use a functional form which, for very large , resemx
.
bles (2.7). We choose e /2 c(x)2( /2) since, as we with
x 2 1 2
12 (
0
) 2( 2 )
b
=
e
2
(3.10)
|x|
2
|/|
x=-1/2
0.5
1.5
0.25
0.2
0.15
6.E-11
5.E-11
0.0001%
24.7732%
76.2393%
4.E-11
3.E-11
154.1666%
2.E-11
259.7535%
1.E-11
394.4583%
0.E+00
x=-1
0.5
1.5
0.1
0.02
-1.071428571
-3
n
10
2x2
|x|4 ln b
0.2392%
0.3585%
0.4518%
0.4837%
0.6149%
0.6149%
0.7870%
0.7519%
0.8944%
3
2
-0.000001 -0.000006
0.000007 0.000003
-0.000010
tions (3.3) and (3.4) gives us the improved initial guess for
any given normalised option value :
low (x, , ) if < bc
0 (x, , ) :=
(3.5)
high (x, , ) else
with
0.2981%
0.E+00
-0.000005 -0.000010
0.000010 0.000005 0.000000
0.0001%
1.E-09
0.1254%
0.0001%
0.1535%
0.857142857
Figure 4: The invertible approximations blow and bhigh for the normalised
Black function b given by equations (3.3) and (3.4).
low (x, , ) :=
2.785714286
0
0 0.5 1 1.5 2 2.5 3 3.5 4
489.8979%
x=-4
0.06
0.05
365.1145%
|/|
b
blow
bhigh
0.08
0.04
259.7535%
2.E-09
0.12
0.1
104.1775%
173.0265%
2.5
0.14
x=-2
52.5260%
b
blow
bhigh
0.0001%
17.6038%
0.35
7.E-11
b
blow
bhigh
0.3
9.E-11
8.E-11
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
b
blow
bhigh
1.E-10
0.35
0.7
0.3
0.6
0.25
0.5
version of blow given in equation (3.3), which in turn is
0.2
0.4
not that brilliant an approximation for small x and moderx = -1/4
0.15
0.3
x = -1/16
ate < bc . However, for those parameter combinations,
0.2
the approximation bhigh seems to be a better approxima- 0.1
0.05
0.1
tion for the normalised Black function b, at least as long
0
0
as > b(x, high (x, 0, ), ) since high (x, 0, ) is the point
0
0.02
0.04
0.06
0.08
0.1
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
1
crucial idea here is not to try to find a better invertible ap- 0.4
0.5
proximation
for
b(x,
,
)
on
the
interval
[0,
]
with
c
0.2
in := /bc that transfers full weight from low at = 0 to Figure 7: The interpolated initial guess interpolated (x, , ) given by
equation (4.7) for = 1 and different x on [0, bc (x, )].
high at = 1 in a fashion that some readers may recognize
as Gamma-correction or Gamma-interpolation, namely
of three enhancements we present in this section that help
interpolated := 1 w( bc ) low + w( bc ) high (4.1) to reduce the number of iterations required for a certain relative accuracy in implied Black volatility.
with w() := min( , 1), wherein we have omitted the
The second one is aimed at reducing the number of iterdependency on (x, , ) for clarity, and with low and
ations needed for very small option values and very small
high given by equations (3.6) and (3.7), respectively. We
values of x, i.e. near the money. It is motivated by lookchoose such that the interpolation is exact when =
ing at the asymptotic form (2.8) once again: the crucial
b(x, high (x, 0, ), ) by setting:
x 2
term is e( /) . Taking the logarithm, gives it a hyperbolic
2
x
:= high (x, 0, )
(4.2) form: ( /) . At this point, we recall that most iterative
algorithms are derived such that they work most efficiently
b := b(x, , )
(4.3) when the objective function whose root is sought is well
low
:= low (x, b , )
(4.4) represented by a low order polynomial. Hyperbolic forms
can be reasonably well represented. However, a hyperbolic
ln(b
/b
)
c
else
b0
w = min max low , 0 , 1
.
high
low
(4.11)
(4.8)
Finally, we pull our third and last trick which exploits the
How well this works is shown in figure 7. The improved
fact that the first and second derivative of b(x, , ) with
initial guess formula (4.7) is the first, and most important,
respect to have the comparatively simple relationship
7
Thanks to Chris Gardner for pointing this out when, for instance,
F = 1 and K = 106 .
(exact)
(exact)
low
low
high
high
interpolated
interpolated
(exact)
(exact)
low
low
high
high
interpolated
interpolated
b00
b0
x2
3
(4.12)
(4.13)
n
2
n := max n , 2n
00 (x, ,)
n
3
n := max 2n ff 0 (x,
,
4
n ,)
f 00
f0
b00
b0
2+ln(b)
ln(b)
b0
b
|/|
3.5E-09
3.0E-09
4
2.5E-09
2.0E-09 0.0001%
0.0001%
0.1535%
1.5E-09
0.2981%
0.4518%
1.0E-09
0.6149%
5.0E-10
0.7870%
0.0E+00
0.000010 0.000005 0.000000 -0.000005 -0.000010
0.1254%
0.2392%
0.3585%
0.4837%
2
0.6149%
0.7519%
0.8944%
0.000010
0.000005
0.000000
-0.000005
-0.000010
3. Ensure you only ever operate on out-of-the-money option prices, if necessary by subtracting
the normalised
x/2
x
intrinsic value = h(x) e e /2 from
and switching 1 2h(x).
(4.14)
(4.15)
1{<bc } .
(4.16)
|/|
1.E-10
9.E-11
8.E-11
7.E-11
References
6.E-11 0.0001%
0.0001%
24.7732%
76.2393%
5.E-11 17.6038%
52.5260%
[Ack00]
[AS84]
M. Abramowitz and I.A. Stegun. Pocketbook of Mathematical Functions. Harri Deutsch, 1984. ISBN 3-87144-818-4.
[Bla76]
[BS73]
F. Black and M. Scholes. The Pricing of Options and Corporate Liabilities. Journal of Political Economy, 81:637654,
1973.
[Mer73]
4.E-11
3.E-11
154.1666%
2.E-11
259.7535%
1.E-11
0.E+00
394.4583%
3.0
2.1
1.3
104.1775%
173.0265%
259.7535%
2
365.1145%
489.8979%
2.785714286
0.857142857
-1.071428571
-3
Conclusion
For efficient
calculation:-
and
robust
implied
Black
volatility [Pic88]
1. Ensure you have a highly accurate cumulative and in- [PTVF92] W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P.
verse cumulative normal function8 .
Flannery. Numerical Recipes in C. Cambridge University
Press, 1992. www.nrbook.com/a/bookcpdf.php.