How can i maximize expected return under VaR constraint?
Show older comments
Hi,
I am currently trying to optimize a portfolio based on the risk measure value at risk (VaR) with the optimization toolbox. I know that the conditional value at risk does have better mathematic properties and so on, but I still need the VaR optimization (optimal asset allocation) for comparison.
I have return path for 36 asset classes in Portfolio 1 and 32 asset classes in Portfolio 2.
I would like to maximise expected return of the total portfolio, under 3 VaR constraints :
- First portfolio = Portfolio 1, VaR shouldn't be lower than -10%
- Second portfolio = Portfolio 2, VaR shouldn't be lower than -15%
- Third portfolio = 0.8*Portfolio 1 -0.2*Portfolio 2, VaR shouldn't be lower than -10%
For now i'm up to this: i'm able to maximise expected return of one portfolio (p1).
But i can't figure out how to put VaR in my problem (non linear inequality).
I don't know how i should optimise 2 portfolio at the same time with a constraint on the total of both portfolio.
I hope i'm clear.
Thank you for your help !
%% Import Paths : after tax return
clear;
clc;
imported_path=xlsread('path.xlsx');
p1_path=imported_path(:,1:36);
p2_path=imported_path(:,37:68);
%% Opti prep
p1_expret=mean(p1_path);
p2_expret=mean(p2_path);
p1_num=length(p1_expret);
p2_num=length(p2_expret);
p1_w=0.8;
p2_w=1-p1_w;
VaR_p1=quantile(p1_path,0.99);
VaR_p2=quantile(p2_path,0.99);
VaR_p1_Ub=-0.1
VaR_p2_Ub=-0.1
%contraints
%initialisation
x0=zeros(1,p1_num);
x0=x0+rand(size(x0));
Aeq = ones(1,p1_num);
beq = 1;
lb=zeros(p1_num,1);
options = optimset();
fun=@(x)-sum(x.*p1_expret);
[x,fval,exitflag,output]=fmincon(fun,x0,[],[],Aeq,beq,lb);
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!