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

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

# lookbacksensbyls

Calculate price and sensitivities for European or American lookback options using Monte Carlo simulations

## Syntax

``````[PriceSens,Paths,Times,Z] = lookbacksensbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)``````
``````[PriceSens,Paths,Times,Z] = lookbacksensbyls(___,Name,Value)``````

## Description

example

``````[PriceSens,Paths,Times,Z] = lookbacksensbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates)``` returns prices or sensitivities of lookback options using the Longstaff-Schwartz model for Monte Carlo simulations. `lookbacksensbyls` computes prices of European and American lookback options.For American options, the Longstaff-Schwartz least squares method calculates the early exercise premium.`lookbacksensbyls` calculates values of fixed- and floating-strike lookback options. To compute the value of a floating-strike lookback option, `Strike` must be specified as `NaN`. ```

example

``````[PriceSens,Paths,Times,Z] = lookbacksensbyls(___,Name,Value)``` adds optional name-value pair arguments.```

## Examples

collapse all

Define the `RateSpec`.

```StartDates = 'Jan-1-2013'; EndDates = 'Jan-1-2014'; Rates = 0.41; Compounding = -1; RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates,... 'EndDates', EndDates, 'Rates', Rates,'Compounding', Compounding)```
```RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.6637 Rates: 0.4100 EndTimes: 1 StartTimes: 0 EndDates: 735600 StartDates: 735235 ValuationDate: 735235 Basis: 0 EndMonthRule: 1 ```

Define the `StockSpec` with continuous dividend yield.

```AssetPrice = 120; Sigma = 0.3; Yield = 0.045; StockSpec = stockspec(Sigma, AssetPrice, 'Continuous', Yield)```
```StockSpec = struct with fields: FinObj: 'StockSpec' Sigma: 0.3000 AssetPrice: 120 DividendType: {'continuous'} DividendAmounts: 0.0450 ExDividendDates: [] ```

Define the floating lookback option.

```Settle = 'Jan-1-2013'; Maturity = 'July-1-2013'; OptSpec = 'call'; Strike = NaN;```

Compute the price and delta of the European floating lookback option.

```OutSpec = {'price', 'delta'}; [Price, Delta] = lookbacksensbyls(RateSpec, StockSpec, OptSpec, Strike, Settle, Maturity,... 'OutSpec', OutSpec)```
```Price = 27.0768 ```
```Delta = 0.2256 ```

Define the `RateSpec`.

```StartDates = 'Jan-1-2013'; EndDates = 'Jan-1-2015'; Rates = 0.1; Compounding = -1; RateSpec = intenvset('ValuationDate', StartDates, 'StartDates', StartDates,... 'EndDates', EndDates, 'Rates', Rates,'Compounding', Compounding)```
```RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.8187 Rates: 0.1000 EndTimes: 2 StartTimes: 0 EndDates: 735965 StartDates: 735235 ValuationDate: 735235 Basis: 0 EndMonthRule: 1 ```

Define the `StockSpec`.

```AssetPrice = 103; Sigma = 0.30; StockSpec = stockspec(Sigma, AssetPrice)```
```StockSpec = struct with fields: FinObj: 'StockSpec' Sigma: 0.3000 AssetPrice: 103 DividendType: [] DividendAmounts: 0 ExDividendDates: [] ```

Define the fixed lookback option.

```Settle = 'Jan-1-2013'; Maturity = 'July-1-2013'; OptSpec = 'call'; Strike = 99;```

Compute the price and delta of the European fixed lookback option.

```OutSpec = {'price', 'delta'}; [Price, Delta] = lookbacksensbyls(RateSpec, StockSpec, OptSpec, Strike, Settle, Maturity,... 'OutSpec', OutSpec)```
```Price = 22.7227 ```
```Delta = 1.1349 ```

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

`stockspec` can handle several types of underlying assets. For example, for physical commodities the price is represented by `StockSpec.Asset`, the volatility is represented by `StockSpec.Sigma`, and the convenience yield is represented by `StockSpec.DividendAmounts`.

Data Types: `struct`

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

Data Types: `char` | `cell`

Option strike price values, specified as an integer using a `NINST`-by-`1` vector of strike price values.

Data Types: `single` | `double`

Settlement or trade date for the lookback option, specified as date character vectors or as serial date numbers using a `NINST`-by-`1` vector or cell array of character vector dates.

Data Types: `double` | `char` | `cell`

Matrix of exercise callable or puttable dates for European or American options, specified as date character vectors or as serial date numbers as follows:

• European option — `NINST`-by-`1` vector of exercise dates. For a European option, there is only one exercise date which is the option expiry date.

• American option — `NINST`-by-`2` vector of exercise date boundaries. For each instrument, the option is exercised on any coupon date between or including the pair of dates on that row. If only one non-`NaN` date is listed, or if `ExerciseDates` is a `NINST`-by-`1` vector of serial date numbers or cell array of character vectors, the option is exercised between `Settle` and the single listed exercise date.

Data Types: `double` | `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 = lookbacksensbyls(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr,'AmericanOpt',1,'OutSpec',{'All'})`

collapse all

Option type, specified as an integer scalar flag with these values:

• `0` — European

• `1` — American

### Note

For American options, the Longstaff-Schwartz least squares method is used to calculate the early exercise premium. For more information on the least squares method, see https://people.math.ethz.ch/%7Ehjfurrer/teaching/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.

Data Types: `single` | `double`

Scalar number of independent sample paths (simulation trials), specified as a nonnegative integer.

Data Types: `single` | `double`

Scalar number of simulation periods per trial, specified as a nonnegative integer. `NumPeriods` is considered only when pricing European lookback options. For American lookback options, `NumPeriod` is equal to the number of exercise days during the life of the option.

Data Types: `single` | `double`

Time series array of dependent random variates, specified as a `NumPeriods`-by-`1`-by-`NumTrials` 3-D array. The `Z` value generates the Brownian motion vector (that is, Wiener processes) that drives the simulation.

Data Types: `single` | `double`

Indicator for antithetic sampling, specified with a value of `true` or `false`.

Data Types: `logical`

Define outputs, specifying a `NOUT`- by-`1` or a `1`-by-`NOUT` cell array of character vectors 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` to include each sensitivity.

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

Data Types: `char` | `cell`

## Output Arguments

collapse all

Expected price or sensitivities (defined by `OutSpec`) of the lookback option, returned as a `1`-by-`1` array.

Simulated paths of correlated state variables, returned as a ```NumPeriods + 1```-by-`1`-by-`NumTrials` 3-D time series array. Each row of `Paths` is the transpose of the state vector X(t) at time t for a given trial.

Observation times associated with simulated paths, returned as a `NumPeriods + 1`-by-`1` column vector of observation times associated with the simulated paths. Each element of `Times` is associated with the corresponding row of `Paths`.

Time series array of dependent random variates, returned as a `NumPeriods`-by-`1`-by-`NumTrials` 3-D array when `Z` is specified as an input argument. If the `Z` input argument is not specified, then the `Z` output argument contains the random variates generated internally.

## References

[1] Hull, J. C. Options, Futures, and Other Derivatives 5th Edition. Englewood Cliffs, NJ: Prentice Hall, 2002.

## See Also

### Topics

#### Introduced in R2014a

Was this topic helpful?

Download ebook