主要内容

swapbybdt

Black-Derman-Toy利率树的价格互换工具

描述

例子

(价格PriceTreeCFTreeSwapRate) = swapbybdt (BDTTreeLegRate解决成熟为布莱克-德尔曼-玩具利率树中的掉期工具定价。swapbybdt计算普通掉期、摊还掉期和远期掉期的价格。

请注意

或者,您也可以使用交换反对价格互换工具。有关更多信息,请参见开始使用基于对象的框架为金融工具定价的工作流程

例子

(价格PriceTreeCFTreeSwapRate) = swapbybdt (___名称,值添加额外的名称-值对参数。

例子

全部折叠

为固定的接收端和浮动的支付端利率掉期定价。每年支付一次,名义本金为100美元。其余参数的值为:

  • 固定腿票面利率:0.15 (15%)

  • 浮动腿价差:10个基点

  • 掉期结算日期:2000年1月1日

  • 掉期到期日期:2003年1月1日

根据上面的信息,设置所需的参数并构建LegRateLegType,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.matBDTTree包含为工具定价所需的时间和远期利率信息。

负载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

数据类型:结构体

腿率,指定为NINST——- - - - - -2矩阵,每一行定义为以下之一:

  • (CouponRate传播)(fixed-float)

  • (CouponRate传播)(float-fixed)

  • [CouponRate CouponRate](惯性)

  • (传播扩散)(float-float)

CouponRate是十进制年利率。传播是参考汇率上的基点数。第一列表示接收腿,第二列表示支付腿。

数据类型:

结算日期,指定为标量或NINST——- - - - - -1Vector,使用日期时间数组、字符串数组或日期字符向量。

要支持金宝app现有代码,swapbybdt也接受序列号作为输入,但不建议使用。

解决每个交换的日期设置为ValuationDateBDT树。交换观点解决将被忽略。

到期日期,指定为NINST——- - - - - -1向量,使用日期时间数组、字符串数组或日期字符向量表示每次交换的到期日期。

要支持金宝app现有代码,swapbybdt也接受序列号作为输入,但不建议使用。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:(价格、PriceTree CFTree SwapRate] = swapbybdt (BDTTree LegRate,解决、成熟度、LegReset基础上,校长,LegType)

每年为每个交换重置频率,指定为逗号分隔的对,由“LegReset”和一个NINST——- - - - - -2向量。

数据类型:

日计数基础,表示每个分支的基础,指定为逗号分隔的对,由“基础”和一个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

有关更多信息,请参见基础

数据类型:

名义本金或主要价值表,以逗号分隔的对表示,由“校长”以及一个向量或单元格数组。

主要接受一个NINST——- - - - - -1向量或NINST——- - - - - -1单元阵列(或NINST——- - - - - -2如果主要)的名义本金金额或本金价值表。对于调度,单元格数组的每个元素都是aNumDates——- - - - - -2数组,其中第一列是日期,第二列是其相关的名义主值。日期表示主值有效的最后一天。

数据类型:细胞|

分支类型,指定为逗号分隔的对,由“LegType”和一个NINST——- - - - - -2矩阵的值[1](惯性),[1 0](fixed-float),[0 1](float-fixed),或[0 0](float-float)。每一行代表一种乐器。每一列表示对应的腿是否固定(1)或浮动(0).这个矩阵定义了输入值的解释LegRateLegType允许[1](惯性),[1 0](fixed-float),[0 1](float-fixed),或[0 0](float-float)互换

数据类型:

衍生品期权定价结构,具体由逗号分隔的一对组成“选项”以及从使用中获得的结构derivset

数据类型:结构体

生成日期的月末规则标志成熟一个月的月底日期是否有30天或更少的天,指定为逗号分隔的对,由“EndMonthRule”和一个非负整数[01)使用NINST——- - - - - -1(或NINST——- - - - - -2如果EndMonthRule每条腿都不一样)。

  • 0= Ignore规则,这意味着付款日期总是当月的同一天。

  • 1=设置规则,这意味着支付日期总是每月的最后一天。

数据类型:逻辑

标记以根据实际的期间日计数调整现金流,指定为逗号分隔的对,由“AdjustCashFlowsBasis”和一个NINST——- - - - - -1(或NINST——- - - - - -2如果AdjustCashFlowsBasis不同的逻辑),值为0(虚假的)或1(真正的)。

数据类型:逻辑

工作日约定,指定为逗号分隔的对,由“BusinessDayConvention”还有一个字符向量aN——- - - - - -1(或NINST——- - - - - -2如果BusinessDayConvention对每个分支不同)工作日约定的字符向量单元格数组。营业日约定的选择决定了如何处理非营业日。非营业日的定义是周末加上任何其他不营业的日期(如法定假日)。值:

  • 实际-非工作日被有效地忽略。非营业日的现金流假定在实际日分配。

  • 遵循-非营业日的现金流假定在下一个营业日分配。

  • modifiedfollow-非营业日的现金流假定在下一个营业日分配。但是,如果下一个工作日在不同的月份,则采用上一个工作日。

  • 以前的-非营业日的现金流假定在前一个营业日分配。

  • modifiedprevious-非营业日的现金流假定在前一个营业日分配。但是,如果上一个工作日在不同的月份,则采用下一个工作日。

数据类型:字符|细胞

假日用于计算工作日,指定为逗号分隔的对,由“假期”和MATLAB数据使用NHolidays——- - - - - -1向量。

数据类型:datetime

日期交换实际开始,指定为逗号分隔的对,由StartDate可以的和一个NINST——- - - - - -1Vector,使用日期时间数组、字符串数组或日期字符向量。

要支持金宝app现有代码,swapbybdt也接受序列号作为输入,但不建议使用。

使用这个参数来为远期掉期(即从未来日期开始的掉期)定价

输出参数

全部折叠

时间0时的期望掉期价格,返回为aNINST——- - - - - -1向量。

仪器价格的树形结构,返回为树的MATLAB结构,包含交换仪器价格的向量和每个节点的观测时间向量。在PriceTree

  • PriceTree。PTree包含干净的价格。

  • PriceTree.tObs包含观察时间。

交换现金流,作为树结构返回,每个节点上都有交换现金流的向量。此结构只包含S,因为在二项重组树中,现金流无法在树的每个节点上精确计算。

适用于固定航段的费率,作为NINST——- - - - - -1适用于固定分支的利率向量,使得掉期在时间0时的值为零。该利率用于计算掉期交易价格时指定的固定汇率LegRate.的SwapRate输出用对于那些乐器CouponRate没有设置为

更多关于

全部折叠

摊还期

在摊还掉期中,名义本金定期减少,因为它与本金余额下降(摊还)的基础金融工具挂钩,例如抵押贷款。

远期互换

同意在未来的一个固定日期达成利率互换安排。

版本历史

之前介绍过的R2006a

全部展开