CAPM模型计算的MATLAB实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

CAPM模型中beta系数的MATLAB实现CAPM模型中两条重要的线分别是资本市场线和证券市场线,资本市场线研究的是在无风险利率存在的条件下,有效资产组合的预期收益与风险的关系,而证券市场线研究的是在无风险利率存在的条件下,单个证券的预期收益与风险的关系。均衡的单个证券的预期收益率定价公式如下:E(𝑟𝑖)=𝑟𝑓+[𝐸(𝑟𝑀)−r𝑓]∙𝛽𝑖其中,𝛽𝑖=𝐶𝑜𝑣(𝑟𝑖,𝑟𝑀)𝜎M2是单个证券的风险调整系数。下面编写Matlab程序,计算单只证券的β系数。在此所用软件为MATLABR2014a。根据CAPM模型公式中的β系数的计算方法,可编写函数式M文件,计算单个证券或证券组合的beta系数。该函数如下functionbeta=portbeta(portReturn,marketReturn)%函数目的:利用CAPM模型公式,计算beta系数%输入参数:%portReturn:单个证券或证券组合的收益率序列%marketReturn:市场或基准的收益率序列%输出参数:%beta:基于CAPM模型的beta值temp_cov=cov(portReturn,marketReturn);%计算协方差矩阵beta=temp_cov(1,2)/temp_cov(2,2);%beta=组合与市场的协方差/市场的方差end一、不同类型证券的𝛃系数假设我们考察的证券为:股票型基金—诺安高端制造股票(001707)、混合型基金—嘉实主题新动力混合(070021)、债券型基金—博时裕瑞纯债债券(001578),用沪深300收益率(或者日涨跌幅)代表市场组合的收益率,时间为2018年5月-2019年4月。各收益率数据如下:下面首先画出证券收益率和市场收益率(沪深300)的图形,直观观察证券与市场的相对波动程度大小,画图代码如下:%载入数据loaddata.txt%数据列顺序为:诺安高端制造股票、嘉实主体新动力混合、博时裕瑞纯债债券x=1:size(data,1);plot(x,data(:,1),'m-o',x,data(:,2),'g-',x,data(:,3),'r:',x,data(:,4),'b--')legend('诺安高端','嘉实主体','博时裕瑞','沪深300')图1基金收益率与沪深300收益率(单位:%)从上图可见,诺安高端制造股票的波动幅度大于沪深300,嘉实主体新动力混合的波动幅度裕沪深300接近,而博时裕瑞纯债债券的波动幅度远远小于沪深300,故此可初步判断出,诺安高端制造股票的beta系数大于1、嘉实主体新动力混合的beta系数接近1,而博时裕瑞纯债债券的beta系数远小于1。下面计算具体的beta系数验证这里的初判。以沪深300作为市场基准收益,分别计算诺安高端制造股票、嘉实主体新动力混合和博时裕瑞纯债债券这三只基金的beta值,计算代码如下:%beta计算loaddata.txt;%数据列顺序为:诺安高端制造股票、嘉实主体新动力混合、博时裕瑞纯债债券%诺安高端制造股票的beta系数NAbeta=portbeta(data(:,1),data(:,4));%嘉实主体新动力混合的beta系数JSbeta=portbeta(data(:,2),data(:,4));%博时裕瑞纯债债券的beta系数BSbeta=portbeta(data(:,3),data(:,4));%计算结果输出fprintf('诺安高端Beta=%.4f\n',NAbeta)fprintf('嘉实主体Beta=%.4f\n',JSbeta)fprintf('博时裕瑞Beta=%.4f\n',BSbeta)计算结果如下:诺安高端Beta=1.1098嘉实主体Beta=0.9151博时裕瑞Beta=-0.0053由以上简单的计算结果可见,股票型基金(诺安高端制造股票)的beta值大于1,混合型基金(嘉实主体新动力混合)的beta值小于1,而债券型基金(博时裕瑞纯债债券)的beta值最小。这与图1一致。二、同一证券在不同时段的𝛃系数从网易下载混合型基金—嘉实主体新动力混合和沪深300从2016年到2018年的收益率数据,然后分别计算该证券在2016年、2017年和2018的beta系数。计算代码如下:%载入数据[data,textdate,raw]=xlsread('JSdata.xlsx');%textdate第1列的2行到最后一行数据为日期%datenum将字符型日期转换为数值型日期Date=datenum(textdate(2:end,1));%使用find函数找到2016年的数据DateIndex2016=find(year(Date)==2016);Data_2016=data(DateIndex2016,:);JSbeta_2016=portbeta(Data_2016(:,1),Data_2016(:,2));%使用find函数找到2017年的数据DateIndex2017=find(year(Date)==2017);Data_2017=data(DateIndex2017,:);JSbeta_2017=portbeta(Data_2017(:,1),Data_2017(:,2));%使用find函数找到2018年的数据DateIndex2018=find(year(Date)==2018);Data_2018=data(DateIndex2018,:);JSbeta_2018=portbeta(Data_2018(:,1),Data_2018(:,2));%结果输出fprintf('2016年嘉实主体Beta=%.4f\n',JSbeta_2016)fprintf('2017年嘉实主体Beta=%.4f\n',JSbeta_2017)fprintf('2018年嘉实主体Beta=%.4f\n',JSbeta_2018)计算结果如下:2016年嘉实主体Beta=1.19092017年嘉实主体Beta=0.87982018年嘉实主体Beta=0.9608由以上计算结果,同一证券在不同时段的beta系数也不完全相同。参考资料:[1]郑志勇、王洪武.金融数量分析—基于MATLAB编程[M].北京:北京航空航天出版社,2018.[2]张志涌、杨祖樱.Matlab教程[M].北京:北京航空航天大学出版社,2017.

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功