本文介绍固定收益工具箱和金融工具箱中短、长期国库券、零息债券、付息债券、政府 票据及其他常见固定收益证券的收益率的 matlab 计算。
短期国库券收益率
短期国库券(Treasuyr Bill)是由政府部门发行、以政府信用作担保的短期债券,期限通 常少于一年,主要用于弥补财赤字及为到期的政府债券提供融资。短期国库券流动性很强, 是重要的货币市场工具。如果知道债券价格、结算日和到期日,但贴现率未知,则可以调用函数 tbillyield 计算短期国库券的收益率,
调用方式
[MMYield,BEYield,Discount]=tbillyield(Price,Settle,Maturity)
输出参数
MMYield % 货币市场收益率,按 actual/360
BEYield % 债券市场收益率,按 actual/365
Discount %债券贴现率,按 actual/360
如将短期国库券贴现率转换成收益率,可调用固定收益工具箱中 tbilldisc2yield 函数,
调用方式
[MMYield,BEYield]=tbilldisc2yield(Discount,Settle,Maturity)
其中输出参数 MMYield、BEYield 分别是货币市场和债券市场的收益率
关于短期国库券中再回购盈亏平衡点的贴现率,可以调用函数 tbillrepo,
调用方式
TBEDiscount=tbillrepo(RepoRate,InitialDiscount, PurchaseDate,SaleDate, Maturity)
输入参数
RepoRate %年化(360 天)再回购回购率
InitialDiscount % (购买日)初始贴现率
PurchaseDate %购买日
SaleDate %出售日
Maturity %到期日
零息债券收益率
已知零息债券(可以是短期或长期)的价格,可调用 zeroyield 函数计算零息债券的到期 收益率,
调用方式
Yield = zeroyield(Price,Settle,Maturity)
或
Yield = zeroyield(Price,Settle,Maturity,Basis,EndMonthRule)
或
Yield=zeroyield(Price,Settle,Maturity,Period,Basis,EndMonthRule)
付息债券价格/到期收益率
当债券的息票率及支付日期固定时,可调用 bndyield 函数计算付息债券的到期收益率,
调用方式
Yield = bndyield(Price,CouponRate,Settle,Maturity)
或
Yield = bndyield(Price, CouponRate, Settle, Maturity, Period, Basis, EndMonthRule, … IssueDate, FirstCouponDate, LastCouponDate, StartDate, Face)
输入参数
Price % 债券净价
CouponRate % 息票率
Settle % 交收日,指债券二级市场上第一次进行买卖的日期
Maturity % 到期日
Period % (Optional)每年发放息票的次数,默认值=2
Basis % (Optional)债券的日计数基准类型,表示为每月的天数/该年的天数, 0(默认值)– 表示实际/实际。1 – 30/360,2 – 实际/360,3 – 实际/365。
EndMonthRule % (Optional)月末法则,每月最后一日的处理方式。当到期日为月末,而且月末小于或等于 30 日时,该法则有效。0 表示忽略该法则,表明债券的息票支付日在实际支付日期;默认值 为 1,表示债券的息票支付日期总是在月末
IssueDate % (Optional)债券发行日
FirstCouponDate % (Optional)债券第一次付息日,当 FirstCouponDate 和 LastCouponDate 都被指定时, FirstCouponDate 优先决定息票支付结构
LastCouponDate % (Optional)债券最后一次付息日
StartDate % (Optional)开始日期,如果 StartDate 未被规定,开始日期就是结算日期
Face % (Optional) 债券面值,默认值=100
阶息债券收益率
阶息债券是一种以固定时间确定息票数量的债券,类似于固定息票债券,但阶息债券可 能拥有不同的支付周期和利息基底。调用 stepcpnyield 函数可计算阶息债券的收益率,
调用方式
YTM = stepcpnyield(Price, Settle, Maturity, ConvDates, CouponRates)
输入参数
ConvDates %表示结算日以后的日期变化矩阵,大小=债券数量乘以变化的最大数,用 NaN 填充未被指 定的记录。
CouponRate % 表示转换利息矩阵,大小=债券数量乘以变化的最大数 1
存款证(CD)收益率
存款证书(Certificate of Deposit),简称 CD,属于定期存款的一种,通常由银行及存款机构 所发行的财务产品。CD 与一般的活期存款一样,均受到保障,几乎没有风险,差别在于存 款证书拥有特定存款期限和固定利息,并可在到期时取回本金和应收的利息。同时存款证书 是一种高度可转让债券,在二级市场具有较强的流动性。可调用函数 cdyield 计算存款证的 收益率(单利),
调用方式
Yield = cdyield(Price, CouponRate, Settle, Maturity, IssueDate,Basis)
输入参数中 Price 为债券净价。如果是全价,调用函数 cdai 计算应计利息,
调用方式
AccrInt = cdai(CouponRate, Settle, Maturity, IssueDate, Basis)
住房抵押贷款证券化(MBS)收益率
住房抵押贷款证券化(MBS: Mortgage-Backed Securitization),指金融机构(主要是商业银 行)把自己所持有的流动性较差但具有未来现金流的住房抵押贷款汇聚重组为抵押贷款群组。 由证券化机构以现金方式购入,经过担保或信用增级后以证券的形式出售给投资者的融资过 程。旨在将原来不易被出售给投资者的缺乏流动性但能够产生可预期的现金流入的资产,打 包重组后转换成可以在市场上流动的证券。可调用 mbsprice 函数计算 MBS 的收益率
调用方式
[MYield, BEMBSYield] = mbsyield(Price, Settle, Maturity, IssueDate,… GrossRate, CouponRate, Delay, PrepaySpeed, PrepayMatrix)
输入参数
Price % 面值 100 的债券净价
GrossRate % 总息票率,含费用
CouponRate % 净息票率,不含费用,默认为 GrossRate
Delay % (可选)业主付款与债券持有人收款之间的延迟(以天为单位) 0—默认(没有延迟)
PrepaySpeed % (可选)提前还款速度,(年度)条件提前还款比率(conditional prepayment rate , CPR)与公共 证券协会提前还款基准模型(public securities association, PSA,包括了月度的 CPR 序列)的 关系,通常默认 0=没有预付,如果输入自定义提前偿还矩阵,则 PrepaySpeed =[ ]
PrepayMatrix % (可选)提前还款矩阵,大小为 max(TermRemaining)*NMBS,即剩余期限最大值*MBS 的 数量,该矩阵的每一列对应一个 MBS,每一行对应自结算日后的剩余月份数,若缺损, 设置为 NaNs
输出参数
MYield % 到期收益率
BEMBSYield % 债券等价收益率
下面再介绍几个常用的收益率换算。
Return = effrr(Rate, NumPeriods) %输入年名义利率和一年付息次数,输出有效利率
Return = nomrr(Rate, NumPeriods) %输入有效利率和一年付息次数,输出年名义利率
Return = taxedrr(PreTaxReturn, TaxRate) %输入年名义收益率和税率,输出税后收益率
债券组合的收益率
对于包含多支债券的债券组合,能用各债券收益率的加权平均计算组合的收益率么?答 案是否定的。正确的做法是:先计算单个债券的价格及市值(债券份数与价格之积),得到 债券组合的当前价值P,然后将债券组合看成一个单一的债券,根据各债券的现金流信息 cf,i=1,2,…n,再根据所有现金流的现值之和等于价值P,求出贴现率,即为债券组合的收 益率;也可以利用内部回报率的方法计算,故到期收益率也称为内部回报率。
债券定价本节介绍固定收益工具箱和金融工具箱中短、长期国库券、零息债券、付息债券、政府 票据及其他常见固定收益证券的定价计算。债券定价的基本模型可表述为:
其中 V 为债券的内在价值, t c 为第 t 期 ( 1,2,..., ) t T 的现金流, k 为每期的市场利率(也称贴 现率), T 为总期数。
短期国库券价格
如已知短期国库券的收益率或贴现率,可调用函数 tbillprice 计算债券价格,
调用方式
Price = tbillprice(Rate,Settle,Maturity,Type)
输入参数
Rate % 债券市场收益率、货币市场收益率或者贴现率
Settle % 债券的结算日,
Maturity % 债券的到期日
Type % Type (Optional) 债券收益率类型,1=货币市场(默认),2=债券市场,3=贴现率
零息债券价格
已知零息债券(可以是短期或长期)的收益率,可调用 zeroprice 计算债券价格函数,
调用方式
Price = zeroprice(Yield, Settle, Maturity, Period, Basis, EndMonthRule)
输入参数
Yield % 债券收益率
Settle % 交收日,指债券二级市场上第一次进行买卖的日期
Maturity % 到期日
Period % (Optional)每年发放息票的次数,默认值=2
Basis % (Optional)债券的日计数基准类型,表示为每月的天数/该年的天数,
付息债券价格
调用 Matlab 金融工具箱中 bndprice 函数可计算付息债券的价格,
调用方式
[Price, AccruedInt] = bndprice(Yield, CouponRate, Settle, Maturity)
或
[Price, AccruedInt] = bndprice(Yield, CouponRate, Settle, Maturity, Period, Basis,… EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate, StartDate,Face)
输出参数
Price % 债券的净价
AccruedInt % 应计利息,债券购买者在非利息支付日买入债券,则在下一个利息支付日,将受到一个 利息支付期的利息,其中一部分利息(利息*原持有者持有天数/利息支付周期天数)应 给回债券出售者
阶息债券价格
调用 stepcpnprice 函数可为阶息债券定价,
调用方式
[Price, AccruedInterest] = stepcpnprice(Yield, Settle, Maturity, ConvDates, CouponRates, .. Period, Basis, EndMonthRule, Face
公司债券价格
首先根据已知信息,利用命令函数 cfamounts 找到现金流及与它对应的日期,然后将日 期转化成时间序列格式,
调用方式
[CFlows, CDates, TFactors, CFlowFlags] = cfamounts(CouponRate,Settle,Maturity, Period, Basis, EndMonthRule,IssueDate,FirstCouponDate,LastCouponDate,StartDate,Face)
输出参数
CFlows % 现金流的金额,第一个元素为负,表示有利息支付
CDates % 现金流发生的日期
TFactors % 时间因子,对应应计利息,默认 Default=2,对应现金流类型 0 至 7 以及 13;取值为 1,对应现金流类型 8 至 12
CFlags % 现金流类型符号,如 0 表示结算日有应计利息支付,3 表示名义息票现金 流,4 表示到期日按面值加应计息票,等等
存款证(CD)定价
调用 cdprice 函数可为存款证定价,
可转换债券定价
调用 cbprice 函数可为可转换债券定价,
调用方式
CbMatrix=cbprice(RiskFreeRate, StaticSpread, Sigma, Price,ConvRatio,NumSteps… IssueDate, Settle, Maturity,CouponRate)
或
[CBMatrix, UndMatrix, DebtMatrix, EqtyMatrix]=cbprice(RiskFreeRate, StaticSpread, Sigma, Price, ConvRatio, NumSteps, IssueDate, Settle,Maturity,CouponRate, Period,… Basis,EndMonthRule, DividendType, DividendInfo, CallType, CallInfo,TreeType)
输入参数
RiskFreeRate % 无风险利率
StaticSpread % 静态价差,为补偿超过无风险部分的信用风险
Sigma % 股票波动的标准差
Price % 股票价格
ConvRatio % 转换比例,默认面值 100
NumSteps % 转换步数
DividendType % 红利类型(0 – 现金红利 (默认) 1 – 红利收益 2 – 连续红利收益)
DividendInfo % 除息信息,第一列为除息日期,第二列为除息数量,默认为没有除息
CallType % 看涨期权类型(0 – 现金全价 (默认) 1 – 净价)
CallInfo % 看涨期权信息,第一列为日期,第二列为面值 100 的债券转换价格
TreeType % 树的类型 (0 – 二叉树 (默认) 1 – 三叉树)
输出参数
CbMatrix %可转换债券价格的二叉树矩阵,其元素等于 DebtMatrix 与 EqtyMatrix 之和,第一行第一列元 素为债券的可转换价格
UndMatrix %二项式形式下股票价格矩阵
DebtMatrix %二项式形式下可转换债券的债券部分价值矩阵
EqtyMatrix %二项式形式下可转换债券的权益部分价值(期权价值)矩阵,最后一列元素在可转换(超 过股价)时,取值为比率*股价,不可转换时取值为 0,其他元素由二叉树模型倒推
住房抵押贷款证券化(MBS)定价
调用 mbsprice 函数可为以房地产抵押做担保(MBS)的证券定价,
调用方式
[Price, AccrInt] = mbsprice(Yield, Settle, Maturity, IssueDate, GrossRate, Delay, PrepaySpeed, PrepayMatrix)