So I have been trying to implement a simple Heston calibration using crude MC with 10k scenarios and 1000 time steps and the best I could get is 3x of the observed implied volatility.

I suspect it has something to do with the way my initial guess worked, and therefore, I am just wondering:

  1. Is the initial guess very critical (that a not-so-great initial guess could give you 3x the differences)

  2. If it is, how can I get a good initial guess?

  • $\begingroup$ 3x sounds quite off, the initial guess should not get you that far away. Care to elaborate a bit on your setup. Maybe it is just a small issue. Matlab? $\endgroup$
    – Matt Wolf
    Commented Jun 18, 2013 at 2:48
  • 1
    $\begingroup$ What happens if you set the initial guess (very) close to the correct answer? If that doesn't work I fear you have a bug. $\endgroup$
    – Bob Jansen
    Commented Jun 18, 2013 at 5:35

2 Answers 2


To check your results, you might try "The Heston Model: A Practical Approach with Matlab Code" by Nimalin Moodley, http://math.nyu.edu/~atm262/fall06/compmethods/a1/nimalinmoodley.pdf , in particular the www.ingber.com open source C++ code for Adaptive Simulated Annealing (+ SWIG to wrap/parse it to the language you are using)


It depends on the used optimization algorithm, esp. whether they act locally or globally.

Just to give you some ideas:

  1. Local (deterministic) algorithms (e.g. gradient methods): a good initial guess is crucial.
  2. (Global) stochastic algorithms (e.g. simulated annealing): the initial guess is irrelevant.

You can find more here: Heston’s Stochastic Volatility Model Implementation, Calibration and Some Extensions by Sergei Mikhailov, Ulrich Nögel


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.