金融项目最优投资组合选择计算与建模_第1页
金融项目最优投资组合选择计算与建模_第2页
金融项目最优投资组合选择计算与建模_第3页
金融项目最优投资组合选择计算与建模_第4页
金融项目最优投资组合选择计算与建模_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金融项目最优投资组合选择计算与建模用线性规划选择投资组合用线性规划求解最优投资组合步骤:用means过程计算股票收益;用dataprocLp的输人数据集;用procLp求解最优投资组合权;用procLp进行灵敏度分析;用data步,根据最优权及投资组合的大小计算投资于每只股票的金额。金融项目最优投资组合选择计算与建模创建数据集创建收益数据集return。数据集Return包括1995年~2005年A股市场月持有期收益,及其它8只股票月持有期收益数据。return变量解释:Stkcd为股票代码;Date为日期;Mretmc为A股市场的月持有期收益;Monret为个股的月持有期收益。金融项目最优投资组合选择计算与建模计算期望收益在使用PROCLP解决线性规划问题之前,要先估计期望收益.这里用过去的平均收益来估计期望收益。用PROCMEANS语句计算股票收益。procmeansdata=returnnoprint;bystkcd;varmonret;outputout=m_out;datam_out1a;setm_out;where_stat_='mean';keepstkcdmonret;run;金融项目最优投资组合选择计算与建模风险度量常用风险度量的指标有两种:股票收益标准差;资本资产定价模型(CAPM)的。金融项目最优投资组合选择计算与建模股票收益标准差标准差是统计学对波动性的度量,而股票收益的波动性正是持有股票的风险所在。

计算所选8只股票的标准差,保存在数据集m_out1b中。datam_out1b;setm_out;where_stat_='std';keepstkcdmonret;renamemonret=std;labelmonret='月收益率标准差';run;金融项目最优投资组合选择计算与建模CAPM的第二种风险度量指标是CAPM的,它代表系统风险。根据CAPM模型,资产i的期望收益和市场期望收益之间有如下关系:

投资组合p的CAPM:.投资组合权重为时(i=1,2,…,N),参数和可以表示成单个股票的线性组合:金融项目最优投资组合选择计算与建模总风险定义为收益的标准差,根据CAPM,资产i收益的方差为:对于投资组合p,收益方差为:当投资组合分散时,第二项会减小,分散好的投资组合,该项接近0,其收益的方差近似为:

因此,对于分散好的投资组合,就是要最小化

金融项目最优投资组合选择计算与建模计算最优投资组合权重计算出股票期望收益和风险水平后,就可以用PROCLP来找出在最大可接受风险的前提下收益最大的投资组合权。该线性规划问题为以下形式:其中:A是一个的系数阵(rhs)。b是一个常数向量。c是一个的价格系数向量.x是一个的结构变量向量.是的一个下界。PROCLP中缺省下界是0。是的一个上界。金融项目最优投资组合选择计算与建模下面的例中用PROCLP来最大化以下目标函数以求解投资组合权重:.该目标函数有以下约束条件:投资组合风险是,即选择投资组合权重时要使权重与各股票的乘积之和是。权重和为l:.投资组合权重的上界是1。金融项目最优投资组合选择计算与建模下面的DATA步创建一个名为WEIGHT1的数据集,按PROCLP的格式说明线性规划问题。dataweight1;input_id_:$10.r000002r000007r000011r000016r600601r600604r600651r600653_type_$_rhs_;cards;exp_return0.02470.01270.01240.0080.02160.00680.02630.0144maxavailable11111111upperbd.available00000000lowerbd.;run;金融项目最优投资组合选择计算与建模灵敏度分析可以通过灵敏度分析来考察投资组合权重(线性规划问题的主要解)的稳定性质。proclpdata=weight2primalin=lp_out2rangepricerangerhs;title2'灵敏度分析';run;quit;

金融项目最优投资组合选择计算与建模限定组合最高风险水平风险约束也可以是不等式,即当投资组合的小于或等于一个最大可接受值时计算出的最优投资组合权。下面考察允许投资组合小于等于时上面问题主要解的变化情况。dataweight3;setweight2;if_id_='beta'then_type_='le';run;proclpdata=weight3primalout=lp_out3;run;quit;金融项目最优投资组合选择计算与建模用整数规划产生投资组合例11.1用PROCLP求解整数规划。/*创建价格数据集price*/dataprice;mergeresdat.qttndiststk8(in=samp);bystkcd;ifsampanddate='30dec2005'd;keepstkcdclpr;run;dataweight4;input_id_:$10.r000002r000007r000011r000016r600601r600604r600651r600653_type_$_rhs_;cards;exp_return0.02470.01270.01240.0080.02160.00680.02630.0144max.beta1.11850018911.34701230111.31857492331.02606541291.35094999650.90389584431.25591093351.2961143173le200lots431322522352320349596148le100000upper5050505050505050upperbd.lower55555555lowerbd.integer12345678integer.;/*求解整数规划*/proclpdata=weight4imaxit=200primalout=lp_out4dualout=d_out;run;金融项目最优投资组合选择计算与建模/*整理求解输出数据集*/datalp_out4a(keep=_var__value_rename=_var_=name);setlp_out4;if_n_>8thendelete;run;/*打印主要解,列出每只股票应购买的手数*/procprintdata=lp_out4a;title'整数规划';title2'购买手数';run;注意,在PROCLP输出中,LOTS约束条件(限制投资金额)是一个最大值为$100000的不等式约束。在这$100000中,只有71975用于创建投资组合。金融项目最优投资组合选择计算与建模/*打印对偶解数据集*/procprintdata=d_out;title'整数规划';title2'收益、风险和投资金额';run;对偶解数据集包含以下信息:投资组合收益;最佳投资金额;最佳投资组合风险水平。注意,这里投资组合收益和风险度量与前面线性规划问题中的度量不一样,前面的投资组合收益和风险是每只股票收益和风险按最优投资组合权重的线性组合,因此不能直接比较。

金融项目最优投资组合选择计算与建模用非线性规划产生投资组合在Markowitz模型中,股票收益指的是平均收益(也叫算术平均收益)。股票风险是股票收益的标准差。证券投资组合收益是每只股票的加权收益。在不允许卖空,即组合权重在0和1之间,且和为1的条件下,证券投资组合的收益为:两只股票组合的风险定义为:金融项目最优投资组合选择计算与建模用DATA步和PROCCORR产生投资组合考虑从以下三只股票中选择两只构造投资组合,万科A(000002),深达声(000007),S深物业A(000011)。试图找出在既定风险水平下收益最大的投资组合。金融项目最优投资组合选择计算与建模计算股票收益的均值和方差

/*从RETURN数据集中抽出3只股票*/datareturn1;setreturn;wherestkcdin('000002''000007''000011');/*对数据集进行处理,将3只股票的数据合为一个数据集中的三个变量,以便用PROCCORR求3只股票月收益的协方差*/proctransposedata=return1out=return1(drop=_name__label_);bystkcd;varmonret;proctransposedata=return1out=return1(drop=_name_);proccorrdata=return1covoutp=cov_out1nosimple;varcol1col2col3;title'Markowitz模型';quit;金融项目最优投资组合选择计算与建模计算股票投资组合的平均收益一般说来,两种股票投资组合的收益用以下方法计算:/*数据集COV_OUTl1中,增加变量X,表示权重。例中,X从0到l,步长为。*/datacov_out2(drop=_name_);setcov_out1;if_type_ne'MEAN'thendelete;dox=0to1by.05;output;end;renamecol1=r000002col2=r000007col3=r000011;labelx='投资组合的权重';run;金融项目最优投资组合选择计算与建模/*计算投资组合的收益*/datamean1;setcov_out2;pfol_m1=x*r000002+(1-x)*r000007;pfol_m2=x*r000002+(1-x)*r000011;pfol_m3=x*r000007+(1-x)*r000011;run;procprintdata=mean1;title'Markowitz模型';title2'两种股票投资组合的收益';run;金融项目最优投资组合选择计算与建模图中,组合1用符号’*’,组合2用符号’’,组合3用’+’。由图可以看出,投资组合1在所有组合权重水平中都有最高收益。金融项目最优投资组合选择计算与建模计算投资组合的风险投资组合的风险可通过下式计算:程序参考教材金融项目最优投资组合选择计算与建模含有两只股票投资组合的风险水平

Obsxpfol_r1pfol_r2pfol_r3

…………从列表可以看出风险水平随投资组合权重变化。例中,投资组合1在观测14处风险最小(),即65%的万科A(000002)和35%的深达声(000007)。此外,对于每种权重,投资组合1都有最低风险。结合上面分析,组合1是最佳选择。金融项目最优投资组合选择计算与建模金融项目最优投资组合选择计算与建模识别有效证券组合有效证券组合在任何既定风险水平下都有最大收益。可以通过GPLOT过程画出收益对风险的图形,从而形象地识别出有效证券组合。金融项目最优投资组合选择计算与建模图中,竖轴表示收益,横轴表示风险。曲线的端点(靠右边)是不分散投资组合(一种股票占100%,另一种为0),分散投资降低了风险水平。投资组合的有效边界是在既定风险水平下具有最大收益的组合,也即最左上的组合。组合3远不如组合1和2好。金融项目最优投资组合选择计算与建模先去掉部分没有优势的投资组合,然后画出投资组合的一个子集。下面把权重小于的投资组合删去,因为从前面图中可看出它们的收益较小而风险较高,同时去掉组合3。由图可以看出,投资组合的有效边界是权重从到1的组合1。其次是权重从到的组合2。金融项目最优投资组合选择计算与建模用PROCNLP产生投资组合NLP过程可以解决大量线性和非线性最优化问题

。用PROCNLP过程时,还可以加入边界条件和一般线性条件

。金融项目最优投资组合选择计算与建模下面仍以本章选择的8只股票为例,说明使用PROCNLP求解投资组合的过程。权重计为Xl-X8,要求在0与1之间,和为1。最后要求期望收益最少为%。datareturn2;setreturn;proctransposedata=return2out=return2(drop=_name__label_);bystkcd;varmonret;proctransposedata=return2out=return2(drop=_name_);datareturn2;setreturn2;renamecol1=x1col2=x2col3=x3col4=x4col5=x5col6=x6col7=x7col8=x8;proccorrdata=return2covoutp=cov_out3nosimple;varx1-x8;title'Markowitz模型';quit;金融项目最优投资组合选择计算与建模procnlpoutest=nlp_out4noprint;parmsx1-x8;+2*x7*x8*0.0136299731;risk=sqrt(var);minrisk;bounds0<=x1-x8<=1;lincon1=x1+x2+x3+x4+x5+x6+x7+x8,.019<=0.0246951391*x1+0.0127497123*x2+0.0124444582*x3+0.0079714507*x4+0.0216395959*x5+0.0067692931*x6+0.0263324389*x7+0.0143749164*x8;run;金融项目最优投资组合选择计算与建模计算投资金额dataamt_out3;setnlp_out4;if_TYPE_ne'PARMS'thendelete;arrayxa(8)x1-x8;arraya(8)a1-a8;doi=1to8;a(i)=round(xa(i)*100000,.01);end;total=sum(ofa1-a8);run;dataamt_out4;setamt_out3;renamea1=r000002a2=r000007a3=r000011a4=r000016a5=r600601a6=r600604a7=r600651a8=r600653;run;procprintdata=amt_out4;varr000002r000007r000011r000016r600601r600604r600651r600653total;title2'每只股票投资的数额';run;金融项目最优投资组合选择计算与建模使用INEST=输入数据集

在PROCNLP中使用INEST=输入收据集,可以使其余PROCNLP语句简化,同时也简化诊断检查。INEST=数据集为TYPE=EST中的数据。所有股票的初始值均取为。如果这些初始值不可行,PROCNLP将计算可行的初始值。下界是0,上界是1。收益不等式约束的右边值设为0.019(即个百分点)。

金融项目最优投资组合选择计算与建模datain_nlp4(type=est);input_type_$8.x1-x8_rhs_;cards;parms.125.125.125.125.125.125.125.125.lowerbd00000000.upperbd11111111.eq111111111金融项目最优投资组合选择计算与建模procnlpinest=in_nlp4outest=nlp_out5;parmsx1-x8;+2*x7*x8*0.0136299731;risk=sqrt(var);minrisk;run;金融项目最优投资组合选择计算与建模使用INQUAD=输入数据集INQUAD=数据集为股票收益的方差和协方差数据。需要最小化的二次函数的形式如下:其中,是投资组合权,H是协方差阵,g是一个线性系数向量(本章的例子中全为0),c是常数(本章例中为0)。金融项目最优投资组合选择计算与建模/*产生协方差阵*/datacov_out4;setcov_out3;if_type_ne'cov'thendelete;_type_='quad';procnlpinest=in_nlp4inquad=cov_out4outest=nlp_out6;min;parmsx1-x8;run;通过连接inest=和inquad=数据集可以进一步简化procnlp语句。dataquad;setcov_out4in_nlp4;keep_type__name_x1-x8_rhs_;procnlpinquad=quadoutest=nlp_out7;min;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论