传统利率期限结构.ppt
第十章 利率期限结构传统理论学习目标n理解利率期限结构的基本理论n能够利用利率期限结构理论解释不同类型的收益率曲线n能够选用合适的平滑方法构建到期收益率曲线利率期限结构理论n利率期限结构:没有违约风险的不同期限的零息债券到期收益率(即期利率)之间的关系。n利率期限结构基本理论:q无偏预期理论 q风险溢价理论 q市场分割理论 q流动性偏好理论 传统利率期限结构理论n构建到期收益率曲线q靶靴法:核心思想是通过把附息债券各期现金流看成不同期限的零息债券,利用已知的较短期限的收益率推得新的到期收益率 q 传统利率期限结构理论n对到期收益率曲线进行平滑q三次样条插值法传统利率期限结构理论n对中国债券市场,如果考虑30年期的折现因子函数,贴现因子有如下形式传统利率期限结构理论n指数样条法传统利率期限结构n考虑30年期的折现因子函数,则传统利率期限结构nNelson-Siegel 模型传统利率期限结构nNelson-Siegel Svensson扩展模型 传统利率期限结构例:现有2003年3月28日交易的15只附息国债相关数据,试确定利率期限结构。传统利率期限结构n首先,我们把债券相关数据按照上表的顺序输入excel,保存文件data.xls n利用靶靴法确定给定到期时间的到期收益率,qclear;qNumeric,Txt=xlsread(d:mfiledata);qa=Numeric;qb=Txt(:,1);qc=b(2:16);qBonds=datenum(c),a(:,1:5);qSettle=datenum(03/28/2003)qOutputCompounding=-1;qZeroRates,CurveDates=zbtprice(Bonds,a(:,6),Settle,OutputCompounding)传统利率期限结构n使用内插值法对收益率曲线进行平滑qmatlab自带的平滑零息债券到期收益率的函数:Termfit,应用样条插值的方法对收益率曲线进行平滑,ZeroRates,CurveDates,BootZeros,BootDates,BreakDates=termfit(Smoothing,Bonds,Prices,Settle,OutputCompounding),其中0Smoothing1,它取值的代表曲线的拟和程度。传统利率期限结构n利用termfit得到的到期收益率曲线,图中*表示数据表中15只债券的到期收益率。传统利率期限结构-多项式插值n目标函数myfunpoly.m:nfunction F=myfunpoly(x)nglobal d ZeroRates f T t b a;nNumeric,Txt=xlsread(d:mfilebook4);na=Numeric;nb=Txt(:,1);nc=b(2:16);nBonds=datenum(c),a(:,1:5);传统利率期限结构-多项式插值ns=a(:,6);nSettle=datenum(03/18/2003);nOutputCompounding=-1;nZeroRates,CurveDates=zbtprice(Bonds,a(:,6),Settle,OutputCompounding);nd=date2time(Settle,c,1);nfor i=1:15 n if d(i)=5n f(i)=1+x(1)*d(i)+x(2)*d(i)2+x(3)*d(i)3;n f(i)=-log(f(i)/d(i);n else if 5d(i)=10传统利率期限结构-多项式插值n f(i)=1+x(1)*d(i)+x(2)*d(i)2+x(3)*(d(i)3-(d(i)-5)3)+x(4)*(d(i)-5)3;n f(i)=-log(f(i)/d(i);n else if 10d(i)=30n f(i)=1+x(1)*d(i)+x(2)*d(i)2+x(3)*(d(i)3-(d(i)-5)3)+x(4)*(d(i)-5)3-(d(i)-10)3)+x(5)*(d(i)-10)3;n f(i)=-log(f(i)/d(i);n endn endn endn endnF=Dot(f-ZeroRates,f-ZeroRates);传统利率期限结构-多项式插值n主程序:polydemo.m:nclear;nglobal f d T t b a ZeroRates;n x0=-1.5264 0.5459 -0.0573 0.5390 0.7597nx,fval=fminsearch(myfunpoly,x0)n nfigurenplot(d,f,-rs,d,ZeroRates,-g)n%datetick(x,2)n xlabel(到期时间)n ylabel(收益率)n title(poly fit approximation)传统利率期限结构-多项式插值nlegend(curve(ZeroRates Curve as of 03/28/2003),.n PL(c_0=sprintf(%3.2f,x(1),.n b_0=sprintf(%3.2f,x(2),.n a_0=sprintf(%3.2f,x(3),.n a_1=sprintf(%3.2f,x(4),.n a_2=sprintf(%3.2f,x(5)nlegend(gca,boxoff)n输出结果:x=-1.4054 0.4115 -0.0315 0.0028 2.7875n fval=0.2524传统利率期限结构-多项式插值n多项式插值法的到期收益率曲线传统利率期限结构-指数样条插值n指数样条插值法得到的到期收益率曲线传统利率期限结构-Nelson-Siegel 模型nfunctionpar=nelsonfit(x,y)npar.tau =fminbnd(tau)nelson(tau),0,10);npar.beta=lsbetas(par.tau);functionf=nelson(tau)n b,f=lsbetas(tau);n endn functionb,varargout=lsbetas(tau)n i=x(:)/tau;n j=1-exp(-i);n n=length(x);n z=ones(n,1)j./i(j./i)+j-1;n b=(z*z)(z*y(:);n e=y(:)-z*b;n varargout(1)=e*e;n end nend传统利率期限结构-Nelson-Siegel 模型nfunctiony=nelsonfun(x,par)ni=x(:)/par.tau;nj=1-exp(-i);ny=par.beta(1)+par.beta(2)*j./i+par.beta(3)*(j./i)+j-1);传统利率期限结构-Nelson-Siegel 模型nclear;nNumeric,Txt=xlsread(d:mfilebook4);na=Numeric;nb=Txt(:,1);nc=b(2:16);nBonds=datenum(c),a(:,1:5);nSettle=datenum(03/28/2003)nOutputCompounding=-1;nZeroRates,CurveDates=zbtprice(Bonds,a(:,6),Settle,OutputCompounding)ny=ZeroRates;nx=date2time(Settle,c,1);ny=y;传统利率期限结构-Nelson-Siegel 模型npar=nelsonfit(x,y);np=nelsonfun(x,par);nfigurenset(gcf,Color,w)nplot(x,y,-rs);hold onnplot(x,p,-g)ntitle(Nelson-Siegel 模拟)nxlabel(Maturity,years)nlegend(curve(ZeroRates Curve as of 03/28/2003),.n NS(beta_0=sprintf(%3.2f,par.beta(1),.n beta_1=sprintf(%3.2f,par.beta(2),.n beta_2=sprintf(%3.2f,par.beta(3),.n tau=sprintf(%3.2f,par.tau)nlegend(gca,boxoff)传统利率期限结构-Nelson-Siegel 扩展模型nNelson-Siegel 扩展模型得到的到期收益率曲线传统利率期限结构nnss拟和的债券价格与债券真实价格最接近,nss方法次之,指数样条函数法拟和结果差异最大;n多项式样条函数与指数样条函数法拟和结果类似对最短期限的债券价格拟和不好;n多项式样条函数与指数样条函数法对最短期限的债券价格和超过20年期债券拟和不好,收益率出现负值。