主要内容

capbyblk

使用Black期权定价模型的价格上限

描述

例子

CapPrice囊片= capbyblk(RateSpec罢工解决成熟波动使用布莱克期权定价模型的价格上限。capbyblk计算香草上限和摊还上限的价格。

例子

CapPrice囊片= capbyblk(___名称,值添加可选的名称-值对参数。

例子

全部折叠

假设一位投资者签订了一份合同,从2009年1月1日开始,为期3个月的10万美元贷款的季度复利利率上限为8%。假设2008年1月1日零利率连续复利为6.9394%,波动率为20%,使用该数据计算上限价格。首先,计算RateSpec

ValuationDate =“1月- 01 - 2008”;EndDates =“4月- 01 - 2010”;费率= 0.069394;复利= -1;基= 1;RateSpec = intenvset(“ValuationDate”ValuationDate,...startdate可以的ValuationDate,“EndDates”EndDates,...“利率”率,“复合”复合,“基础”基础)
RateSpec =带有字段的结构:FinObj: 'RateSpec'复合:-1 Disc: 0.8554 Rates: 0.0694 EndTimes: 2.2500 StartTimes: 0 EndDates: 734229 StartDates: 733408 ValuationDate: 733408 Basis: 1 EndMonthRule: 1

计算上限的价格。

解决=“1月- 01 - 2009”%上限在一年内开始成熟=“4月- 01 - 2009”;波动率= 0.20;CapRate = 0.08;CapReset = 4;校长= 100000;CapPrice = capbyblk(RateSpec, CapRate,结算,期限,波动性,...“重置”CapReset,“ValuationDate”ValuationDate,“校长”校长,...“基础”基础)
CapPrice = 51.6125

定义OIS和Libor利率。

处理= datenum(“15 - 3月- 2013”);CurveDates = daysadd(设置,360*[1/12 2/12 3/12 6/12 12 3 4 5 7 10],1);OISRates = [.]0018 .0019 .0021 .0023 .0031 .006 .011 .017 .021 .026 .03]'; LiborRates = [.0045 .0047 .005 .0055 .0075 .0109 .0162 .0216 .0262 .0309 .0348]';

创建一个关联的RateSpecOIS和Libor曲线。

OISCurve = intenvset(“利率”OISRates,StartDate可以的解决,“EndDates”CurveDates,“复合”2,“基础”1);LiborCurve = intenvset(“利率”LiborRates,StartDate可以的解决,“EndDates”CurveDates,“复合”2,“基础”1);

定义Cap工具。

成熟度= {“15 - 3月- 2018”“15 - 3月- 2020”};罢工= [0.04;0.05];BlackVol = 0.2;

使用期限结构为上限工具定价OISCurve贴现现金流和产生未来远期利率。

[价格,Caplets] = capbyblk(OISCurve, Strike, Settle, Maturity, BlackVol)
价格=2×10.7472 - 0.9890
囊片=2×70 0.0000 0.0033 0.2996 0.4443南南0 0.0000 0.0003 0.1134 0.2112 0.2292 0.4349

使用期限结构为上限工具定价LiborCurve产生远期利率。期限结构OISCurve用于现金流折现。

[PriceLC, CapletsLC] = capbyblk(OISCurve, Strike, Settle, Maturity, BlackVol,“ProjectionCurve”LiborCurve)
PriceLC =2×11.3293 - 1.6329
CapletsLC =2×70 0.0000 0.0337 0.4250 0.8706 NaN NaN 0 0.0000 0.0052 0.1767 0.4849 0.3663 0.5998

定义RateSpec

利率= [0.0358;0.0421;0.0473;0.0527;0.0543);ValuationDate =“15 - 11月- 2011”;StartDates = ValuationDate;结束日期= {“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'复合: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”;罢工= [0.03;0.035];重置= 1;校长= {{“15 - 11月- 2012”100;“15 - 11月- 2013”70;“15 - 11月- 2014”40;“15 - 11月- 2015”10}};

为摊销上限定价。

波动率= 0.10;价格=利率,罢工,结算,期限,波动性,...“重置”重置,“校长”校长)
价格=2×13.0339 - 2.0141

创建RateSpec

ValuationDate =“mar - 01 - 2016”;结束日期= {“mar - 01 - 2017”“mar - 01 - 2018”“mar - 01 - 2019”“mar - 01 - 2020”“mar - 01 - 2021”};利率= [-0.21;-0.12;0.01;0.10;0.20) / 100;复利= 1;基= 1;RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的ValuationDate,...“EndDates”EndDates,“利率”率,“复合”复合,“基础”基础)
RateSpec =带有字段的结构:FinObj: 'RateSpec'复合:1盘:[5x1 double]利率:[5x1 double] EndTimes: [5x1 double] StartTimes: [5x1 double] EndDates: [5x1 double] StartDates: 736390估值日期:736390基础:1 EndMonthRule: 1

使用移位的黑色模型对一个负打击的上限进行定价。

解决=“小君- 01 - 2016”%上限在3个月内开始。成熟=“9月- 01 - 2016”;ShiftedBlackVolatility = 0.31;CapRate = -0.003;% - 0.3%罢工。CapReset = 4;本金= 100000;Shift = 0.01;% 1%的移动。CapPrice = capbyblk(RateSpec,CapRate,结算,到期,...“重置”CapReset,“ValuationDate”ValuationDate,“校长”校长,...“基础”的基础上,“转变”转变)
CapPrice = 26.0733

输入参数

全部折叠

利率期限结构(年化和连续复利),由RateSpec获得intenvset.有关利率规范的信息,请参见intenvset

数据类型:结构体

执行上限的速率,指定为NINST——- - - - - -1十进制值的向量。

数据类型:

封顶的结算日期,指定为序列号或日期字符向量。

数据类型:|字符

瓶盖的到期日期,指定为序列号或日期字符向量。

数据类型:|字符

波动值,指定为NINST——- - - - - -1数值的向量。

波动输入不用于波动性曲面或多维数据集。如果你指定一个矩阵波动输入,capbyblk内部转换成一个向量。capbyblk中指定的波动率波动输入是平坦的波动率,它被平等地应用到每个小块上。

数据类型:

名称-值对实参

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

例子:[CapPrice,Caplets] = capbyblk(RateSpec,Strike,Settle,Maturity,Volatility,'Reset',CapReset,'Principal',100000,'Basis',7)

重置每年支付频率,指定为NINST——- - - - - -1向量。

数据类型:

名义本金金额,指定为NINST——- - - - - -1向量或aNINST——- - - - - -1单元阵列。当主要是一个NINST——- - - - - -1单元格数组中,每个元素都是一个NumDates——- - - - - -2单元格数组,其中第一列是日期,第二列是相关的本金金额。日期表示主值有效的最后一天。

使用主要通过一个计划表来计算摊还限额的价格。

数据类型:|细胞

日计基准,表示在年化远期投入汇率时使用的基准,指定为NINST——- - - - - -1整数的向量。

  • 0 = actual/实际的

  • 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 = bus /252

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

数据类型:

用于产生未来远期利率的利率曲线。此结构必须使用intenvset.如果远期曲线与贴现曲线不同,则使用此可选输入。

数据类型:结构体

对移位的Black模型进行小数移位,使用标量或指定NINST——- - - - - -1在正小数中速率移动的向量。将此参数设置为小数形式的正汇率偏移,以将正汇率偏移添加到正向汇率和strike中,这将有效地设置正向汇率的负下限。例如,转变0.01等于1%的位移。

数据类型:

输出参数

全部折叠

预期价格的上限,返回作为一个NINST——- - - - - -1向量。

Caplets,作为一个返回NINST——- - - - - -NCF阵列的小片,填充年代。

更多关于

全部折叠

一个是一种合同,其中包括一项保证,该保证基于浮动利率规定持有人应支付的最高利率。

帽子的回报是:

马克斯 C u r r e n t R 一个 t e C 一个 p R 一个 t e 0

有关更多信息,请参见

了黑

了黑模型本质上与布莱克模型相同,不同之处在于它模拟了(的运动)。F+转变)作为标的资产,而不是F(这是在子句情况下的转发速率)。

该模型允许负利率,由移动量定义一个固定的负下限;也就是说,布莱克模型的零下界被移动了。

算法

全部折叠

黑色的模型

d F σ B l 一个 c k F d w c 一个 l l e γ T F N d 1 K N d 2 p u t e γ T K N d 2 F N d 1 d 1 ln F K + σ B 2 2 T σ B T d 2 d 1 σ B T σ B σ B l 一个 c k

在哪里F远期价值是和吗K就是罢工。

移位黑模型

d F σ 年代 h f t e d _ B l 一个 c k F + 年代 h f t d w c 一个 l l e γ T F + 年代 h f t N d 年代 1 K + 年代 h f t N d 年代 2 p u t e γ T K + 年代 h f t N d 年代 2 F + 年代 h f t N d 年代 1 d 年代 1 ln F + 年代 h f t K + 年代 h f t + σ 年代 B 2 2 T σ 年代 B T d 年代 2 d 年代 1 σ 年代 B T σ 年代 B σ 年代 h f t e d _ B l 一个 c k

在哪里F+转变远期价值是和吗K+转变是移位版本的打击。

在R2009a中引入