This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Determine implied volatility using Bjerksund-Stensland 2002 option pricing model


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



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


Stock specification. See stockspec.


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


NINST-by-1 vector of maturity dates.


NINST-by-1 cell array of character vectors with values of 'call' or 'put'.


NINST-by-1 vector of strike price values.


NINST-by-1 vector of American option prices from which the implied volatilities 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 vector, followed by the corresponding parameter value. You can specify parameter name/parameter value pairs in any order; names are case-insensitive and partial matches are allowed provided no ambiguities exist.


(Optional) 1-by-2 positive vector representing the lower and upper bound of the implied volatility search interval. Default is [0.1 10], or 10% to 1000% per annum.


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


Volatility = impvbybjs(RateSpec, StockSpec, Settle,
Maturity, OptSpec, Strike, OptPrice, 'Name1', Value1...)
computes implied volatility using the Bjerksund-Stensland 2002 option pricing model.

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

    Note:   impvbybjs computes implied volatility of American options with continuous dividend yield using the Bjerksund-Stensland option pricing model.


collapse all

This example shows how to compute implied volatility using the Bjerksund-Stensland 2002 option pricing model. Consider three American call options with exercise prices of $100 that expire on July 1, 2008. The underlying stock is trading at $100 on January 1, 2008 and pays a continuous dividend yield of 10%. The annualized continuously compounded risk-free rate is 10% per annum and the option prices are $4.063, $6.77 and $9.46. Using this data, calculate the implied volatility of the stock using the Bjerksund-Stensland 2002 option pricing model.

AssetPrice = 100;
Settle = 'Jan-1-2008';
Maturity = 'Jul-1-2008';
Strike = 100;
DivAmount = 0.1;
Rate = 0.1;

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

StockSpec = stockspec(NaN, AssetPrice, {'continuous'}, DivAmount);

OptSpec = {'call'};
OptionPrice = [4.063;6.77;9.46];

ImpVol =  impvbybjs(RateSpec, StockSpec, Settle, Maturity, OptSpec,...
Strike, OptionPrice)
ImpVol =


The implied volatility is 15% for the first call, and 25% and 35% for the second and third call options.

Related Examples


Bjerksund, P. and G. Stensland. "Closed-Form Approximation of American Options." Scandinavian Journal of Management. Vol. 9, 1993, Suppl., pp. S88–S99.

Bjerksund, P. and G. Stensland. "Closed Form Valuation of American Options." Discussion paper 2002 (

Introduced in R2008b

Was this topic helpful?