Maximization of a function with two constraints

1 view (last 30 days)
Hi everyone, i'm new in matlab and i have a problem of coding it. I have to find the Wt that solves the following problem.
max Wt'*μt/sqrt(Wt'Σwt)
s.t. w'ti=1
0<=Wt<=0.25
i=1...N
i=ones(10,1)
That is, Wt is such that it maximizes the portfolio's Sharpe ratio with the constraint that all
weights have to be between 0 and 0.25. (Hint: you should use numerical optimization.)
Thank you in advance for your time!
  1 Comment
John D'Errico
John D'Errico on 7 Oct 2020
Note: this being a clear homework assignment, you should have tried it yourself.

Sign in to comment.

Answers (1)

Ameer Hamza
Ameer Hamza on 7 Oct 2020
Edited: Ameer Hamza on 7 Oct 2020
You can use fmincon() from optimization toolbox
mu = rand(10, 1); % example value
sigma = rand(10);
objFun = @(Wt) Wt'*mu/sqrt(Wt'*sigma*Wt);
x0 = zeros(10, 1); % initial guess
lb = zeros(1, 10);
ub = 0.25*ones(1, 10);
Aeq = ones(1, 10); Beq = 1; % wt'*i=1;
sol = fmincon(objFun, x0, [], [], ones(1, 10), 1, lb, ub);

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!