This post is part 3 of a series of Reading Lists for Beginner Quants. Other posts in the series concentrate on Derivative Pricing, C++ Programming and Python Programming:
In the previous article the core C++ books required for a good grounding in quantitative programming were outlined. Now it is time to discuss the books useful for learning numerical methods, in particular Finite Difference Methods (FDM) and Monte Carlo Methods (MCM).
Finite Difference Methods
Finite Difference Methods are a class of numerical methods used to provide an approximate, discrete solution to various partial differential equations, in particular the Black-Scholes PDE. Finite Difference Methods work by discretising the derivative terms in the PDE, such that they can be implemented algorithmically. An explicit finite difference method has the quantities at the next time step calculated in terms of the values at the previous step. An implict finite difference method has the quantities at the next time step calculated in terms of both the values of the next time step and the previous time step. Stability of the scheme is an important concept.
The following articles discuss FDM in more detail:
The following are some of the more well known (and recommended!) text books on Finite Difference Methods:
- Finite Difference Methods in Financial Engineering: A Partial Differential Equation Approach - Duffy
- Financial Instrument Pricing Using C++ - Duffy
- Numerical Solution of Partial Differential Equations: Finite Difference Methods - Smith
- Pricing Financial Instruments: The Finite Difference Method - Tavella and Randall
- Option Pricing: Mathematical Models and Computation -Wilmott et al.
Monte Carlo Methods
Monte Carlo Methods rely on the concept of risk neutral valuation in order to price derivatives. In essence, many underlying random asset price paths are calculated and the associated derivative payoff is calculated for each path. The mean of the payoffs are taken and then the price is discounted to today's price. This will give an approximation of the the option price. Further accuracy can be obtained by increasing the number of random trials.
The following Wikipedia articles discuss MCM in more detail:
Here are some of the top financial modelling Monte Carlo Method books:
- C++ Design Patterns and Derivatives Pricing - Joshi
- Monte Carlo Methods in Financial Engineering - Glasserman
- Monte Carlo Frameworks: Building Customisable High-performance C++ Applications - Duffy et al.
- Monte Carlo Methods in Finance - Jaeckel
- Monte Carlo Methodologies and Applications for Pricing and Risk Management - Dupire
The best books to start with from a C++/numerical point of view are Duffy's "Financial Instrument Pricing Using C++" and Joshi's "C++ Design Patterns and Derivatives Pricing" books. In fact, Joshi's can be read in conjunction with his "Concepts and Practice of Mathematical Finance". They will get you up to speed on intermediate usage of C++ as well as give you an insight into both FDM and MCM. Depending on which way you lean (FDM or MCM), you may wish to continue with Wilmott's "Option Pricing" or with Glasserman's "Monte Carlo Methods in Financial Engineering" and Duffy's "Monte Carlo Frameworks.