# 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

• Hi Kevin Pei, welcome to Quant.SE! My experience is that most securities will be included in the optimal portfolio. Can you tell us some more about your constraints and correlation matrix? Dec 8 '14 at 8:52
• Hi Bob, my constraints are primarily no short sale and all weights must sum up to one. The coorelation matrix is modeled as the average of all pairwise corrrelations. The variance of each stock is simply the sample estimate. Theres also other constraints i can impose such as beta, ex ante tracking error, etc Dec 8 '14 at 15:27

1. 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.

2. 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.

3. 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.
• Although my knowledge is limited with black litterman, doesn't it provide a return vector rather than an optimized set of weighting? Or does it already assume market weights and adjust from there on using mvo? As for 2. And 3. Ill look into them, not too familiar with 2 but definitely have heard of risk parity concepts Dec 9 '14 at 19:43
• Black Litterman is a Bayesian approach to portfolio allocation. You're probably thinking of $\mu_0 \propto \Sigma w_0$, the equilibrium return prior commonly used in BL. It is a standard mean variance optimization, with input parameters designed to make the portfolio weights more stable. Dec 10 '14 at 7:45

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.

• Although i have used lower/upperbounds i find it very unintuitive as it just binds each stock weight if its over or under. I have never thought of the binary approach and i will see if it works well Dec 9 '14 at 19:48