MA907-15 Simulation and Machine Learning for Finance
Introductory description
Python is a widely used programming language that is increasingly essential knowledge in the financial sector. Python dominates many modern applications, particularly in Data Science and Machine Learning. The module will use Python and Jupyter notebooks to investigate a variety of computational algorithms with the goal of solving particular problems and understanding the underlying theory.
Module aims
To provide both a theoretical and a practical understanding of numerical methods in finance, in particular those related to simulations of stochastic processes and machine learning.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
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 minibatches, 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. Covariance functions and the choice there of. Inference, including techniques to accelerate computations. Bayesian optimizationexploration/exploitation trade-offs.
Learning outcomes
By the end of the module, students should be able to:
- Manipulate vectors and matrices, write loops, functions and complete programmes in Python, and be able to valid Python programmes.
- Ability to price financial options using Monte-Carlo Integration including implementing variance reduction techniques, as well as computing associated Greeks.
- Estimate the complexity of an algorithm and compare the complexity of different algorithms.
- Determine the accuracy of a finite-differenct numerical approximation; understand of stability of numerical schemes and the sources of error in different numerical implementations.
- Understand the Central Limit Theory and its importance in Monte-Carlo Integration including being able to estimate the variance from finite sample sizes.
- Ability to simulate stochastic ODEs, using Euler or Milstein methods, and to use these methods to price Asian and Barrier options.
- Demonstrate basic knowledge of key Machine Learning techniques.
- Demonstrate understanding of different types of Machine Learning .
- Apply models for Machine Learning to a problem in Finance .
Indicative reading list
P. Glasserman, Monte Carlo methods in financial engineering, (Springer, 2004)
I Goodfellow, Y Bengio and A Courville, Deep Learning (MIT Press 2016) ·
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)
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)
Subject specific skills
Estimate the complexity of an algorithm and compare the complexity of different algorithms.
Determine the accuracy of a finite-difference numerical approximation.
Ability to price financial options using Monte-Carlo Integration including implementing variance reduction techniques, as well as computing associated Greeks.
Understand the Central Limit Theory and its importance in Monte-Carlo Integration including being able to estimate the variance from finite sample sizes.
Ability to simulate stochastic ODEs, using Euler or Milstein methods, and to use these methods to price path-dependent options.
Demonstrate knowledge of key Machine Learning concepts.
Ability to classify a variety of data and make predictions using Support Vector Machines, including employing a variety of kernels.
Ability to implement neural networks to Machine Learning problems .
Transferable skills
Mathematical modeling: Translating real-world problems into mathematical forms.
Algorithmic thinking: Decomposing complex problems and designing step-by-step solutions.
Model building and evaluation: Implementing and validating regression, classification, and clustering models.
Tool Proficiency: NumPy / SciPy (numerical computations); Matplotlib / Seaborn: (data visualization); Pandas: (data manipulation); scikit-learn / TensorFlow / PyTorch: (machine learning).
Critical thinking: Evaluating models and simulation results for reliability and accuracy.
Study time
Type | Required |
---|---|
Lectures | 10 sessions of 2 hours (13%) |
Practical classes | 10 sessions of 2 hours (13%) |
Private study | 80 hours (53%) |
Assessment | 30 hours (20%) |
Total | 150 hours |
Private study description
Students are expected to review lectures and practical lab material. Student are expect to work through examples problems from both lectures and labs.
Costs
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
Assessment group D2
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Assessment component |
|||
Class test | 20% | 6 hours | No |
This class test will assess Python programming skills related to the Simulation portion of the module. It will take place in Week 6 or 7. Students will complete Jupyter notebooks in which they will write or modify Python code to perform simulations relevant to option pricing and related financial topics. |
|||
Reassessment component is the same |
|||
Assessment component |
|||
Class test | 20% | 6 hours | No |
This class test will assess Python programming skills related to the Machine Learning portion of the module. It will take place in Week 9 or 10. Students will complete Jupyter notebooks in which they will write or modify Python code to perform machine learning tasks relevant to finance. |
|||
Reassessment component is the same |
|||
Assessment component |
|||
In-person Examination | 60% | 18 hours | No |
|
|||
Reassessment component is the same |
Feedback on assessment
Feedback will be provided both in-class during case discussion plus written feedback both generic and specific.
Courses
This module is Core for:
- Year 9 of TIBS-N3G1 Postgraduate Taught Financial Mathematics