How can I reproduce the implied volatility curve (plotted against the strike price) in the Heston model (i.e. the blue line in the graph below)?

What's the equation that I have to set up and solve?

I have a function that evaluates the price of a Heston call:

heston_call$(S_0, v_0, \theta, \kappa, \eta, r, \rho, \tau, K)$ where $K$ is the strike price and the other variables are as explained below.

  • 3
    $\begingroup$ The definition of implied volatility $I(K)$ is $BS(S_t,K,I(K)) = C(S_t,K)$, where $BS$ is the Black-Scholes call (or put) formula, and $C$ is the market or model price (in your case Heston). So you need to find the value of $I(K)$ for each strike $K$ such that the BS price matches the market/model price. You can use the bisection method for example to find $I(K)$. $\endgroup$
    – user34971
    Commented Feb 3, 2022 at 19:06
  • $\begingroup$ The values for initial and long-variance look much like volatilities. But for those values (0.2 and 0.3), I find it surprising that implied vol ATM should be so high (it is below 0.3 for almost no strike). $\endgroup$ Commented Feb 16, 2022 at 10:00

1 Answer 1


The concept of implied volatility is in fact inseparable from the Black-Scholes-Model. Thus you will have to solve for which implied volatility must be used to result in the desired option price. You can find a nice explanation how it can be done here: A simple formula for calculating implied volatility?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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