bondbyzero
从一组零曲线中定价债券
语法
描述
[
根据一组零曲线为债券定价。价格
,DirtyPrice
,CFlowAmounts
,CFlowDates
= bondbyzero(RateSpec
,CouponRate
,解决
,成熟
)bondbyzero
计算普通债券、阶梯息票债券和摊销债券的价格。
请注意
或者,您也可以使用FixedBond
反对定价固定利率债券工具。有关更多信息,请参见开始使用基于对象的框架为金融工具定价的工作流程.
[
添加额外的名称-值对参数。价格
,DirtyPrice
,CFlowAmounts
,CFlowDates
= bondbyzero(___,名称,值
)
例子
给香草债券定价
用0曲线为4%的债券定价。
负载deriv.mat
,提供ZeroRateSpec
这一利率期限结构需要为债券定价。
负载deriv.mat;CouponRate = 0.04;set = datetime(2000,1,1);成熟度= datetime(2004,1,1);价格=零债券(ZeroRateSpec, CouponRate,结算,到期)
价格= 97.5334
给阶梯息票债券定价
利用市场数据为单级息票债券定价。
为利率期限结构定义数据。
比率= [0.035;0.042147;0.047345;0.052707);ValuationDate = datetime(2010,1,1);StartDates = ValuationDate;EndDates = [datetime(2011,1,1);datetime(20102年,1,1);datetime(2013年,1,1);datetime(2014年,1,1)]; Compounding = 1;
创建RateSpec
.
RS = intvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RS =带有字段的结构:FinObj: 'RateSpec'复合:1盘:[4x1 double]利率:[4x1 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: 734139估值日期:734139基础:0 EndMonthRule: 1
创建阶梯式键合工具。
Settle = datetime(2010,1,1);成熟度= [datetime(2011,1,1);datetime(2012年,1,1);datetime(2013年,1,1);datetime(2014年,1,1)];CouponRate = {{datetime(2012,1,1) .0425;datetime(2014,1,1) .0750}};周期= 1;
计算阶梯式息票债券的价格。
p0 =债券逐零(RS,债券利率,结算,到期,期限)
PZero =4×1100.7246 101.4247 101.6442 102.1362
用分期偿还计划为债券定价
根据分期偿还计划为债券定价脸
输入参数定义调度。
为利率期限结构定义数据。
比率= 0.065;ValuationDate = datetime(2011,1,1);StartDates = ValuationDate;EndDates = datetime(2017、1、1);复利= 1;
创建RateSpec
.
RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =带有字段的结构:FinObj: 'RateSpec'复合:1 Disc: 0.6853 Rates: 0.0650 EndTimes: 6 StartTimes: 0 EndDates: 736696 StartDates: 734504 ValuationDate: 734504 Basis: 0 EndMonthRule: 1
创建摊销债券工具并为其定价。该债券票面利率为7%,期限为一年,于2017年1月1日到期。
CouponRate = 0.07;Settle = datetime(2011,1,1);成熟度= datetime(2017,1,1);周期= 1;Face = {{datetime(2015,1,1) 100;datetime(2016,1,1) 90;datetime(2017,1,1) 80}};利率,息票利率,结算,到期,“时间”,...期间,“脸”脸)
价格= 102.3155
将结果与普通债券的价格进行比较。
PriceVanilla =零利率债券(利率,息票利率,结算,到期,期限)
PriceVanilla = 102.4205
对摊销债券和普通债券进行定价。
Face = {{datetime(2015,1,1) 100;datetime(2016,1,1) 90;datetime(2017,1,1) 80};100};PriceBonds = bondby0(利率,息票率,结算,到期,“时间”,...期间,“脸”脸)
PriceBonds =2×1102.3155 - 102.4205
在持有期内为债券定价
当债券首次发行时,它可以被定价bondbyzero
在那天通过设置解决
日期至发行日期。之后,如果债券需要在发行日和到期日之间的某一天进行交易,则可以通过更新解决
日期,以及RateSpec
输入。
请注意,债券的价格是由其剩余现金流和零利率期限结构决定的,这两者都可能随着债券到期而变化。而bondbyzero
自动更新债券的剩余现金流相对于新的解决
日期,你必须提供一个新的RateSpec
以反映新的零利率期限结构为新解决
日期。
使用以下Bond信息。
IssueDate = datetime(2014,5,20);CouponRate = 0.01;成熟度= datetime(2019,5,20);
在2014年5月20日确定债券价格。
sette1 = datetime(2014,5,20);ZeroDates1 = datemnth(sett1,12 *[1 2 3 5 7 10 20]');ZeroRates1 = [0.23 0.63 1.01 1.60 2.01 2.27 2.79]'/100;RateSpec1 = intenvset(StartDate可以的Settle1,“EndDates”ZeroDates1,“利率”, ZeroRates1);[pric1, ~, CFlowAmounts1, CFlowDates1] = bondbyzero(RateSpec1,...息票率,结算1,期限,“IssueDate”, IssueDate);Price1
Price1 = 97.1899
在2015年8月10日确定债券价格。
sette2 = datetime(2015,8,10);ZeroDates2 = datemnth(sett2,12*[1 2 3 5 7 10 20]');ZeroRates2 = [0.40 0.73 1.09 1.62 1.98 2.24 2.58]'/100;= intvset (StartDate可以的Settle2,“EndDates”ZeroDates2,“利率”, ZeroRates2);[Price2, ~, CFlowAmounts2, CFlowDates2] = bondbyzero(RateSpec2,...息票率,结算2,期限,“IssueDate”, IssueDate);Price2
Price2 = 98.9384
用两条不同的曲线为三种债券定价
要用两条不同的曲线为三种债券定价,定义RateSpec
:
StartDates = datetime(2016,4,1);EndDates = [datetime(2017,4,1);datetime (2018 4 1);datetime (2019 4 1);datetime (2020 4 1)];率= [[0.0356;0.041185;0.04489;0.047741],[0.0325;0.0423;0.0437;0.0465]];RateSpec = intenvset(“利率”率,startdate可以的startdate可以,...“EndDates”EndDates,“复合”, 1)
RateSpec =带有字段的结构:FinObj: 'RateSpec'复合:1盘:[4x2 double]率:[4x2 double] EndTimes: [4x1 double] StartTimes: [4x1 double] EndDates: [4x1 double] StartDates: 736421估值日期:736421基础:0 EndMonthRule: 1
给三种债券定价成熟
还有不同的优惠券。
Settle = datetime(2016,4,1);成熟度= datetime(2020,4,1);价格= bondby0 (RateSpec,[0.025;0.028;0.035],结算,到期)
价格=3×292.00766 92.4888 93.1680 93.5823 95.7145 96.1338
使用可选输入参数为香草债券定价AdjustCashFlowsBasis
要根据应计金额调整现金流,请使用可选输入参数AdjustCashFlowsBasis
当调用bondbyzero
.
使用以下数据定义利率期限结构并创建一个RateSpec
.
比率= 0.065;ValuationDate = datetime(2011,1,1);StartDates = ValuationDate;EndDates = datetime(2017、1、1);复利= 1;RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”、复合);CouponRate = 0.07;Settle = datetime(2011,1,1);成熟度= datetime(2017,1,1);周期= 1;Face = {{datetime(2015,1,1) 100;datetime(2016,1,1) 90;datetime(2017,1,1) 80}};
使用cfamounts
然后循环基础
的0
来13
,使用可选参数AdjustCashFlowsBasis
确定结算时应计利息的现金流量。
AdjustCashFlowsBasis = true;cflowamount = cfamounts(CouponRate,结算,到期,“时间”期,“基础”0:13,“AdjustCashFlowsBasis”AdjustCashFlowsBasis)
CFlowAmounts =14×70 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 7.0972 7.1167 7.0972 7.0972 7.0972 107.1167 0 0 7.0000 7.0192 7.0000 7.0000 7.0000 107.0192 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 0 0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000 0 7.0972 7.1167 7.0972 7.0972 7.0972 107.1167⋮
请注意,现金流金额已根据基础
.
使用输入参数为普通债券定价AdjustCashFlowsBasis
.
利率,息票利率,结算,到期,“时间”期,“基础”0:13,“AdjustCashFlowsBasis”AdjustCashFlowsBasis)
PriceVanilla =14×1102.4205 102.4205 102.9216 102.4506 102.4205 102.4205 102.4205 102.4205 102.4205 102.9216
输入参数
RateSpec
- - - - - -利率结构
结构
利率结构,指定使用intenvset
要创建一个RateSpec
对于年化零利率期限结构。
数据类型:结构体
CouponRate
- - - - - -债券票面利率
正十进制值
债券票面利率,指定为NINST
——- - - - - -1
十进制年率或NINST
——- - - - - -1
单元格数组,其中每个元素都是NumDates
——- - - - - -2
单元阵列。的第一列NumDates
——- - - - - -2
单元格数组是日期,第二列是相关的利率。日期表示票面利率有效的最后一天。
数据类型:双
|细胞
解决
- - - - - -结算日期
datetime数组|字符串数组|日期字符向量
结算日期,指定为标量或NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
解决
必须早于成熟
.
成熟
- - - - - -到期日
datetime数组|字符串数组|日期字符向量
到期日期,指定为NINST
——- - - - - -1
向量,使用日期时间数组、字符串数组或日期字符向量表示每个债券的到期日。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:价格=零债券(利率,息票率,结算,期限,'期限',4,'面',10000)
期
- - - - - -每年的优惠券
2
每年(默认)|向量
每年的优惠券,以逗号分隔的对所组成“时间”
和一个NINST
——- - - - - -1
向量。值期
是1
,2
,3.
,4
,6
,12
.
数据类型:双
基础
- - - - - -日计数的基础上
0
(实际/实际)(默认)|整数的0
来13
仪器的日计数基,指定为逗号分隔的对,由“基础”
和一个NINST
——- - - - - -1
向量。
0 = actual/实际的
1 = 30/360 (sia)
2 =实际/360
3 =实际/365
4 = 30/360 (psa)
5 = 30/360 (isda)
6 = 30/360(欧洲)
7 =实际/365(日文)
8 =实际/实际(ICMA)
9 =实际/360 (ICMA)
10 =实际/365 (ICMA)
11 = 30/360e (icma)
12 =实际/365 (ISDA)
13 = bus /252
有关更多信息,请参见基础.
数据类型:双
EndMonthRule
- - - - - -生成日期的月末规则标志成熟
月末的日期是否只有30天或更少
1
(效果)(默认)|非负整数[0, 1]
生成日期的月末规则标志成熟
一个月的月底日期是否有30天或更少的天,指定为逗号分隔的对,由“EndMonthRule”
和一个非负整数[0
,1
使用aNINST
——- - - - - -1
向量。
0
= Ignore规则,这意味着付款日期总是当月的同一天。1
=设置规则,这意味着支付日期总是每月的最后一天。
数据类型:逻辑
IssueDate
- - - - - -债券发行日期
datetime数组|字符串数组|日期字符向量
债券发行日期,以逗号分隔的对所组成“IssueDate”
和一个NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
FirstCouponDate
- - - - - -首次券息日期不规则
datetime数组|字符串数组|日期字符向量
不规则的第一次优惠券日期,指定为逗号分隔的对“FirstCouponDate”
和一个NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
LastCouponDate
- - - - - -最后优惠券日期不固定
datetime数组|字符串数组|日期字符向量
不规则的最后优惠券日期,指定为逗号分隔的一对,由“LastCouponDate”
和一个NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
StartDate可以
- - - - - -转发开始付款日期
解决
日期(默认)|datetime数组|字符串数组|日期字符向量
转发支付开始日期(债券现金流考虑的日期),指定为逗号分隔的对,由StartDate可以的
和一个NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,bondbyzero
也接受序列号作为输入,但不建议使用。
如果不指定StartDate可以
的生效起始日期为解决
日期。
脸
- - - - - -票面价值
One hundred.
(默认)|非负值的标量|非负值的单元格数组
面值,指定为逗号分隔的对,由“脸”
和一个NINST
——- - - - - -1
非负面值的标量或NINST
——- - - - - -1
单元格数组,其中每个元素都是NumDates
——- - - - - -2
单元阵列。的第一列NumDates
——- - - - - -2
单元格数组是日期,第二列是相关的面值。日期表示面值有效的最后一天。
数据类型:细胞
|双
选项
- - - - - -衍生品定价选项
结构
衍生品期权定价,指定为逗号分隔的对组成“选项”
这个结构是用derivset
.
数据类型:结构体
AdjustCashFlowsBasis
- - - - - -标记以根据实际期间日计数调整现金流
假
(默认)|的价值0
(虚假的)或1
(真正的)
标记以根据实际的期间日计数调整现金流,指定为逗号分隔的对,由“AdjustCashFlowsBasis”
和一个NINST
——- - - - - -1
值为的逻辑向量0
(虚假的)或1
(真正的)。
数据类型:逻辑
BusinessDayConvention
- - - - - -工作日约定
实际
(默认)|特征向量|字符向量的单元格数组
工作日约定,指定为逗号分隔的对,由“BusinessDayConvention”
还有一个字符向量aN
——- - - - - -1
(或NINST
——- - - - - -2
如果BusinessDayConvention
对每个分支不同)工作日约定的字符向量单元格数组。营业日约定的选择决定了如何处理非营业日。非营业日的定义是周末加上任何其他不营业的日期(如法定假日)。值:
实际
-非工作日被有效地忽略。非营业日的现金流假定在实际日分配。遵循
-非营业日的现金流假定在下一个营业日分配。modifiedfollow
-非营业日的现金流假定在下一个营业日分配。但是,如果下一个工作日在不同的月份,则采用上一个工作日。以前的
-非营业日的现金流假定在前一个营业日分配。modifiedprevious
-非营业日的现金流假定在前一个营业日分配。但是,如果上一个工作日在不同的月份,则采用下一个工作日。
数据类型:字符
|细胞
假期
- - - - - -用于计算工作日的假日
如果没有指定,默认是使用holidays.m
(默认)|MATLAB®日期
假日用于计算工作日,指定为逗号分隔的对,由“假期”
和MATLAB数据使用NHolidays
——- - - - - -1
向量。
数据类型:datetime
输出参数
价格
-固定利率票据价格
矩阵
浮动利率票据价格,返回为(NINST
)按曲线数目(NUMCURVES
)矩阵。每一列都来自于零曲线中的一条。
DirtyPrice
——肮脏的债券价格
矩阵
肮脏的债券价格(干净+应计利息),返回作为NINST
-, -NUMCURVES
矩阵。每一列都来自于零曲线中的一条。
CFlowAmounts
-现金流量
矩阵
现金流量金额,返回为NINST
-, -NUMCFS
每个债券的现金流矩阵。
CFlowDates
-现金流日期
矩阵
现金流日期,返回为NINST
-, -NUMCFS
每个债券的付款日期矩阵。
更多关于
香草债券
普通息票债券是一种证券,代表在指定时间偿还借款金额的义务,并在指定时间之前定期支付利息。
债券的发行人定期支付利息,直到债券到期。到期时,发行人向债券持有人支付所欠本金(票面价值)和最后支付的利息。
阶梯式息票债券
增减债券是一种债券证券,随着时间的推移票面结构是预先确定的。
通过这些工具,票息在债券存续期内的特定时间增加(上升)或减少(下降)。
债券与摊销计划
摊销债券被视为一种资产,贴现金额在债券存续期内摊销为利息支出。
版本历史
R2006a之前介绍过第一MATLAB
Hai fatto clic su uncollegamento che对应一个任务的MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB。我浏览器网页不支持我的MATLAB。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。