floorbyblk
使用Black期权定价模型进行定价
语法
描述
[
使用黑色期权定价模型的价格下限。FloorPrice
,Floorlets
) = floorbyblk (RateSpec
,罢工
,解决
,成熟
,波动
)floorbyblk
计算香草地板和摊还地板的价格。
请注意
或者,您也可以使用地板上
反对底价工具。有关更多信息,请参见开始使用基于对象的框架为金融工具定价的工作流程.
[
添加可选的名称-值对参数。FloorPrice
,Floorlets
) = floorbyblk (___,名称,值
)
例子
使用黑色期权定价模型为一个底价定价
这个例子展示了如何使用黑色期权定价模型为楼层定价。假设一位投资者签订了一份合同,将10万美元贷款的利率设定为6%的季度复利,期限为3个月,从2009年1月1日开始。假设2008年1月1日零利率连续复利为6.9394%,波动率为20%,使用该数据计算底价。
ValuationDate = datetime(2008、1、1);EndDates = datetime (2010 4 1);率= 0.069394;复合= 1;基础= 1;%计算RateSpecRateSpec = intenvset (“ValuationDate”ValuationDate,...startdate可以的ValuationDate,“EndDates”EndDates,...“利率”率,“复合”复合,“基础”、基础);解决= datetime(2009、1、1);一年内开始成熟= datetime (2009 4 1);波动率= 0.20;FloorRate = 0.06;FloorReset = 4;校长= 100000;FloorPrice = floorbyblk(rate, FloorRate,结算,期限,波动率,...“重置”FloorReset,“ValuationDate”ValuationDate,“校长”校长,...“基础”基础)
FloorPrice = 37.4864
用不同的曲线来计算远期利率
定义OIS和Libor利率。
解决= 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]';
创建一个关联RateSpec
OIS和Libor曲线。
OISCurve = intenvset (“利率”OISRates,StartDate可以的解决,“EndDates”CurveDates,“复合”2,“基础”1);LiborCurve = intenvset (“利率”LiborRates,StartDate可以的解决,“EndDates”CurveDates,“复合”2,“基础”1);
定义楼层仪器。
成熟度= [datetime(2018,3,15);datetime(2020、3、15)];罢工=[.04点;. 05];BlackVol = 2;
使用期限结构为底部工具定价OISCurve
贴现现金流和产生未来远期利率。
[价格,Floorlets] = floorbyblk(OISCurve, Strike, Settle, Maturity, BlackVol)
价格=2×19.9808 - 16.9057
Floorlets =2×73.6783 3.0706 1.8275 0.7280 0.6764南南4.6753 4.0587 2.7921 1.4763 1.3442 1.4130 1.1462
使用期限结构为底部工具定价LiborCurve
产生远期利率。期限结构OISCurve
用于现金流折现。
[PriceLC, FloorletsLC] = floorbyblk(OISCurve, Strike, Settle, Maturity, BlackVol,“ProjectionCurve”LiborCurve)
PriceLC =2×18.0524 - 14.3184
FloorletsLC =2×73.2385 2.5338 1.2895 0.5889 0.4017南南4.2355 3.5219 2.2286 1.2751 0.9169 1.1698 0.9706
用黑色模型计算摊销地板的价格
定义RateSpec
.
率= (0.0358;0.0421;0.0473;0.0527;0.0543);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);罢工= 0.05;重置= 2;Principal ={{datetime(2012,11,15) 100;datetime(2013,11,15) 70;datetime(2014,11,15) 40;datetime(2015,11,15) 10}};
为摊销地板定价。
波动率= 0.20;价格=利率,执行,结算,期限,波动率,...“重置”重置,“校长”校长)
价格= 1.9315
用移位的黑色模型给地板定价
创建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] EndTimes: [5x1 double] StartTimes: [5x1 double] EndDates: [5x1 double] StartDates: 736390估值日期:736390基础:1 EndMonthRule: 1
使用移位黑色模型对地板进行负打击定价。
解决= datetime(2016、6、1);3个月后开始。成熟= datetime (2016 9, 1);ShiftedBlackVolatility = 0.31;FloorRate = -0.001;% - 0.1%罢工。FloorReset = 4;校长= 100000;转变= 0.01;% 1%的移动。FloorPrice = floorbyblk (RateSpec FloorRate,解决、成熟度、ShiftedBlackVolatility...“重置”FloorReset,“ValuationDate”ValuationDate,“校长”校长,...“基础”的基础上,“转变”转变)
FloorPrice = 31.2099
输入参数
罢工
- - - - - -执行楼层的速率
小数
执行楼层的速率,指定为NINST
——- - - - - -1
十进制值的向量。
数据类型:双
解决
- - - - - -楼层结算日期
datetime数组|字符串数组|日期特征向量
结算日期为楼层,指定为NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持现有代码,floorbyblk
也接受序列号作为输入,但不建议使用。
成熟
- - - - - -楼面到期日期
datetime数组|字符串数组|日期特征向量
楼面的到期日,以NINST
——- - - - - -1
Vector,使用日期时间数组、字符串数组或日期字符向量。
要支持现有代码,floorbyblk
也接受序列号作为输入,但不建议使用。
波动
- - - - - -波动值
数字
波动值,指定为NINST
——- - - - - -1
数值的向量。
的波动
输入不用于波动性曲面或多维数据集。如果你指定一个矩阵波动
输入,floorbyblk
内部转换成一个向量。floorbyblk
中指定的波动率波动
输入是平坦的波动,它被平等地应用到每个地板上。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:[FloorPrice, Floorlets] = floorbyblk (RateSpec,罢工,解决,成熟度,波动,“重置”,CapReset,“校长”,100000年,“基础”,7)
重置
- - - - - -重置每年支付频率
1
(默认)|数字
重置每年支付频率,指定为NINST
——- - - - - -1
向量。
数据类型:双
主要
- - - - - -名义本金
One hundred.
(默认)|数字
名义本金金额,指定为NINST
——- - - - - -1
名义本金,或NINST
——- - - - - -1
单元阵列。当主要
是一个NINST
——- - - - - -1
单元格数组中,每个元素都是一个NumDates
——- - - - - -2
单元格数组,其中第一列是日期,第二列是相关的本金金额。日期表示主值有效的最后一天。
使用主要
通过一个计划表来计算摊销层的价格。
数据类型:双
|细胞
基础
- - - - - -仪器的日计数基础
0
(实际/实际)(默认)|整数的0
来13
日计基准,表示在年化远期投入汇率时使用的基准,指定为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
有关更多信息,请参见基础.
数据类型:双
ProjectionCurve
- - - - - -用于产生远期利率的利率曲线
如果ProjectionCurve
没有指定,那么RateSpec
用于贴现现金流和预测未来远期利率(默认)|结构
用于产生未来远期利率的利率曲线。此结构必须使用intenvset
.如果远期曲线与贴现曲线不同,则使用此可选输入。
数据类型:结构体
转变
- - - - - -移位的黑色模型的小数点
0
(没有变化)(默认)|积极的小数
对移位的Black模型进行小数移位,使用标量或指定NINST
——- - - - - -1
在正小数中速率移动的向量。将此参数设置为小数形式的正汇率偏移,以将正汇率偏移添加到正向汇率和strike中,这将有效地设置正向汇率的负下限。例如,一个转变
的0.01
等于1%的位移。
数据类型:双
输出参数
FloorPrice
-楼面预期价格
向量
预期楼价,归为一NINST
——- - - - - -1
向量。
Floorlets
——Floorlets
数组
地板,返回作为一个NINST
——- - - - - -NCF
一排排地板,填充南
年代。
更多关于
地板上
一个地板上是一种合同,其中包括一项保证,该保证规定了持有人根据浮动利率获得的最低利率。
一层楼的回报是:
了黑
的了黑模型本质上与布莱克模型相同,不同之处在于它模拟了(的运动)。F+转变)作为标的资产,而不是F(这是在地板的情况下的前进速率)。
该模型允许负利率,由移动量定义一个固定的负下限;也就是说,布莱克模型的零下界被移动了。
算法
版本历史
介绍了R2009aMATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。