# 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.

# optstockbyblk

Price options on futures and forwards using Black option pricing model

## Syntax

``Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike)``
``Price = optstockbyblk(___,Name,Value)``

## Description

example

````Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike)` computes option prices on futures using the Black option pricing model. Note`optstockbyblk` calculates option prices on futures and forwards. If `ForwardMaturity` is not passed, the function calculates prices of future options. If `ForwardMaturity` is passed, the function computes prices of forward options. This function handles several types of underlying assets, for example, stocks and commodities. For more information on the underlying asset specification, see `stockspec`. ```

example

````Price = optstockbyblk(___,Name,Value)` adds an optional name-value pair argument for `ForwardMaturity` to compute option prices on forwards using the Black option pricing model.```

## Examples

collapse all

This example shows how to compute option prices on futures using the Black option pricing model. Consider two European call options on a futures contract with exercise prices of \$20 and \$25 that expire on September 1, 2008. Assume that on May 1, 2008 the contract is trading at \$20, and has a volatility of 35% per annum. The risk-free rate is 4% per annum. Using this data, calculate the price of the call futures options using the Black model.

```Strike = [20; 25]; AssetPrice = 20; Sigma = .35; Rates = 0.04; Settle = 'May-01-08'; Maturity = 'Sep-01-08'; % define the RateSpec and StockSpec RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,... 'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1); StockSpec = stockspec(Sigma, AssetPrice); % define the call options OptSpec = {'call'}; Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity,... OptSpec, Strike)```
```Price = 1.5903 0.3037 ```

This example shows how to compute option prices on forwards using the Black pricing model. Consider two European options, a call and put on the Brent Blend forward contract that expires on January 1, 2015. The options expire on October 1, 2014 with an exercise price of \$200 and \$90 respectively. Assume that on January 1, 2014 the forward price is at \$107, the annualized continuously compounded risk-free rate is 3% per annum and volatility is 28% per annum. Using this data, compute the price of the options.

Define the `RateSpec`.

```ValuationDate = 'Jan-1-2014'; EndDates = 'Jan-1-2015'; Rates = 0.03; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', ValuationDate, ... 'StartDates', ValuationDate, 'EndDates', EndDates, 'Rates', Rates,.... 'Compounding', Compounding, 'Basis', Basis')```
```RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.9704 Rates: 0.0300 EndTimes: 1 StartTimes: 0 EndDates: 735965 StartDates: 735600 ValuationDate: 735600 Basis: 1 EndMonthRule: 1 ```

Define the `StockSpec`.

```AssetPrice = 107; Sigma = 0.28; StockSpec = stockspec(Sigma, AssetPrice);```

Define the options.

```Settle = 'Jan-1-2014'; Maturity = 'Oct-1-2014'; %Options maturity Strike = [200;90]; OptSpec = {'call'; 'put'};```

Price the forward call and put options.

```ForwardMaturity = 'Jan-1-2015'; % Forward contract maturity Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike,... 'ForwardMaturity', ForwardMaturity)```
```Price = 0.0535 3.2111 ```

Consider a call European option on the Crude Oil Brent futures. The option expires on December 1, 2014 with an exercise price of \$120. Assume that on April 1, 2014 futures price is at \$105, the annualized continuously compounded risk-free rate is 3.5% per annum and volatility is 22% per annum. Using this data, compute the price of the option.

Define the `RateSpec`.

```ValuationDate = 'January-1-2014'; EndDates = 'January-1-2015'; Rates = 0.035; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate,... 'EndDates', EndDates, 'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis')```
```RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.9656 Rates: 0.0350 EndTimes: 1 StartTimes: 0 EndDates: 735965 StartDates: 735600 ValuationDate: 735600 Basis: 1 EndMonthRule: 1 ```

Define the `StockSpec`.

```AssetPrice = 105; Sigma = 0.22; StockSpec = stockspec(Sigma, AssetPrice)```
```StockSpec = struct with fields: FinObj: 'StockSpec' Sigma: 0.2200 AssetPrice: 105 DividendType: [] DividendAmounts: 0 ExDividendDates: [] ```

Define the option.

```Settle = 'April-1-2014'; Maturity = 'Dec-1-2014'; Strike = 120; OptSpec = {'call'};```

Price the futures call option.

`Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike)`
```Price = 2.5847 ```

## Input Arguments

collapse all

Interest-rate term structure (annualized and continuously compounded), specified by the `RateSpec` obtained from `intenvset`. For information on the interest-rate specification, see `intenvset`.

Data Types: `struct`

Stock specification for the underlying asset. For information on the stock specification, see `stockspec`.

`stockspec` handles several types of underlying assets. For example, for physical commodities the price is `StockSpec.Asset`, the volatility is `StockSpec.Sigma`, and the convenience yield is `StockSpec.DividendAmounts`.

Data Types: `struct`

Settlement or trade date, specified as serial date number or date character vector using a `NINST`-by-`1` vector.

Data Types: `double` | `cell`

Maturity date for option, specified as serial date number or date character vector using a `NINST`-by-`1` vector.

Data Types: `double` | `cell`

Definition of the option as `'call'` or `'put'`, specified as a `NINST`-by-`1` cell array of character vectors with values `'call'` or `'put'`.

Data Types: `cell`

Option strike price value, specified as a nonnegative `NINST`-by-`1` vector.

Data Types: `double`

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside single quotes (`' '`). You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: ```Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,'ForwardMaturity',ForwardMaturity)```

collapse all

Maturity date or delivery date of forward contract, specified as a `NINST`-by-`1` vector using serial date numbers or date character vectors.

Data Types: `double` | `cell`

## Output Arguments

collapse all

Expected option prices, returned as a `NINST`-by-`1` vector.