QuantLib: MCDigitalEngine< RNG, S > Class Template Reference

A free/open-source library for quantitative finance Reference manual - version 1.20

Public Types | Public Member Functions | Protected Member Functions | List of all members
MCDigitalEngine< RNG, S > Class Template Reference
Pricing engines » Vanilla option engines

Pricing engine for digital options using Monte Carlo simulation. More...

`#include <ql/pricingengines/vanilla/mcdigitalengine.hpp>`

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

## Public Types
typedef MCVanillaEngine< SingleVariate, RNG, S >::path_generator_type | path_generator_type
typedef MCVanillaEngine< SingleVariate, RNG, S >::path_pricer_type | path_pricer_type
typedef MCVanillaEngine< SingleVariate, RNG, S >::stats_type | stats_type
Public Types inherited from McSimulation< SingleVariate, PseudoRandom, Statistics >
typedef MonteCarloModel< SingleVariate, PseudoRandom, Statistics >::path_generator_type | path_generator_type
typedef MonteCarloModel< SingleVariate, PseudoRandom, Statistics >::path_pricer_type | path_pricer_type
typedef MonteCarloModel< SingleVariate, PseudoRandom, Statistics >::stats_type | stats_type
typedef MonteCarloModel< SingleVariate, PseudoRandom, Statistics >::result_type | result_type

## Public Member Functions
| MCDigitalEngine (const ext::shared_ptr< GeneralizedBlackScholesProcess > &, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed)
Public Member Functions inherited from MCVanillaEngine< SingleVariate, PseudoRandom, Statistics >
void | calculate () const
Public Member Functions inherited from McSimulation< SingleVariate, PseudoRandom, Statistics >
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 () 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
ext::shared_ptr< path_pricer_type > | pathPricer () const
Protected Member Functions inherited from MCVanillaEngine< SingleVariate, PseudoRandom, Statistics >
| MCVanillaEngine (const ext::shared_ptr< StochasticProcess > &, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, bool controlVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed)
TimeGrid | timeGrid () const
ext::shared_ptr< path_generator_type > | pathGenerator () const
result_type | controlVariateValue () const
Protected Member Functions inherited from McSimulation< SingleVariate, PseudoRandom, Statistics >
| McSimulation (bool antitheticVariate, bool controlVariate)
virtual ext::shared_ptr< path_pricer_type > | pathPricer () const=0
virtual ext::shared_ptr< path_pricer_type > | controlPathPricer () const
virtual ext::shared_ptr< path_generator_type > | controlPathGenerator () const
virtual ext::shared_ptr< PricingEngine > | controlPricingEngine () const

## Additional Inherited Members
Protected Types inherited from MCVanillaEngine< SingleVariate, PseudoRandom, Statistics >
typedef McSimulation< SingleVariate, PseudoRandom, Statistics >::path_generator_type | path_generator_type
typedef McSimulation< SingleVariate, PseudoRandom, Statistics >::path_pricer_type | path_pricer_type
typedef McSimulation< SingleVariate, PseudoRandom, Statistics >::stats_type | stats_type
typedef McSimulation< SingleVariate, PseudoRandom, Statistics >::result_type | result_type
Static Protected Member Functions inherited from McSimulation< SingleVariate, PseudoRandom, Statistics >
static Real | maxError (const Sequence &sequence)
static Real | maxError (Real error)
Protected Attributes inherited from MCVanillaEngine< SingleVariate, PseudoRandom, Statistics >
ext::shared_ptr< StochasticProcess > | process_
Size | timeSteps_
Size | timeStepsPerYear_
Size | requiredSamples_
Size | maxSamples_
Real | requiredTolerance_
bool | brownianBridge_
BigNatural | seed_
Protected Attributes inherited from McSimulation< SingleVariate, PseudoRandom, Statistics >
ext::shared_ptr< MonteCarloModel< SingleVariate, PseudoRandom, Statistics > > | mcModel_
bool | antitheticVariate_
bool | controlVariate_

## Detailed Description

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

Pricing engine for digital options using Monte Carlo simulation.

Uses the Brownian Bridge correction for the barrier found in Going to Extremes: Correcting Simulation Bias in Exotic Option Valuation - D.R. Beaglehole, P.H. Dybvig and G. Zhou Financial Analysts Journal; Jan/Feb 1997; 53, 1. pg. 62-68 and Simulating path-dependent options: A new approach - M. El Babsiri and G. Noel Journal of Derivatives; Winter 1998; 6, 2; pg. 65-83

Tests:
  the correctness of the returned value in case of cash-or-nothing at-hit digital payoff is tested by reproducing known good results.