Valuation of Interest Rate Derivatives › Pricing with Interest Rate Models
Quantitative FinanceAll chapters Valuation of Interest Rate Derivatives › Pricing with Interest Rate ModelsOne section · Sections in this chapter5 / 13 ↓
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
Black's model provides a convenient closed-form solution but assumes constant volatility and a specific distributional form. More sophisticated pricing uses the interest rate models from Chapters 14 and 15. These models capture richer dynamics, including mean reversion, time-varying volatility, and correlations between different points on the yield curve.
Short-Rate Models
The Hull-White model from Chapter 14 allows pricing via lattice methods. The main advantage of this approach is consistency: a single model, calibrated to match market prices of liquid instruments, can then price a wide range of derivatives. This consistency becomes central when hedging complex positions, where we need all instruments to be valued in a coherent framework.
We build a trinomial tree for the short rate, then use backward induction to value the derivative. This approach handles path-dependent features like Bermudan exercise and provides consistent pricing across instruments. The tree structure naturally accommodates the mean reversion that characterizes interest rate dynamics, pulling rates back toward a long-run level even as random shocks push them away.
For a caplet in a Hull-White tree, the valuation proceeds in three stages. First, we build the short-rate tree out to the caplet's payment date, constructing all possible rate scenarios at each time step. Second, at the payment date nodes, we calculate the caplet payoff based on the realized rate at each scenario. Third, we work backward through the tree, discounting expected values at each node, until we arrive at today's value.
def hull_white_caplet_tree(
kappa,
theta,
sigma,
time_to_fixing,
time_to_payment,
strike,
notional,
day_count_fraction,
n_steps=50,
):
"""
Price a caplet using a Hull-White trinomial tree.
This is a simplified implementation that demonstrates the concept.
"""
dt = time_to_payment / n_steps
# Tree parameters
dr = sigma * np.sqrt(3 * dt)
# Build the tree forward
n_fixing = int(time_to_fixing / dt)
n_payment = n_steps
# For simplicity, we use a recombining tree with 3 branches
# In practice, more sophisticated tree construction is needed
# Initialize tree at payment date
# Maximum number of nodes at step n is 2n+1
max_nodes = 2 * n_steps + 1
# Rates at each level (centered at theta)
rate_levels = theta + dr * np.arange(-(max_nodes // 2), max_nodes // 2 + 1)
# Initialize payoffs at payment date
payoffs = np.zeros(max_nodes)
for j in range(max_nodes):
# Payoff depends on rate at fixing time, but for simplicity
# we use rate at payment time as proxy
rate = rate_levels[j]
payoffs[j] = notional * day_count_fraction * max(rate - strike, 0)
# Backward induction
# Probabilities for trinomial tree
p_up = 1 / 6
p_mid = 2 / 3
p_down = 1 / 6
values = payoffs.copy()
for step in range(n_payment - 1, -1, -1):
new_values = np.zeros(max_nodes)
for j in range(1, max_nodes - 1):
rate_j = rate_levels[j]
# Mean reversion adjustment
drift = kappa * (theta - rate_j) * dt
# Discount factor for this step
df_step = np.exp(-rate_j * dt)
# Expected value under risk-neutral measure
expected_value = (
p_up * values[j + 1]
+ p_mid * values[j]
+ p_down * values[j - 1]
)
new_values[j] = df_step * expected_value
values = new_values
# Return value at root node
return values[max_nodes // 2]LIBOR Market Model
The LIBOR Market Model (LMM) from Chapter 15 directly models the forward rates that appear in cap and floor payoffs. This makes it particularly natural for pricing caps, as the forward rate dynamics are specified directly rather than derived from short-rate dynamics. Rather than modeling an abstract short rate and then computing forward rates, the LMM starts with the observable quantities that appear in derivative payoffs.
In the LMM, each forward rate evolves under its natural forward measure:
where:
- : forward rate for period at time
- : instantaneous volatility of the forward rate
- : Brownian motion increment under the forward measure
This equation describes how forward rates evolve randomly over time. The key feature is that under the forward measure, the drift term vanishes, leaving only the volatility-driven random component. This property, a consequence of careful measure selection, greatly simplifies pricing.
For caplet pricing, this reduces exactly to Black's model when volatility is constant. The LMM's power emerges when pricing instruments that depend on multiple forward rates, where the model captures correlations between different tenor rates. A spread option, which pays based on the difference between two rates, requires modeling how those rates move together. The LMM provides a framework for specifying and calibrating these correlations consistently.