QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
Pricing engine for barrier options using Monte Carlo simulation. More...
#include <mcbarrierengine.hpp>
Public Types | |
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 set_type::iterator | iterator |
Public Types inherited from McSimulation< MC, RNG, S > | |
typedef MonteCarloModel< MC, RNG, S >::path_generator_type | path_generator_type |
typedef MonteCarloModel< MC, RNG, S >::path_pricer_type | path_pricer_type |
typedef MonteCarloModel< MC, RNG, S >::stats_type | stats_type |
typedef MonteCarloModel< MC, RNG, S >::result_type | result_type |
Public Member Functions | |
MCBarrierEngine (ext::shared_ptr< GeneralizedBlackScholesProcess > process, Size timeSteps, Size timeStepsPerYear, bool brownianBridge, bool antitheticVariate, Size requiredSamples, Real requiredTolerance, Size maxSamples, bool isBiased, BigNatural seed) | |
void | calculate () const override |
Public Member Functions inherited from GenericEngine< BarrierOption::arguments, BarrierOption::results > | |
PricingEngine::arguments * | getArguments () const override |
const PricingEngine::results * | getResults () const override |
void | reset () override |
void | update () override |
Public Member Functions inherited from PricingEngine | |
~PricingEngine () override=default | |
virtual arguments * | getArguments () const =0 |
virtual const results * | getResults () const =0 |
virtual void | reset ()=0 |
virtual void | calculate () const =0 |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
void | registerWithObservables (const ext::shared_ptr< Observer > &) |
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | update ()=0 |
virtual void | deepUpdate () |
Public Member Functions inherited from McSimulation< MC, RNG, S > | |
virtual | ~McSimulation ()=default |
result_type | value (Real tolerance, Size maxSamples=QL_MAX_INTEGER, Size minSamples=1023) const |
add samples until the required absolute tolerance is reached More... | |
result_type | valueWithSamples (Size samples) const |
simulate a fixed number of samples More... | |
result_type | errorEstimate () const |
error estimated using the samples simulated so far More... | |
const stats_type & | sampleAccumulator () const |
access to the sample accumulator for richer statistics More... | |
void | calculate (Real requiredTolerance, Size requiredSamples, Size maxSamples) const |
basic calculate method provided to inherited pricing engines More... | |
Protected Member Functions | |
TimeGrid | timeGrid () const override |
ext::shared_ptr< path_generator_type > | pathGenerator () const override |
ext::shared_ptr< path_pricer_type > | pathPricer () const override |
Protected Member Functions inherited from BarrierOption::engine | |
bool | triggered (Real underlying) const |
Protected Member Functions inherited from McSimulation< MC, RNG, S > | |
McSimulation (bool antitheticVariate, bool controlVariate) | |
virtual ext::shared_ptr< path_pricer_type > | pathPricer () const =0 |
virtual ext::shared_ptr< path_generator_type > | pathGenerator () const =0 |
virtual TimeGrid | timeGrid () 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 |
virtual result_type | controlVariateValue () const |
Protected Attributes | |
ext::shared_ptr< GeneralizedBlackScholesProcess > | process_ |
Size | timeSteps_ |
Size | timeStepsPerYear_ |
Size | requiredSamples_ |
Size | maxSamples_ |
Real | requiredTolerance_ |
bool | isBiased_ |
bool | brownianBridge_ |
BigNatural | seed_ |
Protected Attributes inherited from GenericEngine< BarrierOption::arguments, BarrierOption::results > | |
BarrierOption::arguments | arguments_ |
BarrierOption::results | results_ |
Protected Attributes inherited from McSimulation< MC, RNG, S > | |
ext::shared_ptr< MonteCarloModel< MC, RNG, S > > | mcModel_ |
bool | antitheticVariate_ |
bool | controlVariate_ |
Additional Inherited Members | |
Static Protected Member Functions inherited from McSimulation< MC, RNG, S > | |
template<class Sequence > | |
static Real | maxError (const Sequence &sequence) |
static Real | maxError (Real error) |
Pricing engine for barrier 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
Definition at line 57 of file mcbarrierengine.hpp.
typedef McSimulation<SingleVariate,RNG,S>::path_generator_type path_generator_type |
Definition at line 62 of file mcbarrierengine.hpp.
typedef McSimulation<SingleVariate,RNG,S>::path_pricer_type path_pricer_type |
Definition at line 64 of file mcbarrierengine.hpp.
typedef McSimulation<SingleVariate,RNG,S>::stats_type stats_type |
Definition at line 66 of file mcbarrierengine.hpp.
MCBarrierEngine | ( | ext::shared_ptr< GeneralizedBlackScholesProcess > | process, |
Size | timeSteps, | ||
Size | timeStepsPerYear, | ||
bool | brownianBridge, | ||
bool | antitheticVariate, | ||
Size | requiredSamples, | ||
Real | requiredTolerance, | ||
Size | maxSamples, | ||
bool | isBiased, | ||
BigNatural | seed | ||
) |
|
overridevirtual |
Implements PricingEngine.
Definition at line 78 of file mcbarrierengine.hpp.
|
overrideprotectedvirtual |
Implements McSimulation< MC, RNG, S >.
Definition at line 217 of file mcbarrierengine.hpp.
|
overrideprotectedvirtual |
Implements McSimulation< MC, RNG, S >.
Definition at line 94 of file mcbarrierengine.hpp.
|
overrideprotectedvirtual |
Implements McSimulation< MC, RNG, S >.
Definition at line 234 of file mcbarrierengine.hpp.
|
protected |
Definition at line 104 of file mcbarrierengine.hpp.
|
protected |
Definition at line 105 of file mcbarrierengine.hpp.
|
protected |
Definition at line 105 of file mcbarrierengine.hpp.
|
protected |
Definition at line 106 of file mcbarrierengine.hpp.
|
protected |
Definition at line 106 of file mcbarrierengine.hpp.
|
protected |
Definition at line 107 of file mcbarrierengine.hpp.
|
protected |
Definition at line 108 of file mcbarrierengine.hpp.
|
protected |
Definition at line 109 of file mcbarrierengine.hpp.
|
protected |
Definition at line 110 of file mcbarrierengine.hpp.