When calibrating the Heston model, the gradient of the price of the call/cost function wrt $\rho$ (correlation between $S$ and $V$), is a lot less than the other parameters like $v_0$ and $\bar{v}$. As a result, any algorithm that uses the gradient, will over-adjust $\rho$ straight to the boundary because it requires a larger change in $\rho$ to reduce the cost function compared to the other parameters. Even if you use box constraints like a sigmoid function, it will take rho to -1 or 0, if your initial guess was over or under.

If you start with a really small damping/scaling factor, it won't matter as over time, $\rho$ will still want to go to the boundary. I thought of making $\rho's$ steps arbitrarily smaller than the others, but that sort of defeats the purpose of using gradient based optimisation.

It seems like a fundamental issue - if the gradient of 1 parameter is far less than the others, it will always be over-adjusting the smaller gradient parameter. How do people normally overcome this and getting a reasonable $\rho$ and not $\rho =\{-1,0\}$

In other words, you could choose any value of $\rho$ and still find a local minima. How do people normally deal with this?

  • $\begingroup$ I have a question. The parameters you give initially is a good candidate to be the objective solution? As I told you in a similar question you asked some time ago. You are basically asking how to prevent the gradient method from adjusting the update of the objective function for $\rho = \{0 , -1\}$ which (unfortunately) in Heston's model is the one that guarantees the largest negative variation of descent. You do realize that what I just wrote is a contradiction right? My advice try generating from a uniform (0,1) as many sets of $\theta^{(0)}$ to pass to the algorithm and see what happens $\endgroup$
    – SimoPape
    Commented Nov 14, 2023 at 13:35
  • $\begingroup$ Ok, I'll try that. But yes, the only way that I can prevent $\rho$ from instantly going to 0 or -1 is setting my damping factor to like 1e-9, but then $\rho$ will inevitably go to -1 or 0 anyway. I realise that we have many local minimums and realistically, $\rho$ could be considered futile as you can always make small adjustments to v parameters instead. Im more so asking a general idea of how to tackle this problem because out of all the heston calibration papers I've, not 1 has discussed this phenomena - gradient wrt 1 param being a lot less than the rest, resulting it going to the boundary $\endgroup$ Commented Nov 14, 2023 at 23:33
  • $\begingroup$ Out of curiosity, what algorithm do you use to minimize and what programming language did you use? $\endgroup$
    – SimoPape
    Commented Nov 15, 2023 at 19:40
  • $\begingroup$ @SimoPape python + levenberg-marquardt algorithm. I'm not using scipy because their LM algorithm doesn't have bounds, and am using the cosine expansion method for the heston $\endgroup$ Commented Nov 15, 2023 at 23:59
  • $\begingroup$ If you have MatLab I invite you to look at my GitHub repository where I calibrate Heston (and also Bates) using the COS method and the Levenberg-Marquardt algorithm (See cap4). Maybe it can give you a source of inspiration github.com/SSPerotti/MasterThesis_FFTCOS $\endgroup$
    – SimoPape
    Commented Nov 17, 2023 at 14:04


Your Answer

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