IB9TD-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
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:
- Deploy basic knowledge of key Machine Learning techniques and models for finance problems
- Explain different types of Machine Learning, and implement neural networks to machine learning problems
- Understand the Central Limit Theory's importance in Monte-Carlo Integration
- Estimate the complexity of an algorithm and compare the complexity of different algorithms
- Evaluate models and simulation results for reliability and accuracy
- Decompose complex problems and design step-by-step solutions
- Translate real-world problems into mathematical forms.
Indicative reading list
Reading lists can be found in Talis
Subject specific skills
Manipulate vectors and matrices, write loops, functions and complete programmes in Python
Price financial options using Monte-Carlo Integration including implementing variance reduction techniques, as well as computing associated Greeks.
Determine the accuracy of a finite-differenct numerical approximation, and understand the stability of numerical schemes and the sources of error in different numerical implementations.
Simulate stochastic ODEs, using Euler or Milstein methods, and to use these methods to price Asian and Barrier options
Classify a variety of data and make predictions using Support Vector Machines, including employing a variety of kernels.
Transferable skills
Tool Proficiency: NumPy / SciPy (numerical computations); Matplotlib / Seaborn: (data visualization); Pandas: (data manipulation); scikit-learn / TensorFlow / PyTorch: (machine learning).
Study time
| Type | Required |
|---|---|
| Lectures | 10 sessions of 2 hours (13%) |
| Practical classes | 10 sessions of 2 hours (13%) |
| Private study | 44 hours (29%) |
| Assessment | 66 hours (44%) |
| Total | 150 hours |
Private study description
Prep for lectures and practical classes
Costs
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Assessment group D
| Weighting | Study time | Eligible for self-certification | |
|---|---|---|---|
Assessment component |
|||
| Class test 1 | 20% | 13 hours | No |
Reassessment component is the same |
|||
Assessment component |
|||
| Class test 2 | 20% | 13 hours | No |
Reassessment component is the same |
|||
Assessment component |
|||
| Exam | 60% | 40 hours | No |
|
|||
Reassessment component is the same |
|||
Feedback on assessment
via myWBS
Courses
This module is Core for:
- Year 1 of TIBS-N3G2 Postgraduate Taught Mathematical Finance