Skip to content
All library documents

Implied Volatility Precision Depends on Price Tolerance

Article Quant Q&A · Author: Mário Marinato

Summary

The document explains why a trial-and-error Black–Scholes calculation can return a range of implied volatility estimates that appear to reproduce the same option price. The cause is limited numerical precision: the search stops when the difference between the market price and the model price falls within a chosen tolerance. Tightening that stopping tolerance can distinguish estimates more precisely, though it cannot create accuracy beyond the precision of the market price input.

The discussion offers a practical way to think about selecting an estimate: set an appropriate convergence criterion for the desired numerical precision, and account for input data quality. It refers to using an optimizer with a configurable stopping precision, but does not compare algorithms or give a recommended tolerance. The examples are illustrative; the document does not address volatility-surface conventions, model misspecification, or other sources of implied-volatility uncertainty.

Key ideas

  • A range of implied volatilities can appear to reproduce the same option price when the solver uses a loose stopping tolerance.
  • The stopping criterion controls how closely the model price must match the observed market price.
  • More numerical precision cannot compensate for limited precision in the market price input.
  • An optimizer can be configured to stop at a chosen precision, but the document gives no universal tolerance.

Tags

Full text
# What precision do I need to calculate implied volatility?


# What precision do I need to calculate implied volatility?












I'm developing a software to calculate the implied volatility of an option using the Black & Scholes formula and a trial-and-error method. The implied volatility values I get are correct, but I noticed that they are not the only possible ones.

For example, with a given set of parameters, my trial-and-errors lead me to an implied volatility of 43,21%, which, when used on B&S formula, outputs the price I started with. Great!

But I realized this 43,21% value is just a fraction of a much wider range of possible values (let's say, 32,19% - 54,32%).

Which value should I, then, pick as the 'best' one to show to my user?

## Answer by SRKX (score 1, accepted)

https://quant.stackexchange.com/a/3337

The reason why you get the same result (price) from the BS formula is because your are missing precision in the computations.

When you compute your trial and errors, you have certainly defined a constant $\epsilon$ which defines when the algorithm has to stop: $(p - \bar{p})^2 < \epsilon$ where $p$ is the market price and $\bar{p}$ is the price you got using the volatility estimate $\bar{\sigma}$ in the BS Formula : $\bar{p}=\text{BS}(\bar{\sigma},\cdot)$. If you want better precision, then you need to reduce $\epsilon$. Consider also that you might be lacking precision from the market price data $p$ that you use.

Usually, you would use a global optimizer such as MATLAB's fmincon where you can setup the precision at which you want the algorithm to stop.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.