债券久期与凸度的Matlab实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例分析:债券久期与凸度的Matlab实现
一、计算公式
(一)债券久期
麦考利久期(Macaulay duration)是利用加权平均数的形式计算债券的平均到期时间。它是债券在未来产生现金流的时间的jia全平均,其权重是各期现金值在债券价格中所占的比重。普通债券的久期如下式所示:
D=∑PV(c t)×t T
t=1
P
式中,D是麦考利久期;P是债券的当前市场价格;PV(c t)是债券未来第t期现金流(利息或面值)的现值;T是债券的到期时间。(二)债券凸度
由于债券价格与收益率之间的关系曲线存在凸向原点的非线性特征,当收益率大幅波动时,久期不能准确地描述债券价格对利率变动的敏感性。为纠正久期的这种不足,引入凸度或凸性的概念。与久期一样,凸度也是度量债券价格波动性的方法。凸度越大,债券价格曲线弯曲程度越大,用修正久期度量债券的利率风险所产生的误差越大。凸度的计算公式如下:
d2p dy2=∑
t(t+1)c t
(1+y)t+2
凸度的性质如下:
第一,凸度随久期的增加而增加。若收益率、久期不变,则票面利率越大,凸度越大。利率下降时,凸度增加。
第二,对于没有隐含期权的债券来说,凸度总大于0,即利率下降,债券价格将以加速度上升;当利率上升时,债券价格以减速度下降。
第三,含有隐含期权的债券的凸度一般为负,即价格随着利率的下降以减速度上升,或债券的有效持续期随利率的下降而缩短,随利率的上升而延长。
二、Matlab实现
(一)债券久期
1、根据价格计算久期
Matlab的Financial Toolbox提供了给定债券期限与价格计算久期的函数为bnddurp。
常用调用格式如下:
[ModDuration, YearDuration] = bnddurp(Price, CouponRate, Settle, Maturity, Period, Basis)
主要输入参数:
➢Price:债券净价
➢CouponRate:票面利率
➢Settle:结算日
➢Maturity:到期日
➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。
➢Basis:(可选项)债券的天数计算方法,默认值为0(实际值/实际值),常见选项具体如下:
◼0:实际值/实际值
◼1:30/360
◼2:实际值/360
◼3:实际值/365
主要输出参数:
➢ModDuration:修正的麦考利久期
➢YearDuration:麦考利久期
【算例1】三种固定收益证券,净价分别为105.67元、98.82元和95.45,票面利率均为5%,交割日为2007年1月1日,到期日为2010年6月30日,每年付息2次(6月底与12月底),计息方式为实际值/实际值,分别计算三种证券的久期。
计算代码如下:
% 三种债券的价格,输入格式可以是列向量,也可以是一种证券的价格
Price=[105.67;98.82;95.45];
% 票面利率均为5%
CouponRate=0.05;
% 交割日为2007年1月1日
Settle='01-Jan-2007';
% 到期日为2010年6月30日
Maturity='30-Jun-2010';
% 年付息次数
Period=2;
% 计息方式为实际值/实际值
Basis=0;
% 调用bnddurp函数
[ModDurp, YearDurp] = bnddurp(Price, CouponRate, Settle, Maturity, Period, Basis) % 最后两个输入参数与默认值相同,所以也可以删除
计算结果如下:
% 修正的麦考利久期
ModDurp =
3.2068
3.1645
3.1426
% 麦考利久期
YearDurp =
3.2593
3.2495
3.2443
2、根据收益率计算久期
Matlab的Financial Toolbox提供了给定债券期限与收益率计算久期的bnddury函数。
常用调用格式如下:
[ModDuration,YearDuration]=bnddury(Yield,CouponRate,Settle, Maturity, Period, Basis)
主要输入参数:
➢Yield:债券的到期收益率
➢CouponRate:票面利率
➢Settle:结算日
➢Maturity:到期日
➢Period:年付息次数,默认值为2,可选0、1、2、3、4、6、12。
➢Basis:(可选项)债券的天数计算方法,默认值为0(实际值/实际值),常见选项具体如下:
◼0:实际值/实际值
◼1:30/360
◼2:实际值/360
◼3:实际值/365
主要输出参数:
➢ModDuration:修正的麦考利久期
➢YearDuration:麦考利久期
【算例2】三种固定收益证券,到期收益率分别为 3.2710%、5.3746%、6.4747%,票面利率为5%,交割日为2007年1月1日,到期日为2010年6月30日,每年付息2次(6月底和12月底),计息方式为实际值/实际值,分别计算三种证券的久期。
计算代码如下:
% 利用yield函数可以计算出前一算例中三种固定收益证券的收益率就是3.2710%、5.3746%、6.4747%
% 债券的到期收益率
Yield=[0.032710;0.053746;0.064747];
% 票面利率均为5%
CouponRate=0.05;
% 交割日为2007年1月1日
Settle='01-Jan-2007';
% 到期日为2010年6月30日
Maturity='30-Jun-2010';
% 年付息次数