固定收益证券_久期与凸度的matlab计算 联系客服

发布时间 : 星期六 文章固定收益证券_久期与凸度的matlab计算更新完毕开始阅读46fad6d084254b35eefd34f0

吴氏金融工程第一讲 固定收益证券的Matlab计算

Start-end date SIA 2007-2-27—4 2007-3-1 2007-2-28—1 2007-3-1 2008-2-28—3 2008-3-1 2008-2-28—363 2009-3-1

Act/360 2 PSA 4 ISDA 30E/360 4 4 1 3 1 3 2 3 3 3 367 363 363 363 参考答案:% 固定收益证券作业1参考代码

% SIA Act/360 PSA ISDA 30E/360的basis代码分别为1,2,4,5,6 >> StartDate=['2/27/2007'; '2/28/2007';'2/28/2008';'2/28/2008']; >> EndDate=['3/1/2007';'3/1/2007';'3/1/2008';'3/1/2009']; >> for Basis=1:1:6 if Basis==3 NumDays=[0;0;0;0]

else NumDays=daysdif(StartDate,EndDate,Basis) end end

% 将除0000之外的那几例依次填入表的1-5例即可. 如果你不会用程序控制语句,也可以一步步地求.

9

吴氏金融工程第一讲 固定收益证券的Matlab计算

第三节 应计利息、贴现与现金流

一.应计利息(Accrued interest)

公式略。 调用方式:

AccruInterest = acrubond(IssueDate, Settle, FirstCouponDate, Face, CouponRate, Period, Basis)

Period和Basis是可选项。Period指付息频率。Period=n表示一年付n次息。

例4:公司债券发行日是2000年3月1日,到期日为2006年3月1日,每年支付两次利息,交割日是2000年7月17日,息票率10%,面值100元,交割日和下一付息日(2000-09-01)之间的天数按30/360(European)计息。请计算应计利息。 解法一:

30E/360E制度下,半年是180天,交割日和下一付息日之间的天数,由于每月只算30天,所以是44天.

那么该债券在本次结算时,应算从上一个付息日到交割日之间的天数,即从2000-03-01至2000-7-17之间的天数,显然这是180=44=136天。

由于每半年付一次息,其利率实为10%/2=5%, 所以应该利息AI为:

AI= 100 × 5% × 136/180 =3.7778 解法二:

>>IssueDate='3/1/2000'; >> Settle = '17-jul-2000'; >> FirstCouponDate='1-sep-2000'; >> Face=100; >> CouponRate=0.1; >> Period= 2; >> Basis=6;

10

吴氏金融工程第一讲 固定收益证券的Matlab计算

AccruInterest=acrubond(IssueDate, Settle, FirstCouponDate, Face, CouponRate, Period, Basis)

出来的是错误信息。我查了一下help原来是这个7.0版的matlab这里的basis最高只支持到3。无赖之下,basis=6只好用1来代。因为1是30/360,与6的30E/360较接近。

AccruInterest=acrubond(IssueDate, Settle, FirstCouponDate, Face, CouponRate, Period,1) AccruInterest = 3.7778

二.贴现率计算

尚缺函数,或未找到相应函数.

三、计算内部收益率

内部收益率是使投资现金流现值等于价格的收益率,其计算公式为:

P?C1C3C1?r?C2(1?r)2?(1?r)3???n(1?r)n,其中: Ci为第i年度现金流,P为债券价格,N为年数,r为内部收益率。 Matlab计算函数: irr

调用方式: Return = irr(Cashflow)

例6:一项投资各期现金流如下表,请计算该投资的内部收益率是多少? 第0期 第1期 第2期 第3期 第4期 -5000 1000 2000 3000 4000 解:>> Cashflow=[-5000,1000,2000,3000,4000]; >> irr(Cashflow) ans = 0.2727

如果把这里的-5000改成-4000,那么ans=0.3825,这很容易理解。

四、现金流现值与终值

11

吴氏金融工程第一讲 固定收益证券的Matlab计算

1.现金流现值的计算 现金流现值的计算公式是:

PV?P0P1P2P3Pn????? n0123(1?r)(1?r)(1?r)(1?r)(1?r)matlab命令是:

PesentVal=pvvar(Cashflow, Rte)

PesentVal=pvvar(Cashflow,Rate,IrrCFDates)这里IrrCFDates是指现金流发生的日期,Rate是指的贴现率.

例7:一项投资各年的现金流如下表,贴现率为0.08,求其现值。 年份 当前 第1年 2 000 第2年 1 500 第3年 3 000 第4年 3 800 第5年 5 000 金额/元 -10 000 解:>> cashflow=[-10000,2000,1500,3000,3800,5000]; >> rate =0.08; >> pvvar(cashflow,rate)

ans = 1.7154e+003 即:现值为1715.4。 请说说这项投资划得来吗?

(划得来,因为现值在超过了投资10000元,1715.4就是超过投资的部分)

例8: 已知贴现率为0.09,投资各时期的现金流如下表,求其再值。

现金发放日期 金额/元 12-Jan-2007 14-Feb-2008 3-Mar-2008 14-Jun-2008 1-Dec-2008 -10 000 2500 200 3 000 4000 请学生思考 解:>> cashflow=[-10000, 2500, 2000, 3000, 4000]; >> rate=0.09;

>> irrcfdates=['01/12/2007' '02/14/2008' '03/03/2008' '06/14/2008' '12/01/2008'];

12