Equity Asian Option
financepy.products.equity.equity_asian_option
Classes
EquityAsianOption
EquityAsianOption(start_averaging_dt: financepy.utils.date.Date, expiry_dt: financepy.utils.date.Date, strike_price: float, opt_type: financepy.utils.global_types.OptionTypes, num_obs_per_year: int = 100)
Class for an Equity Asian Option. This is an option with a final payoff
linked to the averaging of the stock price over some specified period
before the option expires. The valuation is done for both an arithmetic and
a geometric average but the former can only be done either using an
analytical approximation of the arithmetic average distribution or by using
Monte-Carlo simulation.
Methods
value
value(self, value_dt: financepy.utils.date.Date, stock_price: float, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, dividend_curve: financepy.market.curves.discount_curve.DiscountCurve, model, method: financepy.utils.global_types.AsianOptionValuationTypes, accrued_average: float = None)
Calculate the value of an Asian option using one of the specified
analytical approximations for an average rate option. These are the
three enumerated values in the enum AsianOptionValuationTypes. The
choices of approximation are (i) GEOMETRIC - the average is a geometric
one as in paper by Kenna and Worst (1990), (ii) TURNBULL_WAKEMAN -
this is a value based on an edgeworth expansion of the moments of the
arithmetic average, and (iii) CURRAN - another approximative approach
by Curran based on conditioning on the geometric mean price. Just
choose the corresponding enumerated value to switch between these
different approaches.
Note that the accrued average is only required if the value date is
inside the averaging period for the option.
value_mc
value_mc(self, value_dt: financepy.utils.date.Date, stock_price: float, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, dividend_curve: financepy.market.curves.discount_curve.DiscountCurve, model, num_paths: int, seed: int, accrued_average: float)
Monte Carlo valuation of the Asian Average option using standard
Monte Carlo code enhanced by Numba. I have discontinued the use of this
as it is both slow and has limited variance reduction.
value_mc_fast
value_mc_fast(self, value_dt: financepy.utils.date.Date, stock_price: float, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, dividend_curve: financepy.market.curves.discount_curve.DiscountCurve, model, num_paths, seed, accrued_average)
Monte Carlo valuation of the Asian Average option. This method uses
a lot of Numpy vectorisation. It is also helped by Numba.
value_mc_fast_cv
value_mc_fast_cv(self, value_dt: financepy.utils.date.Date, stock_price: float, discount_curve: financepy.market.curves.discount_curve.DiscountCurve, dividend_curve: financepy.market.curves.discount_curve.DiscountCurve, model, num_paths, seed, accrued_average)
Monte Carlo valuation of the Asian Average option using a control
variate method that improves accuracy and reduces the variance of the
price. This uses Numpy and Numba. This is the standard MC pricer.
Generated automatically from the FinancePy source code.
Do not edit this file manually.