impvbyblk

Determine implied volatility using Black option pricing model

Syntax

Volatility = impvbyblk(RateSpec, StockSpec, Settle,
Maturity, Strike, OptPrice, 'Name1', Value1...)

Arguments

RateSpec

The annualized continuously compounded rate term structure. For information on the interest rate specification, see intenvset.

StockSpec

Stock specification. See stockspec.

Settle

NINST-by-1 vector of settlement or trade dates.

Maturity

NINST-by-1 vector of maturity dates.

OptSpec

NINST-by-1 cell array of strings 'call' or 'put'.

Strike

NINST-by-1 vector of strike price values.

OptPrice

NINST-by-1 vector of European option prices from which the implied volatility of the underlying asset are derived.

    Note:   All optional inputs are specified as matching parameter name/parameter value pairs. The parameter name is specified as a character string, followed by the corresponding parameter value. You can specify parameter name/parameter value pairs in any order; names are case-insensitive and partial string matches are allowed provided no ambiguities exist.

Limit

(Optional) Positive scalar representing the upper bound of the implied volatility search interval. Default is 10, or 1000% per annum.

Tolerance

(Optional) Positive scalar implied volatility termination tolerance. Default is 1e-6.

Description

Volatility = impvbyblk(RateSpec, StockSpec, Settle,
Maturity, Strike, OptPrice, 'Name1', Value1...)
computes implied volatility using the Black option pricing model.

Volatility is a NINST-by-1 vector of expected implied volatility values. If no solution is found, a NaN is returned.

Examples

expand all

Compute the Implied Volatility Using the Black Option Pricing Model

This example shows how to compute the implied volatility using the Black option pricing model. Consider a European call and put options on a futures contract with exercise prices of $30 for the put and $40 for the call that expire on September 1, 2008. Assume that on May 1, 2008 the contract is trading at $35. The annualized continuously compounded risk-free rate is 5% per annum. Find the implied volatilities of the stock, if on that date, the call price is $1.14 and the put price is $0.82.

AssetPrice = 35;
Strike = [30; 40];
Rates = 0.05;
Settle = 'May-01-08';
Maturity = 'Sep-01-08';

% define the RateSpec and StockSpec
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1);

StockSpec = stockspec(NaN, AssetPrice);

% define the options
OptSpec = {'put';'call'};

Price = [1.14;0.82];
Volatility = impvbyblk(RateSpec, StockSpec, Settle, Maturity, OptSpec,...
Strike, Price)
Volatility =

    0.4052
    0.3021

The implied volatility is 41% and 30%.

Was this topic helpful?