Skip to content
All library documents

Improving Black-Scholes Finite Difference Solvers

Article Quant Q&A · Author: Alex

Summary

The document discusses ways to improve finite difference methods for solving the Black-Scholes equation, with attention to accuracy, speed, and stability. Its main recommendation is to transform the equation into the heat equation, which has simpler mathematical structure and can benefit from specialized numerical solvers. It also stresses that solver complexity should fit the frequency and importance of the task: a highly optimized production solver may not be worthwhile for a one-off calculation.

One answer suggests that, for a forward-time Euler method with central spatial differences, choosing the time and space steps in a particular ratio may cancel leading errors and improve accuracy without extra computation. The author flags uncertainty about the exact coefficient and error orders, so this claim should be checked before use. Another answer points to a scheme designed to recover vanilla option prices exactly when strikes and expiries lie on the grid. No comparative benchmarks or full implementation guidance are provided.

Key ideas

  • Transforming the Black-Scholes equation into the heat equation can simplify solution and enable better specialized solvers.
  • The effort spent optimizing a solver should reflect how often and how critically it will be used.
  • A suitable time-to-space step ratio may cancel leading errors for a particular explicit scheme, but the stated details need verification.
  • Grid design can make some finite difference schemes recover vanilla option prices exactly at selected strikes and expiries.

Tags

Full text
# Improve Finite Difference Scheme


# Improve Finite Difference Scheme












I understand how to derive and implement standard finite difference schemes. I wonder how to improve such a standard FD scheme? For example, when solving the standard Black-Scholes equation, the following steps are often suggested

- The transformation $x_t=\ln(S_t)$ turns the Black-Scholes PDE into a PDE with constant coefficients

- Choose the step sizes $\Delta S$ and $\Delta t$ such that $\sqrt{\Delta t} \sim\Delta S$

- Central difference ($O(\Delta S^2)$) are better for spatial derivatives than backward/forward finite difference ($O(\Delta S)$)

What further tips can you provide? What other improvements do you know which help with accuracy, speed and stability?

Do you use backward/forward/central difference for the time derivative? Do you recommend explicit, implicit, Crank Nicolson? How can you quickly verify whether your final solution is indeed correct and solves the PDE?

## Answer by oliversm (score 6, accepted)

https://quant.stackexchange.com/a/55236

## Don't solve the Black-Scholes PDE, solve the heat equation

One of the major results of mathematical finance is showing that the Black-Scholes PDE can be mapped to the heat equation. The heat equation is both mathematically nicer to handle, analyse, and computationally has much better solvers than other generic PDE solvers. Don't solve the Black-Scholes PDE, solve the heat equation! If this ends up with slightly more awkward boundary condition(s), then the benefits will still likely far out-weight the losses.

## There's a lot to learn

> What further tips can you provide? What other improvements do you know which help with accuracy, speed and stability?

There are far too many to list, and there is a trade off between creating the world's best solver and the time taken to program something up. If you spend 6 months building a production level solver optimised for one type of boundary condition/problem which runs in 1s, when a simple implementation knocked up in a day could have ran in 1 hour or overnight, and both are used only once, then the latter is more favourable.

Learning how to make these solvers better, more stable, more accurate, faster, etc. is very complicated, and takes degrees to learn/understand all the tricks (several are still being developed). Some nice references include:

- Numerical Methods for Finance – Finite Differences (Christoph Reisinger, Oxford)

- Finite difference methods for diffusion processes (Langtangen and Linge)

and the standard textbook is:

- Tools for Computational Finance (Seydel)

## An easy trick

One of the best tricks I learnt/saw was that you already know you should choose a small time step (or spatial discretisation) such that $\mathcal{O}(\Delta t) \sim \mathcal{O}(\Delta x^2)$, which if I recall makes the scheme have accuracy $\mathcal{O}(\Delta x^2)$. However, I think it is for a forward time Euler and central spatial difference scheme that if you pick $\Delta t = \frac{\Delta x^2}{4}$ then the spatial and temporal errors exactly cancel to leading order, and hence you get an accuracy $\mathcal{O}(\Delta x^4)$. However, I don't have my textbooks with me so I would have to double check the coefficient and accuracies I quoted. Nonetheless, for a clever choice of this ratio you get a much more accurate scheme at no extra cost, which I think is a very useful trick.

## Answer by Peter A (score 5)

https://quant.stackexchange.com/a/55412

Some of the standard tricks are mentioned in this paper, Finite Difference Schemes with Exact Recovery of Vanilla Option Prices

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3530561

which also shows how to set up the finite difference scheme so that all vanillas with strikes and expiries on the grid are matched exactly.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.