I am considering a simple Heston Model Market with one risky and one riskless asset.

The dynamics of the riskless asset is simply $dB_t=r*B_t*dt$

The dynamics of the risky asset is as follows,

$ dS_t=r*S_t*dt+\sqrt{V(t)}*S_t*dW_t, S_0>0 $

$ dV_t= \alpha*(\beta-V_t)*dt+\gamma*\sqrt{V_t}*dW^{\rho}_t, V_0=\sigma^2 $

$ W^{\rho}_t = \rho*W_t +\sqrt{1-\rho^2}*W^*_t $

where $W_t,W^*_t$ are independent standard one-dimentional Brownian Motion.

I want to ask firstly, whether there exist a explicit solution for $S_t$ and $V_t$. If yes, can you please tell me what is it and how to find it.

Secondly, when i simulate this market and compute the price of simple European call option on this risky asset using Monte Carlo $C_{Heston}$ and then compute the implied volatility in the Black and Scholes Market, i cannot find implied volatility for some values of the strike price.

this is the equation i am using to find implied volatility of Heston Model in Black and Scholes Market, $s*exp(r*T)*\Phi(\frac{(ln(s/K)+(r+(1/2)*\sigma^2)*T)}{(\sigma*\sqrt{T})})-K*\Phi(\frac{(ln(s/K)+(r-(1/2)*\sigma^2)*T)}{(\sigma*\sqrt{T})}) = C_{Heston}$

where $\Phi$ is CDF of Normal(0,1).

solving for $\sigma$ using computer algebra gives, $RootOf(-S_0*exp(r*T)*erf((1/4)*\frac{(T*Z^2+2*r*T+2*\ln(S_0/K))*\sqrt{2}}{(Z*\sqrt{T})})+erf((1/4)*\frac{(-T*Z^2+2*r*T+2*ln(S_0/K))*\sqrt{2}}{(Z*\sqrt{T})})*K-S_0*exp(r*T)+K+2*C_{Heston})$

but this is becoming complex for some values of $K$ in the model.

So my question is does the implied volatility of Heston Model in Black Scholes Model for European Call Option exist for all values of the strike price $K\gt 0$.

Please answer in easy to understand and elaborate manner as i am new to this subject.

  • 1
    $\begingroup$ Your model is not a Black-Scholes Model, it is a Stochastic Volatility Model. You cannot use the Black-Scholes Formula for this. You may find a solved case by the Heston Model which assumes $\rho=0$. $\endgroup$
    – emcor
    Commented Jul 3, 2014 at 15:40
  • 2
    $\begingroup$ These are two completely separate questions - I suggest you form two separate questions out of it! $\endgroup$
    – vonjd
    Commented Jul 3, 2014 at 16:07
  • $\begingroup$ Thank you for pointing that out. What i meant was price of the European Call Option is computed using Monte Carlo for Heston Model then its implied volatility is computed in the Black and Scholes Model. $\endgroup$
    – user13892
    Commented Jul 3, 2014 at 16:20
  • $\begingroup$ I am not sure if your method makes sense, but the implied volatility from Black Scholes Formula would always exist, just a closed-form expression does not. So you may use a numerical solver instead for $C(\sigma)-C^{Market}=0$. $\endgroup$
    – emcor
    Commented Jul 3, 2014 at 16:50
  • $\begingroup$ It wouldn't exist on the border of arbitrage opportunity, when intrinsic value is larger or equal to option price. $\endgroup$
    – sashkello
    Commented Jul 3, 2014 at 23:34

1 Answer 1


(1) No, the stochastic differential equation for Heston model does not have an explicit solution. What does exist is an explicit formula for the Fourier transform of a call option price. See e.g. http://www.zeliade.com/whitepapers/zwp-0004.pdf for a decent survey.

(2) Yes, implied vol always exists. You can check that the Black-Scholes price of an option is monotonically increasing in sigma, with lower limit at intrinsic value [0 for out-of-money option] and upper limit at the super-replication value [price of the underlying, for a call option]. So by the inverse function theorem for every non-arbitrageable price there is an implied volatility.

When implied vol calculation fails, one of two things may be going wrong. (i) The input option price may be outside of the no-arbitrage range, for example due to numerical error in the price calculation. This is almost certainly the problem you are experiencing when using monte carlo. (ii) Your numerical root-finding algorithm may fail. It is easy to check if (i) occurs, just by checking if the input value is in the range. For (ii), just find an adequate solver. For testing things, you can write your own bisection method if you like; that should be 100% robust. For strikes far from spot, use the out-of-the-money option [calls for high strikes, puts for low strikes] to avoid loss of numerical accuracy in the floating point calculations.

  • $\begingroup$ What does "The input option price may be outside of the no-arbitrage range, for example due to numerical error in the price calculation." mean. Can you describe it a little bit further? Thanks $\endgroup$ Commented Sep 7, 2016 at 19:03

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.