Maximum Diversified Porfolio (MDP) fmincon optimization problem doesn't work
Show older comments
Goodmorning to all,
I have to solve the following problem (image) with fmincon: x is the portfolio weight vector, sigma the std. dev. of returns, omega cov matrix. I tried as follow but doesn't work. Thanks to everyone!
Aeq = ones(1,n_asset);
beq = 1;
x0 = zeros(1,n_asset);
lb = zeros(1,n_asset);
ub = ones(1,n_asset);
fun = @(x) -(x)*(sqrt(variance))./sqrt((x')*Cov(x))
w = -fmincon(fun,x0,[],[],Aeq,beq,lb,ub)

2 Comments
Alan Weiss
on 6 Jul 2021
What was the error that fmincon returned? What are the dimensions of x, variance, and Cov? Is Cov(x) a function, or did you mean to write x*Cov*x'?
Alan Weiss
MATLAB mathematical toolbox documentation
Leonardo Coccia
on 7 Jul 2021
Answers (1)
Alan Weiss
on 8 Jul 2021
You say that x is 12-by-1, yet you write x0 as 1-by-12. That could be the problem. Try
x0 = zeros(n_asset,1); % Now x0 is 12-by-1, and so is x
You then need to change your definition of the objective.
fun = @(x) -(sqrt(variance)'*x)/sqrt(x'*Cov*x);
Alan Weiss
MATLAB mathematical toolbox documentation
2 Comments
Leonardo Coccia
on 9 Jul 2021
Alan Weiss
on 9 Jul 2021
I'm glad that my suggestions helped. Please accept the answer.
Alan Weiss
MATLAB mathematical toolbox documentation
Categories
Find more on Choose a Solver 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!