HJM and BGM Models: Forward Rate Modeling

In earlier chapters of Wilmott’s book, we modeled interest rates by picking one short-term rate and deriving the entire yield curve from it. Works fine for simple stuff. But Heath, Jarrow, and Morton said: why model just the short end when you can model the whole forward rate curve at once?

Chapter 37 introduces two big frameworks for doing exactly that. The HJM model and its practical cousin, the BGM model. Both are workhorses of the fixed-income derivatives world.

The Big Idea Behind HJM

Traditional spot rate models (Vasicek, CIR, Hull-White) start with one random variable, the short-term interest rate $r$, and figure out what the rest of the yield curve must look like. This means the yield curve comes out of the model as a side effect. If you want to match today’s actual yield curve, you need to bolt on extra parameters. It feels hacky.

HJM flips this around. You start with the entire forward rate curve $F(t; T)$ as your fundamental object. Since forward rates are observed in the market today, the model automatically fits the current yield curve. No afterthought needed.

The zero-coupon bond price relates to forward rates through:

$$Z(t; T) = e^{-\int_t^T F(t; s) , ds}$$

HJM assumes zero-coupon bonds evolve randomly, and from that derives how the forward rate curve itself must evolve over time. The beautiful result? Once you specify the volatility structure of the forward rates, the drift is completely determined by no-arbitrage conditions.

The Risk-Neutral Drift Condition

This is the key result of HJM. In the risk-neutral world, the drift of the forward rate is not free to choose. It is locked in by the volatility:

$$m(t, T) = v(t, T) \int_t^T v(t, s) , ds$$

Here $v(t, T)$ is the volatility of the forward rate at maturity $T$. The drift $m(t, T)$ must equal this specific expression. Otherwise, arbitrage opportunities exist.

This is huge. You pick a volatility structure, and the math tells you everything else. No free parameters left to mess up.

The Catch: Non-Markov Behavior

Here is where HJM gets tricky. When you derive what happens to the spot rate $r(t)$ under HJM, you find it depends on the entire history of random shocks from the starting date to the current date. The spot rate becomes path-dependent.

In technical terms, the process is non-Markov. In a Markov process, only the current state matters for the future. In HJM, the past matters too. This has serious computational consequences.

If you try to build a binomial tree for HJM, you discover that an up-move followed by a down-move does NOT give you the same result as a down-move followed by an up-move. The tree becomes “bushy,” growing exponentially with each time step instead of linearly. This makes pricing American-style options painfully slow.

Monte Carlo to the Rescue (Sort Of)

For European-style derivatives, Monte Carlo simulation works well with HJM. The steps are:

  1. Simulate the evolution of the entire risk-neutral forward rate curve forward in time
  2. At each time step, calculate the realized bond prices from the simulated forward rates
  3. Calculate all cashflows that occur during the simulation
  4. Discount those cashflows back using the realized spot rate path
  5. Repeat many times and average the present values

The nice thing: since you are simulating the whole curve, you automatically get prices for bonds at every maturity. The bad thing: it is slow, especially if you need early exercise features.

Principal Component Analysis: Using Real Data

One of the coolest aspects of HJM is that you can feed real market data into the volatility structure. This is done through Principal Component Analysis (PCA).

Take historical forward rate data for many maturities (one-month, three-month, one-year, five-year, etc.). Calculate the covariance matrix of rate changes across maturities. Then find the eigenvalues and eigenvectors of that matrix.

What falls out is remarkable. The first principal component (biggest eigenvalue) represents a roughly parallel shift of the entire yield curve. This is the dominant movement. The second component represents a twist, where short rates move opposite to long rates. The third is a bending, where the middle of the curve moves differently from the ends.

Wilmott shows US data from 1988 to 1996 confirming this pattern. Three factors capture the vast majority of yield curve movements. So instead of modeling an infinite-dimensional forward curve, you can often get away with a two or three factor model.

The power method for finding these eigenvalues is simple. Start with a guess vector, multiply by the covariance matrix, normalize, repeat. The result converges to the eigenvector of the largest eigenvalue. Strip that component out and repeat for the next one.

The Exploding Rates Problem

One issue with HJM: there is no guarantee that rates stay positive, and lognormal forward rate volatility can cause rates to explode to infinity. This is a mathematical artifact of using continuously compounded rates.

The fix? Model rates with finite compounding periods instead. If you use rates accrued $m$ times per year (like actual LIBOR rates), you can have lognormal dynamics without the explosion problem. This idea leads naturally to the BGM model.

BGM: The Practitioner’s Model

The Brace, Gatarek, and Musiela model (also called the LIBOR Market Model) is essentially a discrete version of HJM. Instead of modeling a continuous forward rate curve, it models the actual observable discrete forward rates, the ones really quoted in the market.

The forward rate from time $T_i$ to $T_{i+1}$ is defined as:

$$F_i = \frac{1}{\tau}\left(\frac{Z_i}{Z_{i+1}} - 1\right)$$

where $\tau$ is the time between periods and $Z_i$ is the zero-coupon bond price at maturity $T_i$.

The key derivation works like this. You assume each forward rate follows some stochastic process and each zero-coupon bond drifts at the risk-free rate (because bonds are traded instruments in the risk-neutral world). Then, using Ito’s lemma and matching coefficients, you find the risk-neutral drift of each forward rate:

$$\frac{dF_i}{F_i} = \sigma_i \sum_{j=1}^{i} \frac{\rho_{ij} \sigma_j \tau F_j}{1 + \tau F_j} dt + \sigma_i dX_i$$

The drift depends on the volatilities $\sigma_i$, the correlations $\rho_{ij}$, and the forward rates themselves. No explicit risk-free rate $r$ appears. It dropped out of the algebra.

Why Practitioners Love BGM

Several reasons:

Observable quantities. BGM models rates that actually exist in the market. LIBOR rates are real, quoted numbers. The continuously compounded instantaneous forward rate of HJM is a mathematical abstraction.

No explosion. By working with discretely compounded rates, the explosion problem goes away.

Calibration. The volatility functions $\sigma_i$ are typically estimated from caplet prices. Since caplets are actively traded, you have liquid market data to calibrate against.

Flexibility. Any contract whose cashflows can be written as functions of the observed forward rates can be priced in this framework.

Present Valuing in BGM

One subtlety: in HJM you discount cashflows using the realized spot rate path. In BGM, there is no explicit spot rate. Instead, you discount period by period using the realized forward rates:

$$\text{Discount factor} = \prod_{k} \frac{1}{1 + \tau F_k}$$

This is the discrete analog of continuous discounting and converges to the HJM result as the period length $\tau$ goes to zero.

The Multi-Factor Extension

Both HJM and BGM extend naturally to multiple factors. For HJM with $N$ factors, each with its own volatility function $v_i(t, T)$ and its own random driver $dX_i$ (uncorrelated with each other), the drift condition becomes:

$$m(t, T) = \sum_{i=1}^{N} v_i(t, T) \int_t^T v_i(t, s) , ds$$

Same idea as the one-factor case, just summed over all factors. The PCA approach tells you how many factors you need and what they look like.

The Bottom Line

HJM was a theoretical breakthrough that unified all previous interest rate models under one framework. Any spot rate model (Ho-Lee, Vasicek, etc.) has an HJM representation. BGM took the HJM idea and made it practical by working with observable market rates.

For simple contracts like bond options, the market already has its own pricing conventions. HJM and BGM shine for complex multi-period derivatives where you need the evolution of the entire yield curve. Spread options, path-dependent interest rate derivatives, structured products with multiple fixing dates. That is where these models earn their keep.

The trade-off is computational cost. You are simulating entire curves, not single variables. But for contracts that depend on the whole term structure, there is no shortcut.


This is part of a series covering “Paul Wilmott on Quantitative Finance”. Next up: Fixed Income Term Sheets: Real Product Examples.

Previous: Spot Interest Rate Behavior.

About

About BookGrill

BookGrill.org is your guide to business books that sharpen leadership, refine strategy and build better organizations.

Know More