Solving Cardinality Constrained Portfolio Optimization Problem in Convex.jl

68 views
Skip to first unread message

Ayush Pandey

unread,
Mar 10, 2016, 4:10:30 AM3/10/16
to juli...@googlegroups.com, Julia Users
Hello,
The normal Portfolio Optimization problem is when we are given a portfolio of assets and the only restriction is that the sum of weights assigned to assets is equal to 1(and of course 0<=wi<=1).

But when we put the limit on number of assets to be invested, this problem becomes a Cardinality Constrained Portfolio Optimization Problem(for e.g. I have portfolio of 10 assets but at a time I can only invest in 5 assets).
In such case we introduce a binary variable yi = {0,1}
yi = 0 when no investment is made in asset i and yi = 1 when the investment is made in asset i.

Now, this problem becomes a Mixed Integer Quadratic Programming Problem.
I was trying to solve it using Convex.jl but couldn't succeed. I would be great if someone could help :)

The problem is in the following lines of the code

#Defining variables
w = Variable(10);
y = Variable(10, :Bin);

#Defining constraints
c1 = sum(w) == 1;
c2 = sum(y) = 5;

c3 = w_lower <= w*y'; 
Constraint:
<= constraint
lhs: 0
rhs: AbstractExpr with
head: *
size: (5, 5)
sign: Convex.NoSign()
vexity: Convex.NotDcp()

vexity: Convex.NotDcp()

c4 = w*y' <= w_upper;



Yours Sincerely,
Ayush Pandey        
LinkedIn Profile   
GitHub

Reply all
Reply to author
Forward
0 new messages