主要内容

capbyblk

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

描述

例子

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

请注意

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

例子

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

例子

全部折叠

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

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

计算上限的价格。

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

定义OIS和Libor利率。

Settle = datetime(2013,3,15);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工具。

成熟度= [datetime(2018,3,15);datetime(2020、3、15)];Strike = [0.04;0.05];BlackVol = 0.2;

使用期限结构为上限工具定价OISCurve既可以折现现金流,也可以产生未来远期利率。

[Price, Caplets] = capbyblk(OISCurve, Strike, Settle, Maturity, BlackVol)
价格=2×10.7472 - 0.9890
囊片=2×70 0.0000 0.0033 0.2996 0.4443 NaN NaN 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 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 = datetime(2011,11,15);StartDates = 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光盘:[5x1 double]利率:[5x1 double]结束时间:[5x1 double]开始时间:[5x1 double]结束日期:[5x1 double]开始日期:734822估值日期:734822基础:0 EndMonthRule: 1

定义上限工具。

Settle = datetime(2011,11,15);成熟度= datetime(2015,11,15);Strike = [0.03;0.035];重置= 1;Principal ={{datetime(2012,11,15) 100;datetime(2013,11,15) 70;datetime(2014,11,15) 40;

为摊销上限定价。

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

创建RateSpec

ValuationDate = datetime(2016,3,1);EndDates = [datetime(2017,3,1);datetime (2018 3 1);datetime (2019 3 1);datetime (2020 3 1);datetime (2021 3 1)];利率= [-0.21;-0.12;0.01;0.10; 0.20]/100; Compounding = 1; Basis = 1; RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的ValuationDate,...“EndDates”EndDates,“利率”率,“复合”复合,“基础”基础)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:1光盘:[5x1 double]利率:[5x1 double]结束时间:[5x1 double]开始时间:[5x1 double]结束日期:[5x1 double]开始日期:736390估值日期:736390基础:1 EndMonthRule: 1

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

Settle = datetime(2016,6,1);% Cap将在3个月内启动。成熟度= datetime(2016,9,1);ShiftedBlackVolatility = 0.31;CapRate = -0.003;% - 0.3%罢工。CapReset = 4;本金= 100000;Shift = 0.01;% 1%的变化。CapPrice = capbyblk(RateSpec,CapRate,结算,到期,ShiftedBlackVolatility,...“重置”CapReset,“ValuationDate”ValuationDate,“校长”校长,...“基础”的基础上,“转变”转变)
CapPrice = 26.0733

输入参数

全部折叠

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

数据类型:结构体

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

数据类型:

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

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

上限的到期日期,指定为NINST——- - - - - -1向量,使用日期时间数组、字符串数组或日期字符向量。

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

volatile值,指定为NINST——- - - - - -1数值向量。

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

数据类型:

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

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

数据类型:

名义本金,以a表示NINST——- - - - - -1向量还是aNINST——- - - - - -1单元阵列。当主要是一个NINST——- - - - - -1单元格数组中,每个元素都是aNumDates——- - - - - -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 =总线/252

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

数据类型:

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

数据类型:结构体

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

数据类型:

输出参数

全部折叠

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

Caplets,返回为aNINST——- - - - - -NCF阵列的小片,垫年代。

更多关于

全部折叠

一个是一种包含担保的合同,该担保规定了持有者应支付的最高利率,该利率基于浮动利率。

设定上限的好处是:

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

有关更多信息,请参见

了黑

了黑模型本质上与Black的模型相同,除了它模拟了(的运动)F+转变)作为标的资产,而不是F(这是caplets情况下的远期汇率)。

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

算法

全部折叠

黑色的模型

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中引入

全部展开