当前位置:文档之家› 证券投资组合模型

证券投资组合模型

资产组合优化——基于二次规划求解裴宏伟经济管理学院摘要:本文根据马克维茨的资产定价原理,即在给定的总收益率下有最小的风险,在给定的风险下得到最大的收益率,建立三类优化模型,利用MA TLAB求出最优的资产组合。

第一类为在给定收益率下的最小方差;第二类为给定方差下的最大收益率;第三类为考虑效用的多目标规划。

三类模型都采用了二次规划的方法,求出最优解,并尝试不同的收益率,得出了有效前沿,其创新点是可以在实际问题中拟合出有效前沿,免去理论推导,为投资决策者提供有益的参考。

最后得出的结论是投资的市场风险越大,收益率越大。

关键词:马克维茨资产组合理论;二次规划;有效前沿一、引言资金流是企业的血液,如何有效地管理资金,使其既能获得较大的收益,又不会存在过大的风险,是很多企业管理者思考的问题,投资证券是一种不错的选择,然而,市场存在多种证券,如何根据证券的收益率等历史信息,找出合理的投资比例,达到企业预期目标,是我们该认真思考的。

本文接下来将从以下几个方面展开:一、文献综述。

二、历史信息是否可信。

三、在历史信息可信的基础上如何将原问题转化为数学模型。

四、模型的求解及结论。

二、文献综述最早研究证券组合的是马克维茨,他以个别股票收益率的均值和方差找出投资组合的有效边界(Efficient Frontier),即一定收益率水平下方差最小的投资组合。

它的缺点是方差协方差矩阵难于计算,在此基础上,威廉夏普提出了单指数模型,此模型假设证券间彼此无关且各证券的收益率仅与市场因素有关,这一因素可能为股票市场的指数、国民生产总值、物价指数或任何对股票收益产生最大影响的因素,每一种证券的收益都与某种单一指数线性相关。

随后,Sharpe有鉴于Markowitz“均值-方差组合模型”及其早期提出“单指数模型”中方差与投资比例不呈线性关系,必须用二次规划法求解,求解程序复杂。

因而于1967年提出线性规划法,将Markowitz的组合模型以线性规划的方式求解。

根据Sharpe进行的实证研究,当股票种类达20种以上时,投资组合的非系统风险逐渐趋于零,此时风险只生剩下系统风险,从而只与市场因素的方差有关,投资组合的标准差逐渐成为一个线性函数,因此可用“线性规划法”迅速找出有效边界。

三、数据的可信度分析我们知道,股票的本期收益率和风险都是未知的,我们需要通过历史信息来推测,那么,历史信息是否可靠?对未来的收益率及风险估计准确吗?这要看数据本身的特点。

只有时间序列数据平稳,我们才可以通过历史信息来预测未来,因而,我们将对是一只股票进行平稳性检验。

先来看时间序列图:图1 股票时序图表1变量的平稳性检验这些变量均在0.05 的显著性水平下通过了单位根检验,均平稳,说明我们在之后的决策时有效的。

四、模型建立1. 符号说明:i ω:对第i 种股票的投资比例。

I=0时表示存入银行。

i p :购买第i 种股票的成本i r :第i 种股票的收益率 0r 表示无风险收益率,本文采用国债收益率。

i μ:第i 种股票的平均收益率。

2. 问题描述:现已知一组股票,共有N 股,其历史收益率记录了M 期,已知其历史收益率111212122212n n m m mn r r r r r r R r r r ⎛⎫⎪⎪= ⎪⎪⎝⎭,其平均收益率()()12,,,n E r μμμ= ,其方差协方差矩阵为∑,假设其投资比例为()12,,n ωωωω= 。

则对于线性组合1122n n r r r r ωωωω=+++其均值为 ()()E r E r ωω= 方差为 var('=∑ωωω)r我们用均值衡量期望收益率,方差衡量风险现有一公司,在期望收益率为a 的条件下,求使其组合风险最小的组合,下面我们来建立模型,求出最优的证券组合。

模型1:不考虑交易费用及购买成本Min12ωω'∑ St ()⎩⎨⎧=≥1r E I a ωω设置不同的期望收益率,我们可以得出不同的证券组合,具体情况见下表:对上述平均收益与 方差做散点图,发现有线性趋势,做回归,可得如下结果:2.2 2.4 2.6 2.833.2 3.4 3.6 3.84x 10-3x 10-3y 2=2px 拟合图像xy图2 收益率与风险的关系从上图可以看出,收益率Y 与风险X 之间存在着22Y px c =+的关系,因而,我们令t=2Y , 拟合的函数为:0.0001360.0623t X =-+即:20.0001360.0623Y X =-+模型拟合优度达到0.98,比较高。

根据《金融工程》(林清泉),理论推导可推出,这条曲线称为有效前沿,也就是投资者在这条曲线上选择点时,才是有效的,在曲线下方的点是因为出市场风险外还有其他风险,如信用风险等,而在曲线上方的投资策略是不可能的。

因为在风险一定是最大的收益就在曲线上。

模型2:考虑其对偶问题,即在风险给定的情况下,求最大收益,其数学形式为:max .1rbs t I ωωωω='⎧≤⎨=⎩∑ 根据运筹学,对偶问题与原问题有相同解,因而在这里我们不解。

模型3:以上模型假定所有的投资者都是风险中性的,他们做出的都是最优选择,这显然不符合常理,在现实生活中,一些人对收益更敏感,多一点收益能带给他们更多效用,而另一些人刚好相反,少一点风险带给他们的效用更大,用效用函数可以表示如下:图3 不同风险选择者的效用曲线看三条曲线的斜率,A 对损失更敏感,C 对收益更敏感,因而A 是风险厌恶型,C 是风险偏好型,B 是风险中性者。

对于不同类型的人,我们应该有不同的决策方案。

另外,模型1和2都不考虑成本,且假定总的购买额已知,只需求投资比例,而现实生活中,一般都是已知购买资产的总资金,来确定总的购买额度,因而,我们需要换一种计算方法。

假设购买一股股票的成本是i c ,总资金M ,总购买量为n, 无风险收益率00.001r =,某投资者的风险偏好系数为ρ,则它的投资策略为:()()()0001.1Min Q x R x c n M c n s t I ρρωωωω=--'≤-⎧⎨=-⎩其中 ()2Q x n ωω'=∑()()00R x r r I ωμ=+-投资额度为50万股,其风险偏好系数为0.3,求其投资策略。

但最终用MATLAB 无法求出,可能是我们把问题复杂化了。

五、结论与建议根据本文的计算结果,我们提出如此下结论与建议:1.同等价值的资产,收益与风险成正比,收益越大,风险越大,因而投资者在考虑最大化收益的同时,应考虑企业自身对风险的承受能力。

2. 在投资者做实际决策时,不必利用公式得到有效前沿,可以实际模拟,取出不同的收益率,得到不同的风险,拟合出的曲线便是有效前沿。

这样,投资者可以根据自己的偏好很方便的找出合理的决策方案。

参考文献:1. 林清泉. 金融工程[M].第二版,中国人民大学出版社:63页~79页2. 肖海军. 数学实验初步[M].科学出版社:127页~133页3. 马永开.基于跟踪误差的证券组合投资决策模型研究[J].系统工程理论实践,2002年4. 张杰. 运筹学模型与实验[M]5. 金融资产组合的优化模型和数值实现[J].数量经济技术经济研究,1995年第三期6. 数据来源:RESSET 金融数据库附录:2.1求方差协方差矩阵(SAS)2.2求最小方差的程序:f=[0;0;0;0;0;0;0;0;0;0;0];%目标函数的线性部分,本题中为零A=-[-0.001577 -0.001317 -0.000331 -0.001212 0.008684 0.004329中的A,因为MATLAB -0.002743 0.002503 0.007469 0.013657 0.004794];%AX B中默认的为AX<=B,故我们都取负号。

b=-0.055;Aeq=[1 1 1 1 1 1 1 1 1 1 1];%购买股票的比例和为1.Beq=1;lb=zeros(11,1);%购买股票的比例下限为0上限为1.ub=ones(11,1);[x,fval,exitflag,output,lambda] = ...quadprog(x66,f,A,b,Aeq,Beq,lb,ub)%优化的主函数,fval为求出的股票购买比例。

X66为各股股票间的相关系数矩阵。

2.3回归的程序y=[0.0035 0.0045 0.0055 0.0065 0.01];x=[0.0024 0.0026 0.0026 0.0028 0.0038];p=polyfit(x,y,2);f = polyval(p,x);plot(x,y,'o',x,f,'-')axis([0.002 0.005 0 0.015])input y x;y2=y*y;datalines;0.0035 0.00240.0045 0.00260.0055 0.00260.0065 0.00280.01 0.0038;proc reg;model y2=x/r p;output out=results r=residual p=yhat;run;proc gplot;plot y2*x=1 yhat*x=2/overlay;symbol1i=no v=star c=black;symbol2i=join v=circle c=black;run;2.4附带费用的效用方法:f=[0;-0.0018039; -0.0016219; -0.0009317; -0.0015484; 0.0053788; 0.0023303;-0.0026201; 0.0010521; 0.0045283; 0.0088599; 0.0026558];A=[20 5.979 9.631 5.181 15.676 14.104 13.442 11.69 12.335 15.786 15.335 16.773];B=10;Aeq=[1 1 1 1 1 1 1 1 1 1 1 1];Beq=1;lb=zeros(12,1);ub=ones(12,1);[x,fval,exitflag,output,lambda] = ...quadprog(H,f,A,B,Aeq,Beq,lb,ub)。

相关主题