04收益波动率计算

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

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

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

资源描述

第4章收益波动率计算清华大学经管学院朱世武Zhushw@sem.tsinghua.edu.cnResdat样本数据:论坛:波动率估计法收益波动率计算是金融计算与建模的基础,如风险度量、资产定价等。最简单的收益波动率计算模型是静态波动率估计模型。实际中用的最成功、最常用的方法是移动平均、指数平滑和GARCH模型。移动平均模型211ˆ()1MttrrM121ˆ(1)()Mtttrr表4.1移动平均法估计波动率等权重指数加权1111Tjj注:近似公式。精确权重为111/Tjjj简单移动平均(SimpleMovingAverage,SMA)模型是动态模型中最为简单的一种。它是以过去M天收益的样本方差来估计当前的波动率,即:MiMjjtittMrrM1212)()]1/(1[这样每天通过增加前一天的信息和去掉第前M+1天的信息来更新预测。图4.1波动率的时间曲线指数加权移动平均模型依赖参数,称为衰减因子(decayfactor),该参数决定估计波动率时各观察数据的相对权重。形式上,对t时间波动率的预测为:其中,衰减因子λ必须小于1。当时间足够长时,与几乎相等。事实上,一般假设约等于0,于是得到t时刻波动率的如下预测:衰减因子λ小于1。211212)]()[1(ttttrEr)(1trE)(trE)(trE21212)1(tttr对于日收益率数据,最优衰减因子λ为0.94;对于月度收益率数据,最优衰减因子λ为0.97。GARCH模型GARCH(GeneralizedAutoregressiveConditionalHeteroskedasticity)模型称广义自回归条件异方差模型,或称为广义ARCH模型,GARCH模型假定收益的方差服从一个可预测的过程,它依赖于最新的收益,也依赖于先前的方差。GARCH(1,1)是这类模型中最简单的,用公式表示有:201111~(0,1)tttttttrhehrheiidN其中011,和均为待估的参数,可以用历史数据估计出。计算数据集:ResDat目录下的全部股票数据集,共30只。需要宏文本文件:Stk.TXT。时间区间:2005年。计算日波动率;计算周、月或年波动率,可以用相应的收益率计算或直接由日波动率乘以一个相关因子。对涨跌停板不作处理。计算环境波动率计算单个股票波动率计算分别选择股票深发展(Stk000001)进行计算。时间区间为2005年。日对数收益率计算:optionsnodatenonotesnosource;dataidxdate(keep=date);setResDat.idx000001;whereyear(date)=2005;/*其他时间区间可修改此处*/%macroa(x);dataa(keep=dater_1);setResDat.&x;whereyear(date)=2005;r_1=log(mcfacpr*clpr)-log(lag(mcfacpr*clpr));/*Mcfacpr为累积股价调整乘子*/datalog_ret(rename=(r_1=r&x));mergeidxdatea;bydate;ifr_1=.thenr_1=0;rr&x=r_1**2;/*日对数收益率的平方*/%menda;%a(stk000001);run;简单加权移动平均(SMA)计算的波动率:procsortdata=log_ret;byDate;datasma(keep=Date);setlog_ret;%macroa(x);dataa;setlog_ret;sum+rr&x;datab(keep=Datesma&x);mergeaa(firstobs=21rename=(sum=sum_1));sma&x=(sum_1-sum)/(20-1);/*这里计算的是20天移动平均*/sma&x=sqrt(sma&x);procsortdata=b;byDate;datasma;mergesmab;byDate;ifsma&x=.thendelete;%menda;%a(Stk000001);run;输出结果数据集SMA,包括变量有:DATE:日期;SMAStk000001:股票深发展收益日波动率。指数加权(EWMA)以及GARCH(1,1)计算的波动率留作练习(分别创建数据集ewma和garch)三种模型结果比较画出2005年,股票Stk000001(深发展)的对数收益图,图4.2。%macroa(x);procgplotdata=log_ret;plotr&x*Date=1;symbol1v=nonei=joinr=1c=blackline=1;%menda;%a(Stk000001);run;图4.2为深发展日收益时序图。rstk000001-0.11-0.10-0.09-0.08-0.07-0.06-0.05-0.04-0.03-0.02-0.010.000.010.020.030.040.050.060.070.080.090.10日期|Date2005-01-012005-03-012005-05-012005-07-012005-09-012005-11-012006-01-01图4.2深发展日收益时序图三种模型求得的波动率时序图,图4.3——图4.6。smaStk0000010.0100.0120.0140.0160.0180.0200.0220.0240.0260.0280.0300.0320.0340.0360.0380.0400.0420.0440.0460.0480.0500.0520.054日期|Date2005-01-012005-03-012005-05-012005-07-012005-09-012005-11-012006-01-01图4.3简单加权移动平均(SMA)模型求得深发展日收益波动率时序图ewmaStk0000010.0080.0100.0120.0140.0160.0180.0200.0220.0240.0260.0280.0300.0320.0340.0360.0380.0400.0420.0440.046日期|Date2005-01-012005-03-012005-05-012005-07-012005-09-012005-11-012006-01-01图4.4指数加权(EWMA)模型求得深发展日收益波动率时序图cevStk0000010.0180.0190.0200.0210.0220.0230.0240.0250.0260.0270.0280.0290.0300.0310.0320.0330.0340.0350.0360.0370.0380.0390.0400.041日期|Date2005-01-012005-03-012005-05-012005-07-012005-09-012005-11-012006-01-01图4.5GARCH(1,1)模型求得深发展日收益波动率时序图smaStk0000010.0080.0100.0120.0140.0160.0180.0200.0220.0240.0260.0280.0300.0320.0340.0360.0380.0400.0420.0440.0460.0480.0500.0520.054日期|Date2005-01-012005-03-012005-05-012005-07-012005-09-012005-11-012006-01-01图4.6三种模型求得深发展日收益波动率时序图实线为简单加权移动平均(SMA)模型结果图,虚线为指数加权(EWMA)模型结果图,点线为GARCH(1,1)模型结果图。多个股票波动率计算利用简单加权移动平均(SMA)模型计算日波动率。将日对数收益率5,10,20天交叠滚动,输出日波动率数据集:sma_05;sma_10;sma_20。上述三个数据集的变量包括:日期、用移动平均法计算的全部A股股票的日波动率。计算上述三个数据集日波动率在全样本期的均值、最大、最小值,输出数据集:sma_051;sma_101;sma_201。上述三个数据集的变量包括:股票代码、股票名称、样本数、样本期波动率均值、最大值和最小值。生成宏文本文件:Stk.TXTdataa;setResDat.lstkinfo;a='%a(';b=',';c=');';fileStk.txt;mac=a||’Stk’||stkcd||b||lstknm||c;putmac;run;计算程序(一个非常值得参考的程序):optionsnodatenonotesnosource;filenamemacStk.txt;%macrob(aa,bb,cc);datasma_&aa(keep=Date);setResDat.Idx000001;where2001=year(Date)=2002;/*其他时间区间可修改此处*/datasma_&bb;setsma_&bb;delete;%macroa(x,y);dataa;setResDat.&x;where2001=year(Date)=2002;/*其他时间区间可修改此处*/r_1=log(Mcfacpr*clpr)-log(lag(Mcfacpr));/*Mcfacpr为累积股价调整乘子*/dataa;setanobs=nobs;n=nobs;id=1;/*为方便合并数据集所设的标志*//*保留起始日和结束日的股票价格和累积股价调整乘子,用来计算收益率均值*/datab(keep=idadjclpr_beginadjclpr_end);retainadjclpr_beginadjclpr_end;setaend=lastobs;if_n_=1thenadjclpr_begin=clpr*Mcfacpr;iflastobsthendo;adjclpr_end=clpr*Mcfacpr;id=1;output;end;dataa(drop=adjclpr_beginadjclpr_endr_mean);mergeab;byid;r_mean=(log(adjclpr_end)-log(adjclpr_begin))/n;/*收益率均值*/r=r_1-r_mean;rr=r*r;dataa;seta;sum+rr;datab(keep=Datez&x);mergeaa(firstobs=&ccrename=(sum=sum_1));z&x=(sum_1-sum)/(&aa-1);/*这里计算的是&aa天的移动平均*/z&x=sqrt(z&x);/*用移动平均法计算的日波动率*/ifz&x=.thendelete;procsortdata=b;byDate;datasma_&aa;/*数据集中保存的是用移动平均法计算的日波动率*/mergesma_&aab;byDate;procmeansdata=bnoprint;varz&x;outputout=cmax=maxmean=meanmin=min;datac(drop=_type_);setc;stkcd=substr(&x,4,6);lstknm=&y;datasma_&bb;/*数据集中保存的是日波动率在全样本期的均值、最大、最小值*/setsma_&bbc;%menda;%includemac;%mendb;%b(05,051,6);%b(10,101,11);%b(20,201,21);run;计算环境与输出数据集样本数据集中2005年前上市的股票;2005年全年的日收益率。计算数据集:ResDat.Lstkinfo,SAS逻辑库ResDat下所有股票数据集。投资组合:随机抽股票组成投资组合,每个组合包括的股票数分别为:2,4,…,30。每个组合各抽一次。投资组合收益率:等权重收益率。

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

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

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

×
保存成功