Skip to content
All library documents

Choosing Numerical Optimizers for Complex Portfolio Allocation

Article Quant Q&A · Author: Stuart Gordon Reid

Summary

The document surveys the trade-offs involved in selecting an optimizer for portfolio allocation problems with multiple assets or risk factors, varied objectives, constraints, and simulation noise. It describes numerical search as a balance between computational speed and solution accuracy. Gradient descent improves a candidate by following local changes in the objective, but can become trapped in a local minimum. Simulated annealing adds random moves to help escape such traps, while genetic algorithms explore populations of candidate solutions through selection and mutation.

The response suggests that a staged approach can first locate a promising region and then refine the solution with a local method. It presents optimizer choice as dependent on the problem rather than a simple local-versus-global decision. The overview is qualitative and gives no comparative benchmarks or portfolio-specific results. It also notes that problem formulation, including convexity, can affect how reliably numerical methods work; the account does not fully analyze noise handling or the stated VaR and CVaR constraints.

Key ideas

  • Numerical optimization trades computational speed against solution accuracy.
  • Gradient descent can efficiently refine a solution but may stop at a local minimum.
  • Simulated annealing and genetic algorithms use stochastic search to explore alternatives.
  • A multi-stage workflow can combine broad search with local refinement.
  • Optimizer performance depends on the problem formulation and its mathematical structure.

Tags

Full text
# The importance of good optimizers in Portfolio Optimization


# The importance of good optimizers in Portfolio Optimization












I work as a Quant for an Asset Management and Insurance company and have recently enrolled for Masters degree in Computer Science. I am thinking about investigating how important having a "good" optimizer is for portfolio optimization / asset allocation problems in the presence of,

- Multiple asset classes + multiple risk factors

- Different risk-adjusted-return objective functions,

- Linear constraints as well as VaR or CVaR constraints, and

- Noise resulting from Monte Carlo Methods and Stochastic Processes

My hypothesis is that as you add more 'complexity' to the optimization problem, more traditional local optimization algorithms will struggle to optimize the problem and that it may make more sense to use a global optimization algorithm. It's really just a hypothesis at this point, so I may be totally wrong.

My question is really two fold, firstly, do you think that this is a worthwhile topic to research, and secondly, can anybody recommend any papers which relates to the above topic(s)? Thanks in advance.

P.S. I have read looked over the following questions and answers:

- portfolio optimisation with VaR (or CVaR) constraints

- Portfolio optimization with Portfolio CVaR Constraint

## Answer by zuiqo (score 1)

https://quant.stackexchange.com/a/16526

Let me try to give you an overview over the different approaches to optimization, and the specific challenges. You'll see that the problem is more a trade-off continuum than a binary choice.

All an optimizer does is finding a minimum to a specified problem. If you have an analytically tactable problem, that could be as easy as a lagrangian, usually your problem is much more complex, so you'll need to resort to numerical approaches.

With numerical approaches, you have to trade speed against accuracy. The most accurate option is to simply calulate all possible input-output combinations and find the minimum. Then you can start to increase speed by using a clever way to leave out points you don't really need to calculate. For example, pick a point, go to the left by a very short increment, see if the result is better, and either move to that new point, or turn the other way. That's a gradient descent. Obviously this way you'll easily get trapped inside local minimae, often you'd like to avoid that.

Next, you can add random jumps to periodically get out of these traps, that's called simmulated annealing. That's a little better, but will not give you stable results if your problem is not sufficiently convex in its parameters. Then you'd need to work on your problem formulation to add convexity.

Alternatively, you could use genetic algorithms, starting with sets of inital parameters, compare them, and use some kind of mutation to generate new candidates. By subsequently comparing them, you can often get a pretty accurate location of your global minimum.

As you can see, it's pretty hard to make this tradeoff decision. A common solution is to use multi-step approaches, first find some point in the region of the global minimum, and later refine using gradient descent.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.