赞
踩
月末法则
2015.2.28,半年付息。有月末法则,下次付息为2015.8.31;没有月末法则,下次付息为2015.8.28.
MATLAB默认第一种。
应计天数
计算一下天数,持有固定收益证券的时间不同,收益自然不同,时间很关键。
应计天数是指,债券起息日或上一付息日至结算日的天数,在此期间发生的利息称为应计利息。
ü Act/Act:按照实际天数计算,分闰年;
ü Act/360:一年360天;
ü Act/365:一年365天;
ü 30/360(European):每月30天,每年360天,起始日或到期日为31日的改为30日;
ü 30/360(ISDA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变;
ü 30/360(PSA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变,2月最后一天为30日;
ü 30/360(SIA):每月30日,每年360天,起始日或到期日为31日改为30日,到期日为31日,起始日不为30日、31日,则不变,不是闰年,起始日到期日都为2月28日,则都改为30日,闰年,起始日到期日都为2月29日,则改为30日;
ü Act/365(Japanese):每月30天,每年365天,不考虑闰年;
概念就到这里,关键是怎么使用Matlab计算:
Act/360的调用:daysact360(startday,endday)
30E/360的调用:daysact360e(startday,endday)
30/360(ISDA)的调用:daysact360isda(startday,endday)
30/360(PSA)的调用:daysact360psa(startday,endday)
例1.计算2000.1.1到2000.3.1的间隔天数,采用上述不同的法则。
PS:daysif函数——daysdif - Days between dates for any day-count basis.
NumDays = daysdif(StartDate, EndDate,Basis) returns the number of days between dates StartDate and EndDate using thegiven day-count basis.
basis=0 1 2 3 4 5 6 7,默认为0计算债券距离到期日还需要支付的票息次数
函数cpncount
NumCouponsRemaining= cpncount(Settle, Maturity, Period, Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)
参数含义:
NumCouponsRemaining剩余的票息支付次数
Settle债券结算日
Maturity债券到期日
Period年付息次数
Basis应计天数的计算法则
EndMonthRule月末法则(0或1,1为default)
IssueDate发行日
FirstCouponDate首次支付票息日期
LastCouponDate最后一次支付票息日期
例2.债券结算日1997.9.14,到期日分别是2000.9.30、2001.10.31、2002.11.30,问债券支付利息的次数。计算前一个票息支付日
函数cpndatep
PreviousCouponDate= cpndatep(Settle, Maturity, Period, Basis, EndMonthRule, IssueDate,FirstCouponDate, LastCouponDate)
例3.债券结算日1997.9.14,到期日分别是2000.9.30、2001.10.31、2002.11.30,计算前一个票息支付日。
l 计算下一个票息支付日
函数cpndaten
PreviousCouponDate=cpndaten(Settle,Maturity, Period, Basis, EndMonthRule, IssueDate, FirstCouponDate,LastCouponDate)
例4.债券结算日1997.9.14,到期日分别是2000.9.30、2001.10.31、2002.11.30,计算下一个票息支付日。
计算债券现金流
函数cfdates
CFlowDates=cfdates(Settle,Maturity, Period, Basis, EndMonthRule, IssueDate, FirstCouponDate,LastCouponDate, StartDate)
例5.债券结算日1997.9.14,到期日分别是2000.9.30、2001.10.31、2002.11.30,计算现金流日期。
函数datestr的用法DateString = datestr(t)
MATLAB函数 会将 datetime 数组 t 中的日期时间值转换为表示日期和时间的文本。datestr 返回包含 m 行的字符数组,其中 m 是 t 中的日期时间值的总数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。