资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,第十二章 投资组合优化,Outline,矩阵求导简介,优化知识,允许卖空情况下的投资组合优化,不允许卖空情况下的投资组合优化,矩阵求导的有关知识,数对向量求一阶导,假设X为列向量,存在函数f(X),其自变量为向量,因变量取值为标量,定义n阶向量的一阶导数如下:,其中,Remark:scalar-valued function of a vector,又称梯度,数对向量求二阶导,假设X为列向量,存在函数f(X),其自变量为向量,因变量取值为标量,定义n阶向量的二阶导数如下:,其中,Remark:scalar-valued function of a vector,又称海赛矩阵,n*n方阵,例子,假如,Matlab实现,Syms x1 x2,X=x1 x2,F=2*x1+3*x1*x2,Dfdx=diff(F,x1);diff(F,x2),g1=jacobian(Dfdx,X),向量对向量求一阶导数,假设X为列向量,存在函数f(X),其自变量为向量,因变量取值也为向量,f(X)的一阶导数如下:,Matlab实现,Syms s t,V=s;t,f=t2*log(s);s3*log(2+t),dfdx=jacobian(f,V),例子,假如,向量对向量求一阶导数,假设X为列向量,A为方阵,如果A为对称阵则,优化与投资组合理论,总结,数对列向量求导仍为列向量,列向量对列向量求导为矩阵,主要内容,问题1:给定预期收益,最小化风险,问题2:给定风险,最大化预期收益,问题3:不考虑预期收益,最小化风险,问题4:不考虑风险,最大化预期收益,问题1,给定预期收益时,最小化风险,目标函数为二次型,约束为线性约束,当不允许卖空时,,当限制了某个资产投资份额,给定投资权重的上下界,问题2,给定风险时,最大化收益,目标函数为线性,约束为非线性约束和线性约束,问题3,不考虑预期收益,最小化风险,目标函数为二次型,约束为线性约束,问题4,不考虑风险,最大化收益,目标函数为线性,约束为线性约束,允许卖空时投资组合优化,投资组合优化的数学表述,给定收益情况下风险最小化,风险采用方差来衡量,目标函数,约束条件1,约束条件2,投资组合优化,其中,w 为N支股票权重的列向量,e表示N支股票的N维期望收益率向量,I为N维单位向量,V为投资组合的方差协方差矩阵,以三维为例,投资组合优化,目标函数,约束条件1,约束条件2,投资组合优化的数学表述,第一步,写出矩阵形式的拉格朗日函数,第二步,求解一阶条件,Remark:第一个等式实际上可以展开n个,投资组合优化的数学表述,其中,0是三维零向量。由于V是正定矩阵,因此上述一阶条件也是全局优化的充分必要条件。,由上述方程可得,投资组合优化的数学表述,由上述方程可得,拉格朗日乘子,投资组合优化的数学表述,由上述方程可求投资组合权重,对应的方差,允许卖空情况下的权重求解,function wp,varp=meanvar(e,V,rp),%.求解投资组合权重,%输入:e每个资产的预期收益率组成的收益率列向量,%输入:V 收益率的方差协方差矩阵,%输入:rp为投资组合的预期回报率,%输出:wp为投资组合权重,列向量,%输出:varp为投资组合的方差,允许卖空情况下的权重求解,M=length(e);,I=ones(M,1);,A=I*inv(V)*e;,B=e*inv(V)*e;,C=I*inv(V)*I;,D=B*C-A2;,g=(B*(inv(V)*I)-A*(inv(V)*e)/D;,h=(C*(inv(V)*e)-A*(inv(V)*I)/D;,wp=g+h*rp;,varp=wp*V*wp;,投资组合有效前沿,function out=graphmeanvar(price),%purpose:给定N个资产价格矩阵,根据Mean-variance模型确定投资权重,参考教材金融经济学基础 黄奇辅,%输入:N种资产,M个观测值的价格矩阵,N*M矩阵,%输出:每支资产的权重组成的列向量wp,N,M=size(price);,logprice=100*log(price);,投资组合有效前沿,%2.将原始价格数据转化为对数数据,并进一步转化为收益率数据,logreturn=zeros(N-1,M);,for j=1:M;,logreturn(:,j)=logprice(2:end,j)-logprice(1:end-1,j);,end,%3.求解收益率数据的均值向量与方差协方差矩阵,e=mean(logreturn,1);%对应41页中公式(3.8.1)e,V=cov(logreturn);%对应41页中公式(3.8.1)V,rp=linspace(min(e),max(e),101);,varp=zeros(101,1);,wp=zeros(M,101);,投资组合有效前沿,for i=1:101;,wp(:,i),varp(i)=meanvar(e,V,rp(i);,end,sigmap=varp.(0.5);,plot(sigmap,rp,co);,out.rp=rp;,out.varp=varp;,out.wp=wp;,out.total=rp;varp;wp;,投资组合有效前沿,xlabel(标准差);%x轴注解,ylabel(收益率);%y轴注解,title(允许卖空条件下的投资组合前沿);%图形标题,允许卖空时投资组合的有效前沿,load ma_port.mat;,out=graphmeanvar(SH GH ZS),允许卖空时投资组合权重图,不允许卖空时投资组合优化,投资组合优化的数学表述,给定收益情况下风险最小化,风险采用方差来衡量,目标函数,约束条件1,约束条件2,约束条件3,采用数值算法求解,二次规划的一般形式,Matlab的函数形式,x=quadprog(H,f,A,b,Aeq,Beq),投资组合优化如何用Matlab二次优化函数,Matlab的函数形式,x=quadprog(H,f,A,b,Aeq,Beq),以三个资产为例,H=V;f=zeros(M,1)=(0 0 0),x=w,投资组合优化如何用表示成二次优化函数,对应于如下两个约束条件,不允许卖空时投资组合优化,function out=shortmeanvar(price),%purpose:给定N个资产价格矩阵,根据Mean-variance模型确定投资权重,%输入:N种资产,M个观测值的价格矩阵,N*M矩阵,%输出:每支资产的权重组成的列向量wp,N,M=size(price);,logprice=100*log(price);,%2.将原始价格数据转化为对数数据,并进一步转化为收益率数据,logreturn=diff(logprice);,不允许卖空时投资组合优化,%3.求解收益率数据的均值向量与方差协方差矩阵,e=mean(logreturn,1);%对应41页中公式(3.8.1)e,此时e为列向量,V=cov(logreturn);%对应41页中公式(3.8.1)V,rp=linspace(min(e),max(e),101);,for i=1:101;,wp(:,i),fval(i)=quadprog(V,zeros(M,1),-eye(M,M),zeros(M,1),ones(1,M);e,1;rp(i);,end,不允许卖空时投资组合优化,sigmap=sqrt(2*fval);,plot(sigmap,rp,co);,out.rp=rp;,out.wp=wp;,xlabel(标准差);%x轴注解,ylabel(收益率);%y轴注解,title(不允许卖空条件下的投资组合前沿);%图形标题,不允许卖空时投资组合的有效前沿,load ma_port.mat;,out=shortmeanvar(SH GH ZS),不允许卖空时投资组合权重图,允许卖空时与不允许卖空时的比较,总结,采用矩阵形式会使表达式非常简洁,但在优化时会涉及到矩阵求导的知识,矩阵求导主要包括数对向量求导,向量对向量求导,数对向量求导为向量,向量对向量求导为矩阵,允许卖空条件下的投资组合优化,不允许卖空条件下的投资优化,谢谢!,END,演讲完毕,谢谢观看!,内容总结,第十二章 投资组合优化。约束为线性约束。约束为非线性约束和线性约束。由于V是正定矩阵,因此上述一阶条件也是全局优化的充分必要条件。%输入:e每个资产的预期收益率组成的收益率列向量。A=I*inv(V)*e。%输出:每支资产的权重组成的列向量wp。%3.求解收益率数据的均值向量与方差协方差矩阵。out.varp=varp。out.wp=wp。xlabel(标准差)。xlabel(标准差)。ylabel(收益率)。ylabel(收益率)。load ma_port.mat。%对应41页中公式(3.8.1)e,此时e为列向量。允许卖空时与不允许卖空时的比较。采用矩阵形式会使表达式非常简洁,但在优化时会涉及到矩阵求导的知识。演讲完毕,谢谢观看,
展开阅读全文