Numerical probability for Finance - Simulations in C++11

G. Pagès - V. Lemaire

This course takes place from October to January (2 hours per week + 8 sessions of 3 hours of digital illustrations in C++11).

A complete handout is available on G. Pagès' personal page.

Objectives of the course

The aim of this course is to present the Monte-Carlo and Quasi-Monte-Carlo methods commonly used in finance. Numerous examples from pricing and hedging problems illustrate the developments. A computer implementation of the techniques discussed will be carried out during the TD sessions. Each student will have to carry out, in pairs, a computer project (in C language) implementing either price calculations and option hedging or simulations of financial models. This course is designed to provide students with the opportunity to learn about the different aspects of the subject matter of the course. This course covers the following topics:

  • Introduction to simulation: generation of random variables following the usual laws. Simulation of Gaussian processes (Brownian, fractional Brownian). Simulation of standard Poisson processes.
  • Monte-Carlo method: calculation of expectation by simulation. Confidence interval. Application to European options pricing.
  • Variance reduction methods: control variables, preferential sampling, antithetic variables (co-monotonicity), stratification, preconditioning.
  • Quasi-Monte-Carlo: theory and practice. Koksma-Hlawka inequality, Halton sequence, Sobol, Niederreiter.
  • Stochastic gradient methods.
  • Time discretization of stochastic differential equations (Euler scheme, Milstein scheme): application to European options pricing.
  • Improvement of the method in the case of path-dependent options: Brownian bridges,…
  • Calculation of hedges and sensitivities by Monte-Carlo method: tangent process, log-likelihood by Euler scheme. - - - Bismuth formulas, Haussmann-Clark-Occone, Monte Carlo paradigm, Malliavin.
  • Introduction to multilevel methods, with and without weights.

In parallel to this course, 8 sessions of 3 hours will be devoted to the implementation of these algorithms in C++11, illustrating different programming concepts: object-oriented programming, generic programming and functional programming.

The evaluation of the course is done through an exam and the submission of a computer project (in the second semester): each student will have to realize, in pairs, a computer project (in C/C++ language) implementing either price and option hedging calculations or financial model simulations. They will submit a report describing the methods used and commenting on the results obtained.


  • D. Dacunha-Castelle, M. Duflo : Probabilités et Statistiques II. Masson, Paris, 1983.
  • P. Glasserman (2003). Monte Carlo Methods in Financial Engineering. Springer-Verlag, New York, 596p.
  • D. Lamberton, B. Lapeyre : Introduction to Stochastic Calculus Applied to Finance. Chapman and Hall, 1996.
  • B. Lapeyre, E. Pardoux : Méthodes de Monte Carlo pour les équations de transport et les diffusions. Springer-Verlag.
  • H. Niederreiter : Random Number Generation and Quasi-Monte Carlo Methods. CBMS-NSF Regional Conference Series in Appl. Math. SIAM, 1992.
  • B.D. Ripley. Stochastic Simulation. Wiley, 1987.
  • L.C.G. Rogers et D. Talay, editors : Numerical Methods in Finance. Publications of the Newton Institute. Cambridge University Press, 1997.
  • C. Graham, D. Talay, Stochastic simulation and Monte Carlo mehods, SMAP series, 68, Springer, 2013.
  • W.H. Press and al. : Numerical recepies.