Matlab:fmincon,投资组合优化,自由变量的困难

时间:2018-01-20 16:17:11

标签: matlab optimization portfolio

我试图在Matlab中复制一篇论文(“毕竟市场上的平均方差是否有效?”来自Levy& Roll)。我希望最小化以下函数(D)及其约束:

Objective function

Constraints

我希望 mu sigma

此外,alpha,q和r_z是自由变量,其中

  • alpha :0≤α≤1是参数确定 分配给平均值相对于偏差的偏差的相对权重 标准偏差。
  • q :q> 0是比例常数
  • r_z :零beta率(无风险利率)

我有:

  • mu ^ sam:历史回报方式的载体
  • sigma ^ sam :历史回报标准差的向量
  • 协方差矩阵
  • 权重 x_m,i

现在我不知道如何处理自由变量alpha,q和r_z

我的目标函数D:

function dist=distOpt(alpha, N, x0, mu_sam, sigma_sam)

sumSigma=0; 

for i=1:N 
       sumMu=sumMu+((x0(i)-mu_sam(i))/sigma_sam(i))^2; 
       sumSigma=sumSigma+((x0(N+i)-sigma_sam(i))/sigma_sam(i))^2; 
end
dist=sqrt(alpha*(1/N)*sumMu + (1-alpha)*(1/N)*sumSigma);

和约束:

Mu_sam=repelem(-0.0001,y-1);
 Sigma_sam=repelem(-0.0002,y-1);     
 x0=[Mu_sam Sigma_sam];

function [c,ceq] = confuneq(x0,rz,Cor,Weights)
q=1;

ceq=diag(x0(7:end))*Cor*diag(x0(7:end))*Weights' - q*(x0(1:6)'-rz);
c=[];

我使用fmincon:

optFunc=@(x0) distOpt(alpha,(y-1),x0, Mu_sam, Sig_sam); 
 options = optimoptions(@fmincon,'Algorithm','sqp','MaxFunctionEvaluations', 12000,'FunValCheck','on');
 nonlcon=@(c,ceq) confuneq(x0,r_z, rho, Weights);
 [x0, fval, exitFlag]= fmincon(optFunc,x0,[],[],[],[],[],[],nonlcon,options);       

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

  

现在我不知道如何处理自由变量alpha,q和r_z

我认为你有两个选择:

1)为它们选择固定值。

2)将它们包含在x中以获得最佳值。