Documentation

This is machine translation

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

blsimpv

Black-Scholes implied volatility

Syntax

``Volatility = blsimpv(Price,Strike,Rate,Time,Value)``
``Volatility = blsimpv(___,Limit,Yield,Tolerance,Class)``

Description

example

````Volatility = blsimpv(Price,Strike,Rate,Time,Value)` using a Black-Scholes model computes the implied volatility of an underlying asset from the market value of European call and put options. NoteThe input arguments `Price`, `Strike`, `Rate`, `Time`, `Value`, `Yield`, and `Class` can be scalars, vectors, or matrices. If scalars, then that value is used to compute the implied volatility from all options. If more than one of these inputs is a vector or matrix, then the dimensions of all non-scalar inputs must be the same.Also, ensure that `Rate`, `Time`, and `Yield` are expressed in consistent units of time. ```

example

````Volatility = blsimpv(___,Limit,Yield,Tolerance,Class)` adds optional arguments for `Limit`, `Yield`,`Tolerance`, and `Class`.```

Examples

collapse all

This example shows how to compute the implied volatility for 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)```
```Volatility = 0.3130 ```

Input Arguments

collapse all

Current price of the underlying asset, specified as a numeric value.

Data Types: `double`

Exercise price of the option, specified as a numeric value.

Data Types: `double`

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

Data Types: `double`

Time to expiration of the option, specified as the number of years.

Data Types: `double`

Price of a European option from which the implied volatility of the underlying asset is derived, specified as a numeric.

Data Types: `double`

(Optional) Upper bound of the implied volatility search interval, specified as a positive scalar numeric. If `Limit` is empty or unspecified, the default is `10`, or 1000% per annum.

Data Types: `double`

(Optional) Annualized continuously compounded yield of the underlying asset over the life of the option, specified as a decimal number. If `Yield` is empty or missing, the default value is `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.

Note

`blsimpv` can handle other types of underlies like Futures and Currencies. When pricing Futures (Black model), enter the input argument `Yield` as:

`Yield = Rate`
When pricing currencies (Garman-Kohlhagen model), enter the input argument `Yield` as:
`Yield = ForeignRate`
where `ForeignRate` is the continuously compounded, annualized risk-free interest rate in the foreign country.

Data Types: `double`

(Optional) Implied volatility termination tolerance, specified as a positive scalar numeric. If empty or missing, the default is `1e-6`.

Data Types: `double`

(Optional) Option class indicating option type (call or put) from which implied volatility is derived, specified as a logical indicator or a cell array of character vectors.

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.

Data Types: `logical` | `cell`

Output Arguments

collapse all

Implied volatility of the underlying asset derived from European option prices, returned as a decimal number. If no solution is found, `blsimpv` returns `NaN`.

References

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

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