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, }$

enter image description here1

  • 1
    $\begingroup$ The implied volatility of an option is a specific level of volatility that will give the option price if you put it in the standard Black Scholes formula. So you have the other parameters, like interest rate and time to maturity, then you can easily solve for the IV for a given price...... Or have misunderstood you? $\endgroup$ – Sanjay Apr 8 '19 at 21:20
  • $\begingroup$ If I do not use the BS formula, but something more complex that requires simulation of the Option price, then how can I solve for IV if I do not know the exact function. My initial thought was an interpolation between points $\endgroup$ – alexbougias Apr 8 '19 at 21:23
  • 1
    $\begingroup$ Two points of what? (strike,IV)-points? From the phrasing of the question it is not clear to me how your data look like? To me, your question is unclear as it is stated. Please consider editing and adding more information $\endgroup$ – Sanjay Apr 8 '19 at 21:45
  • $\begingroup$ That makes much more sense. Downvote removed! $\endgroup$ – Sanjay Apr 9 '19 at 9:27

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.


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.