asiansensbykv

Calculate prices and sensitivities of European geometric Asian options using Kemna-Vorst model

Syntax

• `PriceSens = asiansensbykv(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)` example
• `PriceSens = asiansensbykv(___,Name,Value)`

Description

example

````PriceSens = asiansensbykv(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)` returns prices and sensitivities of European geometric Asian options using Kemna-Vorst model.```
````PriceSens = asiansensbykv(___,Name,Value)` returns prices and sensitivities of European geometric Asian options using optional Name-Value pairs for the Kemna-Vorst model. ```

Examples

collapse all

Compute the Price and Sensitivities of an Asian Option Using the Kemna-Vorst Model

Define the `RateSpec`.

```StartDates = 'Jan-1-2013'; EndDates = 'Jan-1-2014'; Rates = 0.035; Basis = 1; RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates, ... 'EndDates', EndDates,'Rates', Rates, 'Compounding', -1, 'Basis', Basis) ```
```RateSpec = FinObj: 'RateSpec' Compounding: -1 Disc: 0.9656 Rates: 0.0350 EndTimes: 1 StartTimes: 0 EndDates: 735600 StartDates: 735235 ValuationDate: 735235 Basis: 1 EndMonthRule: 1 ```

Define the `StockSpec` for the asset.

```AssetPrice = 100; Sigma = 0.15; DivType = 'continuous'; DivAmounts = 0.03; StockSpec = stockspec(Sigma, AssetPrice, DivType, DivAmounts) ```
```StockSpec = FinObj: 'StockSpec' Sigma: 0.1500 AssetPrice: 100 DividendType: {'continuous'} DividendAmounts: 0.0300 ExDividendDates: [] ```

Define the Asian `'call'` and `'put'` options.

```Strike = 102; OptSpec = {'put'; 'call'}; Settle = 'Jan-1-2013'; ExerciseDates = 'Jan-1-2014'; ```

Compute the European geometric Average Price and sensitivities for the Asian option using the Kemna-Vorst model.

```OutSpec = {'Price', 'Delta', 'Gamma'}; PriceSens = asiansensbykv(RateSpec, StockSpec, OptSpec, Strike,... Settle, ExerciseDates,'OutSpec', OutSpec) ```
```PriceSens = 4.3871 2.5163 ```

Input Arguments

collapse all

`RateSpec` — Interest-rate term structurestructure

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

Data Types: `struct`

`StockSpec` — Stock specification for underlying assetstructure

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`

`OptSpec` — Definition of option string with values `'call'` or `'put'` | cell array of strings

Definition of option, specified as `'call'` or `'put'` using a `NINST`-by-`1` cell array of strings.

Data Types: `cell` | `char`

`Strike` — Option strike price valuesnonnegative integer | vector of nonnegative integers

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

Data Types: `single` | `double`

`Settle` — Settlement dates or trade datesnonnegative integer | vector of nonnegative integers | date string | cell array of date strings

Settlement dates or trade dates for the Asian option, specified as nonnegative integers or date strings using a `NINST`-by-`1` vector or cell array of dates.

Data Types: `char` | `cell`

`ExerciseDates` — Option exercise datesnonnegative integer | vector of nonnegative integers | date string | cell array of date strings

European option exercise dates, specified as nonnegative integers or date strings using a `NINST`-by-`1` vector or cell array of exercise dates. For a European option, there is only one `ExerciseDates` on the option expiry date.

Data Types: `char` | `cell`

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: `PriceSens = asiansensbykv(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'OutSpec',{'All'})`

`'OutSpec'` — Define outputs`{'Price'}` (default) | string with values: `'Price'`, `'Delta'`, `'Gamma'`, `'Vega'`, ` 'Lambda'`, `'Rho'`, `'Theta'` and `'All'`. | cell array of strings with values: `'Price'`, `'Delta'`, `'Gamma'`, `'Vega'`, `'Lambda'`, `'Rho'`, `'Theta'` and `'All'`.

Define outputs specifying `NOUT`- by-`1` or `1`-by-`NOUT` cell array of strings with possible values of `'Price'`, `'Delta'`, `'Gamma'`, `'Vega'`, ` 'Lambda'`, `'Rho'`, `'Theta'`, and `'All'`.

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

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

Data Types: `char` | `cell`

Output Arguments

collapse all

`PriceSens` — Expected prices and sensitivities of the Asian optionvector

Expected prices and sensitivities of the Asian option, returned as an `1`-by-`1` vector. If the `OutSpec` is not specified only price is returned.