# asianbyhhm

Price European discrete arithmetic fixed Asian options using Haug, Haug, Margrabe model

## Syntax

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

## Description

example

````Price = asianbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)` prices European discrete arithmetic fixed Asian options using the Haug, Haug, Margrabe model.```

example

````Price = asianbyhhm(___,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 = datetime(2013,4,1); Maturity = datetime(2013,10,1);```

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 Haug, Haug, Margrabe approximation. Assume that the averaging period has started before the `Settle` date.

```OptSpec = 'Call'; ExerciseDates = datetime(2013,10,1); NumFixings = 12; AvgDate = datetime(2013,1,1); AvgPrice = 100; Price = asianbyhhm(RateSpec, StockSpec, OptSpec, Strike, Settle, ExerciseDates, ... 'NumFixings', NumFixings, 'AvgDate', AvgDate, 'AvgPrice', AvgPrice)```
```Price = 5.8216 ```

Define the Asian option parameters.

```AssetPrice = 100; Strike = 95; Rates = 0.1; Sigma = 0.15; Settle = datetime(2013,4,1); Maturity = datetime(2013,10,1);```

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 Haug, Haug, Margrabe approximation. Assume that the averaging period starts after the `Settle` date.

```OptSpec = 'Call'; ExerciseDates = datetime(2013,10,1); NumFixings = 15; AvgDate = datetime(2013,1,1); Price = asianbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates, ... 'NumFixings',NumFixings,'AvgDate',AvgDate)```
```Price = 1.3785e-07 ```

## 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 a datetime array, string array, or date character vectors.

To support existing code, `asianbyhhm` also accepts serial date numbers as inputs, but they are not recommended.

European option exercise dates, specified as a `NINST`-by-`1` vector using a datetime array, string array, or date character vectors.

Note

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

To support existing code, `asianbyhhm` also accepts serial date numbers as inputs, but they are not recommended.

### 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 = asianbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'NumFixings',15)```

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 a datetime array, string array, or date character vectors.

To support existing code, `asianbyhhm` also accepts serial date numbers as inputs, but they are not recommended.

Total number of fixings or averaging points, specified as the comma-separated pair consisting of `'NumFixings'` and a `NINST`-by-`1` vector.

Data Types: `double`

## Output Arguments

collapse all

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