Background: We're estimating the parameters of the Heston model from current market data of options. This is to be implemented using the active-set method (see section 16.5 here) and the Levenberg-Marquardt method (see here). The resulting optimization problem is a least squares problem (the same as that used in the Heston article, equation number (4)), subject to the Feller condition $2 \kappa \eta - \theta^2 > 0$ as an additional condition by us. The solving algorithm will be executed for multiple starting points to determine a set of local optima of the Heston model.

We fail to understand the conditions used for the active sets, as the article referenced for Levenberg-Marquardt states the optimization problem is chosen to be unconstrained. With the Feller condition being a strict inequality, it will not be used in an active set.

Our understanding: We're assuming to use the LM method to solve a sub-problem given by the active-set method. However, without any (non-strict) inequality conditions we fail to understand how our sub-problems will be formed.

Are we able to alter the strict inequality of the Feller condition by adding a slack variable? Say, to allow for a slack of magnitude $10^{-10}$.

If so, if the condition can be made active, how would the LM method be adapted to account for this condition? If not, are we missing something entirely?


1 Answer 1


From the point of view of reasonable Heston model calibrations, coming even close to violating the Feller condition provides very unrealistic forward volatility surfaces. Therefore, you should feel perfectly comfortable enforcing $2 \kappa \eta - \theta^2 \geq \epsilon$ for some fairly nontrivial $\epsilon$.

The authors of your linked paper do not mention how they treat inequality constraints. They write that they used LEVMAR as their Levenberg-Marquardt solver, which has a variant allowing for such constraints, but it's also possible they ran unconstrained and then rejected any local minima that violated the Feller condition. That's a common approach.

Since the Levenberg-Marquardt algorithm is basically an interpolation between gradient descent and Gauss-Newton, the treatment of constraints is fairly well understood, but its always faster to just run without them.


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.