General-purpose Monte Carlo model for path samples. More...
#include <ql/methods/montecarlo/montecarlomodel.hpp>
Public Types | |
typedef MC< RNG > | mc_traits |
typedef RNG | rng_traits |
typedef MC< RNG >::path_generator_type | path_generator_type |
typedef MC< RNG >::path_pricer_type | path_pricer_type |
typedef path_generator_type::sample_type | sample_type |
typedef path_pricer_type::result_type | result_type |
typedef S | stats_type |
Public Member Functions | |
MonteCarloModel (const boost::shared_ptr< path_generator_type > &pathGenerator, const boost::shared_ptr< path_pricer_type > &pathPricer, const stats_type &sampleAccumulator, bool antitheticVariate, const boost::shared_ptr< path_pricer_type > &cvPathPricer=boost::shared_ptr< path_pricer_type >(), result_type cvOptionValue=result_type(), const boost::shared_ptr< path_generator_type > &cvPathGenerator=boost::shared_ptr< path_generator_type >()) | |
void | addSamples (Size samples) |
const stats_type & | sampleAccumulator (void) const |
General-purpose Monte Carlo model for path samples.
The template arguments of this class correspond to available policies for the particular model to be instantiated—i.e., whether it is single- or multi-asset, or whether it should use pseudo-random or low-discrepancy numbers for path generation. Such decisions are grouped in trait classes so as to be orthogonal—see mctraits.hpp for examples.
The constructor accepts two safe references, i.e. two smart pointers, one to a path generator and the other to a path pricer. In case of control variate technique the user should provide the additional control option, namely the option path pricer and the option value.