Skip to main content Skip to navigation

MA907 Simulation and Machine Learning for Finance


  • This is a core module for the MSc in Mathematical Finance.
  • Not available to undergraduate students.
  • PhD students interested in taking the module should consult the lecturer.


  • Lectures per week 1 x 2 hours, Laboratory sessions 1 x 2 hour + additional 2 hours sessions in weeks 2 and 3.


Week 1-2
Introduction to Python. Syntax. How to create and manipulated vectors and matrices. How to get help. How to make plots and use plots to understand what you are calculating. How to use flow control: loops and if statements. How to use and write functions. How to write programmes.

Week 3
Basic concepts in numerical computation. Computational complexity of algorithms. Order of accuracy. Numerical stability. Sources of error. Finite-differences and Taylor's Theorem. Floating point arithmetic. Algorithm design. Testing, debugging and validation.

Week 4
Introduction to Monte-Carlo methods. Central limit theorem. Monte-Carlo methods for European call and put options. Greeks.

Week 5
Variance reduction techniques. Antithetic, Control variates, Importance sampling, Stratified sampling. Variance reduction for Greeks.

Week 6
Numerical methods for ordinary and stochastic differential equations. Euler and Milstein schemes. Strong and week convergence. Pricing Asian and Barrier Options.

Week 7
Introduction to Machine Learning, Flexible non-parametric models (descriptive not generative). Supervised, unsupervised and semi-supervised learning. Loss, risk and generalisation error. Correct use of training, test and validation sets.

Weeks 8-10
Two of the following three topics will be covered:
Artificial Neural networks. Introduction: neurons and activation functions. Networks; layers, units, activation functions, connectivity. Training: back-propagation, stochastic-gradients with mini- batches, initialization, learning rate, early stopping. Particular features of “Deep” neural networks and their training.

Support vector machines. Linear hyperplane classifiers. Kernels and Support Vector Machines. Gaussian processes. What is a GP? GP regression. Covariance functions and the choice there of. Inference, including techniques to accelerate computations. Bayesian optimization- exploration/exploitation trade-offs.


  • Class Test 5%
    Given in week 3 or 4, just after completing the (Python) programming material to ensure that students are prepared to use Python for the remainder of the module.
  • Programming Project 35%
    Students will be asked to analyse a model relevant for financial maths using Python. A typical project contains 15 to 20 pages of explanation, tables, graphs and diagrams illustrating the results and the analysis of numerical results. The project also includes the relevant Python codes written by the student.
  • Examination 2 hours 60%

Illustrative Bibliography:

H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes, Cambridge (1992) ·

P. Glasserman, Monte Carlo methods in financial engineering, (Springer, 2004)

R Johansson, Numerical Python Scientific computing and Data Science Applications with Numpy SciPy and Matplotlib, (Second Edition) Apress (2019)

M Hetland , Beginning Python from Novice to Professional (Third Edition) Apress (2017)

D. Higham, An Introduction to Financial Option Valuation: Mathematics, Stochastics and Computation, Cambridge University Press Paperback, (2004)

P.E. Kloeden, E. Platen and H. Schurz, Numerical solutions of SDE through computer experiments, Springer (1997)

I Goodfellow, Y Bengio and A Courville, Deep Learning (MIT Press 2016)

C.E. Rasmussen and C.K.I. Williams, Gaussian Processes for Machine Learning, (MIT Press, 2005)

B Scholkopf, Learning with Kernels: Support Vector Machines, Regularization, Optimization and Beyond (MIT Press 2002)

H. Press, S.A. Teukolsky, W.T. Vetterling and B.P. Flannery, Numerical Recipes, Cambridge (1992)

Examination Period: January