capvolstrip

从平顶帽的波动条囊片的波动

描述

[CapletVolsCapletPaymentDatesCapStrikes] = capvolstrip(ZeroCurveCapSettleCapMaturityCapVolatility条用自举方法囊片从扁平帽的波动的波动。该功能剥离囊片波动之前插在每片caplet付款日期帽波动。

[CapletVolsCapletPaymentDatesCapStrikes] = capvolstrip(___名称,值使用一个或除了在前面的语法的输入参数更名称 - 值对的参数指定的选项。

例子

全部收缩

计算贴现和突出的远期利率零线。

ValuationDate = datenum('23 -Jun-2015');ZeroRates = [0.01 0.09 0.30 0.70 1.07 1.71]/100;曲率值=日期(取值日期,[0.25 0.5 12 3 5]*12);ZeroCurve = IRDataCurve('零',ValuationDate,CurveDates,ZeroRates)
ZeroCurve =类型:零定居:736138(23君2015)配混:2基础:0(实际/实际)InterpMethod:线性日期:[6X1双]数据:[6X1双]

定义ATM上限波动数据。

CapSettle = datenum('25 -Jun-2015');CapMaturity = datenum({'27 -Jun-2016';'26 -Jun-2017';'25 -Jun-2018';...'25 -Jun-2019';'25 -Jun-2020'});CapVolatility = [0.29; 0.38; 0.42; 0.40; 0.38];

从ATM帽地带小丸波动。

[CapletVols,CapletPaymentDates,ATMCapStrikes] = capvolstrip(ZeroCurve,...CapSettle、CapMaturity CapVolatility);PaymentDates = cellstr (datestr (CapletPaymentDates));格式;表(PaymentDates CapletVols ATMCapStrikes)
ANS =9×3表PaymentDates CapletVols ATMCapStrikes _______________ __________ _____________ {'27 -Jun-2016 '} 0.29 0.0052014 {'27  - 癸2016'} 0.34657 0.0071594 {'26 -Jun-2017 '} 0.41404 0.0091175 {'26  - 癸2017'} 0.42114 0.010914{'25 -Jun-2018 '} 0.45297 0.012698 {'26  - 癸2018'} 0.37257 0.014222 {'25 -Jun-2019 '} 0.36184 0.015731 {'26  - 癸2019'} 0.3498 0.017262 {'25 -Jun-2020' 称} 0.33668 0.018774

计算贴现和突出的远期利率零线。

ValuationDate = datenum('17 -Feb-2015');ZeroRates = [0.02 0.07 0.25 0.70 1.10 1.62] / 100;曲率值=日期(取值日期,[0.25 0.5 12 3 5]*12);ZeroCurve = IRDataCurve('零',ValuationDate,CurveDates,ZeroRates)
ZeroCurve =类型:零定居:736012(17-FEB-2015)配混:2基础:0(实际/实际)InterpMethod:线性日期:[6X1双]数据:[6X1双]

定义帽波动数据。

CapSettle = datenum(”2015年- 2月19日);CapMaturity = datenum({”2016年- 2月19日;”2017年- 2月21日;'20 -Feb-2018';...'19 -Feb-2019';'19 -Feb-2020'});CapVolatility = [0.44; 0.45; 0.44; 0.41; 0.39];CapStrike = 0.013;

地带囊片从具有相同罢工帽波动。

[CapletVols,CapletPaymentDates,CapStrikes] = capvolstrip(ZeroCurve,...CapSettle、CapMaturity CapVolatility,'罢工',CapStrike);PaymentDates = cellstr (datestr (CapletPaymentDates));格式;表(PaymentDates CapletVols CapStrikes)
ANS =9×3表PaymentDates CapletVols CapStrikes _______________ __________ {'19 -Feb-2016 '} 0.44 0.013 {'19 -Aug-2016'} 0.44495 0.013 {'21 -Feb-2017 '} 0.45256 0.013 {'21 -Aug-2017'} 0.43835 0.013{'20 -Feb-2018 '} 0.42887 0.013 {'20 -Aug-2018'} 0.38157 0.013 {'19 -Feb-2019 '} 0.35237 0.013 {'19 -Aug-2019'} 0.3525 0.013 {'19 -Feb-2020' } 0.33136 0.013

计算贴现和突出的远期利率零线。

ValuationDate = datenum('06 -mar-2015');ZeroRates = [0.01 0.08 0.27 0.73 1.16 1.70] / 100;曲率值=日期(取值日期,[0.25 0.5 12 3 5]*12);ZeroCurve = IRDataCurve('零',ValuationDate,CurveDates,ZeroRates)
零点urve =类型:零结算:736029(03 -2015)复利:2根据:0(实际/实际)InterpMethod:线性日期:[6x1 double]数据:[6x1 double]

定义帽波动数据。

CapSettle = datenum('06 -mar-2015');CapMaturity = datenum({'07 -mar-2016';'06 -mar-2017';' 06 - 3月- 2018 ';...' 06 - 3月- 2019 ';'06 -mar-2020'});CapVolatility = [0.43; 0.44; 0.44; 0.43; 0.41);CapStrike = 0.011;

指定季度和半年度的日期。

CapletDates = [cfdates(CapSettle,'06 -mar-2016',4)...cfdates('06 -mar-2016''06 -mar-2020'2)];CapletDates (~ isbusday (CapletDates)) =...busdate(CapletDates(〜isbusday(CapletDates)),“modifiedfollow”);

使用指定的地带小丸波动CapletDates

[CapletVols,CapletPaymentDates,CapStrikes] = capvolstrip(ZeroCurve,...CapSettle、CapMaturity CapVolatility,'罢工',CapStrike,...'CapletDates',CapletDates);PaymentDates = cellstr (datestr (CapletPaymentDates));格式;表(PaymentDates CapletVols CapStrikes)
ANS =11×3的表PaymentDates CapletVols CapStrikes _______________ __________ {'08 -sep-2015 '} 0.43 0.011 {'07  - 癸2015'} 0.42999 0.011 {'07 -mar-2016 '} 0.43 0.011 {'06 -sep-2016'} 0.43538 0.011{'06 -mar-2017 '} 0.44396 0.011 {'06 -sep-2017'} 0.43999 0.011 {'06 -mar-2018 '} 0.44001 0.011 {'06 -sep-2018'} 0.41934 0.011 {'06 -Mar-2019 '} 0.40985 0.011 {'06 -sep-2019'} 0.36818 0.011 {'06 -mar-2020' } 0.34657 0.011

计算贴现和突出的远期利率零线。

ValuationDate = datenum('1-MAR-2016');ZeroRates = [-0.38 -0.25 -0.21 -0.12 0.01 0.2] / 100;曲率值=日期(取值日期,[0.25 0.5 12 3 5]*12);ZeroCurve = IRDataCurve('零',ValuationDate,CurveDates,ZeroRates)
零点urve = Type: Zero Settle: 736390 (01- 3 -2016) compound: 2 Basis: 0 (actual/actual) InterpMethod: linear Dates: [6x1 double] Data: [6x1 double]

定义cap易变率(移动黑色)数据。

CapSettle = datenum('1-MAR-2016');CapMaturity = datenum({'1-MAR-2017';'1-MAR-2018';的1 - 3月- 2019;...的2 - 3月- 2020;'1-MAR-2021'});CapVolatility = [0.35; 0.40; 0.37; 0.34; 0.32];%的变化黑色波动移= 0.01;%1%的偏移。CapStrike = -0.001;%-0.1%的罢工。

用位移黑模型分析了帽的条帽挥发分。

[CapletVols,CapletPaymentDates,CapStrikes] = capvolstrip(ZeroCurve,...CapSettle,CapMaturity,CapVolatility,'罢工'CapStrike,'转移',转移);PaymentDates =串(datestr(CapletPaymentDates));格式;表(PaymentDates,CapletVols,CapStrikes)
ANS =9×3表支付日期CapletVols CapStrikes "01- 3- 2017" 0.35 -0.001 "01- 9 -2017" 01- 9 -2018" 0.4335 -0.001 "04- 9 -2018" 0.35284 -0.001 "01- 3- 2018" 0.3255 "03- 9 -2019" 0.3011 -0.001 "02- 3- 2020" 0.27266 -0.001 "01- 9 -2020" 0.27698 -0.001 "01- 3- 2021" 0.25697 -0.001

计算贴现和突出的远期利率零线。

ValuationDate = datenum('1君-2018');ZeroRates = [-0.38 -0.25 -0.21 -0.12 0.01 0.2] / 100;曲率值=日期(取值日期,[0.25 0.5 12 3 5]*12);ZeroCurve = IRDataCurve('零',ValuationDate,CurveDates,ZeroRates)
ZeroCurve =类型:零定居:737212(01君2018)配混:2基础:0(实际/实际)InterpMethod:线性日期:[6X1双]数据:[6X1双]

定义正常的cap波动率数据。

CapSettle = datenum('1君-2018');CapMaturity = datenum({'3君-2019';'1君-2020';“1君2021”;...'1君-2022';“1君2023”});CapVolatility = [0.0057; 0.0059; 0.0057; 0.0053; 0.0051];%正常波动CapStrike = -0.002;%-0.2%的罢工。

条囊片从使用正常(舍利耶)模型帽挥发性。

[CapletVols,CapletPaymentDates,CapStrikes] = capvolstrip(ZeroCurve,...CapSettle,CapMaturity,CapVolatility,'罢工'CapStrike,“模型”'正常');PaymentDates =串(datestr(CapletPaymentDates));格式;表(PaymentDates,CapletVols,CapStrikes)
ANS =9×3表PaymentDates CapletVols CapStrikes _____________ __________ “03君2019” 0.0057 -0.002 “02日 -  12月2019” 0.0058686 -0.002 “01君2020” 0.0060472 -0.002 “01日 -  12月2020” 0.0055705 -0.002“01军-2021" 0.0053912 -0.002 “01日 -  12月2021” 0.0047404 -0.002 “01君-2022” 0.004357 -0.002 “01日 -  12月2022” 0.0046481 -0.002 “01君-2023” 0.0044477 -0.002

输入参数

全部收缩

零利率曲线,用a表示RateSpecIRDataCurve对象包含用于根据它的天数的公约撇除零速率曲线。如果不指定可选参数ProjectionCurve,功能用途ZeroCurve计算潜在的远期利率为好。的观察日期ZeroCurve指定评估基准日。有关创建更多信息RateSpecintenvset。有关创建更多信息IRDataCurve对象时,看到IRDataCurve

数据类型:结构

常见帽结算日期,指定为一个标量序列日期数字或日期字符向量。该CapSettle日期不能超过早先ZeroCurve评估日期。

数据类型:|烧焦

帽到期日,采用串行日期数字或日期字符向量作为一个的单元阵列指定NCAP-通过-1向量。

数据类型:|烧焦|细胞

平盖的波动,指定为NCAP-通过-1正小数的矢量。

数据类型:

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和价值是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:[CapletVols, CapletPaymentDates CapStrikes] = capvolstrip (ZeroCurve、CapSettle CapMaturity, CapVolatility,“罢工”,。2)

帽击率,指定为逗号分隔的一对组成的'罢工'和一个标量小数值或anNCapletVols-通过-1向量。采用罢工作为标量指定对所有大写字母均适用的单个罢工。或者指定一个NCapletVols-通过-1击用于帽的载体。

数据类型:

重置和支付日期,指定为逗号分隔对组成'CapletDates'NCapletDates-通过-1向量使用串行日期数字或日期字符向量的单元阵列。

采用CapletDates手动指定所有小丸复位和付款日期。例如,一些日期间隔可每季度,而另一些可能是半年一次。所有时间必须晚于CapSettle并且不能晚于最后CapMaturity日期。日期根据调整后的BusDayConvention假期投入。

如果CapletDates未指定,默认是自动生成周期性小丸日期后CapSettle根据最后CapMaturity日期作为基准日期,使用以下可选输入:重置EndMonthRuleBusDayConvention,假期

数据类型:|烧焦|细胞

一个盖内每年定期付款的频率,指定为逗号分隔的一对组成的'重启'并用值的正标量整数12346,或12

注意

如果您指定CapletDates中,函数忽略用于输入重置

数据类型:

结束月规则标志用于产生囊片的日期,指定为逗号分隔的一对组成的'EndMonthRule'和一个标量非负整数[01]。

  • 0=忽略的规则,这意味着支付日期始终是该月的数字相同的日子。

  • 1=上设置的规则,这意味着支付日期始终是当月的最后一天实际。

数据类型:合乎逻辑

工作日公约,指定为逗号分隔的一对组成的“BusDayConvention”和字符向量。使用此参数指定函数如何对待非营业日,这是天的各行各业都开不了(如双休日及法定节假日)。

  • '实际'-非工作时间实际上被忽略。在非营业日下降的现金流假定在实际日期分配。

  • “跟随”- 现金流量在非营业日那年秋天被假定为对下一个工作日发布。

  • “modifiedfollow”- 现金流量在非营业日那年秋天被假定为对下一个工作日发布。但是,如果下一个工作日是不同的一个月,前一营业日改为采用。

  • “以前”- 现金流量在非营业日那年秋天被假定为上一工作日发布。

  • “modifiedprevious”- 现金流量在非营业日那年秋天被假定为上一工作日发布。但是,如果一个营业日是在不同的月份,下一个工作日改为采用。

数据类型:烧焦

在计算工作日内使用节假日,指定为逗号分隔的一对组成的“假日”NHolidays-通过-1向量的MATLAB日期编号。

数据类型:

计算基础远期利率的利率曲线,指定为逗号分隔的对'ProjectionCurve'和一个RateSpec对象或IRDatCurve宾语。有关创建更多信息RateSpecintenvset。有关创建更多信息IRDataCurve对象时,看到IRDataCurve

数据类型:结构

用于剥离囊片的波动之前插在每片caplet到期日帽的挥发性的方法,指定为逗号分隔的一对组成的'MaturityInterpMethod'并用值的字符向量:“线性”“最近”'下一个'“以前”“花”,或“pchip”

  • “线性”- 线性插值。在查询点内插的值在每个相应维度相邻网格点是基于所述值的线性内插。这是默认的插值方法。

  • “最近”- 最近邻插值。在查询点的插补值是在最近的采样网格点的值。

  • '下一个'- 下一个邻居插值。在查询点的插补值是在下一采样网格点的值。

  • “以前”-以前的邻居插值。在查询点上的内插值是前一个样本网格点上的值。

  • “花”- 使用未-A-结结束条件样条插补。在查询点内插的值在每个相应维度相邻网格点是基于三次插值的值的。

  • “pchip”- 保形分段三次插值。在查询点的插补值在相邻的网格点是基于一个保形分段三次插值的值的。

有关插值方法的更多信息,请参阅interp1

注意

该函数使用恒定外推至计算落在波动率用户提供的数据的范围之外。

数据类型:烧焦

上限隐含波动搜索间隔的,指定为逗号分隔的一对组成的'限制'而正标小数。

数据类型:

隐含波动搜索终止公差,指定为逗号分隔的一对组成的'公差'和一个正数的标量。

数据类型:

标志省略在帽的第一囊片支付,指定为逗号分隔的一对组成的'OmitFirstCaplet'标量逻辑。

如果帽点启动,省略了第一小胶囊付款。如果帽向前启动,第一囊支付包括在内。不管盖的状态,如果你设置这个逻辑来,则该函数包括所述第一囊片付款。

一般而言,“现货滞后”指的是固定日期与类似libor的指数生效日期之间的延迟。“点延迟”决定了一个上限是点启动还是向前启动(Corb, 2012)。如果在估值日后的“现货滞后”营业日内结算,则上限将被视为现货启动。那些在晚些时候安定下来的人被认为是具有前瞻性的。如果大写为点启动,则省略第一个caplet;如果大写为前向启动,则省略第一个caplet (Tuckman, 2012)。

数据类型:合乎逻辑

移在小数为移位SABR模型(与移黑模型一起使用),指定为逗号分隔的一对组成的'转移'和一个正的标量小数。将此参数设置为小数的正偏移,以向正向速率和strike添加正偏移,从而有效地为正向速率和strike设置负的下界。例如,一个转移值0。01等于1%的位移。

数据类型:

模型用于隐含波动率计算,指定为逗号分隔的一对组成的“模型”和一个标量字符向量或标量的字符串用以下值之一:

  • 对数正态的- 引申黑(无偏移)或移黑色波动。

  • '正常'-隐含正常(巴切利耶)波动。如果您指定'正常'转移必须为零。

capvolstrip功能支持三种类型的金宝app波动。

“模式”的价值 “转移”的价值 波动类型
对数正态的 转移=0 黑色
对数正态的 转移>0 了黑
'正常' 转移=0 正常(Bachelier)

数据类型:烧焦|

输出参数

全部收缩

剥去囊波动,返回一个NCapletVols-通过-1向量的小数。

注意

capvolstrip可以输出为NaNS对于一些小胶囊波动。如果没有波动由用户提供的上限数据暗示囊片的价格相匹配,您可能会遇到这种输出。

付款日期(日期编号),返回一个NCapletVols-通过-1对应于日期数字的向量CapletVols

帽罢工,返回一个NCapletVols-通过-1对于帽熟化在对应于小数打击矢量CapletPaymentDatesCapStrikes是一样的被剥夺相应的囊片罢工。

限制

当从ATM帽自举囊片的波动,该函数从重用在较长期限帽较短成熟帽剥离而不调整为在击的差囊片挥发性。capvolstrip如下在Gatarek,2006年中描述的简化的方法。

更多关于

全部收缩

一个指的是一种合同,其中包括一项保证,根据浮动利率,设定持有者应支付的最高利率。

一个帽的回报是:

最大 C ü [R [R Ë ñ Ť [R 一个 Ť Ë C 一个 p [R 一个 Ť Ë 0

欲了解更多信息,请参阅

平价

帽或地板是在平价(ATM)如果罢工等于远期掉期利率。

正向掉率的交换,使得所述浮动支路的当前值等于固定腿的固定速率。相比之下,一个囊片或floorlet是ATM如果击是等于正向速率(未向前交换速率)。一般而言(除了在单个周期),正向速率不等于正向交换速率。所以,准确地说,在ATM帽个别锭略有不同价外且仅约ATM(亚历山大,2003年)。

此外,该掉期利率掉期与成熟期的变化。同样,ATM帽罢工也与帽成熟的变化,所以ATM帽罢工计算每个帽成熟剥离囊片波动之前。其结果是,随着期限汽提从ATM帽的囊片的波动的情况下,ATM撞击的连续帽是不同的。

参考

[1]亚历山大,C.“普通关系和校准对数正态分布远期利率模型”。维尔莫特杂志,2003。

[2]Corb, H。利率掉期等衍生品。哥伦比亚大学商学院出版社,2012。

[3] Gatarek, D., P. Bachert和R. Maksymiuk。该LIBOR市场模型中的实践。英国奇切斯特:Wiley出版社,2006年。

[4]塔克曼,B.和塞拉特,A。固定收益证券:当今市场的工具。新泽西州霍博肯市:Wiley出版社,2012。

介绍了在R2016a