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

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

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.