When we calculate the implied volatility, we would need to give the solver a range to start with. For example, QuantLib uses [0,4.0] for the range, which is another way of saying try all possible values.

Is there any theory on the best guess? Can we derive the theoretical best guess? The smaller the range we can give to the root solver, the quicker we get our results (less iterations required).

For example, if the implied volatility is 0.07 (we don't know that in advance). Can we give a range like [0.01,0.10]? which would make the solver converge quicker than if we give a range like [0,4.0].

  • $\begingroup$ Are you asking for a good first estimate to computing the inverse of the normal distribution? $\endgroup$ – user59 Feb 21 '16 at 13:54
  • $\begingroup$ @barrycarter I'm asking for the initial range for the root solver. I know we can always use [0,4.0] as the range. But can we do better? Can we give like [0.05,0.67] if we know everything but the volatility? The smaller the range, the faster we get the results. $\endgroup$ – SmallChess Feb 21 '16 at 14:01

It is always better to use some closed form approximation first to get initial guess. Corrado and Miller (1996) produced a solution that is quite accurate across a range of moneyness ( though it can be applied to BS model only and can’t be used for plain vanilla options or exotic options). The formula for implied volatility $\sigma$ is :

$\sigma = \frac{1}{\sqrt{t}} \left[ \frac{\sqrt{2\pi}}{S+Xe^{-rt}}+ \left\{C - \frac{S-Xe^{-rt}}{2} + \sqrt{\bigg(C- \frac{S-Xe^{-rt}}{2} \bigg)^2 - \frac{(S-Xe^{-rt})^2}{\pi}} \, \, \right\} \right] $

where, $C$ is actual market price, $X$ is strike price, and $t$ is time to maturity.


Do you really need to do this yourself?

The absolute state of the art is Peter Jaeckel's work, where he makes an implied vol function as good as exp, cos, and log special functions. And he pulished source code and algorithm details with careful numerical analysis of errors and convergence. This is a wheel you don't have to reinvent, any more than you need to write your own cosine function.



1. When you are using not-so-easily-converging method for convergence :

Using simplest case of ATMF option , we can assume that S = X * exp(-rT)

This gives a closed form solution for implied volatility as follows, which can be safely used as your initial estimator

ImpliedVol = (C/S) * sqrt ( 2*pi / T)

C = Market price of call option

S = Underlying asset price

Reference :- This was presented by Brenner and Subrahmanyam (1988) in one of the papers.

2. When you're using a better converging method , like Newton's or the similar league

Calculate your historical vol , and then the option price. Then using linear interpolation, scale up or down your historical vol w.r.t ratio/difference between your your option price ( BS ) and the market price

IV = histVol * (C / Cbs) * (Optional constant by intuition , default = 1.0)

C = Market price

Cbs = black scholes price of option

I would say that's a quite rough estimate and won't be very close to the actual value. But since you're using Newton Ralphson's approach which is quite good at convergence, I'd say this could be pretty smart one for an initial guess. Please feel free to use your own value for 'optional constant' here.

Reference : My thoughts.


"Which is another way of saying try all possible values" - this is not quite correct, nether in general sense or in QuantLib implementation. QuantLib uses Brent's method (I assume for robustness) which requires a range as input, but it definitely does not calculate option values for all inputs in the range.

But just like HyperVol explained - that there are really two steps - 1 choose a good starting point, 2 - run few iterations of solver of your choice until convergence.

To calculate starting value (or range), I would recommend this simple formula An Improved Estimator for Black-Scholes-Merton Implied Volatility, or more complicated (but more accurate) By Implication, or if you're working with ABM Numerical approximation of the implied volatility under arithmetic Brownian motion

By Implication approximation is much better that Corrado-Miller's formula


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.