主要内容

floatbybk

布莱克-卡拉辛斯基利率树的价格浮动利率票据

描述

例子

价格PriceTree) = floatbybk (BKTree传播解决成熟为布莱克-卡拉辛斯基利率树中的浮动利率票据定价。

floatbybk计算普通浮动利率票据、摊还浮动利率票据、上限浮动利率票据、下限浮动利率票据和有价浮动利率票据的价格。

请注意

或者,您也可以使用FloatBond反对为浮动利率债券工具定价。有关更多信息,请参见开始使用基于对象的框架为金融工具定价的工作流程

例子

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

例子

全部折叠

使用布莱克-卡拉辛斯基利率树为20个基点的浮动利率票据定价。

加载文件deriv.mat,它提供了BKTree.的BKTree结构包含为票据定价所需的时间和利率信息。

负载deriv.mat

使用所需的参数定义浮动利率票据。其他参数使用默认值。

传播= 20;解决= datetime(2005、1、1);成熟= datetime(2006、1、1);

使用floatbybk计算纸币的价格。

价格= floatbybk(BKTree,扩散,结算,到期)
警告:浮动范围票据是在树估值日期而不是结算。
价格= 100.3825

为摊销浮动利率票据定价主要输入参数来定义摊销计划。

创建RateSpec

率= (0.03583;0.042147;0.047345;0.052707;0.054302);ValuationDate = datetime(2011、11、15);startdate可以= ValuationDate;EndDates = [datetime(2012,11,15);datetime(2013、11、15);datetime(2014、11、15); datetime(2015,11,15) ; datetime(2016,11,15)]; Compounding = 1; RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =结构体字段:FinObj: 'RateSpec'复合:1 Disc: [5x1 double] Rates: [5x1 double] EndTimes: [5x1 double] StartTimes: [5x1 double] EndDates: [5x1 double] StartDates: 734822 ValuationDate: 734822 Basis: 0 EndMonthRule: 1

使用以下数据创建浮动利率工具:

解决= datetime(2011、11、15);成熟= datetime(2015、11、15);传播= 15;

定义浮动利率票据摊销计划。

Principal ={{datetime(2012,11,15) 100;datetime(2013,11,15) 70;datetime(2014,11,15) 40;datetime(2015,11,15) 10}};

构建BK树,假设波动率为10%。

VolDates = [datetime(2012,11,15);datetime(2013、11、15);datetime(2014、11、15);datetime(2015、11、15);datetime(2016、11、15);datetime(2017、11、15)];VolCurve = 0.1;AlphaDates = datetime(2017、11、15);AlphaCurve = 0.1;BKVolSpec = BKVolSpec (RateSpec。ValuationDate, VolDates, VolCurve,...AlphaDates AlphaCurve);BKTimeSpec = BKTimeSpec (RateSpec。ValuationDate,VolDates, Compounding); BKT = bktree(BKVolSpec, RateSpec, BKTimeSpec);

计算摊销浮动利率票据的价格。

价格= floatbybk(BKT,息差,结算,到期,“校长”校长)
价格= 100.3059

为带有浮动利率票据的项圈定价癸酸盐而且FloorRate输入参数来定义项圈定价。

使用以下数据对有价浮动利率票据组合进行定价:

率= (0.0287;0.03024;0.03345;0.03861;0.04033);ValuationDate = datetime (2012 4 1);startdate可以= ValuationDate;EndDates = [datetime(2013,4,1);datetime (2014 4 1);datetime (2015 4 1); datetime(2016,4,1) ; datetime(2017,4,1)]; Compounding = 1;

创建RateSpec

RateSpec = intenvset (“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”、复合);

构建BK树,假设波动率为5%。

VolDates = [datetime(2013,4,1);datetime (2014 4 1);datetime (2015 4 1);datetime (2016 4 1);datetime (2017 4 1);datetime (2018 4 1)];VolCurve = 0.05;AlphaDates = datetime(2018、11、15);AlphaCurve = 0.1;BKVolSpec = BKVolSpec (RateSpec。ValuationDate, VolDates, VolCurve,...AlphaDates AlphaCurve);BKTimeSpec = BKTimeSpec (RateSpec。ValuationDate,VolDates, Compounding); BKT = bktree(BKVolSpec, RateSpec, BKTimeSpec);

创建浮动利率票据工具。

解决= datetime (2012 4 1);成熟= datetime (2016 4 1);传播= (15;10);校长= 100;

计算两个香草飞蚊的价格。

价格= floatbybk(BKT,息差,结算,到期)
价格=2×1100.5519 - 100.3680

计算有套期浮动利率票据的价格。

CapStrike = {{datetime(2013,4,1) 0.045;datetime(2014,4,1) 0.05;...datetime (2015 4 1) 0.06};0.06};FloorStrike = {{datetime(2013,4,1) 0.035;datetime (2014 4 1) 0.04;...datetime (2015 4 1) 0.05};0.03};= floatbybk(BKT,息差,结算,到期,...“癸酸盐CapStrike,“FloorRate”FloorStrike)
PriceCollared =2×1102.8537 - 100.4918

当使用floatbybk为浮动利率票据定价时,有时BK树时间规格中指定的日期与现金流日期不一致。

使用以下数据为浮动利率票据定价:

ValuationDate = datetime(2013、9、13);ForwardRatesVector = [0.0001;0.0001;0.0010;0.0015);EndDatesVector = [datetime(2013、12、13);datetime(2014、3、14);datetime(2014、6、13);datetime(2014、9、13)];

创建RateSpec

RateSpec = intenvset (“ValuationDate”ValuationDate,startdate可以的...ValuationDate,“EndDates”EndDatesVector,“利率”ForwardRatesVector,“复合”1);

构建BK树。

Volcurve = 0.1;α= 0.01;BKVolatilitySpec = bkvolspec (RateSpec。ValuationDate,...EndDatesVector Volcurve,...EndDatesVectorα);BKTimeSpec = BKTimeSpec (RateSpec。ValuationDate,EndDatesVector, 1); BKT = bktree(BKVolatilitySpec, RateSpec, BKTimeSpec);

使用以下数据创建浮动利率票据工具;

传播= 0;成熟= datetime(2014、6、13);重置= 4;

计算浮动利率票据的价格。

价格= floatbybk(BKT,价差,利率。ValuationDate,...成熟,“FloatReset”重置)
警告:并不是所有的现金流都与树一致。结果将是近似的。使用floatengbytrintree错误(第319行)工具“1”具有跨树节点的现金流日期。floatbybk错误(第136行)[Price, PriceTree, CFTree] = floatengbytrintree(BKTree, Spread, Settle, Maturity, OArgs{:});

这个错误表明,不可能确定用于计算重置日期支付的适用利率,因为无法计算所需的适用利率(由于树节点的重组,信息丢失了)。注意,如果FRN的重置周期跨越多个树级别,由于树的重组性质,计算支付将变得不可能。也就是说,连接两个连续的重置日期的树路径不能唯一确定,因为连接两个支付日期的可能路径不止一条。最简单的解决方案是将树级别放在工具的现金流日期,这是通过指定BKTimeSpec.在树级别之间设置重置日期也是可以接受的,只要树级别上有重置日期。

要从这个错误中恢复过来,可以建立一个与仪器对齐的树。

基础= intenvget (RateSpec,“基础”);加工= intenvget (RateSpec,“EndMonthRule”);resetDates = cfdates(ValuationDate, Maturity,reset,Basis,EOM);BKTimeSpec = BKTimeSpec (RateSpec.ValuationDate resetDates,重置);BKT = bktree(bk挥发量,速率,时间);价格= floatbybk(BKT,价差,利率。ValuationDate,...成熟,“FloatReset”重置)
价格= 100.0004

输入参数

全部折叠

利率树形结构,由bktree

数据类型:结构体

高于参考汇率的基点数,用a表示NINST——- - - - - -1向量。

数据类型:

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

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

解决每个浮动利率票据的日期设置为ValuationDateBK树的。浮动利率票据参数解决将被忽略。

到期日期,指定为NINST——- - - - - -1向量,使用日期时间数组、字符串数组或日期字符向量表示每个浮动利率票据的到期日期。

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

名称-值参数

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

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

例子:(价格、PriceTree) = floatbybk (BKTree,扩散,解决,成熟,“基础”,3)

每年支付的频率,用逗号分隔的对表示,由“FloatReset”和一个NINST——- - - - - -1向量。

请注意

浮动利率票据(FRNs)的支付取决于重置日期之间的实际利率。如果FRN的重置周期跨越一个以上的树级别,由于树的重组性质,计算支付将变得不可能。也就是说,连接两个连续的重置日期的树路径不能唯一确定,因为连接两个支付日期的可能路径不止一条。

数据类型:

日计数基,表示年化输入正向汇率树时使用的基,指定为逗号分隔的对,由“基础”和一个NINST——- - - - - -1向量。

  • 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单元格数组,其中单元格数组的每个元素都是aNumDates——- - - - - -2单元格数组,第一列是日期,第二列是其相关的名义主值。日期表示主值有效的最后一天。

数据类型:细胞|

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

数据类型:结构体

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

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

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

数据类型:逻辑

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

数据类型:逻辑

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

数据类型:datetime

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

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

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

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

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

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

数据类型:字符|细胞

年上限利率,用逗号分隔的对表示,由“癸酸盐和一个NINST——- - - - - -1十进制年率或NINST——- - - - - -1单元格数组,其中每个元素都是NumDates——- - - - - -2单元格数组,单元格数组的第一列是日期,第二列是相关的上限率。日期表示上限利率有效的最后一天。

数据类型:|细胞

年最低费率,以逗号分隔的一对,由“FloorRate”和一个NINST——- - - - - -1十进制年率或NINST——- - - - - -1单元格数组,其中每个元素都是NumDates——- - - - - -2单元格数组,单元格数组的第一列是日期,第二列是相关的最低利率。日期表示最低利率有效的最后一天。

数据类型:|细胞

输出参数

全部折叠

时间0时的预期浮动利率票据价格,返回为NINST——- - - - - -1向量。

仪器价格的树形结构,返回为MATLAB树结构,包含仪器价格和累计利息的向量,以及每个节点的观测时间向量。在PriceTree

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

  • PriceTree。AITree包含应计利息。

  • PriceTree.tObs包含观察时间。

  • PriceTree。连接包含连通性向量。单元格数组中的每个元素描述该级别的节点如何连接到下一级别的节点。对于给定的树级别,有NumNodes元素,它们包含中间分支连接到的下一层节点的索引。从这个值中减去1表示上行分支连接到的地方,加上1表示下行分支连接到的地方。

  • PriceTree。聚合氯化铝包含概率数组。单元格数组的每个元素都包含关卡每个节点的向上、中间和向下迁移概率。

更多关于

全部折叠

浮动利率注意

一个浮动利率注意是一种类似债券的证券,但票据的利率定期重置,相对于参考指数利率,以反映市场利率的波动。

版本历史

之前介绍过的R2006a

全部展开

Baidu
map