第二讲固定收益证券的matlab计算吴义能TEL:15387002178QQ:294808610E-mail:wuyineng2003@163.com第一节固定收益基本知识固定收益证券:一组稳定现金流的证券.广义上还包括了债券市场上的衍生产品及优先股.以债券为主.一.固定收益的品种国债是固定收益的重要形式,以贴现债券(discountsecurity)与息票债券(couponbonds)两种形式发行.美国的固定收益证券可以分为以下几个品种:1.(短期)国库券(Treasurybills,T-bills)期限小于一年,贴现发行,面值usu.1~10万美元.是流动性最高的债券品种,违约风险小,其利率usu当作无风险利率。2.政府票据(Treasurynotes,T-notes)即美国中期国债,期限1~10年,是coupon.3.长期国债(Treasurybonds,T-bonds)期限10年,面值1~10万美元,是coupon.4.零息票债券(Zero-couponbond)零息票债券是指买卖价格相对面值有较大折让的企业或市政债券。本息剥离式国债零息票债券往往由附息债券所”剥离”出来:购买息票国债的经纪人可以要求财政部停止债券的现金支付,使其成为独立证券序列,这时每一证券都具有获得原始债券收益的要求权.如一张10年期国债被剥离成20张半年期债券,每张都可视为零息票,它们到期日从6个月到10年不等,最后本多支付是另一张零息证券,所有的支付都单独计算,并配有自己的CUSIP号码由于这种债券息票被“剥离”了,因此被称为本息剥离式国债STRIPS(separatetradingofregisteredinterestandprincipalofsecurities).5.美国CD存单美国CD存单(certificatedeposit):由银行等金融机构向存款人发行的证券,存单上标有一个到期日和利率,并且以任意面值发行,可以买卖,偿还期限小于1年.6.回购协议(repurchaseagreement)是短期抵押贷款.指一方向另一方出售证券的同时,承诺在未来的某一天按协定的价格将相同的证券买回,通常由借款方发起并贷出证券,回购中涉及的证券通常具有较高的信用质量.回购协议的步骤:(1)以债券作为抵押借入资金;(2)经过一段时间,按照约定的价格买回抵押债券.7.可转换债券(convertiblesecurity)可转换债券(简称可转债)是一种具有固定收益的证券,其特点是持有者可以转换为普通股股票,在合约的条款中规定了可转换债券转换为普通股的条件,持有者决定何时转换为股票.可转换债券介于普通股和普通债券之间,故又称股票类连接证券.可转债属于次级债券,如果企业破产,满足要求权的次序是:优先债权次级债可转债优先股普通股.8.浮动利率债券(FRN))浮动利率债券(FRN,floatingratenotes)是偿还期内利率发生变化的债券.浮动利率债券具有以下几个特征:①规定了利率上限与利率下限②基准利率大多为LIBOR,也可为汇率、股票指数、债券指数等;③利率可以正向浮动,也可以反向浮动。二.固定收益相关概念1.交易日(tradedate)交易日就是买卖双方达成交易的日期。但实际情况可能比这更复杂。2.结算日(SettlementDate)指买入方支付价格和卖出方交割证券的日期。美国国债交割日为交易之后第一个营业日(T+1)。交割日也可以由交易者之间商定,如果交割日刚好支付利息,则债券当天出售者获得当天的利息支付,而债券的购买者获得其余款项。有时通过FedWine机构交割证券,交易日即为交割日。3.到期日(Maturity)指固定收益证券债务合约终止的日期。4.本金(Principal)本金有时称面值(parvalue),是指固定收益票面金额5.票面利率(Couponrate)即发行人支付给持有人的利息,有时也称名义利率(nominalrate).票面利率一般指按照单利计算的年利息率,利息支付的频率不同,实际利率当然就不同。6.月末法则(endofmonthruler)指当债券到期日在某月的最后一天,而且该月天数小于30天,这时有两种情况:①到期日在每月固定日期支付;②票息在每月的最后一天支付。Matlab默认的是第②种情况。如:今天2011年2月28日,半每付息制,下一次发息日可能是2011年8月28日,也可能是2011年8月31日,如果不用月末法则就是前者,如果用月末法则就是后者。7.起息日到交割日的天数(DCS)DSM:daysfromcoupontosettlement):指从计息日(含)到交割日(不含)之间的天数。注意,付息日作为下一个利息期限的第一天而不计入DCS。8.交割日距离到期日的天数(DSM)DSM:daysfromsettlementtomaturity):其一般规则是包括交割日而不包括到期日。第二节应计天数简介应计天数是指,债券起息日或上一付息日至结算日的天数,在此期间发生的利息称为应计利息,matlab中可用helpdaysdif代码查看。helpdaysdifDAYSDIFDaysbetweendatesforanydaycountbasis.DAYSDIFreturnsthenumberofdaysbetweenD1andD2usingthegivendaycountbasis.Enterdatesasserialdatenumbersordatestrings.D=daysdif(D1,D2)D=daysdif(D1,D2,Basis)OptionalInputs:Compounding,BasisInputs:D1-[ScalarorVector]ofdates.D2-[ScalarorVector]ofdates.OptionalInputs:Basis-[ScalarorVector]ofday-countbasis.ValidBasisare:0=actual/actual(default)1=30/360(SIA)2=actual/3603=actual/365(NEW)4-30/360(PSAcompliant)(NEW)5-30/360(ISDAcompliant)(NEW)6-30/360(European)(NEW)7-act/365(Japanese)实务中计算方法如下:1.Act/Act:按照实际天数计算,分平闰年;2.Act/360:一年360天;3.Act/365:一年365天;4.30/360(European):每月30天,每年360天,起始日或到期日为31日的改为30日;5.30/360(ISDA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变;6.30/360(PSA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变,2月最后一天为30日;7.30/360(SIA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变,不是闰年,起始日到期日都为2月28日,则都改为30日,闰年,起始日到期日都为2月29日,则改为30日;8.Act/365(Japanese):每月30天,每年365天,不考虑闰年;由于各计数法则之间太难区别,我们只讲matlab的用法:格式:NumDays:=daysdiff(StrateDate,EndDate,Basis)日期的格式可以是:纯数字‘月/日/年’的形式,如3/1/1999表示1999年3月1日,也可以是数字加英文月份的前三个字母,这时按日-月-年来排,如1-Mar-1999,在matlab2010b版本中,也支持”“英文月前三字母-日(数字)-年(数字)”的形式。例1:计算Act/Act法则之下2007年2月27日至2007年3月31日之间的天数。代码1:StartDate='27-Feb-2007';EndDate='31-Mar-2007';Basis=0;StartDate='27-Feb-2007';NumDays=daysdif(StartDate,EndDate,Basis)NumDays=32代码2:StartDate='2/27/2007';EndDate='3/31/2007';Basis=0;NumDays=daysdif(StartDate,EndDate,Basis)NumDays=32代码3:daysdif('2/27/2007','3/31/2007',0)ans=32例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=33ISDA_Days=daysdif('2/27/2007','3/31/2007',5)ISDA_Days=34PSA_Days=daysdif('2/27/2007','3/31/2007',4)PSA_Days=34SIA_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之间的应计天数(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计算出下表中的应计天数Start-enddateSIAAct/360PSAISDA30E/3602007-2-27—2007-3-12007-2-28—2007-3-12008-2-28—2008-3-12008-2-28—2009-3-1第三节应计利息、贴现与现金流一.应计利息(Accruedinterest)公式略。调用方式: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;AccruInterest=acru