Clear Filters
Clear Filters

Efficient portfolios constraints, how can I add a particular constraint ?

1 view (last 30 days)
How can I add an additional constraint to the efficient portfolios using portopt ? I want to compute the portfolios along the efficient frontier with the following 3 constraints:
- Allow for short sell (should be to set 'AssetLims' in portcons);
- Max Number of assets (say x) in each portfolio (should be 'Default' constraint type);
- The (x) assets in a portfolio must be only in that portfolio. I must not use the same assets into different portfolios. How can I add this constraint ?
Thanks, Nick

Accepted Answer

Roger Wohlwend
Roger Wohlwend on 7 Jul 2014
The first constraint is easy to implement.
ConSet = protcons('PortValue', 1, NumAssets, 'AssetLims', -1, AssetMax)
where NumAssets is the number of assets and AssetMax is a vector with the upper boundary for the portoflio weights.
The two other constraints are a bit of a problem. You cannot order the optimizing function to use only a certain amount of assets. So there is no Matlab function for your problem. If your number of assets is small you could loop through all possible combinations of assets, optimize a portfolio and chosse the portfolio with the highest return for a certain amount of risk. Afterwards yoou repeat that process for the other portfolios of your efficient frontier, but you omit certain assets (according to your third constraint).
  1 Comment
Nick
Nick on 7 Jul 2014
Thanks for your reply, for the second constraint, I fond that ConSet = portcons(....,'AssetLims', AssetMin,AssetMax,NAssets,...) by changing NAssets I can set how many assets I want to include in the portfolios. My last problem now is to repeat the process by omit the assets that are been selected in the previous portfolio.

Sign in to comment.

More Answers (0)

Categories

Find more on Portfolio Optimization and Asset Allocation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!