Pricing engine for digital options using Monte Carlo simulation. More...
#include <ql/pricingengines/vanilla/mcdigitalengine.hpp>
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 Member Functions | |
MCDigitalEngine (const boost::shared_ptr< GeneralizedBlackScholesProcess > &, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed) | |
![]() | |
void | calculate () const |
![]() | |
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 |
![]() | |
MCVanillaEngine (const boost::shared_ptr< StochasticProcess > &, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, bool controlVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, BigNatural seed) | |
TimeGrid | timeGrid () const |
boost::shared_ptr < path_generator_type > | pathGenerator () const |
result_type | controlVariateValue () const |
![]() | |
McSimulation (bool antitheticVariate, bool controlVariate) | |
virtual boost::shared_ptr < path_pricer_type > | controlPathPricer () const |
virtual boost::shared_ptr < path_generator_type > | controlPathGenerator () const |
virtual boost::shared_ptr < PricingEngine > | controlPricingEngine () const |
Additional Inherited Members | |
![]() | |
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 |
typedef McSimulation < SingleVariate, RNG, S > ::result_type | result_type |
![]() | |
template<class Sequence > | |
static Real | maxError (const Sequence &sequence) |
static Real | maxError (Real error) |
![]() | |
boost::shared_ptr < StochasticProcess > | process_ |
Size | timeSteps_ |
Size | timeStepsPerYear_ |
Size | requiredSamples_ |
Size | maxSamples_ |
Real | requiredTolerance_ |
bool | brownianBridge_ |
BigNatural | seed_ |
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