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.


Implied volatility for futures options from Black model


Volatility = blkimpv(Price, Strike, Rate, Time, Value, Limit,
Tolerance, Class)



Current price of the underlying asset (a futures contract).


Exercise price of the futures option.


Annualized, continuously compounded risk-free rate of return over the life of the option, expressed as a positive decimal number.


Time to expiration of the option, expressed in years.


Price of a European futures option from which the implied volatility of the underlying asset is derived.


(Optional) Positive scalar representing the upper bound of the implied volatility search interval. If Limit is empty or unspecified, the default = 10, or 1000% per annum.


(Optional) Implied volatility termination tolerance. A positive scalar. Default = 1e-6.


(Optional) Option class (call or put) indicating the option type from which the implied volatility is derived.Class may be a logical indicator or a cell array of characters. To specify call options, set Class = true or Class = {'call'}; to specify put options, set Class = false or Class = {'put'}. If Class is empty or unspecified, the default is a call option.


Volatility = blkimpv(Price, Strike, Rate, Time, CallPrice, MaxIterations, Tolerance) computes the implied volatility of a futures price from the market value of European futures options using Black's model.

Volatility is the implied volatility of the underlying asset derived from European futures option prices, expressed as a decimal number. If no solution is found, blkimpv returns NaN.

Any input argument can be a scalar, vector, or matrix. When a value is a scalar, that value is used to compute the implied volatility of all the options. If more than one input is a vector or matrix, the dimensions of all nonscalar inputs must be identical.

Rate and Time must be expressed in consistent units of time.


collapse all

This example shows how to find the implied volatility for a European call futures option that expires in four months, trades at $1.1166, and has an exercise price of $20. Assume that the current underlying futures price is also $20 and that the risk-free rate is 9% per annum. Furthermore, assume that you are interested in implied volatilities no greater than 0.5 (50% per annum). Under these conditions, the following commands all return an implied volatility of 0.25, or 25% per annum.

Volatility = blkimpv(20, 20, 0.09, 4/12, 1.1166, 0.5);
Volatility = blkimpv(20, 20, 0.09, 4/12, 1.1166, 0.5, [], {'Call'});
Volatility = blkimpv(20, 20, 0.09, 4/12, 1.1166, 0.5, [], true)
Volatility =


Related Examples


Hull, John C. Options, Futures, and Other Derivatives. 5th edition, Prentice Hall, , 2003, pp. 287–288.

Black, Fischer. "The Pricing of Commodity Contracts." Journal of Financial Economics. March 3, 1976, pp. 167–79.

See Also

| |

Introduced before R2006a

Was this topic helpful?