# Documentation

### This is machine translation

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

# blkimpv

Implied volatility for futures options from Black model

## Syntax

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

## Description

example

````Volatility = blkipmv(Price,Strike,Rate,Time,Value)` computes the implied volatility of a futures price from the market value of European futures options using Black's model. NoteAny 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.Ensure that `Rate` and `Time` are expressed in consistent units of time. ```

example

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

## Examples

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 = 0.2500 ```

## Input Arguments

collapse all

Current price of the underlying asset (that is, a futures contract), specified as a numeric value.

Data Types: `double`

Exercise price of the futures 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 futures option, specified as the number of years.

Data Types: `double`

Price of a European futures 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) 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 futures option prices, returned as a decimal number. If no solution is found, `blkimpv` returns `NaN`.

## References

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

[2] Black, Fischer. “The Pricing of Commodity Contracts.” Journal of Financial Economics. March 3, 1976, pp. 167–79.