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.

# asianbytw

Price European arithmetic fixed Asian options using Turnbull-Wakeman model

## Syntax

``Price = asianbytw(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)``
``Price = asianbytw(___,Name,Value)``

## Description

example

````Price = asianbytw(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)` prices European arithmetic fixed Asian options using the Turnbull-Wakeman model.```

example

````Price = asianbytw(___,Name,Value)` adds optional name-value pair arguments.```

## Examples

collapse all

Define the Asian option parameters.

```AssetPrice = 100; Strike = 95; Rates = 0.1; Sigma = 0.15; Settle = 'Apr-1-2013'; Maturity = 'Oct-1-2013';```

Create a `RateSpec` using the `intenvset` function.

``` RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, 'EndDates', ... Maturity, 'Rates', Rates, 'Compounding', -1, 'Basis', 1);```

Create a `StockSpec` for the underlying asset using the `stockspec` function.

```DividendType = 'Continuous'; DividendAmounts = 0.05; StockSpec = stockspec(Sigma, AssetPrice, DividendType, DividendAmounts);```

Calculate the price of the Asian option using the Turnbull-Wakeman approximation. Assume that the averaging period has started before the `Settle` date.

```OptSpec = 'Call'; ExerciseDates = 'Oct-1-2013'; AvgDate = 'Jan-1-2013'; AvgPrice = 100; Price = asianbytw(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates, ... 'AvgDate',AvgDate,'AvgPrice',AvgPrice)```
```Price = 5.6731 ```

Define the Asian option parameters.

```AssetPrice = 100; Strike = 95; Rates = 0.1; Sigma = 0.15; Settle = 'Apr-1-2013'; Maturity = 'Oct-1-2013';```

Create a `RateSpec` using the `intenvset` function.

``` RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, 'EndDates', ... Maturity, 'Rates', Rates, 'Compounding', -1, 'Basis', 1);```

Create a `StockSpec` for the underlying asset using the `stockspec` function.

```DividendType = 'Continuous'; DividendAmounts = 0.05; StockSpec = stockspec(Sigma, AssetPrice, DividendType, DividendAmounts);```

Calculate the price of the Asian option using the Turnbull-Wakeman approximation. Assume that the averaging period starts after the `Settle` date.

```OptSpec = 'Call'; ExerciseDates = 'Oct-1-2013'; AvgDate = 'Jan-1-2013'; Price = asianbytw(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates, ... 'AvgDate',AvgDate)```
```Price = 1.0774e-08 ```

## 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 underlying asset, specified using `StockSpec` obtained from `stockspec`. For information on the stock specification, see `stockspec`.

`stockspec` can handle other types of underlying assets. For example, stocks, stock indices, and commodities. If dividends are not specified in `StockSpec`, dividends are assumed to be `0`.

Data Types: `struct`

Definition of option, specified as `'call'` or `'put'` using a character vector, cell array of character vectors, or string array.

Data Types: `char` | `cell` | `string`

Option strike price value, specified with a nonnegative integer using a `NINST`-by-`1` vector of strike price values.

Data Types: `double`

Settlement date or trade date for the Asian option, specified as a `NINST`-by-`1` vector using serial date numbers, date character vectors, datetimes, or string arrays.

Data Types: `double` | `char` | `datetime` | `string`

European option exercise dates, specified as a `NINST`-by-`1` vector using serial date numbers, date character vectors, datetimes, or string arrays.

### Note

For a European option, there is only one `ExerciseDates` on the option expiry date.

Data Types: `double` | `char` | `datetime` | `string`

### 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 quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: ```Price = asianbytw(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'AvgPrice',1500)```

Average price of underlying asset at the `Settle` date, specified as the comma-separated pair consisting of `'AvgPrice'` and a `NINST`-by-`1` vector.

### Note

Use the `AvgPrice` argument when `AvgDate` < `Settle`.

Data Types: `double`

Date averaging period begins, specified as the comma-separated pair consisting of `'AvgDate'` and a `NINST`-by-`1` vector using serial date numbers, date character vectors, datetimes, or string arrays.

Data Types: `char` | `double` | `datetime` | `string`

## Output Arguments

collapse all

Expected prices for Asian options, returned as a `NINST`-by-`1` vector.

collapse all

### Fixed Asian Options

Fixed Asian options have a specified strike.

The payoff at maturity for a fixed (average price) Asian option is:

• Fixed call (average price option): $\mathrm{max}\left(0,{S}_{av}-X\right)$

• Fixed put (average price option): $\mathrm{max}\left(0,X-{S}_{av}\right)$

where:

is the arithmetic or geometric average price of underlying asset.

is the price at maturity of the underlying asset.

is the strike price.

## References

[1] Turnbull, S. M. and L. M. Wakeman. "A Quick Algorithm for Pricing European Average Options."Journal of Financial and Quantitative Analysis Vol. 26(3).1991, pp. 377-389.