# asiansensbyhhm

Calculate price and sensitivities of European discrete arithmetic fixed Asian options using Haug, Haug, Margrabe model

## Syntax

``PriceSens = asiansensbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)``
``PriceSens = asiansensbyhhm(___,Name,Value)``

## Description

example

````PriceSens = asiansensbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)` calculates prices and sensitivities for European discrete arithmetic fixed Asian options using the Haug, Haug, Margrabe model.```

example

````PriceSens = asiansensbyhhm(___,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 and sensitivities 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; OutSpec = {'Price','Delta','Gamma'}; [Price,Delta,Gamma] = asiansensbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates, ... 'NumFixings',NumFixings,'AvgDate',AvgDate,'AvgPrice',AvgPrice,'OutSpec',OutSpec)```
```Price = 5.8216 ```
```Delta = 0.5907 ```
```Gamma = 0.0143 ```

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 and sensitivities of the Asian option using the Haug, Haug, Margrabe approximation. Assume that the averaging period started after the `Settle` date.

```OptSpec = 'Call'; ExerciseDates = 'Oct-1-2013'; NumFixings = 15; AvgDate = 'Jan-1-2013'; OutSpec = {'Price','Delta','Gamma'}; [Price,Delta,Gamma] = asiansensbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates, ... 'NumFixings',NumFixings,'AvgDate',AvgDate,'OutSpec',OutSpec)```
```Price = 1.3785e-07 ```
```Delta = 1.1438e-07 ```
```Gamma = 9.0830e-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 a datetime array, string array, or date character vectors.

To support existing code, `asiansensbyhhm` 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, `asiansensbyhhm` 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: ```PriceSens = asiansensbyhhm(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'OutSpec',{'All'},'NumFixings',15)```

Define outputs, specified as the comma-separated pair consisting of `'OutSpec'` and a `NOUT`- by-`1` or `1`-by-`NOUT` cell array of character vectors or string array with possible values of `'Price'`, `'Delta'`, `'Gamma'`, `'Vega'`, `'Lambda'`, `'Rho'`, `'Theta'`, and `'All'`.

`OutSpec = {'All'}` specifies that the output is `Delta`, `Gamma`, `Vega`, `Lambda`, `Rho`, `Theta`, and `Price`, in that order. This is the same as specifying `OutSpec` to include each sensitivity:

Example: ```OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}```

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

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 character vectors, datetimes, or string arrays.

To support existing code, `asiansensbyhhm` 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 or sensitivities for fixed Asian options, returned as a `NINST`-by-`1` vector. `asianbyhhm` calculates prices of European arithmetic fixed (average price) Asian options with discretely monitoring.