Portfolio Constraints and Methods for Avoiding Zero-Weight Positions
Summary
The document addresses how to keep a portfolio optimizer from assigning zero weight to securities an investment team wants represented. It describes a mean-variance objective using expected returns and a covariance matrix, then proposes minimum weight bounds as direct constraints. This imposes a chosen floor on every holding while retaining other portfolio constraints.
For optimization systems that support mixed-integer programming, binary inclusion variables can link each asset’s weight to whether it is held. Aggregate limits on these variables can enforce a minimum or maximum number of positions. Other approaches mentioned include Black-Litterman to moderate concentrated corner solutions, smooth allocations based on expected-return rankings, and risk budgets or risk parity. The document gives conceptual options rather than empirical comparisons or parameter-selection guidance; minimum weights and position-count limits must be selected to fit the portfolio’s objectives and constraints.
Key ideas
- A minimum weight constraint can ensure every security receives a positive allocation.
- Binary inclusion variables can connect asset selection to portfolio weights.
- Constraints on the sum of inclusion variables can control the number of holdings.
- Black-Litterman, ranking-based allocations, risk budgets, and risk parity are alternatives for reducing concentration.
Tags
Full text
# Portfolio Optimization to include ALL Securities?
# Portfolio Optimization to include ALL Securities?
I'm currently optimizing portfolio weights for an investment team with N stocks. We buy stocks with a conviction it will generate a return and it is up to me to determine weighting. However, with these N stocks, I will need the optimizer to include every stock even if it has bad potential reward to risk since the methods of estimating are still susceptible to estimation errors.
I'm optimizing the Sharpe Ratio with constant correlation model and also modelling returns via a weighted average of analyst consensus and empirical mean return. To temporarily solve the issue, I do a weighted combination of both the optimal sharpe ratio portfolio and the minimum variance portfolio with a subjective upperbound (ex: 8% max for a 20 stock portfolio). Even then, I get one or two stocks with a zero weighting.
My question is that, are there any rule of thumbs/methods out there to help with this? What would you guys recommend in terms of a more fruitful way to approach the issue of concentrated portfolio
## Answer by Felix (score 3, accepted)
https://quant.stackexchange.com/a/15805
- Black Litterman might be a good solution to your problem, since it suffers less from corner solutions (concentrated portfolios). You already have active views in the form of return expectations, and you can control the confidence in your views explicitly; see for example Meucci's Risk and Asset Allocation chapter 9.2 for a description.
- Since you have a ranking between the stocks (the expected returns) you may also use the Chris and Almgren 'Portfolio from Sorts' approach, which produces a smooth portfolio allocation. See this question for references.
- A third approach would be to use risk budgets to control the under-/overweights of the stocks on which you have a strong opinion. Or step away from mean-variance altogether and use risk parity for the active allocation in your portfolio.
## Answer by Richi Wa (score 3)
https://quant.stackexchange.com/a/15804
First the easy solution: Define the continuous weights of each asset: $w_i \in [0,1],i=1,\ldots,N$ and choose some meaningful lower bound for each weight. Then you have the objective $$ w\mu - \lambda w^T \Sigma w \rightarrow Max, $$ all your constraints that you already apply and the additional (linear/box) constraint $$ w_i \ge l, i=1,\ldots,N. $$
Alternatively in order to control the number of non-zeros you can try the following if your optimizer can solve mixed-integer programs. All you have to do is to define binary variables $b_i \in \{0,1\},i=1,\ldots,N$ and the constraint that couples the weights and binary variables: $$ w_i \ge l b_i, i=1,\ldots,N, $$ and $$ w_i \le b_i, i=1,\ldots,N. $$
Then $w_i = 0$ if $b_i =0$ and $w_i \ge l$ if $b_i = 1$. Then you can for example use the constraint $ \sum_{i=1}^N b_i \le K$ in order to have at most $K$ positions or $ \sum_{i=1}^N b_i \ge L$ in order to have at least $L$ positions.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.