QMCPy¶
The QMCPy framework uses 5 abstract classes that are fleshed out in concrete implementations. Specifically, a user selects an integrand, true measure, discrete distribution, and stopping criterion specific to their Monte Carlo (MC) / quasi-Monte Carlo (qMC) problem. The fifth abstract class accumulates data from the stopping criterion and does not need to be instantiated by the user. The following blocks give more detailed descriptions of each abstract class and the available concrete implementations. For specific class names and parameters see the QMCPy Documentation page.
Note: If the following mathematics is not rendering try using Google Chrome and installing the Mathjax Plugin for GitHub.
Integrand¶
The function to integrate.
Keister Function:
Custom Function
Option Pricing
stock price at time
:
European Option
discounted call payoff
discounted put payoff
Asian Option
arithmetic mean:
geometric mean:
discounted call payoff
discounted put payoff
Multilevel Call Options with Milstein Discretization
Linear Function:
True Measure¶
General measure used to define the integrand.
Uniform:
Gaussian:
Discrete Brownian Motion:
, where
,
Lebesgue
Importance sampling
Identical to what the discrete distribution mimics
Discrete Distribution¶
Sampling nodes.
Low Discrepancy (LD) nodes
Lattice (base 2):
Sobol’ (base 2):
Halton:
Korobov:
Independent Identically Distributed (IID) Nodes
IID Standard Uniform:
IID Standard Gaussian:
Custom IID Distribution
Inverse CDF Sampling
Acceptance Rejection Sampling
Stopping Criterion¶
integrate
method to perform numerical integration.qMC Algorithms
Gauranteed Lattice Cubature
Guaranteed Sobol Cubature
Multilevel qMC Cubature
CLT qMC Cubature (with Replications)
MC Algorithms
Multilevel MC Cubature
Guaranteed MC Cubature
CLT MC Cubature