No-Arbitrage Principle and Risk-Neutral Valuation › The One-Period Binomial Model

Michael BrenndoerferNovember 25, 202516 min read
Quantitative FinanceAll chapters
Part 5 of 15Stochastic Calculus and Pricing Theory
Chapter 28No-Arbitrage Principle and Risk-Neutral Valuation › The One-Period Binomial Model
Reading section 4 of 12 · The One-Period Binomial Model · 16 minSection 4 of 12 · 16 min

Book contents

Section 4 of 12 · 16 min read

No-Arbitrage Principle and Risk-Neutral Valuation › The One-Period Binomial ModelOne section · Sections in this chapter4 / 12 ↓
Reading tools Definitions & inline links

Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.

Article links

Make inline references clickable

To develop the full machinery of risk-neutral valuation, we need a concrete model of how asset prices evolve. The one-period binomial model is the simplest possible setting, yet it contains all the essential insights that carry over to continuous-time models. By working through this elementary example in detail, we will discover the remarkable phenomenon of risk-neutral pricing, the idea that we can value derivatives using artificial probabilities that make all assets earn the risk-free rate.

Model Setup

Consider a single time period from t=0t=0 to t=Tt=T. A stock has current price S0S_0. At time TT, the stock can take one of two values:

ST={Su=S0⋅uwith probability pSd=S0⋅dwith probability 1−pS_T = \begin{cases} S_u = S_0 \cdot u & \text{with probability } p \\ S_d = S_0 \cdot d & \text{with probability } 1-p \end{cases}

where:

  • STS_T: stock price at time TT
  • Su,SdS_u, S_d: stock prices in up and down states
  • S0S_0: current stock price
  • uu: up factor (u>1u > 1)
  • dd: down factor (d<1d < 1)
  • pp: real-world probability of an up move
  • TT: time to expiration

The up factor uu represents the gross return if the stock increases in value, while the down factor dd represents the gross return if the stock decreases. Typically we have u>1u > 1 and d<1d < 1, so an "up" move means the stock gains value and a "down" move means it loses value. The actual probability pp reflects the market's assessment of the stock's prospects. A stock with bright prospects might have a high pp, while a troubled company might have a low pp.

There is also a risk-free bond that grows from B0=1B_0 = 1 to BT=erTB_T = e^{rT}. This bond represents a riskless investment that earns the continuously compounded interest rate rr. Anyone can borrow or lend at this rate.

We want to price a derivative that pays fuf_u if the stock goes up and fdf_d if the stock goes down. For a call option with strike KK:

fu=max⁡(Su−K,0),fd=max⁡(Sd−K,0)f_u = \max(S_u - K, 0), \quad f_d = \max(S_d - K, 0)

where:

  • fuf_u: derivative payoff in the up state
  • fdf_d: derivative payoff in the down state
  • SuS_u: stock price in the up state
  • SdS_d: stock price in the down state
  • KK: strike price

The call option pays the difference between the stock price and the strike if this difference is positive, and pays zero otherwise. Our task is to determine what this option should cost today.

In[3]:
Code
# One-period binomial model parameters
S0 = 100  # Current stock price
u = 1.20  # Up factor
d = 0.85  # Down factor
r = 0.05  # Risk-free rate (annual)
T = 1.0  # Time to expiration (1 year)
K = 100  # Strike price

# Stock prices at expiration
Su = S0 * u  # Stock price if up
Sd = S0 * d  # Stock price if down

# Call option payoffs
fu = max(Su - K, 0)  # Payoff if up
fd = max(Sd - K, 0)  # Payoff if down
Out[4]:
Console
One-Period Binomial Model Setup
========================================
Current stock price S0 = $100.00
Up factor u = 1.20, Down factor d = 0.85
Risk-free rate r = 5.0%
Time to expiration T = 1.0 year
Strike price K = $100.00

Possible Stock Prices at Expiration:
  Up state:   Su = $120.00
  Down state: Sd = $85.00

Call Option Payoffs:
  Up state:   fu = max(120.00 - 100, 0) = $20.00
  Down state: fd = max(85.00 - 100, 0) = $0.00
Out[5]:
Visualization
Binomial tree diagram with stock starting at 100 dollars, branching to 120 (up) and 85 (down), with corresponding call option payoffs of 20 and 0.
Visual representation of a one-period binomial tree model. The stock price starts at $S_0$ and branches into two possible states (up or down) at time $T$, defining the boundary conditions for the derivative payoff.

In this example, the stock price can rise to $120 or fall to $85 over the one-year period. The call option yields a $20 payoff in the up state (since $120 > $100) and expires worthless in the down state. The question we face is this: what should someone pay today for the right to receive this contingent payoff one year from now?

Constructing the Replicating Portfolio

We seek a portfolio consisting of Δ\Delta shares of stock and BB dollars invested in the risk-free bond that replicates the option payoff. The Greek letter delta (Δ) represents our position in the stock, while BB represents our position in the bond. This portfolio must match the option's payoff in both possible states of the world. At time TT, this portfolio must satisfy:

Δ⋅Su+B⋅erT=fuΔ⋅Sd+B⋅erT=fd\begin{aligned} \Delta \cdot S_u + B \cdot e^{rT} &= f_u \\ \Delta \cdot S_d + B \cdot e^{rT} &= f_d \end{aligned}

where:

  • Δ\Delta: number of shares of stock
  • BB: amount invested in the risk-free bond
  • Su,SdS_u, S_d: stock prices in up and down states
  • fu,fdf_u, f_d: derivative payoffs in up and down states
  • rr: risk-free rate
  • TT: time to expiration

The first equation says that if the stock goes up, our portfolio (consisting of Δ\Delta shares now worth SuS_u each, plus our bond investment grown to BerTB e^{rT}) must equal the option's payoff fuf_u. The second equation imposes the same requirement for the down state. We need the portfolio to match the option payoff in both scenarios.

This is a system of two linear equations in two unknowns. Since we have two equations and two unknowns, we can solve for unique values of Δ\Delta and BB. Subtracting the second equation from the first eliminates BB and allows us to solve for Δ\Delta:

(Δ⋅Su+B⋅erT)−(Δ⋅Sd+B⋅erT)=fu−fd(subtract equations)Δ(Su−Sd)=fu−fd(cancel B terms)Δ=fu−fdSu−Sd(solve for Δ)\begin{aligned} (\Delta \cdot S_u + B \cdot e^{rT}) - (\Delta \cdot S_d + B \cdot e^{rT}) &= f_u - f_d && \text{(subtract equations)} \\ \Delta (S_u - S_d) &= f_u - f_d && \text{(cancel } B \text{ terms)} \\ \Delta &= \frac{f_u - f_d}{S_u - S_d} && \text{(solve for } \Delta \text{)} \end{aligned}

where:

  • Δ\Delta: hedge ratio (shares of stock)
  • BB: amount invested in the risk-free bond
  • fu,fdf_u, f_d: option payoffs
  • Su,SdS_u, S_d: stock prices at expiration
  • rr: risk-free rate
  • TT: time to expiration

This quantity, called the delta of the option, measures how many shares we need to hold to replicate the option's sensitivity to stock price movements. The formula has an intuitive interpretation: the numerator fu−fdf_u - f_d is how much the option payoff changes between the two states, while the denominator Su−SdS_u - S_d is how much the stock price changes. The ratio tells us how sensitive the option is to stock price movements. For every dollar the stock moves, the option payoff changes by delta dollars.

From either equation, we can solve for BB:

B=e−rT(fu−Δ⋅Su)=e−rT(fd−Δ⋅Sd)B = e^{-rT}(f_u - \Delta \cdot S_u) = e^{-rT}(f_d - \Delta \cdot S_d)

where:

  • BB: bond investment required for replication
  • fu,fdf_u, f_d: derivative payoffs in up and down states
  • Su,SdS_u, S_d: stock prices in up and down states
  • Δ\Delta: hedge ratio
  • rr: risk-free interest rate
  • TT: time to expiration

The two expressions for BB must give the same answer because we already chose Δ\Delta to ensure the equations are consistent. We can use either one for the calculation.

The cost of constructing this portfolio today is:

f0=Δ⋅S0+Bf_0 = \Delta \cdot S_0 + B

where:

  • f0f_0: fair value of the derivative today
  • S0S_0: current stock price
  • Δ\Delta: number of shares
  • BB: bond investment

We buy Δ\Delta shares at the current price S0S_0 and invest BB dollars in the bond. The total outlay is the sum of these two components. By the Law of One Price, this must equal the fair value of the derivative, since the portfolio and the derivative have identical payoffs.

In[6]:
Code
# Calculate replicating portfolio
Delta = (fu - fd) / (Su - Sd)
B = np.exp(-r * T) * (fu - Delta * Su)

# Option price is cost of replicating portfolio
f0_replication = Delta * S0 + B

# Verify portfolio values at expiration
portfolio_up = Delta * Su + B * np.exp(r * T)
portfolio_down = Delta * Sd + B * np.exp(r * T)
Out[7]:
Console
Replicating Portfolio Construction
========================================
Delta (shares of stock) = (20.00 - 0.00) / (120.00 - 85.00)
Delta = 0.5714

Bond position B = e^(-0.05×1.0) × (20.00 - 0.5714 × 120.00)
Bond position B = $-46.2026

Verification at expiration:
  Up state:   0.5714 × 120.00 + -46.2026 × e^(0.05×1.0) = $20.00
  Down state: 0.5714 × 85.00 + -46.2026 × e^(0.05×1.0) = $0.00

Fair value of call option = 0.5714 × $100.00 + $-46.2026
Fair value of call option = $10.9403
Out[8]:
Visualization
Bar chart comparing replicating portfolio value to call option payoff in both up and down states, showing exact matches.
Comparison of replicating portfolio values and call option payoffs in up and down states. The replicating portfolio perfectly matches the option payoff in every scenario, so no arbitrage opportunities exist.

The replicating portfolio holds approximately 0.57 shares of stock and borrows about $46 (the negative bond position indicates borrowing). This leveraged position exactly mimics the option's payoff in both states. If the stock goes up, we hold 0.57 shares worth $120 each which gives us about $68 minus what we owe on our loan, which has grown to about $48 leaving us with $20 exactly the option payoff. If the stock goes down, our 0.57 shares are worth about $48, which exactly offsets our loan obligation, leaving us with nothing, again matching the option payoff. The option must therefore be worth $10.94.

Notice something remarkable: we never used the probability pp of the up move! The option price depends only on S0S_0, uu, dd, rr, TT, and KK, not on anyone's beliefs about whether the stock will go up or down. This is a key result. Two investors with completely different views about the stock's prospects must still agree on the option's fair price if they both accept the no-arbitrage principle.

The Emergence of Risk-Neutral Probabilities

Let's rearrange our pricing formula algebraically to discover a beautiful alternative representation. We start with the portfolio cost f0=ΔS0+Bf_0 = \Delta S_0 + B, substitute B=e−rT(fu−ΔSu)B = e^{-rT}(f_u - \Delta S_u), and recall that Su=S0uS_u = S_0 u and Sd=S0dS_d = S_0 d:

f0=ΔS0+e−rT(fu−ΔSu)=e−rTfu+Δ(S0−e−rTSu)(rearrange terms)=e−rTfu+fu−fdS0(u−d)S0(1−e−rTu)(substitute Δ and stock prices)=e−rTfu+fu−fdu−d(1−e−rTu)(cancel S0)=e−rT[fu+fu−fdu−d(erT−u)](factor out e−rT)=e−rT[fu(u−d)+(fu−fd)(erT−u)u−d](common denominator)=e−rT[fuu−fud+fuerT−fuu−fderT+fduu−d](expand terms)=e−rT[fuerT−du−d+fdu−erTu−d](regroup by payoff)\begin{aligned} f_0 &= \Delta S_0 + e^{-rT}(f_u - \Delta S_u) \\ &= e^{-rT} f_u + \Delta(S_0 - e^{-rT}S_u) && \text{(rearrange terms)} \\ &= e^{-rT} f_u + \frac{f_u - f_d}{S_0(u - d)} S_0(1 - e^{-rT}u) && \text{(substitute } \Delta \text{ and stock prices)} \\ &= e^{-rT} f_u + \frac{f_u - f_d}{u - d} (1 - e^{-rT}u) && \text{(cancel } S_0 \text{)} \\ &= e^{-rT} \left[ f_u + \frac{f_u - f_d}{u - d} (e^{rT} - u) \right] && \text{(factor out } e^{-rT} \text{)} \\ &= e^{-rT} \left[ \frac{f_u(u - d) + (f_u - f_d)(e^{rT} - u)}{u - d} \right] && \text{(common denominator)} \\ &= e^{-rT} \left[ \frac{f_u u - f_u d + f_u e^{rT} - f_u u - f_d e^{rT} + f_d u}{u - d} \right] && \text{(expand terms)} \\ &= e^{-rT} \left[ f_u \frac{e^{rT} - d}{u - d} + f_d \frac{u - e^{rT}}{u - d} \right] && \text{(regroup by payoff)} \end{aligned}

where:

  • f0f_0: derivative price today
  • BB: amount invested in the risk-free bond
  • fu,fdf_u, f_d: option payoffs
  • S0,Su,SdS_0, S_u, S_d: stock prices (current, up, down)
  • u,du, d: up and down factors
  • rr: risk-free rate
  • TT: time to expiration
  • Δ\Delta: hedge ratio

The algebra may look tedious, but the result is illuminating. We have rewritten the option price as a weighted average of the payoffs, discounted back to the present. If we define a parameter qq:

q=erT−du−dq = \frac{e^{rT} - d}{u - d}

where:

  • qq: risk-neutral probability parameter
  • rr: risk-free interest rate
  • TT: time to expiration
  • u,du, d: up and down factors

Then the coefficient for fdf_d becomes:

u−erTu−d=(u−d)−(erT−d)u−d=1−erT−du−d=1−q\begin{aligned} \frac{u - e^{rT}}{u - d} &= \frac{(u - d) - (e^{rT} - d)}{u - d} \\ &= 1 - \frac{e^{rT} - d}{u - d} \\ &= 1 - q \end{aligned}

where:

  • u,du, d: up and down factors
  • rr: risk-free interest rate
  • TT: time to expiration
  • qq: risk-neutral probability

Thus, the formula simplifies to:

f0=e−rT[q⋅fu+(1−q)⋅fd]f_0 = e^{-rT}[q \cdot f_u + (1-q) \cdot f_d]

where:

  • q=erT−du−dq = \frac{e^{rT} - d}{u - d}: the risk-neutral probability of an up move
  • 1−q1-q: the risk-neutral probability of a down move
  • fu,fdf_u, f_d: option payoffs in up and down states
  • rr: risk-free rate
  • TT: time to expiration

This formula has a striking interpretation. The term in brackets, q⋅fu+(1−q)⋅fdq \cdot f_u + (1-q) \cdot f_d, looks exactly like an expected value: we weight each possible payoff by a probability and sum. The factor e−rTe^{-rT} discounts this expected value back to the present using the risk-free rate. In other words, the option price equals the discounted expected payoff, where the expectation uses special probabilities qq and 1−q1-q.

In[9]:
Code
# Calculate risk-neutral probability
q = (np.exp(r * T) - d) / (u - d)

# Price option using risk-neutral valuation
f0_riskneutral = np.exp(-r * T) * (q * fu + (1 - q) * fd)
Out[10]:
Console
Risk-Neutral Probability Derivation
========================================
Risk-neutral probability of up move:
q = (e^(rT) - d) / (u - d)
q = (e^(0.05×1.0) - 0.85) / (1.2 - 0.85)
q = (1.0513 - 0.85) / (0.35)
q = 0.5751

Risk-neutral probability of down move:
1 - q = 0.4249

Option price via risk-neutral valuation:
f0 = e^(-rT) × [q × fu + (1-q) × fd]
f0 = e^(-0.05×1.0) × [0.5751 × 20.00 + 0.4249 × 0.00]
f0 = 0.9512 × [11.5012 + 0.0000]
f0 = $10.9403

Matches replication price: True

The quantity qq has a beautiful interpretation. It is the probability that would make the stock's expected return equal to the risk-free rate:

EQ[ST]=q⋅Su+(1−q)⋅Sd=S0⋅erTE^Q[S_T] = q \cdot S_u + (1-q) \cdot S_d = S_0 \cdot e^{rT}

where:

  • EQ[⋅]E^Q[\cdot]: expectation under the risk-neutral measure
  • STS_T: stock price at expiration
  • qq: risk-neutral probability
  • Su,SdS_u, S_d: stock prices in up and down states
  • S0S_0: current stock price
  • rr: risk-free rate

This is the defining property of risk-neutral probabilities. Under this special probability measure, which we denote QQ, the stock's expected return equals the risk-free rate. The stock is priced as if investors were indifferent to risk, demanding no premium for bearing uncertainty. Let's verify this:

In[11]:
Code
# Expected stock price under risk-neutral measure
E_Q_ST = q * Su + (1 - q) * Sd

# What it should equal
forward_price = S0 * np.exp(r * T)
is_match = np.isclose(E_Q_ST, forward_price)
Out[12]:
Console
Verification: Stock Earns Risk-Free Rate Under Q
==================================================
E^Q[S_T] = q × Su + (1-q) × Sd
E^Q[S_T] = 0.5751 × 120.00 + 0.4249 × 85.00
E^Q[S_T] = $105.1271

S0 × e^(rT) = 100 × e^(0.05×1.0) = $105.1271

Match: True

This is the defining property of risk-neutral probabilities: under these artificial probabilities, all assets earn the risk-free rate in expectation. The derivative price is then simply the discounted expected payoff under this risk-neutral measure. Derivative pricing therefore reduces to calculating an expectation under the appropriate probability measure.

Key Parameters

The key parameters for the One-Period Binomial Model are:

  • S₀: Current stock price. The base value from which up and down movements occur.
  • u, d: Up and down factors. Ratios determining the stock price in the next period (Su=S0⋅uS_u = S_0 \cdot u, Sd=S0⋅dS_d = S_0 \cdot d).
  • r: Risk-free interest rate. The rate at which the bond grows and future cash flows are discounted.
  • T: Time to expiration in years.
  • K: Strike price of the option.
  • q: Risk-neutral probability. The theoretical probability of an up move that equates the expected stock return to the risk-free rate.