1、吴氏金融工程第一讲 固定收益证券的 Matlab 计算1第一讲 固定收益证券的 matlab 计算第一节 固定收益基本知识固定收益证券: 一组稳定现金流的证券.广义上还包括了债券市场上的衍生产品及优先股.以债券为主.一. 固定收益的品种国债是固定收益的重要形式,以贴现债券(discount security)与息票债券(coupon bonds)两种形式发行.贴现债券 : 发行价低于面值 ,不支付利息 ,在到期日获取面值金融的收益 .息票 :按一定的票息率发行 ,每隔一段时间支付一次利息 ,到期按面值金额赎回 .美国的固定收益证券可以分为以下几个品种 :1. (短期)国库券(Treasury
2、bills, T-bills)期限小于一年,贴现发行,面值 usu. 110 万美元.是流动性最高的债券品种,违约风险小,其利率 usu 当作无风险利率。2政府票据(Treasury notes, T-notes)即美国中期国债,期限 110 年,是 coupon.3. 长期国债(Treasury bonds, T-bonds)期限10 年,面值 110 万美元,是 coupon.通常每半年付一息,到期偿本息。4零息票债券(Zero-coupon bond)零息票债券是指买卖价格相对布什有较大折让的企业或市政债券。 出现大额折让是由于债券并无任何利息,它们在发行时就加入折扣,或由一家银行除去息
3、票,然后包装成为零息票债券发行,投资者在债券到期时以面值赎回。零息票债券往往由附息债券所”剥离” 出来:购买息票国债的经纪人可以要求财政部停止债券的现金支付,使其成为独立证券序列,这时每一证券都具有获得原始债券收益的要求权. 吴氏金融工程第一讲 固定收益证券的 Matlab 计算2如一张 10 年期国债被剥离成 20 张半年期债券,每张都可视为零息票,它们到期日从 6 个月到 10 年不等,最后本多支付是另一张零息证券,所有的支付都单独计算,并配有自己的 CUSIP 号码( 统一由美国证券鉴定程序委员会颁布 ). 具有这种标识的证券都可以在联邦银行及其分支机构上进行电子交易 ,财政部仍旧具有支
4、付责任 .由于这种债券息票被“剥离” 了,因此被称为本息剥离式国债 STRIPS(separate trading of registered interest and principal of securities).1982 年麻省海湾运输局发行了免税零息债券,标志着政府开始参与长期零息券的发行.1987 年 5 月起,美国财政部也允许一个被剥离债券的息票重新组合成息票.5. 美国 CD存单美国 CD 存单(certificate deposit): 由银行等金融机构向存款人改选的证券,存单上标有一个到期日和利率,并且以任意面值发行,可以买卖, 偿还期限小于 1 年.6. 回购协议(rep
5、urchase agreement)短期抵押贷款,是指一方向另一方出售证券的同时,承诺在未来的某一天按协定的价格将相同的证券买回,通常由借款方发起并贷出证券,回购中涉及的证券通常具有较高的信用质量.回购协议建立了货币市场和债券市场之间的联系 .回购协议的步骤: (1) 以债券作为抵押借入资金; (2) 经过一段时间,按照约定的价格买回抵押债券.7. 可转换债券(convertible security)可转换债券(简称可转债) 是一种具有固定收益的证券,其特点是持有者可以转换为普通股股票,在合约的条款中规定了可转换债吴氏金融工程第一讲 固定收益证券的 Matlab 计算3券转换为普通股的条件,
6、持有者决定何时转换为股票.可转换债券介于普通股和普通债券之间,故又称股票类连接证券.可转债属于次级债券,如果企业破产,满足要求权的次序是:优先债权 次级债 可转债 优先股 普通股.可见 ,总体上看 ,可转债属于权益类证券 ,其特点是享有先于普通股获得股息偿付的优先权和较高的收益 ,并且有机会分离公司股份上涨的好处 .8. 浮动利率债券(FRN)浮动利率债券(FRN, floating rate notes)是偿还期内利率发生变化的债券. 如 2010 年 3 月到期 ,按委付息的浮动利率债券 ,其基准为 3 个月libor.浮动利率债券具有以下几个特征: 规定了利率上限与利率下限 基准利率大多
7、为 LIBOR,也可为汇率、股票指数、债券指数等; 利率可以正向浮动,也可以反向浮动。联邦住房银行( Federal Home Loan Bank, 不是房地美FreddieMac, 房地美的前称是 Federal Home Loan Corp.)曾在1999 年 3 朋发行了反向浮动债券,该债券支付的利率计算公式如下:18%-2.5 三个月的 LIBOR。同时规定反向浮动利率下限为 3%,上限为 15.5%。二固定收益相关概念1交易日(trade date交易日就是买卖双方达成交易的日期。但实际情况可能比这更复杂。此部分进PPT 不进资料吴氏金融工程第一讲 固定收益证券的 Matlab 计算
8、4如果是通过拍卖方式购入的证券,交易日是拍卖结果被确认、购买者被告知他们分摊数量及价格的日期;如果固定收益证券由一承购集团成员所购买,交易日与牵头者最终将承销证券分配给成员的日期一致。2结算日(Settlement Date指买入方支付价格和卖出方交割证券的日期。美国国债交割日为交易之后第一个营业日(T+1 ) 。交割日也可以由交易者之间商定,如果交割日刚好支付利息,则债券当天出售者获得当天的利息支付,而债券的购买者获得其余款项。有时通过 Fed Wine 机构交割证券,交易日即为交割日。3到期日(Maturity指固定收益证券债务合约终止的日期。到期日发行人应还清所有本息。很多固定收益证券如
9、定期存款、短期国库券、商业票据、再回见协议、外汇掉期、零息票债券等,只有一个到期日,日期计算都以这个到期日为基准。4本金(Principal)本金有时称面值( par value) ,是指固定收益票面金额。5票面利率(Coupon rate)即发行人支付给持有人的利息,有时也称名义利率(nominal rate).票面利率一般指按照单利计算的年利息率,利息支付的频率不同,实际利率当然就不同。6月末法则(end of month ruler)指当债券到期日在某有的最后一天,而且该月天数小于 30 天,吴氏金融工程第一讲 固定收益证券的 Matlab 计算5这时有两种情况: 到期日在每月固定日期支
10、付;票息在每月的最后一天支付。Matlab 默认的是第 种情况。如:今天 2011 年 2 月 28 日,半每付息制,下一次发息日可能是 2011 年 8 月 28 日,也可能是 2011 年 8 月 31 日,如果不用月末法则就是前者,如果用月末法则就是后者。7起息日到交割日的天数(DSM)DSM: days from coupon to settlement):指从计息日(令)到交割日(不含)之间的天数。注意,注意付息日作为下一个利息期限的第一天而不计入 DCS。8交割日距离到期日的天数(DSM)DSM: days from settlement to maturity):其一般规则是包括
11、交割日而不包括到期日。 (这样买方有动力尽早交易,获得当天收益;卖方在交割当天就获得资金的使用权)吴氏金融工程第一讲 固定收益证券的 Matlab 计算6第二节 应计天数简介应计天数是指,债券起息日或上一付息日至结算日的天数,在此期间发生的利息称为应计利息,matlab 中可用 help daysdif 代码查看。 help daysdifThe element type “name“ must be terminated by the matching end-tag “.Could not parse(从语法上描述) the file: d:matlab7toolboxccslinkccs
12、linkinfo.xmlDAYSDIF Days between dates for any day count basis.DAYSDIF returns the number of days between D1 and D2 using the given day count basis. Enter dates as serial date numbers or date strings.D = daysdif(D1, D2)D = daysdif(D1, D2, Basis)Optional Inputs: Compounding, BasisInputs:D1 - Scalar o
13、r Vector of dates.D2 - Scalar or Vector of dates.Optional Inputs:Basis - Scalar or Vector of day-count basis.Valid Basis are:0 = actual/actual (default)1 = 30/360 (SIA)2 = actual/3603 = actual/365(NEW) 4 - 30/360 (PSA compliant)(NEW) 5 - 30/360 (ISDA compliant)(NEW) 6 - 30/360 (European)(NEW) 7 - ac
14、t/365 (Japanese)实务中计算方法如下:1.Act/Act:按照实际天数计算,分平闰年;注意此处 SIA 标志在 matlab 的help 中没有显示。请记下来吴氏金融工程第一讲 固定收益证券的 Matlab 计算72.Act/360:一年 360 天;3.Act/365:一年 365 天;4.30/360(European):每月 30 天,每年 360 天,起始日或到期日为 31 日的改为 30日;5.30/360(ISDA1):每月 30 日,每年 360 天,起始日或到期日为 31 日改为 30 日,到期日为 31 日,起始日不为 30 日、31 日,则不变;6.30/36
15、0(PSA2):每月 30 日,每年 360 天,起始日或到期日为 31 日改为 30 日,到期日为 31 日,起始日不为 30 日、31 日,则不变,2 月最后一天为 30 日;7.30/360(SIA3):每月 30 日,每年 360 天,起始日或到期日为 31 日改为 30 日,到期日为 31 日,起始日不为 30 日、31 日,则不变,不是闰年,起始日到期日都为 2 月 28 日,则都改为 30 日,闰年,起始日到期日都为 2 月 29 日,则改为30 日;8.Act/365(Japanese):每月 30 天,每年 365 天,不考虑闰年;由于各计数法则之间太难区别,我们只考 mat
16、lab 的用法:格式:NumDays: = daysdiff(StrateDate, EndDate, Basis)日期的格式可以是:纯数字月/日/年的形式,如 3/1/1999 表示 1999 年 3 月 1 日,也可以是数字加英文月份的前三个字母,这时按日-月-年来排,如 1-Mar-1999。例 1: 计算 Act/Act 法则之下 2007 年 2 月 27 日至 2007 年 3 月31 日之间的天数。代码 1: StartDate=27-Mar-2007; EndDate=31-Mar-2007; Basis=0; StartDate=27-Feb-2007; NumDays=da
17、ysdif(StartDate,EndDate,Basis)NumDays =321 ISDA:International Swap Dealers Associations 国际互换交易协会2 PSA:Public Securities Association 美国公众证券协会3 SIA:Securities Industry Association 美国证券业协会代码 2: StartDate=2/27/2007; EndDate=3/31/2007; Basis=0; NumDays=daysdif(StartDate,EndDate,Basis)NumDays =32代码 3: day
18、sdif(2/27/2007,3/31/2007,0)ans = 32吴氏金融工程第一讲 固定收益证券的 Matlab 计算8请解释下面 matlab 计算天数的结果的原因:例 2:请分别用 30E/360,ISDA ,PSA ,SIA 法计算例 1 中的应计天数。解:30E/360,ISDA,PSA,SIA 对 basis 代码分别是:E_Days=daysdif(2/27/2007,3/31/2007,6)E_Days = 33 ISDA_Days=daysdif(2/27/2007,3/31/2007,5)ISDA_Days = 34 ISDA_Days=daysdif(2/27/200
19、7,3/31/2007,5)ISDA_Days = 34 PSA_Days=daysdif(2/27/2007,3/31/2007,4)PSA_Days = 34 SIA_Days=daysdif(2/27/2007,3/31/2007,1)SIA_Days = 34特别注意:由于 matlab 实际上是矩阵的计算,所以变量多可为向量形式,如我们可以把 StrateDate 和 EndDate 写成列向量,一次输入多个起始日和到期日。在此,一般用列向量,列的间隔符号是英语分号。例 3:计算 1998-03-01 分别至 2001-03-01,2002-03-01 和 2003-03-01 之间
20、的应计天数(ACT/ACT)。解: StartDate=3/1/1998; 3/1/1998; 3/1/1998;EndDate=3/1/2001; 3/1/2002;3/1/2003;NumDays=daysdif(StartDate,EndDate)NumDays =109614611826*作业 1:请用 matlab 计算出下表中的应计天数按理说行向量(分逗号隔开)也可以,但我运行之后没有显示吴氏金融工程第一讲 固定收益证券的 Matlab 计算9Start-end date SIA Act/360 PSA ISDA 30E/3602007-2-272007-3-14 2 4 4 42
21、007-2-282007-3-11 1 3 1 32008-2-282008-3-13 2 3 3 32008-2-282009-3-1363 367 363 363 363参考答案:% 固定收益证券作业 1 参考代码% SIAAct/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:6if Basis=3 NumDays=0;0;0;
22、0else NumDays=daysdif(StartDate,EndDate,Basis)end end% 将除 0000 之外的那几例依次填入表的 1-5 例即可 . 如果你不会用程序控制语句,也可以一步步地求.吴氏金融工程第一讲 固定收益证券的 Matlab 计算10第三节 应计利息、贴现与现金流一应计利息(Accrued interest)公式略。调用方式:AccruInterest = acrubond(IssueDate, Settle, FirstCouponDate, Face, CouponRate, Period, Basis)Period 和 Basis 是可选项。Per
23、iod 指付息频率。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 之
24、间的天数,显然这是 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;吴氏金融工程第一讲 固定收益证券的 Matlab 计算11 Basis=6;AccruInterest=acrubond(IssueDate, Settle, FirstCouponDate, Face, C
25、ouponRate, 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二贴现率计算尚缺函数,或未找到相应函数.三、计算内部收益率内部收益率是使投资现金流现值等于价格的收益率,其计算公
26、式为:,其中:nrCrCrP)1()1()(132Ci 为第 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吴氏金融工程第一讲 固定收益证券的 Matlab 计算12如果把这里的-5000 改
27、成-4000,那么 ans=0.3825,这很容易理解。四、现金流现值与终值1现金流现值的计算现金流现值的计算公式是: nrPrPrPV )1()1()(1)( 320 matlab 命令是:PesentVal=pvvar(Cashflow, Rte)PesentVal=pvvar(Cashflow,Rate,IrrCFDates)这里 IrrCFDates 是指现金流发生的日期,Rate 是指的贴现率 .例 7:一项投资各年的现金流如下表,贴现率为 0.08,求其现值。年份 当前 第 1 年 第 2 年 第 3 年 第 4 年 第 5 年金额/元 -10 000 2 000 1 500 3
28、000 3 800 5 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-200714-Feb-20083-Mar-200814-Jun-20081-Dec-2008金额/元 -10 000 2500 200 3 000 4
29、000解: cashflow=-10000, 2500, 2000, 3000, 4000; rate=0.09;请学生思考吴氏金融工程第一讲 固定收益证券的 Matlab 计算13 irrcfdates=01/12/200702/14/200803/03/200806/14/200812/01/2008; PresentVal=pvvar(cashflow,rate, irrcfdates)PresentVal = 142.1648注意:irrcfdates 这个向量应写成列向量,列向量的写法是用分号分隔或用回车符分隔。此外,月和年要写成 2 位数,如 3 月1 日不能写成 1/3,只能写成
30、 01/03,这是因为列向量的各元素要保持一致。判断下列写法是否正确: irrcfdates=01/12/2007; 02/14/2008;03/03/2008; 06/14/2008; 12/01/2008 (正确的写法)irrcfdates=1/12/2007; 2/14/2008; 3/3/2008; 7/14/2008; 12/1/2008 (错误的写法,格式不统一)irrcfdates=1/12/20072/14/20083/3/20087/14/200812/1/2008 (错误的写法,格式不统一) irrcfdates=1/12/2007, 2/14/2008, 3/3/2008
31、, 7/14/2008, 12/1/2008 (错误的写法,写成了行向量)如果贴现率是变化的,怎么办?如果贴现率是变化的,现金流现值的公式是怎样的? nrCrCrP)1()1()(132此处可以让学生在笔记本上算算看吴氏金融工程第一讲 固定收益证券的 Matlab 计算14资料上没有现成的函数,我自己编了个函数,经过反复测试,成功运行。注意 matlab 中函数文件名要和函数名保持一致。可变贴现率下现金流现值的计算:function PreValFlow,PresetVal = PV_variable(P,r) %可变贴现率下现金流现值的计算% 计算可变再现率和对应的现金流的现值.% P 为各
32、期现金流,r 为贴现率向量 ,注意第 0 期的利率一定要设成 0 对应 P 第的一期应为负值,表示投资.% 注意 P 为行向量,r 也为行向量, 此二向量的元素要一样多. 否则计算会出错.a,b=size(r);for i=1:1:bC(i)=P(i)/(1+r(i)(i-1); % 再变成 1/(1+ri)i(次方)end PV_variable=sum(C); % 注意要转置PresetVal =PV_variable各期现值为:PreValFlow=C(见 PV_variable.m 文件)也可以用 excel 来计算,也很方便。见文件:可变贴现率情况下的现金流现值计算.xls无论是自编
33、函数 PV_variable.m 还是 excel,最后算出来的结果都一样。例 9 已知一项 5000 元的投资在其后的第 1-4 年的现金流分别为:1000, 2000, 3000, 4000 元,贴现率分别为 5%, 6%, 7%, 8%,求这四年的现金流的现值是多少?解:利用我自编的可变现金流现值的函数 PV_variable 进行计算。cashflow=-5000,1000,2000,3000,4000;rate=0,0.05,0.06,0.07,0.08PV_variable(cashflow,rate)吴氏金融工程第一讲 固定收益证券的 Matlab 计算15PresetVal =
34、3.1214e+003各期现值为:PreValFlow =1.0e+003 *-5.0000 0.9524 1.7800 2.4489 2.94012现金流终值现金流终值是债券到期时的价值。用 fvvar 函数。调用方式:FutureVal= fvvar(CashFlow, Rate, IrrCFDates)例 10:题干同例 7。求该现金流的终值。解: CashFlow=-10000, 2000, 1500, 3000, 3800, 5000; Rate=0.08; FutureVal=fvvar(CashFlow, Rate)FutureVal = 2.5205e+003如果将 Futur
35、eVal 贴现到当前时刻就是现值。代码如下:FresentValue=FutureVal/(1+Rate)5FresentValue = 1.7154e+003 贴现后的结果同例 7。五计算赎回价格对于可赎回债券,当赎回时间小于等于一个计息周期时,公式较简单: )(1MYEDSRVprice当息票赎回时间大于一个息票期间时,公式较繁杂:, 其中:EDSCNqYprice1)(RV:赎回时的价格;DSC :结算日到下一个似息票日的天数吴氏金融工程第一讲 固定收益证券的 Matlab 计算16DSR:结算日到赎回日之间的天数 M:每年的息票期间Nq:似息票期间个数 Y:息票率调用方式:Price
36、= zeroprice(Yield, Settle, Maturity, Period, Basis, EndMonthRule)输入参数:Yield: 票息率Settle: 结算日Maturity: 到期日Period: (optional)付息频率Basis: (optional)应计天数法则EndMonthRule: (optional)月末法则输出参数:Price: 零息券价格例 11 某债券结算日是 1993 年 6 月 24 日,到期日是 1993 年 11月 1 日,每年付息 2 次,应计利息法则为 ACT/ACT,票息为 4%,试计算其价格。解:该债券到期日小于一个计息周期,也
37、可以视为一个赎回(注意默认的赎回价格是 100) ,在赎回期之前没有支付票息,距离到期日小于一个计算期间,所以按公式算可用上述第一式。下面用 matlab 解。 Settle =24-Jun-1993; Maturity =1-Nov-1993; Period =2; Basis =0; Yield = 0.04; Price = zeroprice(Yield, Settle, Maturity, Period, Basis)Price = 98.6066这就是说到期时付 100 元的债券,现在提前赎回只要 98.6066元。此数字是什么意思?吴氏金融工程第一讲 固定收益证券的 Matlab
38、 计算17例 12 多个计息期间的赎回价格。如果某债券结算日是 1993 年6 月 24 日,到期日是 2024 年 1 月 15 日,每年付息 2 次,应计利息法则为 ACT/ACT,票息为 10%,到期时的赎回价默认是100 试计算其价格。解: Settle =24-Jun-1993; Maturity =15-Jan-2024; Period = 2; Basis =0; Price = zeroprice(Yield, Settle, Maturity, Period, Basis)Price = 29.8120可见债券提前 34 年左右赎回价格是多么的低。 (注:张树德编的课本上的计
39、算结果有误)此例进 PPT不进学生资料吴氏金融工程第一讲 固定收益证券的 Matlab 计算18第四节 计算长期债券到期收益率HomeWork:课后第 2-4 题.吴氏金融工程第二讲:久期与凸度19第二讲 久期与凸度久期和凸性是衡量债券利率风险的重要指标。很多人把久期简单地视为债券的到期期限,其实是对久期的一种片面的理解, 而对凸性的概念更是模糊。在债券市场投资行为不断规范,利率风险逐渐显现的今天,如何用久期和凸性量化债券的利率风险成为业内日益关心的问题。第一节 久期1. 久期的概念久期 (也称持续期 )是 1938 年由费德里希 麦考利( Federich R.Macaula)和约翰 西克斯
40、爵士( John Hicks)提出的 ,用来衡量债券的到期时间。 它是以未来收益的现值为权数计算的到期时间。久期是指收益率变化 1所引起的债券全价变化的百分比。即久期用来衡量债券价格对利率/收益率变化的敏感性。其实就是价格相对于收益率的一阶导数。概念虽然简单,但在实际应用中却非常的复杂。国内外资料上给出的公式往往不太一致,所以给许多初学者以迷惑感。本次我本对于久期和凸度的计算,重在用 matlab 计算,而不是推理其公式。有些地方可能还会用到 excel 的计算。(1)麦考利久期的估算法:将久期表述为债券现金流的时间加权值之和与现金流的总现值的比率。(公式 2-1)MtttPD1总 现 值时
41、间 加 权 现 值(公式 2-2)ttBttMtttt WiCi111)()(这个概念有点像性。所以它实际上是个加权的到期数吴氏金融工程第二讲:久期与凸度20(公式 2-3)BtMtttttt PiCW11)(其中 i 表示市场利率 ,t 表示付息期数,M 表示最大期数,Ct 表示第t 期的现金流, Ct/(1+i)t 表示对第 t 期的现金流进行贴现.P B 表示债券的价格. Pt 表示第 t 期现金流的现值.实际上 Ct/(1+i)t 表示对第 t 期的现金流进行贴现是不准确的,我认为应该除以 Yi,即第 i 期的到期收益率. 这样 Ct/(1+i)t 应表示为 Ct/(1+Yi)t.所以
42、有:(公式 2-4)MttittiyD1)(本公式在 Matlab 金融工程与资产管理 P51 的计算代码中表现出来了。 )由上述定义及公式知:零息债券的久期就是债券的期限,它是天然具有免疫能力的。例 1:一种债券的的面值为 100 元,票息额为每年 9 元。市场利率为 8%。债券的到期期限为 6 年。一年付一次息。计算该债券的久期。解 i=8%,Ct=9,M=6.用 excel 计算如下:时间 票息额 折现因子 折现值 时间的加权值 it Ct 1/(1+i)t Ct/(1+i)t t*Ct/(1+i)t 0.11 9 0.92593 8.33333 8.333333333 2 9 0.85
43、734 7.71605 15.43209877 3 9 0.79383 7.14449 21.43347051 4 9 0.73503 6.61527 26.4610747 5 9 0.68058 6.12525 30.62624387 6 9 0.63017 5.67153 34.02915985 6 100 0.63017 63.017 378.1017761 斜体部分的数据可让学生自己上台操作。此结论要滚瓜烂熟吴氏金融工程第二讲:久期与凸度21 104.623 514.4171572 DM= 514.42/104.62= 4.91687 ( 麦氏 )久期(2 )修正久期(D *)修正久期
44、是用来衡量债券价格对利率变化的敏感程度的指标。具体地说,有公式:(公式 2-5)iDM1)(*修 正 久 期这里 i 指利率。(3 )美元久期(D* )D*=D* PB (公式 2-6)其中:P B 指债券现行价格。P B=-D*PBiP BD MPBi这里:P B 指债券的价格变动,i 指预期利率的变动。这个公式告诉我们,债券价格的变动与预期利率的变动方向是反向的,而修正久期正好相当于一个放大因子。债券的久期越大,利率的变化对该债券价格的影响也越大,因此风险也越大。在降息时,久期大的债券上升幅度较大;在升息时,久期大的债券下跌的幅度也较大。因此,投资者在预期未来降息时,可选择久期大的债券;在
45、预期未来升息时,可选择久期小的债券。这是重要的风险管理方法。在同等要素条件下, 修正久期小的债券较修正久期大的债券抗利率上升风险能力强, 但抗利率下降风险能力较弱。例 2:已知某种债券当前的市场价格为 125 美元,当前的市场年利率为 5%,债券的久期为 4.6 年,求:如果市场利率上升 40个基点,债券的市场价格将发生怎样的市场变化?解:PB=125, i=5%, D M=4.6 年, i=+0.004所以P BD MPBi=-4.6 125 0.004 = -2.19 美元。07 级王鑫说:利率上升风险是债券价格下降的风险,这时,修正久期小的债券下降就小所以 修正久期小的债券较修正久期大的
46、债券抗利率上升风险能力强,吴氏金融工程第二讲:久期与凸度22即债券的价格将要下降 2.19 美元。下面介绍应用 matlab 来计算久期。(4)现金流久期的计算调用方式:Duration, ModDuration = cfdur (Cashflow, Yeild)Yeild:the periodic yield 可以理解为贴现率。先来看一个 matlab 的 cfdur 中举的例子:例 3:Nine payments of $2.50 and a final payment of $102.50 with a yield of 2.5% returns a duration of 8.97 p
47、eriods and a modified duration of 8.75 periods.验算一下: cashflow= 2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,102.50 Durartion, ModDuration=cfdur(cashflow,0.025)Durartion = 8.9709 ModDuration = 8.7521例 4:一项投资各期现金流如下表,贴现率为 0.025,问该项投资的久期是多少?期限 第 1 期 第 2 期 第 3 期 第 4 期 第 5 期金额/元 2000 2000 3000 4000 5000解: cashflo
48、w= 2000 2000 3000 4000 5000; Durartion, ModDuration=cfdur(cashflow,0.025)Durartion = 3.4533(5)根据债券收益率和息票率计算久期调用方式:ModDuration, YearDuration, PerDuration = bnddury(Yield, CouponRate, Settle, Maturity, Period, Basis, EndMonthRule, IssueDate, FisrtCouponDate, LastCouponDate, StartDate, Face)其中从 Period 到 Face 都是可选项。Face 的默认票面值是100。Period 是指每年付息的次数。注意 Yield 可以是向量。.吴氏金融工程第二讲:久期与凸度23输出参数中ModDuration 指修正久期,每半年支付一次票息YearDurationr 指根据年为单位计算的麦考利久期PerDuration 指以半年为单位的麦考利久期,为 YearDuration 的2 倍。这样看来 bnddury 指的是 bo