Price European or American Asian options using Monte Carlo simulations
returns fixed- and floating-strike Asian option prices using the Longstaff-Schwartz
Price = asianbyls(
asianbyls computes prices of European and American Asian
For American options, the Longstaff-Schwartz least squares method is used to calculate the early exercise premium.
To compute the value of a floating-strike Asian option,
should be specified as
NaN. Fixed-strike Asian options are also known
as average price options and floating-strike Asian options are also known as average
Rates = 0.05; StartDate = 'Jan-1-2013'; EndDate = 'Jan-1-2014'; RateSpec = intenvset('ValuationDate', StartDate, 'StartDates', StartDate, ... 'EndDates', EndDate,'Compounding', -1, 'Rates', Rates)
RateSpec = struct with fields: FinObj: 'RateSpec' Compounding: -1 Disc: 0.9512 Rates: 0.0500 EndTimes: 1 StartTimes: 0 EndDates: 735600 StartDates: 735235 ValuationDate: 735235 Basis: 0 EndMonthRule: 1
StockSpec for the asset.
AssetPrice = 100; Sigma = 0.2; StockSpec = stockspec(Sigma, AssetPrice)
StockSpec = struct with fields: FinObj: 'StockSpec' Sigma: 0.2000 AssetPrice: 100 DividendType:  DividendAmounts: 0 ExDividendDates: 
Define the Asian
Settle = 'Jan-1-2013'; ExerciseDates = 'Jan-1-2014'; Strike = 110; OptSpec = 'call';
Compute the price for the European arithmetic average price for the Asian option using the Longstaff-Schwartz model.
NumTrials = 10000; NumPeriods = 100; AvgType = 'arithmetic'; Antithetic= true; Price= asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle, ExerciseDates, ... 'NumTrials', NumTrials, 'NumPeriods', NumPeriods,'Antithetic', Antithetic, 'AvgType', AvgType)
Price = 1.9876
StockSpec— Stock specification for underlying asset
stockspec can handle
other types of underlying assets. For example, stocks, stock indices,
and commodities. If dividends are not specified in
dividends are assumed to be
OptSpec— Definition of option
Definition of option, specified as
a character vector
Strike— Option strike price value
Option strike price value, specified with a nonnegative scalar
integer. To compute the value of a floating-strike Asian option,
be specified as
NaN. Floating-strike Asian options
are also known as average strike options.
Settle— Settlement or trade date
Settlement or trade date for the Asian option, specified as
a nonnegative scalar integer or date character vector. By default,
the price of Asian options based on averages that start on the settlement
ExerciseDates— Option exercise dates
Option exercise dates, specified as a nonnegative scalar integer or date character vector:
For a European option, use a
of dates. For a European option, there is only one
the option expiry date.
For an American option, use a
of exercise date boundaries. The option can be exercised on any date
between or including the pair of dates on that row. If only one non-
is listed, or if
ExerciseDates is a
of serial date numbers or cell array of date character vectors, the
option can be exercised between
Settle and the
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
Price = asianbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,'NumTrials',NumTrials,'NumPeriods',NumPeriods,'Antithetic',Antithetic,'AvgType','arithmetic')
'AmericanOpt'— Option type
0European (default) | scalar with value
Option type, specified as the comma-separated pair consisting of
'AmericanOpt' and a
1 positive integer scalar flags with
0 — European
1 — American
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.
'AvgType'— Average types
arithmetic(default) | character vector with values of
Average types, specified as the comma-separated pair consisting of
arithmetic for arithmetic
geometric for geometric average.
'AvgPrice'— Average price of underlying asset at
Average price of underlying asset at
Settle, specified as the
comma-separated pair consisting of
'AvgPrice' and a scalar numeric
AvgPrice is assumed to be calculated in the time window
AvgDate and ending on
other words, the average is backward looking.
Use this argument when
'AvgDate'— Date averaging period begins
Date averaging period begins, specified as the comma-separated pair consisting of
'AvgDate' and a scalar serial date number.
'NumTrials'— Simulation trials
1000(default) | numeric
Simulation trials, specified as the comma-separated pair consisting of
'NumTrials' and a scalar number of independent sample
'NumPeriods'— Simulation periods per trial
100(default) | numeric
Simulation periods per trial, specified as the comma-separated pair consisting of
'NumPeriods' scalar numeric value.
is considered only when pricing European Asian options. For American Asian options,
NumPeriods is equal to the number of exercise days during the
life of the option.
'Z'— Dependent random variates
Dependent random variates used to generate the Brownian motion vector (that is, Wiener
processes) that drive the simulation, specified as the comma-separated pair consisting
'Z' and a
3-D time series array.
'Antithetic'— Indicator for antithetic sampling
false(default) | logical flag with value of
Logical flag to indicate antithetic sampling, specified as the comma-separated pair consisting
'Antithetic' and a value of
Price— Expected price of Asian option
Expected price of the Asian option, returned as a
Paths— Simulated paths of correlated state variables
Simulated paths of correlated state variables, returned as a (
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
Times— Observation times associated with simulated paths
Observation times associated with the simulated paths, returned
as a (
vector of observation times associated with the simulated paths. Each
Times is associated with the corresponding
Z— Dependent random variates
Dependent random variates, returned, if
specified as an optional input argument, the same value is returned.
Z contains the random variates generated
An Asian option is a path-dependent option with a payoff linked to the average value of the underlying asset during the life (or some part of the life) of the option.
Asian options are similar to lookback options in that there are two types of Asian options: fixed (average price option) and floating (average strike option). Fixed Asian options have a specified strike, while floating Asian options have a strike equal to the average value of the underlying asset over the life of the option. For more information, see Asian Option.