Improving on [Jac06] and [Vog07], we show how Black's volatility can be implied from option prices with as little as two iterations to maximum attainable precision on standard (64-bit floating point) hardware for all possible inputs. The method is based on four rational function branches for the initial guess adapted to the log-moneyness, two of which are combined with nonlinear transformations of the input price, and the use of the convergence order four Householder method which comprises a rational function of the residual. Despite sounding difficult, the method is simple in practice, and a reference implementation is provided in [Jac13]. As was perhaps previously underestimated, of crucial importance for the precision of the implied volatility is a highly accurate Black function that minimizes round-off errors and numerical truncations in the various parameter limits. We implement the Black call option price with the aid of Cody's [Cod69, Cod90] rational approximation for the complementary error function erfcx(·) and its little known cousin, the scaled complementary error function erfcx(·). The source code of the reference implementation is available at www.jaeckel.org/LetsBeRational.7z.
[1]
M. Brenner,et al.
A Simple Formula to Compute the Implied Standard Deviation
,
1988
.
[2]
Henri Berestycki,et al.
Asymptotics and calibration of local volatility models
,
2002
.
[3]
J. Gregory,et al.
Shape Preserving Piecewise Rational Interpolation
,
1985
.
[4]
Irene A. Stegun,et al.
Pocketbook of mathematical functions
,
1984
.
[5]
William H. Press,et al.
Numerical recipes in C
,
2002
.
[6]
A. Householder.
The numerical treatment of a single nonlinear equation
,
1970
.
[7]
W. Cody,et al.
Rational Chebyshev approximations for the error function
,
1969
.
[8]
M. J. Wichura.
The percentage points of the normal distribution
,
1988
.
[9]
Darko Veberic,et al.
Having Fun with Lambert W(x) Function
,
2010,
ArXiv.
[10]
G. Marsaglia.
Evaluating the Normal Distribution
,
2004
.