optByLocalVolFD
基于有限差分的期权价格局部波动模型
语法
描述
[
通过本地波动率模型,使用Crank-Nicolson方法计算香草欧洲或美国期权价格。价格
,PriceGrid
,AssetPrices
,次
= optByLocalVolFD(率
,AssetPrice
,解决
,ExerciseDates
,OptSpec
,罢工
,ImpliedVolData
)
请注意
或者,您可以使用香草
反对香草期权定价。有关更多信息,请参见开始使用基于对象的金融工具定价框架的工作流程.
例子
利用局部波动率模型为欧洲期权定价
定义选项变量。
资产价格= 590;罢工= 590;比率= 0.06;股息收益率= 0.0262;解决=' 01 - 1月- 2018;ExerciseDates =' 01 - 1月- 2020;
定义隐含波动率表面数据。
成熟度= [“06 - mar - 2018”“05 - 2018年6月- - - - - -”“12 - 9月- 2018“10 - 12月- 2018”“01 - 1月- 2019”...“02 - 7 - 2019”“01 - 1月- 2020”“01 - 1月- 2021”“01 - 1月- 2022”“01 - 1月- 2023”];成熟度= repmat(成熟度,10,1);成熟度=成熟度(:);ExercisePrice = AssetPrice.*[0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.30 1.40];ExercisePrice = repmat(ExercisePrice,1,10)';隐含vol = [...0.190;0.168;0.133;0.113;0.102;0.097;0.120;0.142;0.169;0.200;...0.177;0.155;0.138;0.125;0.109;0.103;0.100;0.114;0.130;0.150;...0.172;0.157;0.144;0.133;0.118;0.104;0.100;0.101;0.108;0.124;...0.171;0.159;0.149;0.137;0.127;0.113;0.106;0.103;0.100;0.110;...0.171;0.159;0.150;0.138;0.128;0.115;0.107;0.103;0.099;0.108;...0.169;0.160;0.151;0.142;0.133;0.124;0.119;0.113;0.107;0.102;...0.169;0.161;0.153;0.145;0.137;0.130;0.126;0.119;0.115;0.111;...0.168;0.161;0.155;0.149;0.143;0.137;0.133;0.128;0.124;0.123;...0.168;0.162;0.157;0.152;0.148;0.143;0.139;0.135;0.130;0.128;...0.168;0.164;0.159;0.154;0.151;0.147;0.144;0.140;0.136;0.132); ImpliedVolData = table(Maturity, ExercisePrice, ImpliedVol);
计算欧洲看涨期权价格。
OptSpec =“电话”;Price = optByLocalVolFD(Rate, AssetPrice,...Settle, ExerciseDates, OptSpec, Strike, ImpliedVolData,“DividendYield”DividendYield)
价格= 65.1319
输入参数
率
- - - - - -连续复利无风险利率
标量数值
连续复利无风险利率,由标量数字指定。
数据类型:双
AssetPrice
- - - - - -当前标的资产价格
标量数值
当前标的资产价格,指定为标量数字。
数据类型:双
解决
- - - - - -结算日期
datetime标量|字符串标量|日期字符向量
结算日期,指定为标量日期时间、字符串或日期字符向量。
要支持万博1manbetx现有代码,optByLocalVolFD
也接受序列号作为输入,但不建议使用。
ExerciseDates
- - - - - -期权行权日期
datetime数组|字符串数组|日期字符向量
选项练习日期,指定为日期时间数组、字符串数组或日期字符向量:
至于欧洲选项,只有一个
ExerciseDates
值,这是期权到期日。对于美式选项,请使用a
1
——- - - - - -2
日期向量。美式期权可以在这两个日期之间或包括这两个日期在内的任何日期执行。如果只有一个非南
日期是列出的,选项之间可以行使解决
和单一列出的日期ExerciseDates
.
要支持万博1manbetx现有代码,optByLocalVolFD
也接受序列号作为输入,但不建议使用。
OptSpec
- - - - - -期权的定义
带值的字符向量“电话”
或“把”
|带值的字符串数组“电话”
或“把”
选项的定义,指定为带有值的字符向量或字符串数组“电话”
或“把”
.
数据类型:字符
|字符串
罢工
- - - - - -期权执行价格
负的标量
期权执行价格,指定为非负标量。
数据类型:双
ImpliedVolData
- - - - - -到期日、行使或执行价格以及相应的隐含波动率表
表格
到期日、行权或行权价格及其相应的隐含波动率表,列示为aNVOL
——- - - - - -3.
表格
数据类型:表格
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:Price = optByLocalVolFD(Rate,AssetPrice,Settle, ExerciseDates,OptSpec,Strike,ImpliedVolData,'AssetGridSize',1000)
基础
- - - - - -日计数的基础上
0
(默认)|数值:0
,1
,2
,3.
,4
,6
,7
,8
,9
,10
,11
,12
,13
日计数基础,指定为逗号分隔的对,由“基础”
和使用所支持值之一的标量:万博1manbetx
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
有关更多信息,请参见基础.
数据类型:双
DividendYield
- - - - - -持续复利标的资产收益率
0
(默认)|数字
连续复利标的资产收益率,由逗号分隔的对组成“DividendYield”
一个标量数值。
请注意
如果输入值为DividendYield
,然后设置DividendAmounts
而且ExDividendDates
=[]
或者不要进去。如果您为DividendAmounts
而且ExDividendDates
,然后设置DividendYield
=0
.
数据类型:双
DividendAmounts
- - - - - -现金分红金额
[]
(默认)|向量
现金分红金额,以逗号分隔的对组成“DividendAmounts”
和一个NDIV
——- - - - - -1
向量。
对于每一个分红金额,必须有一个相应的ExDividendDates
日期。如果您为DividendAmounts
而且ExDividendDates
,然后设置DividendYield
=0
.
请注意
如果输入值为DividendYield
,然后设置DividendAmounts
而且ExDividendDates
=[]
或者不要进去。
数据类型:双
ExDividendDates
- - - - - -除息的日期
[]
(默认)|datetime数组|字符串数组|日期字符向量
除息日期,指定为逗号分隔的对,由“ExDividendDates”
和一个NDIV
——- - - - - -1
向量,使用日期时间数组、字符串数组或日期字符向量。
要支持万博1manbetx现有代码,optByLocalVolFD
也接受序列号作为输入,但不建议使用。
AssetPriceMax
- - - - - -最高价格为价格网格边界
如果未指定的,AssetPriceMax
价值是根据到期时的资产分布来计算的(默认)|积极的标量
最高价格为价格网格边界,由逗号分隔的对组成“AssetPriceMax”
一个正标量。
数据类型:双
AssetGridSize
- - - - - -有限差分网格的资产网格大小
400
(默认)|积极的标量
资产网格的大小为有限差分网格,指定为由逗号分隔的对组成“AssetGridSize”
一个正标量。
数据类型:双
TimeGridSize
- - - - - -有限差分网格的时间网格大小
One hundred.
(默认)|积极的标量
有限差分网格的时间网格大小,指定为由逗号分隔的对组成的“TimeGridSize”
一个正标量。
数据类型:双
AmericanOpt
- - - - - -选择类型
0
(欧洲)(默认)|带值的标量[0, 1]
选项类型,指定为逗号分隔的对,由“AmericanOpt”
和带有以下值之一的正整数标量标志:
0
——欧洲1
——美国
数据类型:双
InterpMethod
- - - - - -估算隐含波动率曲面的插值方法ImpliedVolData
“线性”
(默认)|带值的字符向量“线性”
,“makima”
,样条的
,或“tpaps”
|带值的字符串“线性”
,“makima”
,“样条”
,或“tpaps”
估算隐含波动率曲面的插值方法ImpliedVolData
,指定为逗号分隔的对,由“InterpMethod”
和具有以下值之一的字符向量或字符串数组:
“线性”
-线性插值“makima”
-修改Akima立方Hermite插值样条的
-三次样条插值“tpaps”
-薄板平滑样条插值
请注意
的“tpaps”
方法使用曲线拟合工具箱中的薄板平滑样条功能。
的“makima”
而且样条的
方法仅适用于网格化数据。对于分散的数据,使用“线性”
或“tpaps”
方法。
有关网格化或分散数据的更多信息以及插值方法的详细信息,请参见网格化和分散的样本数据而且插值网格数据.
数据类型:字符
|字符串
输出参数
价格
-期权价格
标量数值
期权价格,作为标量数字返回。
PriceGrid
-用有限差分法计算价格的网格
网格
由有限差分法计算的包含价格的网格,返回为二维大小的网格AssetGridSize
⨉TimeGridSize
.列数不一定等于TimeGridSize
,因为ExerciseDates
而且ExDividendDates
添加到时间网格中。PriceGrid(:,:, end)
包含的价格t=0
.
AssetPrices
-资产价格
向量
的第一个维度所对应的资产价格PriceGrid
,作为一个向量返回。
次
-次
向量
乘以对应于二维的PriceGrid
,作为一个向量返回。
更多关于
参考文献
安徒生,L. B.和R.布罗顿-拉特克利夫。《股票期权波动率的微笑:隐式有限差分方法》计算金融杂志。第1卷第2期,1997年,第5-37页。
[2] Dupire, B。“微笑定价”。风险。第7卷第1期,1994年,第18-20页。
版本历史
在R2018b中引入MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。