| Financial Toolbox™ | ![]() |
Volatility = blsimpv(Price, Strike, Rate, Time, Value, Limit, ... Yield, Tolerance, Class)
Price | Current price of the underlying asset. |
Strike | Exercise price of the option. |
Rate | Annualized, continuously compounded risk-free rate of return over the life of the option, expressed as a positive decimal number. |
Time | Time to expiration of the option, expressed in years. |
Value | Price of a European option from which the implied volatility of the underlying asset is derived. |
Limit | (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. |
Yield | (Optional) Annualized, continuously compounded yield of the underlying asset over the life of the option, expressed as a decimal number. (Default = 0.) For example, for options written on stock indices, Yield could represent the dividend yield. For currency options, Yield could be the foreign risk-free interest rate. |
Tolerance | (Optional) Implied volatility termination tolerance. A positive scalar. Default = 1e-6. |
Class | (Optional) Option class (call or put) indicating the option type from which the implied volatility is derived. May be either 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 = blsimpv(Price, Strike, Rate, Time, Value, Limit, Yield, Tolerance, Class) using a Black-Scholes model computes the implied volatility of an underlying asset from the market value of European call and put options.
Volatility is the implied volatility of the underlying asset derived from European option prices, expressed as a decimal number. If no solution is found, blsimpv returns NaN.
Any input argument may be a scalar, vector, or matrix. When a value is a scalar, that value is used to price all the options. If more than one input is a vector or matrix, the dimensions of all non-scalar inputs must be identical.
Rate, Time, and Yield must be expressed in consistent units of time.
Consider a European call option trading at $10 with an exercise price of $95 and three months until expiration. Assume that the underlying stock pays no dividend and trades at $100. The risk-free rate is 7.5% per annum. Furthermore, assume that you are interested in implied volatilities no greater than 0.5 (50% per annum).
Under these conditions, the following statements all compute an implied volatility of 0.3130, or 31.30% per annum.
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 0.5)
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 0.5, 0, [], {'Call'})
Volatility = blsimpv(100, 95, 0.075, 0.25, 10, 0.5, 0, [], true)
Hull, John C., Options, Futures, and Other Derivatives, Prentice Hall, 5th edition, 2003.
Luenberger, David G., Investment Science, Oxford University Press, 1998.
blsdelta, blsgamma, blslambda, blsprice, blsrho, blstheta
![]() | blsgamma | blslambda | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |