Estimating Implied Volatility with Common Random Numbers
Summary
The document describes how to recover an option’s implied volatility when its price must be estimated by Monte Carlo simulation. Independent random draws at each volatility can make estimated prices jump around, obscuring the price-versus-volatility relationship and making a numerical root search unreliable. Reusing the same random sequence across candidate volatilities reduces this avoidable simulation noise; quasi-random sequences, such as Sobol points, may further improve convergence and accuracy.
With common draws, the estimated price is continuous in volatility when the payoff varies continuously with the simulated path, so ordinary bisection can work. If repeated pricing is costly, one can simulate a small set of volatility values and interpolate or smooth the resulting prices to find the implied volatility. This can also be useful for discontinuous payoffs when the theoretical option price remains continuous in volatility. The discussion is methodological and gives no numerical error bounds; interpolation accuracy depends on the pricing relationship and selected points.
Key ideas
- Use the same random draws when comparing Monte Carlo option prices across volatility inputs.
- Common random numbers reduce simulation noise that can interfere with numerical root finding.
- Quasi-random sequences can improve convergence relative to pseudo-random draws.
- Bisection is suitable when the simulated price changes continuously with volatility.
- Interpolation can reduce pricing effort when many volatility evaluations are costly.
Tags
Full text
# Implied volatility in Monte Carlo models
# Implied volatility in Monte Carlo models
Suppose I want to get the implied volatility for a given option, whose process does not generate a closed-form formula. In that framework, how is the IV calculated, given the fact that bisection method does not work due to error in simulated value of the call?
My initial thought was:
2) Suppose that I want to price a Call Option with given parameters, whose market price is $C_{mkt}=11$.
1)Simulate N theoretical prices with different values of volatility. Fit a polynomial on the series $\{Theoretical_{j_1},Theoretical_{j_2},...,Theoretical_{j_N}\}$,
where: $Theoretical_i=\text{Theoretical price for option with IV}=j_i $
$\text{and } \{j_1,j_2,...,j_N\} \text{is a set of IVs}$
3) Find the $IV^*$,
that gives:
$C_{mkt}= f({IV*}), \text{where: f(x) is a polynomial with the pseudo-theoretical value for IV=x, }$
1
## Answer by Antoine Conze (score 3, accepted)
https://quant.stackexchange.com/a/45005
To start with make sure that each Monte Carlo price is computed with the same random numbers sequence, so as to avoid unnecessary numerical noise that would result from using different sequences for each pricing. Also using quasi random sequences (e.g. Sobol) rather than pseudo random sequences improves convergence and thus accuracy quite a bit.
Once you use the same random numbers sequence for each pricing, you will find that by construction, if the option payoff is a continuous function of the trajectory of spot prices and other variables (if any) then the computed option price is a continuous function of inputted volatility so a classical bisect search should work. However it might be time consuming so even in this case it can be a good idea to only compute a small number of values and then use some smoothing interpolation (such as polynomial) to compute the IV. And this will work even when the payoff is discontinuous but the option price is (theoretically) continuous in volatility.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.