《金融数量分析——基于MATLAB编程》5.1资产定价(CAPM)模型在资本市场中,影响资产价格的因素是多种多样的,学者们若想致力对资产定价的定量研究,就必须借助简化的资产定价模型,这导致资本资产定价模型(CapitalAssetPricingModel,CAPM)的产生。CAPM模型是在马可维兹现代资产组合理论的基础上发展起来的,它研究的是在不确定的条件下证券资产的均衡定价问题(这里证券资产的价格用收益率表示),并开创了现代资产定价理论(与基本分析法中基于现值理论定价的区别)的先河。资本资产定价模型是以马可维兹的现代资产组合理论和有效市场假说理论为基础的,因此该模型也基于一系列严格的假设,其假设条件如下:①所有的投资者都是风险厌恶者,其投资目标遵循马可维兹模型中的期望效用最大化原则。②资本市场是一个完全竞争市场,所有的投资者都是资产价格的接受者,单个投资者的买卖行为不会对资产的价格产生影响。③资产是无限可分的,投资者可以以任意数量的资金投资于每种资产。④存在无风险资产,也就是说投资者可以以无风险资产借入或贷出任意数量的资金。⑤不存在卖空限制、个人所得税以及交易费用等额外成本,也就是说资本市场是无摩擦的。⑥每个资产或资产组合的分析都是在单一时期进行。资本市场是有效的市场,信息可以在该市场中自由迅速地传递。资本市场线是在托宾两基金分离定理的基础上发展起来的,它将资产组合看成是无风险资产和市场组合的组合。构造一个由市场组合和无风险资产的资产组合,其期望收益可表示如下:式中:和分别为市场组合的期望收益率和风险;为无风险收益;和分别为资产组合的期望收益和风险。mRmfRpRp资本市场线研究的是在无风险利率存在的条件下,有效资产组合的预期收益率和风险的关系。而证券市场线研究的是在无风险利率存在的条件下,单个证券的预期收益与风险的关系。夏普等人经过严密的数学推导,得到均衡的单个资产预期收益率定价如下:式中:。这就是证券市场线的表达公式,表明单个证券的预期收益等于无风险利率再加上风险补偿。风险补偿由两部分组成,其中是市场组合相对于无风险利率得到的风险补偿,是单个证券的风险调整系数,两者的乘积便是单个证券应获得的风险补偿。E()mfRRi5.2组合绩效指标目前国外投资基金数量众多,像晨星、理柏等很多投资资讯机构都定期发布各基金投资组合的业绩排行榜。在实际绩效中,可以用收益率作为评价投资组合绩效的尺度和标准,操作性强,但只能说明基金在某一时期的增值程度,并不能真正评价基金业绩。基金业绩是指基金管理的综合表现,因为高收益的基金一般承担高的风险,低收入的基金一般其所承受的风险也较低。因此,仅仅计算出投资组合的平均收益率是不够的,必须根据风险大小来对收益率进行调整,也即计算风险调整的收益率,如夏普比率、信息比率等。指数型基金是一种以拟合目标指数、跟踪目标指数变化为原则,实现与市场同步成长的基金品种,通常,跟踪误差主要用来测量投资效果。fix:对正数或负数来说,都是一种趋向原点的舍入,所以又称为趋向零舍入(Roundtowardzero)例5.1根据2007—2008年两年数据,对博时主题、嘉实300(指数型)、南方绩优成长进行投资组合绩效分析。数据在funddata.xls文件中,存储为funddata.mat文件。%2012-4-24%文件信息[typ,desc,fmt]=xlsfinfo('funddata.xls');%读取数据[data,textdate,raw]=xlsread('funddata.xls');funddata=data;%将数据保存在Mat文件中savefunddatafunddata•注:基金的收益率、波动率的计算应该采用基金的复权净值(即分红再投资净值)。由于基金存在分红,即分红前后基金净值存在较大差距,将对基金收益率与波动率计算造成影响。例如,基金T-1日净值为2.0元,T日实施每份分红0.5元,净值为1.5元,若使用基金净值计算T日收益率为-0.5/2.0=-25%,将造成计算错误。下图为上述三只基金净值曲线图,其画图函数M文件为Fundplot.m,代码如下:%载入loadfunddata%数据列顺序为'Hs300','博时主题','嘉实300','南方绩优'%生成一个空白图figure;%在一个页面上画多个曲线,holdonholdon%funddata(:,1)/funddata(1,1)%使得四条线的起点对齐,归一化,即分别以初始价格为1.00元%'-.','o','--'为各种线条样式plot(funddata(:,1)/funddata(1,1),'k')plot(funddata(:,2)/funddata(1,2),'r-.')plot(funddata(:,3)/funddata(1,3),'bo')plot(funddata(:,4)/funddata(1,4),'g--')%X坐标轴为时间xlabel('time')%Y坐标轴为价格ylabel('price')%线标记legend('沪深300','博时主题','嘉实300','南方绩优')0501001502002503003504004505000.511.522.53timeprice沪深300博时主题嘉实300南方绩优5.2.1Beta与Alpha计算根据CAPM模型的公式,beta的计算公式为在MATLAB中,没有内嵌beta计算的公式,根据公式可以编写一个基于CAPM模型的beta计算函数。函数语法:beta=portbeta(portReturn,maketReturn)输入参数:portReturn:组合(或基金)的收益率序列;maketReturn:市场(或基准)的收益率序列。输出参数:beta:基于CAPM模型的beta值。M函数portbeta.m如下:functionbeta=portbeta(portReturn,maketReturn)%codebyariszheng@gmail.com2012-5-17%协方差矩阵计算temp_cov=cov(portReturn,maketReturn);%组合与市场的协方差/市场的方差beta=temp_cov(1,2)/temp_cov(2,2);以沪深300作为市场收益,使用portbeta函数分别计算‘博时主题’,‘嘉实300’,‘南方绩优’的beta值。编写函数betatest.m,代码如下:%beta计算loadfunddata%数据列顺序为'Hs300','博时主题','嘉实300','南方绩优'%将价格序列改为收益率序列(价格转化为增长率)Rate=price2ret(funddata);%博时主题BSbeta=portbeta(Rate(:,1),Rate(:,2));sprintf('博时主题Beta=%3.5f',BSbeta)%'嘉实300'JSbeta=portbeta(Rate(:,1),Rate(:,3));sprintf('嘉实300Beta=%3.5f',JSbeta)%'南方绩优'NFbeta=portbeta(Rate(:,1),Rate(:,4));sprintf('南方绩优Beta=%3.5f',NFbeta)在MATLAB中,内嵌计算组合alpha的函数。函数语法:alpha=portalpha(Asset,Benchmark,Cash,Choice)输入参数:Asset:资产收益率序列Benchmark:基准的收益率序列;Cash:无风险收益率(日)序列,每日可不同。Choice:计算模型选择。‘xs’ExcessReturn(noriskadjustment)‘sml’SecurityMarketLine‘camp’Jesen’salpha‘mm’Modigliani&Modigliani‘gh1’Graham-Harvey1‘gh2’Graham-Harvey1‘all’Computeallmeasures输出参数:alpha超额收益。以沪深300作为市场收益,使用portalpha函数分别计算‘博时主题’,‘嘉实300’,‘南方绩优’的alpha值。编写函数portalphatest.m,代码如下:注:采用不同的资产定价模型计算出的beta和alpha是不同的。示例中数据一共488个数据,假设前244个为2007年数据,后244个为2008年数据。若数据中有时间数据,可以使用year函数判断每个时间的年份,并分别计算。5.2.2夏普比率夏普测度(SharpeMeasure)(WilliamSharpe,1966)是以均衡市场假定下的资本市场线(CapitalMarketLine,CML)作基准的一种按风险调整的绩效测度指标,也就是用投资组合的总风险即标准差去除投资组合的风险溢价,反映该投资组合所承担的每单位总风险所带来的收益。按均衡市场假设条件下资本资产定价模型中的资本市场线形式如下:所谓夏普测度,就是资本市场线中的斜率项,如果我们要考察某一投资组合(本书中的投资组合也包括仅含一种资产的组合)而不是市场组合,则夏普测度就等于该投资组合的风险收益(又称作风险报酬或风险溢价)除以它的标准差,用Sp表示,公式如下:MATLAB夏普测度计算函数语法如下:Ratio=sharpe(Asset,Cash)输入参数:Asset:资产或者组合收益率序列;Cash:无风险资产收益率。输出参数:Ratio:夏普比率。例5.2计算博时主题、嘉实300(指数型)、南方绩优成长的夏普比率。5.2.3信息比率信息比率(InformationRatio)以均值方差模型为基础,用来衡量超额风险带来的超额收益,比率高说明超额收益高。它表示单位主动风险所带来的超额收益。MATLAB信息比率与跟踪误差计算函数语法为:[Ratio,TE]=inforatio(Asset,Benchmark)输入参数:Asset:资产或者组合收益率序列;Benchmark:业绩比较基准收益率序列。输出参数:Ratio:信息比率;TE:跟踪误差。例5.3假设以沪深300指数作为业绩比较基准,计算博时主题、嘉实300(指数型)、南方绩优成长的信息比率。%载入数据loadfunddata%funddata的数据序列%'Hs300','博时主题','嘉实300','南方绩优'Rate=price2ret(funddata);hs300=Rate(:,1);js300=Rate(:,3);bszt=Rate(:,2);nfjy=Rate(:,4);%每年交易日数量,%若一共488个数据,假设前244个为2007年数据,后244为2008年数据%分别计算每年的sharp比率daynum=fix(length(Rate)/2);%无风险年华收益率为3%,将起日化RatioJS2007=inforatio(js300(1:daynum),hs300(1:daynum))RatioJS2008=inforatio(js300(daynum+1:2*daynum),hs300(daynum+1:2*daynum))%%RatioBS2007=inforatio(bszt(1:daynum),hs300(1:daynum))RatioBS2008=inforatio(bszt(daynum+1:2*daynum),hs300(daynum+1:2*daynum))%%RatioNF2007=inforatio(nfjy(1:daynum),hs300(1:daynum))RatioNF2008=inforatio(nfjy(daynum+1:2*daynum),hs300(daynum+1:2*daynum))5.2.4跟踪误差跟踪误差主要用来对指数型投资组合进行绩效分析,跟踪误差越低表示组合跟踪指数越紧。例如,指数型基金是一种以拟合目标指数、跟踪目标指数变化为原则,实现与市场同步成长的基金品种。指数基金的投资采取拟合目标指数收益率的投资策略