limited number of Assets in a universe, with constraints.
Show older comments
Hi,
I was wondering if someone could help me regarding portfolio construction and constraints.
Linear inequalities are quite straigtforward, however I cannot figure out how to limit the number of asset selected.
Building constraints, if I get 10 columns each representing an asset, is there a way to specify that the asset weight can only be 0 or between 0.2 and 0.5? (which would limit the number of asset to be selected)
Thank you
Accepted Answer
More Answers (2)
Shashank Prasanna
on 22 Jan 2013
0 votes
Are you using the Financial Toolbox? If you are then you can create a portfolio object and set bounds for each of the assets:
As stated, that's a very difficult problem. There are roughly 9e93 different ways to select a subset of 50 assets from a universe of 1500. If a good quadratic optimizer takes 1 second to find the optimal combination of each subset of 50, you'll still be waiting a long time to test every combination...
More generally, one approach to this type of problem is to use a hybrid optimization, use an integer based optimization (genetic algorithm) to choose which assets to include, and then a standard quadratic type optimizer within the objective to find the optimal combination of weights.
This webinar may give you some ideas - though it was written before the Global Optimization Toolbox was able to handle integer problems - so Id suggest adapting the ideas to the latest capabiliites:
Again though - this is going to be useless for a problem of the scale you're suggesting. Id try breaking your problem into subsets of assets by sector, industry group, etc. There is so much noise that goes into the usual expected returns/covariance calculation that I'd be skeptical of any results you get on a problem of this dimension.
Good luck!
Categories
Find more on Create Portfolio in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!