Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

blsimpv

Black-Scholes 隐含波动率

说明

示例

Volatility = blsimpv(Price,Strike,Rate,Time,Value) 使用 Black-Scholes 模型根据欧式期权的市场价值计算标的资产的隐含波动率。如果 Class 名称-值参数为空或未指定,默认为看涨期权

注意

输入参数 PriceStrikeRateTimeValueYieldClass 可以是标量、向量或矩阵。如果是标量,则该值用于计算所有期权的隐含波动率。如果这些输入中有多个输入是向量或矩阵,则这些非标量输入的维度必须相同。

同时,确保 RateTimeYield 以一致的时间单位表示。

示例

Volatility = blsimpv(___,Name,Value) 可在前面语法中的输入参数外使用一个或多个名称-值对组参数来指定选项。

示例

全部折叠

此示例说明如何计算欧式看涨期权的隐含波动率,该期权的交易价格为 10 美元,行权价格为 95 美元,距到期日还有三个月。假设标的股票不支付股息,交易价格为 100 美元。每年的无风险率为 7.5%。此外,假设您关注的是不超过 0.5(每年 50%)的隐含波动率。在这些条件下,以下语句计算出的隐含波动率均为 0.3130,即每年 31.30%。

Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 'Limit', 0.5);
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 'Limit',0.5,'Yield',0,'Class', {'Call'});
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 'Limit',0.5,'Yield',0, 'Class', true);
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 'Limit',0.5,'Yield',0, 'Class', true,'Method','jackel2016')
Volatility = 0.3130

输入参数

全部折叠

标的资产的当前价格,指定为标量数值。

数据类型: double

期权的行权价格,指定为标量数值。

数据类型: double

期权有效期内的年化连续复合无风险收益率,指定为标量正小数。

数据类型: double

期权到期日,指定为以标量数值表示的年数。

数据类型: double

计算标的资产隐含波动率时所基于的欧式期权价格,指定为标量数值。

数据类型: double

名称-值参数

Name1=Value1,...,NameN=ValueN 形式指定可选参数对组,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须显示在其他参数的后面,但参数对的顺序不重要。

在 R2021a 之前,请使用逗号分隔每个名称和值,并将 Name 用引号引起来。

示例: Volatility = blsimpv(Yield,CouponRate,Settle,Maturity,'Method','jackel2016')

隐含波动率搜索区间的上界,指定为以逗号分隔的对组,其中包括 'Limit' 和一个正标量数值。如果 Limit 为空或未指定,默认为 10(即每年 1000%)。

注意

如果您使用 Method 且值为 'jackel2016',则 Limit 参数将被忽略。

数据类型: double

标的资产在期权有效期内的年化连续复合收益率,指定为以逗号分隔的对组,其中包括 'Yield' 和一个小数。如果 Yield 为空或缺失,默认值为 0

例如,对于以股票指数计价的期权,Yield 可以代表股息收益率。对于货币期权,Yield 可以是国外的无风险利率。

注意

blsimpv 可以处理其他类型的标的,如期货和货币期权。在对期货(Black 模型)进行定价时,按如下方式键入输入参数 Yield

Yield = Rate
在对货币期权(Garman-Kohlhagen 模型)进行定价时,按如下方式键入输入参数 Yield
Yield = ForeignRate
其中,ForeignRate 为国外连续复合的年化无风险利率。

数据类型: double

隐含波动率终止容差,指定为以逗号分隔的对组,其中包括 'Tolerance' 和一个正标量数值。如果为空或缺失,则默认为 1e-6

注意

如果您使用 Method 且值为 'jackel2016',则 Tolerance 参数将被忽略。

数据类型: double

期权类别,表示计算隐含波动率时所基于的期权类型(看涨或看跌),指定为以逗号分隔的对组,其中包括 'Class' 和一个逻辑指示符、字符向量元胞数组或字符串数组。

如需指定看涨期权,请设置 Class = trueClass = {'call'}。如需指定看跌期权,请设置 Class = falseClass = {'put'}Class = ["put"]。如果 Class 为空或未指定,默认为看涨期权。

数据类型: logical | cell | string

隐含波动率的计算方法,指定为以逗号分隔的对组,其中包括 'Method' 和一个值为 'search''jackel2016' 的字符向量或值为 "search""jackel2016" 的字符串。

数据类型: char | string

输出参数

全部折叠

从欧式期权价格计算得出的标的资产隐含波动率,以小数形式返回。如果未求出解,blsimpv 则返回 NaN

参考

[1] Hull, John C. Options, Futures, and Other Derivatives. 5th edition, Prentice Hall, 2003.

[2] Jäckel, Peter. "Let's Be Rational." Wilmott Magazine., January, 2015 (https://onlinelibrary.wiley.com/doi/abs/10.1002/wilm.10395).

[3] Luenberger, David G. Investment Science. Oxford University Press, 1998.

版本历史记录

在 R2006a 之前推出