swapbybdt
Black-Derman-Toy利率树的价格互换工具
语法
描述
例子
利率掉期定价
为固定的接收端和浮动的支付端利率掉期定价。每年支付一次,名义本金为100美元。其余参数的值为:
固定腿票面利率:0.15 (15%)
浮动腿价差:10个基点
掉期结算日期:2000年1月1日
掉期到期日期:2003年1月1日
根据上面的信息,设置所需的参数并构建LegRate
,LegType
,LegReset
矩阵:
解决= datetime(2000、1、1);成熟= datetime(2003、1、1);基础= 0;校长= 100;LegRate = [0.15 10];% (CouponRate传播)LegType = [1 0];%(固定浮动)LegReset = [1 1];每年支付一次
对掉期进行定价BDTTree
包含在mat文件中deriv.mat
.BDTTree
包含为工具定价所需的时间和远期利率信息。
负载deriv.mat;
使用swapbybdt
计算掉期价格。
价格= swapbybdt(BDTTree, LegRate,结算,到期,...LegReset, Basis, Principal, LegType)
价格= 7.4222
利用之前的数据,计算掉期利率,固定支腿的票面利率,使时刻= 0时的掉期价格为零。
LegRate = [NaN 20];[Price, PriceTree, CFTree, SwapRate] = swapbybdt(bdtree,...LegReset,结算,到期,LegReset,基础,本金,LegType)
价格= -1.4211 e-14
PriceTree =结构体字段:FinObj: 'BDTPriceTree' tObs: [0 1 2 3 4] PTree: {1x5 cell}
CFTree =结构体字段:FinObj: 'BDTCFTree' tObs: [0 1 2 3 4] CFTree: {[NaN] [NaN NaN] [NaN NaN] [NaN NaN NaN] [NaN NaN NaN] [NaN NaN NaN]}
SwapRate = 0.1205
为摊销掉期定价
为摊销掉期定价主要
输入参数来定义摊销计划。
创建RateSpec
.
率= 0.035;ValuationDate = datetime(2011、1、1);startdate可以= ValuationDate;EndDates = datetime(2017、1、1);复合= 1;RateSpec = intenvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =结构体字段:FinObj: 'RateSpec'复合:1 Disc: 0.8135 Rates: 0.0350 EndTimes: 6 StartTimes: 0 EndDates: 736696 StartDates: 734504 ValuationDate: 734504 Basis: 0 EndMonthRule: 1
使用以下数据创建交换工具:
解决= datetime(2011、1、1);成熟= datetime(2017、1、1);时间= 1;LegRate = [0.04 10];
定义交换摊还计划。
Principal ={{datetime(2013,1,1) 100;datetime(2014,1,1) 80;datetime(2015,1,1) 60;datetime(2016,1,1) 40;datetime(2017,1,1) 20}};
构建BDT树并假设波动率为10%。
MatDates = [datetime(2012,1,1);datetime(2013年,1,1);datetime(2014年,1,1);datetime(2015年,1,1);datetime(2016年,1,1);datetime(2017年,1,1)];BDTTimeSpec = BDTTimeSpec (ValuationDate, MatDates);波动率= 0.10;BDTVolSpec = BDTVolSpec (ValuationDate, MatDates, Volatility*ones(1,length(MatDates))');BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);
计算摊还掉期的价格。
价格= swapbybdt(BDTT, LegRate,结算,到期,“校长”校长)
价格= 1.4574
远期掉期交易定价
为远期掉期定价StartDate可以
输入参数,以定义交换的未来开始日期。
创建RateSpec
.
率= 0.0325;ValuationDate = datetime(2012、1、1);startdate可以= ValuationDate;EndDates = datetime(2018、1、1);复合= 1;RateSpec = intenvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =结构体字段:FinObj: 'RateSpec'复合:1 Disc: 0.8254 Rates: 0.0325 EndTimes: 6 StartTimes: 0 EndDates: 737061 StartDates: 734869 ValuationDate: 734869 Basis: 0 EndMonthRule: 1
构建波动率为10%的树。
MatDates = [datetime(2013,1,1);datetime(2014年,1,1);datetime(2015年,1,1);datetime(2016年,1,1);datetime(2017年,1,1);datetime(2018年,1,1)];BDTTimeSpec = BDTTimeSpec (ValuationDate, MatDates);波动率= 0.10;BDTVolSpec = BDTVolSpec (ValuationDate, MatDates, Volatility*ones(1,length(MatDates))');BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);
计算两年(2014年1月1日)到期三年的远期掉期价格,远期掉期利率为3.85%。
解决= datetime(2012、1、1);成熟= datetime(2017、1、1);StartDate可以= datetime(2014、1、1);LegRate = [0.0385 10];价格= swapbybdt(BDTT, LegRate,结算,到期,StartDate可以的StartDate可以)
价格= 1.3203
使用前面的数据,计算远期掉期利率,固定分支的票面利率,使时刻= 0时的远期掉期价格为零。
LegRate = [NaN 10];[价格,~,~,SwapRate] = swapbybdt(BDTT, LegRate,结算,到期,StartDate可以的StartDate可以)
价格= -4.5191 e-12
SwapRate = 0.0335
输入参数
BDTTree
- - - - - -利率结构
结构
利率树形结构,由bdttree
数据类型:结构体
LegRate
- - - - - -腿率
矩阵
腿率,指定为NINST
——- - - - - -2
矩阵,每一行定义为以下之一:
(CouponRate传播)
(fixed-float)(CouponRate传播)
(float-fixed)[CouponRate CouponRate]
(惯性)(传播扩散)
(float-float)
CouponRate
是十进制年利率。传播
是参考汇率上的基点数。第一列表示接收腿,第二列表示支付腿。
数据类型:双
解决
- - - - - -结算日期
datetime数组|字符串数组|日期特征向量
结算日期,指定为标量或NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持金宝app现有代码,swapbybdt
也接受序列号作为输入,但不建议使用。
的解决
每个交换的日期设置为ValuationDate
BDT树。交换观点解决
将被忽略。
成熟
- - - - - -到期日
datetime数组|字符串数组|日期特征向量
到期日期,指定为NINST
——- - - - - -1
向量,使用日期时间数组、字符串数组或日期字符向量表示每次交换的到期日期。
要支持金宝app现有代码,swapbybdt
也接受序列号作为输入,但不建议使用。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:(价格、PriceTree CFTree SwapRate] = swapbybdt (BDTTree LegRate,解决、成熟度、LegReset基础上,校长,LegType)
LegReset
- - - - - -每年为每个交换重置频率
[1]
(默认)|向量
每年为每个交换重置频率,指定为逗号分隔的对,由“LegReset”
和一个NINST
——- - - - - -2
向量。
数据类型:双
基础
- - - - - -日计数基础代表每条腿的基础
0
(实际/实际)(默认)|整数的0
来13
日计数基础,表示每个分支的基础,指定为逗号分隔的对,由“基础”
和一个NINST
——- - - - - -1
数组(或NINST
——- - - - - -2
如果基础
每条腿都不一样)。
0 =实际/实际
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 =总线/ 252
有关更多信息,请参见基础.
数据类型:双
主要
- - - - - -名义本金金额或本金价值表
One hundred.
(默认)|向量或单元格数组
名义本金或主要价值表,以逗号分隔的对表示,由“校长”
以及一个向量或单元格数组。
主要
接受一个NINST
——- - - - - -1
向量或NINST
——- - - - - -1
单元阵列(或NINST
——- - - - - -2
如果主要
)的名义本金金额或本金价值表。对于调度,单元格数组的每个元素都是aNumDates
——- - - - - -2
数组,其中第一列是日期,第二列是其相关的名义主值。日期表示主值有效的最后一天。
数据类型:细胞
|双
LegType
- - - - - -腿型
[1 0]
为每一个仪器(默认)|矩阵的值[1]
(惯性),[1 0]
(fixed-float),[0 1]
(float-fixed),或[0 0]
(float-float)
分支类型,指定为逗号分隔的对,由“LegType”
和一个NINST
——- - - - - -2
矩阵的值[1]
(惯性),[1 0]
(fixed-float),[0 1]
(float-fixed),或[0 0]
(float-float)。每一行代表一种乐器。每一列表示对应的腿是否固定(1
)或浮动(0
).这个矩阵定义了输入值的解释LegRate
.LegType
允许[1]
(惯性),[1 0]
(fixed-float),[0 1]
(float-fixed),或[0 0]
(float-float)互换
数据类型:双
选项
- - - - - -衍生品定价期权结构
结构
衍生品期权定价结构,具体由逗号分隔的一对组成“选项”
以及从使用中获得的结构derivset
.
数据类型:结构体
EndMonthRule
- - - - - -生成日期的月末规则标志成熟
月末的日期是否只有30天或更少
1
(效果)(默认)|非负整数[0, 1]
生成日期的月末规则标志成熟
一个月的月底日期是否有30天或更少的天,指定为逗号分隔的对,由“EndMonthRule”
和一个非负整数[0
,1
)使用NINST
——- - - - - -1
(或NINST
——- - - - - -2
如果EndMonthRule
每条腿都不一样)。
0
= Ignore规则,这意味着付款日期总是当月的同一天。1
=设置规则,这意味着支付日期总是每月的最后一天。
数据类型:逻辑
AdjustCashFlowsBasis
- - - - - -标记以根据实际期间日计数调整现金流
假
(默认)|的价值0
(虚假的)或1
(真正的)
标记以根据实际的期间日计数调整现金流,指定为逗号分隔的对,由“AdjustCashFlowsBasis”
和一个NINST
——- - - - - -1
(或NINST
——- - - - - -2
如果AdjustCashFlowsBasis
不同的逻辑),值为0
(虚假的)或1
(真正的)。
数据类型:逻辑
BusinessDayConvention
- - - - - -工作日约定
实际
(默认)|特征向量|字符向量的单元格数组
工作日约定,指定为逗号分隔的对,由“BusinessDayConvention”
还有一个字符向量aN
——- - - - - -1
(或NINST
——- - - - - -2
如果BusinessDayConvention
对每个分支不同)工作日约定的字符向量单元格数组。营业日约定的选择决定了如何处理非营业日。非营业日的定义是周末加上任何其他不营业的日期(如法定假日)。值:
实际
-非工作日被有效地忽略。非营业日的现金流假定在实际日分配。遵循
-非营业日的现金流假定在下一个营业日分配。modifiedfollow
-非营业日的现金流假定在下一个营业日分配。但是,如果下一个工作日在不同的月份,则采用上一个工作日。以前的
-非营业日的现金流假定在前一个营业日分配。modifiedprevious
-非营业日的现金流假定在前一个营业日分配。但是,如果上一个工作日在不同的月份,则采用下一个工作日。
数据类型:字符
|细胞
假期
- - - - - -用于计算工作日的假日
如果没有指定,默认是使用holidays.m
(默认)|MATLAB®日期
假日用于计算工作日,指定为逗号分隔的对,由“假期”
和MATLAB数据使用NHolidays
——- - - - - -1
向量。
数据类型:datetime
StartDate可以
- - - - - -约会交换真的开始了
解决
日期(默认)|datetime数组|字符串数组|日期特征向量
日期交换实际开始,指定为逗号分隔的对,由StartDate可以的
和一个NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持金宝app现有代码,swapbybdt
也接受序列号作为输入,但不建议使用。
使用这个参数来为远期掉期(即从未来日期开始的掉期)定价
输出参数
价格
-时间0的期望掉期价格
向量
时间0时的期望掉期价格,返回为aNINST
——- - - - - -1
向量。
PriceTree
-仪器价格树形结构
结构
仪器价格的树形结构,返回为树的MATLAB结构,包含交换仪器价格的向量和每个节点的观测时间向量。在PriceTree
:
PriceTree。PTree
包含干净的价格。PriceTree.tObs
包含观察时间。
CFTree
-现金流互换
结构
交换现金流,作为树结构返回,每个节点上都有交换现金流的向量。此结构只包含南
S,因为在二项重组树中,现金流无法在树的每个节点上精确计算。
SwapRate
-适用于固定航程的费率
矩阵
适用于固定航段的费率,作为NINST
——- - - - - -1
适用于固定分支的利率向量,使得掉期在时间0时的值为零。该利率用于计算掉期交易价格时指定的固定汇率LegRate
是南
.的SwapRate
输出用南
对于那些乐器CouponRate
没有设置为南
.
更多关于
版本历史
之前介绍过的R2006aMATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。