Advanced Finite Difference Method for Quantitative Finance Theory, Applications and Computation

(code FDM)

DESCRIPTION

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.

 

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 wish to understand and apply advanced numerical methods to derivatives pricing

If you are interested in taking this course (in original or customised form) please contact us at info@datasim.nl

 

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
  • Alternating Direction Explicit (ADE)
  • 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)

 

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 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
  • Advantages of MOL
  • Application areas

 

MOL in Detail

  • Stiff and non-stiff ODEs
  • Linear and nonlinear systems
  • Incorporating non-Dirichlet boundary conditions into MOL
  • Adaptive and non-adaptive 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 one-Factor Problems

  • Background and motivation
  • Saul’yev, Barakat-Clark and Larkin variants
  • ADE for convection terms
  • 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

  • Alternating Direction Implicit (ADI)
  • Splitting (Fractional Steps method)
  • ADE in two dimensions
  • Hopscotch method
  • Other methods

 

The ADI Method

  • Using ADI for two-factor PDE
  • Mixed derivatives using Craig-Sneyd 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 predictor-corrector methods
  • Marchuk 1-2-2-1 model

 

The ADE Method

  • 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

 

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
  • Craig-Sneyd, Verwer, Hout_Welfert, Yanenko
  • Stress-testing 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 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
  • 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 plug-in methods
  • Notification patterns
  • Deciding which matrix library to use

 

Application Configuration

  • PDE Framework as an object network
  • Configuring the network: Builder> 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

 

Your Trainer

Daniel J. Duffy started the company Datasim in 1987 to promote C++ as a new object-oriented language for developing applications in the roles of developer, architect and requirements analyst to help clients design and analyse software systems for Computer Aided Design (CAD), process control and hardware-software systems, logistics, holography (optical technology) and computational finance. He used a combination of top-down functional decomposition and bottom-up object-oriented programming techniques to create stable and extendible applications (for a discussion, see Duffy 2004 where we have grouped applications into domain categories). Previous to Datasim he worked on engineering applications in oil and gas and semiconductor industries using a range of numerical methods (for example, the finite element method (FEM)) on mainframe and mini-computers.

Daniel Duffy has BA (Mod), MSc and PhD degrees in pure and applied mathematics and has been active in promoting partial differential equation (PDE) and finite difference methods (FDM) for applications in computational finance. He was responsible for the introduction of the Fractional Step (Soviet Splitting) method and the Alternating Direction Explicit (ADE) method in computational finance. He is also the originator of the exponential fitting method for time-dependent partial differential equations.

He is also the originator of two very popular C++ online courses (both C++98 and C++11/14) on www.quantnet.com in cooperation with Quantnet LLC and Baruch College (CUNY), NYC. He also trains developers and designers around the world. He can be contacted dduffy@datasim.nl for queries, information and course venues, in-company course and course dates.

 

Course dates

Date from Date to Location Price (excl. VAT)
Tuesday 6 November 2018 Friday 9 November 2018 Frankfurt EUR 2450.00

Advanced Finite Difference Method for Quantitative Finance Theory, Applications and Computation

Course date

Fill in your personal details