bondprice+matlab,债券久期与凸度的Matlab实现

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:[email protected],我们立即下架或删除。

简介:案例分析:债券久期与凸度的 Matlab 实现

一、计算公式

(一)债券久期

麦考利久期(Macaulay duration)是利用加权平均数的形式计算

债券的平均到期时间。它是债券在未来产生现金流的时间的 jia 全平

均,其权重是各期现金值在债券价格中所占的比重。普通债券的久期

如下式所示:

D = ∑ ??(??) × ??

?=1

?

式中,D 是麦考利久期;P 是债券的当前市场价格;??(??)是债券未

来第 t 期现金流(利息或面值)的现值;T 是债券的到期时间。

(二)债券凸度

由于债券价格与收益率之间的关系曲线存在凸向原点的非线性

特征,当收益率大幅波动时,久期不能准确地描述债券价格对利率变

动的敏感性。为纠正久期的这种不足,引入凸度或凸性的概念。与久

期一样,凸度也是度量债券价格波动性的方法。凸度越大,债券价格

曲线弯曲程度越大,用修正久期度量债券的利率风险所产生的误差越

大。凸度的计算公式如下:

?2?

??2 = ∑ ?(? + 1)??

(1 + ?)?+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:(可选项)... 更多>>

你可能感兴趣的:(bondprice+matlab,债券久期与凸度的Matlab实现)