-
-
-
-
-
-
-
-
-
-

#### Advanced Finite Difference Method for Quantitative Finance: Theory, Applications and Computation - (code FDM)

The goal of this four-day 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 one-factor and multi-factor 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 one-factor and multi-factor options. We treat PDE models for both equity and fixed income applications.

This is a hands-on 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 one-factor and two-factor 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.
• State-of-the-art 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
• One-factor, multi-factor
• Linear, semilinear, non-linear
• Domain (bounded, semi-infinite, infinite)
• Time-dependent and time-independent PDEs
• Conservative and non-conservative PDE forms
• Reduction to first-order systems

Special Kinds of PDE
• Parabolic and elliptic PDE
• First-order hyperbolic PDE
• ‘Asian-style’ PDE
• Ordinary differential equations (ODEs)

Describing PDEs
• PDE coefficients
• Boundary conditions (Dirichlet, Neumann, none, linearity)
• Initial conditions
• Well-posedness 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 one-factor PDEs in detail and their approximation by popular and well-known finite difference schemes. We apply these schemes to general convection-diffusion-reaction equations and general boundary conditions and in particular we show their application to the one-factor 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 multi-factor applications in later sections.

Attention Points
• Continuous to discrete space: meshes and mesh generation
• Approximation of partial derivatives
• One-step and multistep time marching schemes
• Full discretisaton
• Semi-discretisation and Method of Lines (MOL)

Some Well-known Schemes
• Explicit and implicit Euler
• Crank Nicolson
• Richardson extrapolation
• Monotone schemes and M-matrices

Auxiliary Numerical Methods
• Solution of linear and nonlinear systems
• Interpolation and smoothing
• Numerical integration
• Optimisation (Levenberg-Marquardt, 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: One-Factor 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 (first-order, fourth order versions)

Example: One-Factor 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)

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 non-stiff systems of nonlinear ODEs in general.

Early Exercise Features
• Free and moving boundaries
• Formulations (fixed domain, front tracking)
•  Variational inequalities and PSOR
• Brennan-Schwartz method

The Method of Lines (MOL) Overview
• Semi-discretisation
• Vertical MOL and horizontal MOL(Rotke)
• Example: one-dimensional heat equation
• Application areas

MOL in Detail
• Stiff and non-stiff ODEs
• Linear and nonlinear systems
• Incorporating non-Dirichlet boundary conditions into MOL

MOL PDE Examples
• Black Scholes
• Cox Ingersoll Ross (CIR)
• Uncertain Volatility Model (UVM)
• CEV model
• MOL in Mathematica and Boost C++ odeint

• Background and motivation
• Saul’yev, Barakat-Clark and Larkin variants
• Conditional consistency; stability
• Boundary conditions

Other Differential Equations

• Fokker-Planck
• First-time exit PDE
• Riccati ODE

Kinds of Boundary Conditions
• Dirichlet, Neumann, Robin
• Linearity
• PDE on boundary (hyperbolic, parabolic)
• Fichera conditions

Part 4 Two-Factor Models

In this section we discuss several popular finite difference methods to approximate the solutions of the PDEs describing two-factor 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
• Splitting (Fractional Steps method)
• Hopscotch method
• Other methods

• Using ADI for two-factor PDE
• Mixed derivatives using Craig-Sneyd and Hout/Welfert
• Test cases: basket options and Heston model
The Operator Splitting Method
• Yanenko, Marchuk and Strang splittings
• Explicit and implicit splitting
• Handling mixed derivatives and boundary conditions
• Splitting and predictor-corrector methods
• Marchuk 1-2-2-1 model

• Origins and background; how it differs from ADI and splitting
• Motivating ADE: from heat pde to convection-diffusion and mixed derivatives
• One-sided and centred variants of ADE
• ADE in 3 and more factors
• ADE and how it is parallelised

• 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
• Craig-Sneyd, Verwer, Hout_Welfert, Yanenko
• Stress-testing mixed derivatives

Test Cases
• Heston model
• Asian options
• Anchoring model (Wilmott, Lewis and Duffy)

Modelling Jumps
• Merton’s and Kou models
• Partial Integro-Differential Equations (PIDE)
• Implicit-explicit Euler method
• Implicit-explicit Runge-Kutta 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
• One-factor models
• Two-factor 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
• Levenberg-Marquardt
• 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 one-factor PDEs that model equity and interest-rate 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 multi-paradigm design patterns, policy-based 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 (Convection-diffusion-reaction)
• 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, policy-based
• Performance issues (subtype polymorphism, CRTP, C++ 11 wrappers)
• Nested PDEs and two-factor PDEs

The FDM Model
• Classification of FDM schemes
• Full discretization versus semi-discretisation (Method of Lines)
• Separation of concerns and loose-coupling
• Matrix libraries (home-grown, Boost uBLAS, Eigen, MTL)
• Nonlinear FDM schemes

Some Specific Schemes
• Crank-Nicolson, fully implicit
• 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
• Strategies and plug-in methods
• 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.