CONTENTS

Barrier Options

Motivation: why this matters in quant finance

Barrier options are the most common path-dependent exotic, traded heavily on every major equity index, FX pair, and commodity. The structural feature: the payoff is contingent not just on the terminal underlying value, but on whether the underlying crossed a level during the option's life.
A typical down-and-out call: pays (STK)+(S_T - K)^+ at expiry, but only if St>BS_t > B for all tTt \le T. If at any time the underlying touches the barrier BB, the option is "knocked out" and pays nothing. This makes the option cheaper than a vanilla call (you accept the knock-out risk in exchange for a discount).

Why traders use them:

  • Cost reduction. A knock-out option can be 30-70% cheaper than the corresponding vanilla. Useful for retail-structured products.
  • View expression. Knock-out calls express the view "stock will rise but not collapse" — finer than a vanilla call.
  • Hedging. Knock-in options are used to set up contingent hedges that activate only when a market level is breached.

For pricing, barrier options are the canonical example where path-dependence breaks risk-neutral valuation by simulation alone. The hitting time of a continuous Brownian motion is delicate; discretisation introduces bias; closed-form solutions exist for a few simple cases (Reiner-Rubinstein) but break down with stochastic volatility, dividends, or time-varying barriers.

The informal idea

Knock-out options: pay the vanilla payoff at expiry unless the barrier is breached. If breached, the option dies (typically with rebate R=0R = 0).
Knock-in options: pay zero unless the barrier is breached, after which they become a vanilla.
In-out parity: knock-out + knock-in = vanilla. So pricing one gives the other for free.

The four standard variants for calls:

  • Down-and-out call (DOC): barrier B<S0B < S_0; knocked out if SS falls to BB.
  • Down-and-in call (DIC): knocked in if SS falls to BB.
  • Up-and-out call (UOC): barrier B>S0B > S_0; knocked out if SS rises to BB.
  • Up-and-in call (UIC): knocked in if SS rises to BB.
Plus four for puts. Plus variations: partial barrier (active for only part of the life), window barrier (active in a window), double barrier, outside barrier, soft barrier, etc.

The price always has the form: vanilla price minus (or plus) a "barrier-correction" term reflecting the modified payoff.

Formal pricing under Black-Scholes

For a continuously monitored barrier (i.e., the barrier breach is checked at every instant), there's a closed-form solution. Define ν=(rσ2/2)/σ2\nu = (r - \sigma^2/2)/\sigma^2 (drift parameter). The down-and-out call price is

DOC=CBS(S0,K)(S0B)2νCBS ⁣(B2S0,K)rebate adjustments,\text{DOC} = C_{\text{BS}}(S_0, K) - \left(\frac{S_0}{B}\right)^{-2\nu} C_{\text{BS}}\!\left(\frac{B^2}{S_0}, K\right) - \text{rebate adjustments},

valid for BKB \le K (i.e., the barrier is below the strike).

The reflection-principle derivation: a path that hits BB and then ends above KK is equally probable (under the right Brownian-bridge weighting) as a path that started at B2/S0B^2/S_0 and ended above KK. So pricing decomposes into vanilla pricing on a reflected initial condition.

The general formula by Reiner-Rubinstein covers all 8 standard cases. Implementing them is mechanical but error-prone — many practitioners prefer the FDM approach.

Why discrete monitoring matters

Real exchange-traded barrier options are typically monitored daily at close, not continuously. This makes a difference: a path may briefly cross BB intraday and bounce back without triggering the barrier.

The discretely-monitored barrier price differs from the continuous price by an analytic correction:

Bdisc=Bexp(βσΔt),B_{\text{disc}} = B \cdot \exp(\beta \sigma \sqrt{\Delta t}),

where β=ζ(1/2)/2π0.5826\beta = -\zeta(1/2)/\sqrt{2\pi} \approx 0.5826 (Broadie-Glasserman-Kou correction, derived via random-walk theory).

So the effective continuous barrier for discretely-monitored options is shifted further from the spot — making the option slightly more valuable than the continuous-barrier formula would suggest.

For daily monitoring with σ=0.2\sigma = 0.2, this is about a 1% adjustment to the barrier; for high-frequency monitoring, smaller. Always check whether your pricing assumes continuous or discrete monitoring.

Algorithm: barrier pricing via FDM

Modify the standard BS PDE solver: at each time step, set V=RV = R (rebate, often 0) at all grid nodes outside the active region.

For a down-and-out call with barrier BB:

import numpy as np from scipy.linalg import solve_banded def fdm_doc(S0, K, B, T, r, sigma, M=400, N=400, S_max=400, R=0.0): dS = S_max / M dt = T / N S = np.linspace(0, S_max, M+1) # Find barrier index i_B = np.searchsorted(S, B) V = np.maximum(S - K, 0.0) V[:i_B+1] = R # apply barrier at terminal too i = np.arange(1, M) alpha = 0.5*(sigma**2*i**2 - r*i) beta = -(sigma**2*i**2 + r) gamma = 0.5*(sigma**2*i**2 + r*i) for n in range(N): # Crank-Nicolson step (simplified — full code in fdm-cn lesson) d = dt/2 ab = np.zeros((3, M-1)) ab[0, 1:] = -d*gamma[:-1] ab[1, :] = 1 - d*beta ab[2, :-1] = -d*alpha[1:] Lv = alpha*V[:M-1] + beta*V[1:M] + gamma*V[2:M+1] rhs = V[1:M] + d*Lv rhs[0] += d*alpha[0]*V[0] rhs[-1] += d*gamma[-1]*V[M] V[1:M] = solve_banded((1,1), ab, rhs) V[0] = 0 V[M] = S_max - K*np.exp(-r*(T - (n+1)*dt)) # Apply barrier: V = R for S <= B V[:i_B+1] = R return np.interp(S0, S, V) S0, K, B, T, r, sigma = 100, 100, 80, 1, 0.05, 0.2 price = fdm_doc(S0, K, B, T, r, sigma) print(f"Down-and-out call: {price:.4f}") # Down-and-out call: ~ 9.9

Vanilla call price is \10.45;barrierreducesthisby; barrier reduces this by \sim $0.55$ — the value of the knock-out feature.

Key properties

  • Knock-out price ≤ vanilla price. The barrier feature can only reduce the option value.
  • Knock-in price ≥ 0. For "out-of-the-money" knock-in (e.g., DIC with BS0B \ll S_0), the price can be very small but is always positive.
  • In-out parity. Knock-in + knock-out = vanilla. Use this as a sanity check.
  • Sensitivity to barrier. Pricing is steep near the barrier. Discrete vs continuous monitoring matters most when S0S_0 is close to BB.
  • Greeks near barrier. Delta and gamma are discontinuous at the barrier. Hedging barrier options is hard in practice — gamma blows up as the underlying approaches the barrier.
  • Static replication. For some barriers, exact static replication exists using a portfolio of European options at different strikes. Used to remove dynamic-hedging risk.

Worked example: in-out parity

Vanilla call C_{\text{BS}} = \10.45.DOCwith. DOC with B = 80:: $9.90.DICwith. DIC with B = 80$:

DIC = CBSC_{\text{BS}} - DOC = 10.45 - 9.90 = \0.55$.

This says: there's a \0.55valuetoacontractthatpaysthevanillacallpayoffonlyifthestockfallstovalue to a contract that pays the vanilla call payoff *only if* the stock falls to80first.Equivalently,afirst. Equivalently, a$0.55$ probability-weighted-payoff contract.

For BB further from spot (B=70B = 70): DOC \to \10.42,DIC, DIC \to $0.03$. Far-OTM knock-in becomes essentially worthless.

Common confusions and pitfalls

  • Continuous vs discrete monitoring. Most pricing literature assumes continuous; most exchanges use discrete. Use the BGK correction to convert.
  • Closed-form valid only for specific configurations. Reiner-Rubinstein assumes constant r,σr, \sigma, no dividends, single barrier. Anything more complex needs PDE/MC.
  • MC discretisation bias. If you simulate paths at, say, 50 time steps, the algorithm misses barrier hits between steps. Use Brownian-bridge correction (see the MC Pricing lesson) or simulate exact hitting times.
  • Barrier near strike. Pricing can be highly sensitive when BB and KK are close. Numerical methods need fine grids near the barrier.
  • Rebate handling. A common variation: a rebate RR paid at the time of barrier touch (or at expiry). This adds a separate term to the price; don't ignore it for accurate quotes.
  • Lookback options confusion. Lookbacks pay a function of the path maximum or minimum. Different from barrier options; they're not knocked out, but the payoff itself depends on the extremum.

Where this goes next

  • Asian options — different path dependence (averaging).
  • Monte Carlo pricing — Brownian-bridge correction for discrete-monitoring.
  • Static replication, double barriers, partial barriers — variations.

Exercises

Test your understanding with 3 exercises for this lesson.