全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
3484 2
2016-11-30
月末法则

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 中的日期时间值的总数。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-12-2 10:18:04
顶一个。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-12 01:22:58
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群