Quant Memo
Advanced

Finite Difference Option Pricing

Options obey a partial differential equation, the Black-Scholes PDE. Finite difference methods solve it by laying a grid over price and time and stepping the option's value backward node by node, ideal for American and barrier options.

Prerequisites: The Black-Scholes Model, Binomial Option Pricing

There's a beautiful fact hiding under the Black-Scholes formula: every option's value obeys a single equation, a partial differential equation (PDE) relating how the price changes with time to how it changes with the stock price. For a plain European option you can solve that equation with pen and paper. But for most real options, American, barrier, dividend-heavy, no clean solution exists. Finite difference methods solve the equation the way engineers solve heat flow or fluid flow: cover the problem with a grid and turn the smooth equation into arithmetic on the grid points.

The equation to solve

The Black-Scholes PDE says that at every point, the option's value VV satisfies

Vt+12σ2S22VS2+rSVSrV=0.\frac{\partial V}{\partial t} + \tfrac{1}{2}\sigma^2 S^2 \frac{\partial^2 V}{\partial S^2} + rS\frac{\partial V}{\partial S} - rV = 0.

Don't be scared by the symbols, each term is an option Greek you already know. V/t\partial V/\partial t is theta, how the value bleeds with time. 2V/S2\partial^2 V/\partial S^2 is gamma, the curvature of the payoff, scaled by the variance σ2S2\sigma^2 S^2. V/S\partial V/\partial S is delta, scaled by the risk-free drift rSrS. And rV-rV is the discounting. The equation just says these forces balance out to zero at every price and time. (The Feynman-Kac theorem is what connects this PDE to the discounted-expectation picture of pricing.)

Turning the equation into a grid

We build a rectangular grid. One axis is the stock price SS, chopped into levels from 0 up to some large ceiling. The other axis is time, chopped from today out to expiry. At each grid point we want the option's value.

Two edges give us free answers. At expiry (the right edge) the value is simply the payoff, which we know exactly, a call at each price level is max(SK,0)\max(S - K, 0). At the price boundaries (top and bottom), the value is also known: a call is worthless when S=0S = 0 and behaves like the stock minus the discounted strike when SS is huge. Starting from those known edges, we sweep backward in time, filling each earlier column from the column just after it. Every derivative in the PDE becomes a difference between neighbouring grid points, hence "finite difference."

S time expiry payoff known
Time runs left to right, stock price bottom to top. The rightmost column (expiry) is known from the payoff. Each earlier node is computed from a few neighbours in the next column, sweeping backward until you reach today's price.

Three schemes, one trade-off

How you connect a node to its neighbours defines the scheme, and there are three classic choices:

SchemeHow it computes each nodeTrade-off
ExplicitDirectly from three known nodes in the next columnSimple, but blows up unless the time step is tiny
ImplicitBy solving a small system of equations per columnAlways stable, a bit more work
Crank-NicolsonAverages explicit and implicitStable and more accurate; the practitioner default

The explicit scheme is essentially a trinomial tree: each earlier node is a probability-weighted blend of three later nodes. That makes it wonderfully intuitive, but it's only stable if the time step is small enough relative to the price step, otherwise tiny numerical errors snowball into garbage.

The explicit scheme is only conditionally stable: it demands roughly Δt1/(σ2M2)\Delta t \le 1/(\sigma^2 M^2), where MM is the number of price steps. Halving the price grid forces a fourfold cut in the time step. Implicit and Crank-Nicolson schemes stay stable at any step, which is why they're preferred.

Finite difference solves the Black-Scholes PDE on a price-time grid, sweeping backward from the known payoff at expiry. It's the natural tool whenever there's no formula, especially American and barrier options where you enforce a rule at every node.

Worked example: setting up the grid

Price a call with strike K=100K = 100. Pick price levels S=0,20,40,60,80,100,120,140S = 0, 20, 40, 60, 80, 100, 120, 140 and a few time steps out to expiry. Fill in the expiry column first from the payoff max(SK,0)\max(S - K, 0):

SS020406080100120140
value at expiry0000002040

Those are exact, no model needed. Now take one backward step with the explicit scheme. The value at an interior node one step earlier is a weighted blend of the node above, level, and below it in the expiry column:

Vearlier11+rΔt[puVup+pmVmid+pdVdown],V_{\text{earlier}} \approx \frac{1}{1 + r\,\Delta t}\big[\,p_u V_{\text{up}} + p_m V_{\text{mid}} + p_d V_{\text{down}}\,\big],

where the weights pu,pm,pdp_u, p_m, p_d come from σ\sigma, rr, and the grid spacing and behave just like the up/middle/down probabilities of a trinomial tree. Apply this at every interior node to fill the previous column, then repeat column by column until you reach today's price. The value sitting at S0S_0 in the first column is your option price. For an American option you add one line at each node, take the larger of this computed value and the immediate exercise payoff, which is exactly what makes finite difference (and trees) the go-to for early-exercise problems.

Common pitfalls

  • Instability from the explicit scheme. The most common beginner error: a big time step makes the answer oscillate wildly. Shrink Δt\Delta t or switch to implicit/Crank-Nicolson.
  • A grid ceiling that's too low. If the top price level isn't far enough above the strike, the boundary condition contaminates the answer. Rule of thumb: extend the price grid to three or four standard deviations past the strike.
  • Getting boundary conditions wrong. The whole sweep is anchored on the payoff and the two edges. A wrong edge condition, common with barrier options, quietly corrupts every node.
  • Over-refining. Doubling both the price and time grids roughly quadruples the work. Crank-Nicolson gets you accuracy with a coarser grid, use it before you throw more nodes at the problem.

Related concepts

Practice in interviews

Further reading

  • Hull, Options, Futures, and Other Derivatives (Ch. 21)
  • Wilmott, Paul Wilmott on Quantitative Finance (Ch. 77-79)
ShareTwitterLinkedIn