How can i maximize expected return under VaR constraint?

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

Products

Release

R2018b

Asked:

on 5 Dec 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!