QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Types | Public Member Functions | List of all members
MonteCarloModel< MC, RNG, S > Class Template Reference

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 ext::shared_ptr< path_generator_type > &pathGenerator, const ext::shared_ptr< path_pricer_type > &pathPricer, const stats_type &sampleAccumulator, bool antitheticVariate, const ext::shared_ptr< path_pricer_type > &cvPathPricer=ext::shared_ptr< path_pricer_type >(), result_type cvOptionValue=result_type(), const ext::shared_ptr< path_generator_type > &cvPathGenerator=ext::shared_ptr< path_generator_type >())
 
void addSamples (Size samples)
 
const stats_typesampleAccumulator () const
 

Detailed Description

template<template< class > class MC, class RNG, class S = Statistics>
class QuantLib::MonteCarloModel< MC, RNG, S >

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.

Examples
DiscreteHedging.cpp.