主要内容

floatbybk

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

描述

例子

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

floatbybk计算普通浮动利率票据、摊销浮动利率票据、上限浮动利率票据、固定浮动利率票据和领浮动利率票据的价格。

例子

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

例子

全部折叠

使用Black-Karasinski利率树为20个基点的浮动利率票据定价。

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

负载deriv.mat

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

传播= 20;解决=' 01 - 1月- 2005;成熟=' 01 - 1月- 2006

使用floatbybk来计算钞票的价格。

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

为摊销浮动利率票据定价主要定义摊销时间表的输入参数。

创建RateSpec

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

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

解决=“15 - 11月- 2011”;成熟=“15 - 11月- 2015”;传播= 15;

定义浮动利率票据摊销时间表。

校长= {{“15 - 11月- 2012”100;“15 - 11月- 2013”70;“15 - 11月- 2014”40;“15 - 11月- 2015”10}};

构建BK树并假设波动性为10%。

VolDates = [“15 - 11月- 2012”“15 - 11月- 2013”“15 - 11月- 2014”“15 - 11月- 2015”“15 - 11月- 2016”“15 - 11月- 2017”];VolCurve = 0.1;AlphaDates =“15 - 11月- 2017”;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 =的1 - 4月- 2012;startdate可以= ValuationDate;EndDates = {的1 - 4月- 2013的1 - 4月- 2014的1 - 4月- 2015...的1 - 4月- 2016的1 - 4月- 2017};复合= 1;

创建RateSpec

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

构建BK树,并假定波动性为5%。

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

创建浮动利率票据工具。

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

计算两个香草浮动的价格。

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

计算浮动利率债券的价格。

CapStrike = {{的1 - 4月- 20130.045;的1 - 4月- 20140.05;...的1 - 4月- 20150.06};0.06};FloorStrike = {{的1 - 4月- 20130.035;的1 - 4月- 20140.04;...的1 - 4月- 20150.05};0.03};价差,结算,到期,...“癸酸盐CapStrike,“FloorRate”FloorStrike)
PriceCollared =2×1102.8537 - 100.4918

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

浮动汇率票据的价格使用以下数据:

ValuationDate =的13 - 9月- 2013;ForwardRatesVector = [0.0001;0.0001;0.0010;0.0015);EndDatesVector = [的13 - 12月- 2013的14 - 3月- 2014截止2014年6月13的的13 - 9月- 2014];

创建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;成熟=截止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(BKVolatilitySpec, RateSpec, BKTimeSpec);价格= floatbybk(BKT,价差,费率)ValuationDate,...成熟,“FloatReset”重置)
价格= 100.0004

输入参数

全部折叠

利率树结构,由bktree

数据类型:结构体

高于参考利率的基点数,指定为NINST——- - - - - -1向量。

数据类型:

结算日期,指定为标量或NINST——- - - - - -1序列日期号或日期字符向量的向量。

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

数据类型:字符|

到期日,指定为NINST——- - - - - -1表示每个浮动利率票据到期日的连续日期数字或日期字符向量。

数据类型:字符|

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

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

请注意

浮动利率票据(frn)的支付由重置日期之间的有效利率决定。如果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 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 =实际/365 (ICMA)

  • 11 = 30/360e (icma)

  • 12 =实际/365 (ISDA)

  • 13 =总线/ 252

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

数据类型:

指定为由逗号分隔的对组成的名义本金数量“校长”向量或单元格数组。

主要接受一个NINST——- - - - - -1向量或NINST——- - - - - -1单元格数组,其中单元格数组的每个元素都是NumDates——- - - - - -2单元格数组,第一列是日期,第二列是其关联的名义主值。日期表示主值有效的最后一天。

数据类型:细胞|

衍生品定价期权结构,由指定为逗号分隔对组成“选项”以及一个使用derivset

数据类型:结构体

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

  • 0=忽略规则,意思是付款日期总是相同的数字日。

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

数据类型:逻辑

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

数据类型:逻辑

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

数据类型:

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

  • 实际-非工作日被忽略了。在非营业日的现金流量被假定在实际日进行分配。

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

  • modifiedfollow-现金流在一个非营业日被假定在下一个营业日分配。但是,如果下一个营业日在不同的月份,则以上一个营业日为准。

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

  • modifiedprevious-现金流在一个非营业日被假定在前一个营业日被分配。但如前一个营业日在不同的月份,则以下一个营业日为准。

数据类型:字符|细胞

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

数据类型:|细胞

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

数据类型:|细胞

输出参数

全部折叠

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

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

  • PriceTree。PTree包含清洁价格。

  • PriceTree。AITree包含应计利息。

  • PriceTree.tObs包含观测时间。

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

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

更多关于

全部折叠

浮动利率注意

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

之前介绍过的R2006a