MCDiscreteArithmeticAPEngine< RNG, S > Class Template Reference
Pricing engines » Asian option engines

Monte Carlo pricing engine for discrete arithmetic average price Asian. More...

`#include <ql/pricingengines/asian/mc_discr_arith_av_price.hpp>`

Inheritance diagram for MCDiscreteArithmeticAPEngine< RNG, S >:
[legend]

## Public Types

typedef MCDiscreteAveragingAsianEngine< RNG, S >::path_generator_type | path_generator_type
typedef MCDiscreteAveragingAsianEngine< RNG, S >::path_pricer_type | path_pricer_type
typedef MCDiscreteAveragingAsianEngine< RNG, S >::stats_type | stats_type
Public Types inherited from MCDiscreteAveragingAsianEngine< RNG, S >
typedef McSimulation< SingleVariate, RNG, S >::path_generator_type | path_generator_type
typedef McSimulation< SingleVariate, RNG, S >::path_pricer_type | path_pricer_type
typedef McSimulation< SingleVariate, RNG, S >::stats_type | stats_type
Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Public Types inherited from McSimulation< SingleVariate, RNG, S >
typedef MonteCarloModel< SingleVariate, RNG, S >::path_generator_type | path_generator_type
typedef MonteCarloModel< SingleVariate, RNG, S >::path_pricer_type | path_pricer_type
typedef MonteCarloModel< SingleVariate, RNG, S >::stats_type | stats_type
typedef MonteCarloModel< SingleVariate, RNG, S >::result_type | result_type

## Public Member Functions

| MCDiscreteArithmeticAPEngine (const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, bool brownianBridge, bool antitheticVariate, bool controlVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed)
Public Member Functions inherited from MCDiscreteAveragingAsianEngine< RNG, S >
| MCDiscreteAveragingAsianEngine (const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, bool brownianBridge, bool antitheticVariate, bool controlVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed)
void | calculate () const
Public Member Functions inherited from GenericEngine< DiscreteAveragingAsianOption::arguments, DiscreteAveragingAsianOption::results >
PricingEngine::arguments * | getArguments () const
const PricingEngine::results * | getResults () const
void | reset ()
void | update ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()
Public Member Functions inherited from McSimulation< SingleVariate, RNG, S >
result_type | value (Real tolerance, Size maxSamples=QL_MAX_INTEGER, Size minSamples=1023) const
| add samples until the required absolute tolerance is reached
result_type | valueWithSamples (Size samples) const
| simulate a fixed number of samples
result_type | errorEstimate () const
| error estimated using the samples simulated so far
const stats_type & | sampleAccumulator (void) const
| access to the sample accumulator for richer statistics
void | calculate (Real requiredTolerance, Size requiredSamples, Size maxSamples) const
| basic calculate method provided to inherited pricing engines

## Protected Member Functions

boost::shared_ptr< path_pricer_type > | pathPricer () const
boost::shared_ptr< path_pricer_type > | controlPathPricer () const
boost::shared_ptr< PricingEngine > | controlPricingEngine () const
Protected Member Functions inherited from MCDiscreteAveragingAsianEngine< RNG, S >
TimeGrid | timeGrid () const
boost::shared_ptr< path_generator_type > | pathGenerator () const
Real | controlVariateValue () const
Protected Member Functions inherited from McSimulation< SingleVariate, RNG, S >
| McSimulation (bool antitheticVariate, bool controlVariate)
virtual boost::shared_ptr< path_generator_type > | controlPathGenerator () const

## Additional Inherited Members

Static Protected Member Functions inherited from McSimulation< SingleVariate, RNG, S >
static Real | maxError (const Sequence &sequence)
static Real | maxError (Real error)
Protected Attributes inherited from MCDiscreteAveragingAsianEngine< RNG, S >
boost::shared_ptr< GeneralizedBlackScholesProcess > | process_
Size | requiredSamples_
Size | maxSamples_
Real | requiredTolerance_
bool | brownianBridge_
BigNatural | seed_
Protected Attributes inherited from GenericEngine< DiscreteAveragingAsianOption::arguments, DiscreteAveragingAsianOption::results >
DiscreteAveragingAsianOption::arguments | arguments_
DiscreteAveragingAsianOption::results | results_
Protected Attributes inherited from McSimulation< SingleVariate, RNG, S >
boost::shared_ptr< MonteCarloModel< SingleVariate, RNG, S > > | mcModel_
bool | antitheticVariate_
bool | controlVariate_

## Detailed Description

### template<class RNG = PseudoRandom, class S = Statistics>
class QuantLib::MCDiscreteArithmeticAPEngine< RNG, S >

Monte Carlo pricing engine for discrete arithmetic average price Asian.

Monte Carlo pricing engine for discrete arithmetic average price Asian options. It can use MCDiscreteGeometricAPEngine (Monte Carlo discrete arithmetic average price engine) and AnalyticDiscreteGeometricAveragePriceAsianEngine (analytic discrete arithmetic average price engine) for control variation.

Tests:
  the correctness of the returned value is tested by reproducing results available in literature.