Skip to content

Finite-Difference Option Pricing: Signs, Stability, Obstacles, and Convergence

Build an auditable finite-difference option solver with correct time signs, discrete operators, boundary and event conditions, American complementarity, damping, and price-and-Greeks convergence.

Updated

For educational purposes only; not investment advice. Investing may result in loss.

Direct answer

Finite-difference option pricing replaces a continuous valuation equation with price and time nodes. A valid implementation needs more than a fine grid: the calendar-time and time-to-maturity signs, spatial operator, terminal and boundary conditions, event jumps, time scheme, American obstacle solver, residuals, and convergence controls must all agree.

Grid refinement addresses numerical error only. It cannot repair the wrong payoff, stochastic model, dividend treatment, settlement claim, market input, or execution assumption. A solver can converge precisely to the wrong answer.

Derive the grid before coding it

  1. Lock the claim, payoff Phi(S), exercise style, settlement, rates, borrow, dividends, volatility model, and coordinates. With calendar time t, the Black-Scholes PDE is V_t + L V = 0; with time to maturity tau = T - t, it is V_tau = L V, starting from V(S, 0) = Phi(S).
  2. Choose a price or log-price grid, truncation domain, time grid, and alignment for spot, strike, barriers, dividends, and observations. State whether N counts intervals or nodes and test S_max separately from Delta S.
  3. On the uniform grid S_i = i Delta S, derive a_i = 0.5[sigma^2 i^2 - (r - q)i], b_i = -(sigma^2 i^2 + r), and c_i = 0.5[sigma^2 i^2 + (r - q)i], so (L_h V)_i = a_i V_(i-1) + b_i V_i + c_i V_(i+1).
  4. Define the time step exactly: explicit V^(n+1) = (I + Delta tau L_h)V^n; implicit (I - Delta tau L_h)V^(n+1) = V^n; Crank-Nicolson (I - 0.5 Delta tau L_h)V^(n+1) = (I + 0.5 Delta tau L_h)V^n. Insert boundary terms on the correct right-hand side and time layer.
  5. Check global coefficient signs, CFL-like restrictions, positivity, monotonicity, matrix properties, and oscillations. Explicit and backward Euler are normally first-order in time; implicit is more dissipative, not universally less accurate. Crank-Nicolson linear stability does not guarantee monotonicity or kink-free output. Document Rannacher damping around every discontinuity where used.
  6. For American exercise solve a named discrete linear-complementarity method, such as PSOR, penalty, or documented operator splitting. Require V - Phi >= 0, A V - b >= 0, and (V - Phi) elementwise_times (A V - b) = 0; report relaxation, iteration cap, and complementarity residual.
  7. Interpolate price and Greeks at spot, then refine domain, space, time, event alignment, and solver tolerance. Benchmark European cases against a formula, American cases against a deep tree or independent solver, and record price, Delta, Gamma, free boundary, no-arbitrage checks, and residuals.

Boundaries belong to the contract. Under standard assumptions, a European put can use V(0, tau) = K exp(-r tau) and tends to zero as S grows, while an American put commonly uses V(0, tau) = K. A dividend-bearing European call has a different high-price asymptote. Discrete cash dividends need a jump and interpolation, such as V(S, t-) = V(max(S - D, 0), t+), followed in the correct order by any exercise decision.

Central differences can produce a negative convection coefficient even when the time step is small; an upwind, fitted, or log-price discretization may be needed. A diffusion PDE also does not acquire price jumps automatically. Model, parameter, calibration, numerical, and executable-price errors must remain separate.

Four worked examples

  • The time sign changes with the clock. From V_t + L V = 0 and tau = T - t, the chain rule gives V_tau = L V. Marching from payoff at tau = 0 toward larger tau therefore uses the positive L operator; copying the calendar-time backward sign would solve a different problem.
  • A node can look locally safe. Let sigma = 25%, r = 4%, q = 0, i = 95, and Delta tau = 0.0005. Then a_i = 280.13125, b_i = -564.1025, and c_i = 283.93125; explicit weights are 0.140065625, 0.71794875, and 0.141965625, summing to 0.99998. Neighbor values 6, 5, 4 update to 4.998. For an American put with obstacle 5, an explicit projection retains 5; an implicit or Crank-Nicolson system still needs its coupled LCP residual.
  • The restriction is global. With the same inputs at i = 200, the explicit weights are 0.623, -0.25002, and 0.627; the negative center destroys monotonicity even though the spot-near node looked acceptable. Reducing the step to Delta tau = 0.0002 gives 0.2492, 0.499992, and 0.2508, which are nonnegative and sum to 0.999992.
  • Price and Greeks need independent controls. For a European put with S = $95, K = $100, T = 0.5, sigma = 25%, r = 4%, and q = 0, Black-Scholes gives d_1 = -0.088633257689, d_2 = -0.265409952985, price $8.413258404601, Delta -0.535313311861, and Gamma 0.023662224614. A grid must converge separately to all three outputs before its American premium or free boundary is trusted.

Seven-step controls and failure modes

  • Calendar time t and time to maturity tau can be marched with inconsistent signs.
  • Day, year, rate, volatility, and dividend units can be mixed.
  • The payoff, exercise style, settlement claim, or terminal layer can be encoded incorrectly.
  • Continuous yield and discrete cash dividends can be double counted or ordered incorrectly.
  • S_max can be too close even when Delta S looks small.
  • Low- and high-price boundary formulas can belong to the wrong claim or carry assumptions.
  • Dividends, barriers, fixings, or observations can fall between time nodes and be interpolated badly.
  • Node and interval counts or nonuniform-grid derivative formulas can be off by one.
  • Drift can make a centered spatial coefficient negative and defeat monotonicity.
  • Explicit weights can violate global stability or positivity away from spot.
  • Crank-Nicolson can oscillate around payoff kinks, barriers, or event jumps.
  • Rannacher or other damping can be omitted, applied at the wrong events, or undocumented.
  • Linear-system residuals can be loose despite a visually smooth surface.
  • PSOR relaxation, stopping tolerance, initial guess, or iteration cap can be unstable.
  • A one-shot nodewise maximum can be mistaken for an exact implicit or Crank-Nicolson LCP solve.
  • Interpolation at spot can bias value, Delta, Gamma, or the free boundary.
  • Gamma and exercise boundaries can remain noisy after price appears converged.
  • Observed convergence order or Richardson extrapolation can be used outside the smooth asymptotic regime.
  • Diffusion, local-volatility interpolation, jumps, parameters, or calibration can be structurally wrong.
  • A theoretical value can be presented as an executable bid, ask, hedge, or arbitrage.

Common misconceptions

  • “A finer grid proves the price is correct.” It proves neither the contract nor the model.
  • “Implicit is intrinsically less accurate than explicit.” Both Euler schemes are normally first-order in time, with different stability and error behavior.
  • “Crank-Nicolson is unconditionally stable, so it is monotone and oscillation-free.” Those properties are distinct.
  • “American value is one unconstrained solve followed by a pointwise maximum.” Coupled implicit systems require an LCP method or a quantified approximation.
  • “Matching one quote validates the solver and Greeks.” Calibration and market noise can hide numerical or structural errors.

Primary sources

Navigation

Search the wiki...