Advanced Finite Difference Method for Quantitative Finance: Theory, Applications and Computation  (code FDM)
The goal of this fourday course is to apply partial differential equations (PDE) and the Finite Difference Method (FDM) to computational finance. In particular, we apply FDM to option pricing, optimization and calibration for onefactor and multifactor models. A special feature of the course is that we discuss all relevant aspects such as model formulation, choosing the most appropriate PDE and FDM for the problem at hand as well as designing efficient algorithms in C++11 and C# 5.0. We deal with the most popular, modern and efficient finite difference methods to accurately price onefactor and multifactor options. We treat PDE models for both equity and fixed income applications.
This is a handson course with a good mix of theory and practice. The percentage theory/practice is approximate 70%/30%. The focus of the exercises is to develop practical skills in order to assemble the discrete system of equations as input to a C++ framework or pricing library, for example.
Subjects Covered
 Solving a range of onefactor and twofactor option pricing problems.
 Linear and nonlinear PDEs in computational finance.
 Comprehensive and modern finite difference methods for computational finance.
 Volatility modelling and calibration.
 C++ software framework to test schemes.
What you learn in this Course
 The full trajectory from financial model through PDE, FDM, algorithm design and code framework.
 Linear and nonlinear PDEs for option pricing.
 Stateoftheart and modern methods such as ADE, splitting, Methods of Lines (MOL).
 Knowing the choices and which ones are best (accurate, fast) in a given situation.
Course contents updated November 2017
Course Contents
Part 1 Financial and Mathematical Models
In this section we discuss the financial and mathematical PDE models that we approximate using the finite difference methods in later sections. We examine the properties of the solution in order to provide insights into the problem at hand. We discuss a number of innovative methods such as the Fichera theory and domain transformation that we shall use in examples in computational finance.
PDE Categories
 Onefactor, multifactor
 Linear, semilinear, nonlinear
 Domain (bounded, semiinfinite, infinite)
 Timedependent and timeindependent PDEs
 Conservative and nonconservative PDE forms
 Reduction to firstorder systems
Special Kinds of PDE
 Parabolic and elliptic PDE
 Firstorder hyperbolic PDE
 ‘Asianstyle’ PDE
 Ordinary differential equations (ODEs)
Describing PDEs
 PDE coefficients
 Boundary conditions (Dirichlet, Neumann, none, linearity)
 Initial conditions
 Wellposedness and continuity
 Energy inequality; existence and uniqueness of solution
Special Properties
 Convection dominance
 Discontinuous initial conditions
 Domain truncation and domain transformation
 Mixed derivatives
 The Fichera theory: Feller conditions
Part 2 Finite Difference Method: Fundamental Techniques
In this section we discuss onefactor PDEs in detail and their approximation by popular and wellknown finite difference schemes. We apply these schemes to general convectiondiffusionreaction equations and general boundary conditions and in particular we show their application to the onefactor Black Scholes PDE.
We also discuss the numerical analysis of the finite difference method in which we give necessary and sufficient conditions for a finite difference scheme to be stable and to converge to the solution of the PDE that it is approximating. Some new and powerful methods that we discuss are the Method of Lines (MOL), exponential fitting and the Alternating Direction Explicit (ADE) method.
The results in this section form the basis for more advanced multifactor applications in later sections.
Attention Points
 Continuous to discrete space: meshes and mesh generation
 Approximation of partial derivatives
 Onestep and multistep time marching schemes
 Full discretisaton
 Semidiscretisation and Method of Lines (MOL)
Some Wellknown Schemes
 Explicit and implicit Euler
 Crank Nicolson
 Richardson extrapolation
 Alternating Direction Explicit (ADE)
 Monotone schemes and Mmatrices
Auxiliary Numerical Methods
 Solution of linear and nonlinear systems
 Interpolation and smoothing
 Numerical integration
 Optimisation (LevenbergMarquardt, Differential Evolution)
Analysis of FDM
 Stability, consistency and convergence
 Conditional and unconditional stability
 Von Neumann stability analysis
 Maximum principle
 Order of accuracy and rate of convergence
Example: OneFactor Black Scholes PDE, I
 Domain truncation versus domain transformation
 Call and put options: boundary conditions
 Payoff functions; handling discontinuities
 Crank Nicolson and Rannacher methods
 Using exponential fitting (firstorder, fourth order versions)
Example: OneFactor Black Scholes PDE, II
 Avoiding oscillations: fully implicit method and extrapolation
 Critique of the Crank Nicolson method
 ADE method for the Black Scholes PDE
 More general cases and Fichera boundary conditions
 Approximating the Greeks (sensitivities)
Part 3 Advanced (Nonlinear) Models
In this section we introduce a number of linear and nonlinear PDEs and finite difference schemes. In particular, we consider free and moving boundary values problems that describe an option’s early exercise features. Since this is a nonlinear problem we see that the methods from Part 2 are not applicable. We then resort to nonlinear solvers and transformations to make the problem more tractable.
We discuss the Method of Lines (MOL) in detail. This method reduces a PDE to a system of ordinary differential equations (ODEs) by discretizing the underlying space variables only. The resulting ODE system can then be handed to a solver such as Mathematica’s NDSolve or the Boost C++ library odeint. These libraries are suitable for stiff and nonstiff systems of nonlinear ODEs in general.
Early Exercise Features
 Free and moving boundaries
 Formulations (fixed domain, front tracking)
 Variational inequalities and PSOR
 BrennanSchwartz method
The Method of Lines (MOL) Overview
 Semidiscretisation
 Vertical MOL and horizontal MOL(Rotke)
 Example: onedimensional heat equation
 Advantages of MOL
 Application areas
MOL in Detail
 Stiff and nonstiff ODEs
 Linear and nonlinear systems
 Incorporating nonDirichlet boundary conditions into MOL
 Adaptive and nonadaptive ODE solvers
MOL PDE Examples
 Black Scholes
 Cox Ingersoll Ross (CIR)
 Uncertain Volatility Model (UVM)
 CEV model
 MOL in Mathematica and Boost C++ odeint
ADE for oneFactor Problems
 Background and motivation
 Saul’yev, BarakatClark and Larkin variants
 ADE for convection terms
 Conditional consistency; stability
 Boundary conditions
Other Differential Equations
 FokkerPlanck
 Firsttime exit PDE
 Riccati ODE
Kinds of Boundary Conditions
 Dirichlet, Neumann, Robin
 Linearity
 PDE on boundary (hyperbolic, parabolic)
 Fichera conditions
Part 4 TwoFactor Models
In this section we discuss several popular finite difference methods to approximate the solutions of the PDEs describing twofactor option pricing. We discuss the two main contenders, namely Alternating Direction Implicit (ADI) method and the method of Fractional Steps (“Soviet Splitting”) which originated in the United States and the former Soviet Union in the 1960’s, respectively. We apply then to several PDEs in computational finance. Of particular importance is the problem of approximating the mixed derivatives in the PDE to ensure that the resulting scheme is monotone and does not lead to spurious oscillations.
We also discuss MOL and ADE for linear and nonlinear PDEs and we compare them with ADI and splitting methods.
Contenders
 Alternating Direction Implicit (ADI)
 Splitting (Fractional Steps method)
 ADE in two dimensions
 Hopscotch method
 Other methods
The ADI Method
 Using ADI for twofactor PDE
 Mixed derivatives using CraigSneyd and Hout/Welfert
 Test cases: basket options and Heston model
 Generalising the ADI method
The Operator Splitting Method
 Yanenko, Marchuk and Strang splittings
 Explicit and implicit splitting
 Handling mixed derivatives and boundary conditions
 Splitting and predictorcorrector methods
 Marchuk 1221 model
The ADE Method
 Origins and background; how it differs from ADI and splitting
 Motivating ADE: from heat pde to convectiondiffusion and mixed derivatives
 Onesided and centred variants of ADE
 ADE in 3 and more factors
 ADE and how it is parallelised
Comparing ADI, Splitting and ADE Methods
 How they handle mixed derivatives
 Boundary conditions
 Accuracy and robustness of the schemes
 Improving accuracy
 Can the scheme be parallelized?
Mixed Derivatives
 Modeling correlation: extreme cases
 CraigSneyd, Verwer, Hout_Welfert, Yanenko
 Stresstesting mixed derivatives
 Test case: compare ADI, splitting and ADE for Heston model
Test Cases
 Basket options
 Heston model
 Asian options
 Anchoring model (Wilmott, Lewis and Duffy)
Modelling Jumps
 Merton’s and Kou models
 Partial IntegroDifferential Equations (PIDE)
 Implicitexplicit Euler method
 Implicitexplicit RungeKutta method
Part 5 Volatility Modelling
In this section we discuss the important topic of volatility modelling. The Black Scholes option pricing formula assumes that the volatility is known and constant, an assumption that does not hold in real life. For this reason we introduce a number of methods to calibrate volatility to market data. For example, we shall use the finite difference method to calibrate local volatility.
We also discuss uncertain volatility models (UVM) and stochastic volatility (in the Heston model).
Categories of Volatility
 Historical
 Implied
 Local
 Actual
Continuous Time Calibration
 The local volatility model
 Calibrating the local volatility function
 The Dupire forward equation
 Calibration using Dupire
Discrete Time Calibration
 Discretisation of the initial boundary value problem
 Calibration
 Deriving the call surface
 Deriving the local volatility surface
 Comparing Crank Nicolson and ADE
Uncertain Volatility Models (UVM)
 The model of Avellaneda, Levy and Paras
 Onefactor models
 Twofactor models
 Other uncertain parameters (interest rate, dividends, correlation)
Stochastic Volatility
 The Heston model
 Local and implied volatility in the Heston model
 The Heston_Nando model
 Jumps
Optimisation Methods
 Differential Evolution
 LevenbergMarquardt
 Simulate Annealing and Sequential Quadratic Programming (SQP)
 Local and global optimisation
Part 6 From FDM to Code: Software Framework in a Nutshell
In this part of the course we employ C++ 11 and associated libraries to create efficient and flexible software frameworks for a range of linear and nonlinear onefactor PDEs that model equity and interestrate derivatives. In particular, the emphasis is on creating maintainable and efficient code that be customised to a range of derivatives pricing problems.
To achieve the goals, we make use of multiparadigm design patterns, policybased design and numerical libraries whenever possible. The pattern can be used in other areas, such as Monte Carlo simulation and lattice models, for example.
The PDE Model (Convectiondiffusionreaction)
 Choice of PDE model (linear/nonlinear, conservative/nonconservative)
 Domain truncation versus domain transformation
 Kinds of boundary conditions
 Payoff
C++ Classes for PDE
 Using the Bridge patterns to model a PDE
 Design choice: namespace, classic GOF, policybased
 Performance issues (subtype polymorphism, CRTP, C++ 11 wrappers)
 Nested PDEs and twofactor PDEs
The FDM Model
 Classification of FDM schemes
 Full discretization versus semidiscretisation (Method of Lines)
 Separation of concerns and loosecoupling
 Matrix libraries (homegrown, Boost uBLAS, Eigen, MTL)
 Nonlinear FDM schemes
Some Specific Schemes
 CrankNicolson, fully implicit
 Alternating Direction Explicit (ADE)
 Richardson Extrapolation
 Method of Lines (MOL) and Boost odeint
C++ Classes for FDM
 Class hierarchy: what is the best approach?
 Subtype polymorphism versus C++ 11 function wrappers
 System assembly and Builder pattern
 Check: tight cohesion and loose coupling
 Sanity check: Single Responsibility Principle (SRP)
Design Patterns for FDM
 Template method pattern
 FDM and Adapter pattern
 Strategies and plugin methods
 Notification patterns
 Deciding which matrix library to use
Application Configuration
 PDE Framework as an object network
 Configuring the network: Builder<std::tuple<>> pattern
 The Mediator pattern as essential component
Postprocessing of Computed Results
 A framework to test accuracy and efficiency
 Using algorithms and data structures from STL and Boost
 Testing finite difference methods as candidate solutions
 Multithreading and parallelization designs patterns
 Using the Layers pattern to provide portability
Prerequisites
We assume basic knowledge of differential equations and finite difference theory. The models and examples in the course are taken from computational finance and we thus assume that these are also known.
Some skills in arithmetical and algebraic manipulation are seen as a useful asset, especially when assembling systems of discrete equations.
Who should attend?
This course has been developed so that you can use the theory to solve existing problems as well as applying the knowledge to the pricing of new financial instruments. In particular, the course is for professionals with a strong mathematical background:
 Financial engineers who design new pricing models
 Analysts and quants
 Other professionals who whis to understand and apply advanced numerical methods to derivatives pricing
Duration, price, date, locations and registration
Course duration: 
4 days. 
Dates and location: 
(click on dates to print registration form) 
Date(s) 
Location 
Price 
Language 
Jan 23  Jan 26 2018 
London (United Kingdom) 
€ 3300. ex. VAT € 3993. inc. 21% VAT 
English 
Apr 03  Apr 06 2018 
Frankfurt (Germany) 
€ 3300. ex. VAT € 3993. inc. 21% VAT 
English 
Click on one of the dates above to register. This course can also be organised at your company's premises. Call Datasim (+31722204802) or email for more information about the possibilities.
