---
title: "Government-Bond Relative Value"
book: "Strategies II: Volatility, Relative Value, Macro and the Bank Desks"
subject: quant
language: en
chapter: 10
exercises: 8
source: https://one-course.com/books/quant/9/en/chapter/10-government-bond-relative-value
---

# Chapter 10 — Government-Bond Relative Value

Fit a smooth curve to a government’s bonds and some sit above it, some below. A relative-value book buys the cheap bonds and sells the rich ones, hedged, and waits a few weeks for the curve to take them back. The Federal Reserve Board’s own curve for the Treasury market leaves out, among others, the two most recent issues at each maturity, because they often trade at a premium for their liquidity and their value in repo. On this chapter’s synthetic market, forty bonds carry pricing errors of a few basis points. A weekly rich-cheap book earns a Sharpe ratio of 3.46 before costs when it is neutral in DV01, and 5.41 when it is neutral in all three curve factors. After a cost of a quarter of a basis point per unit of DV01 traded, these fall to 1.13 and 0.69, the better hedge now the worse book. The residuals also decay more slowly than a one-day estimate says: a half-life of 17.9 days by that estimate, but 40% of a residual is still there after 120 days. The build is `firm.bondrv`.

## 10.1 Fitted curves and their residuals

Gürkaynak, Sack and Wright published the Board’s daily Treasury curve from 1961 on. It is fitted with Svensson’s extension of the Nelson–Siegel form, which describes the whole curve with a few parameters. What goes into the fit matters as much as the form. The Board leaves out bonds with option-like features, securities within three months of maturity, all bills (whose market is segmented), twenty-year bonds from 1996 (which often looked cheap against ten-year notes), and the on-the-run and first off-the-run issues from two to thirty years. The fitted curve is a curve for ordinary, seasoned bonds.

**Definition 10.1 (Fitted-curve residual).**

A *fitted-curve residual* is a bond’s market yield minus the yield a smooth curve fitted to its market gives at its maturity: positive for a bond that is cheap to the curve (its yield is high), negative for a rich one.

Three factors describe most of the curve’s moves. In daily changes of the constant-maturity Treasury yields at 1, 2, 3, 5, 7, 10 and 20 years, from January 1994 to September 2026, the first principal component (a level) explains 87.9% of the variance. The second (a slope) explains 8.2%, and the third (a curvature) 2.0%. `firm.bondrv` builds a market on that shape. The Nelson–Siegel curve has three mean-reverting factors. Forty bonds start with maturities spread from one to thirty years, age a day at a time, and are replaced by a new thirty-year issue when they mature. Each bond’s yield carries a pricing error in two parts: 2 basis points that revert with a half-life of 40 days, and 2 more with a half-life of 250 days. The analyst sees the yields through half a basis point of quote noise, as stale quotes do, and fits the curve every day.

## 10.2 Butterflies and curve trades

**Definition 10.2 (Duration-neutral butterfly).**

A *duration-neutral butterfly* buys (or sells) a bond in the middle of the curve and sells (or buys) bonds on either side of it, in amounts whose DV01s (Book 2, chapter 3) sum to zero and are split between the wings so that the position is also neutral to a change in slope; it bets on the curvature at the middle.

The simplest measure is the 2–5–10 butterfly in yields: twice the five-year yield minus the two-year and the ten-year. From 1994 to 2026 it averaged $-1.6$ basis points with a standard deviation of 26.6. Its range ran from $-79$ to 74, and its daily persistence of 0.9934 is a half-life of 105 days ([Figure 10.1](#fig-s2-government-bond-relative-value-fly)). A curve trade is the same idea with two legs: a steepener or flattener, DV01-matched, betting on the slope.

![The 2–5–10 Treasury butterfly in yields, monthly means of daily values, January 1994 to September 2026, from the Board’s constant-maturity yields. Derived from the H.15 series on FRED. Data: s2_fetch_ust.](https://one-course.com/images/onecourse/chapters/quant-9/s2-government-bond-relative-value/fig-ae24d92dc672.svg)

***Figure 10.1.** The 2–5–10 Treasury butterfly in yields, monthly means of daily values, January 1994 to September 2026, from the Board’s constant-maturity yields. Derived from the H.15 series on FRED. Data: `s2_fetch_ust`.*

## 10.3 Rich-cheap signals and their decay

**Definition 10.3 (Rich-cheap signal).**

A *rich-cheap signal* ranks bonds by their [fitted-curve residuals](#def-s2-government-bond-relative-value-residual), often scaled by each bond’s own history, to choose which to buy (the cheapest) and which to sell (the richest) in a hedged relative-value book.

The book ([Listing 10.1](#lst-s2-government-bond-relative-value-book)) rebalances every five days. It buys the five cheapest bonds and sells the five richest, equal in DV01, and pays a quarter of a basis point of yield per unit of DV01 traded. The positions are then hedged one of three ways. The unhedged version keeps only the long side.

| ten years, gross DV01 of one | Sharpe (gross) | Sharpe (net) | mean (bp/yr) | cost (bp/yr) |
| --- | --- | --- | --- | --- |
| long the cheap only | 0.36 | 0.25 | 24.4 | 7.3 |
| DV01-neutral | 3.46 | 1.13 | 11.1 | 7.3 |
| neutral in three factors | 5.41 | 0.69 | 9.8 | 8.3 |

The long-only book is a duration position with a small tilt, a volatility of 67.4 basis points a year against 3.2 for the DV01-neutral book and 1.8 for the factor-neutral one. Removing the three factors takes out the curve’s moves and leaves the residuals. But the factor hedge spreads small positions over all forty bonds, and those positions change every week, so turnover rises from 29 to 33 units of DV01 a year. At a cost of 0.25 basis points the hedge’s cost exceeds what it saves. At 0.1 basis points the ranking turns back: 2.54 for the DV01-neutral book, 3.48 for the factor-neutral one.

The residuals’ decay is slower than it looks ([Figure 10.2](#fig-s2-government-bond-relative-value-decay)). Regressing tomorrow’s residual on today’s gives 0.96, a half-life of 17.9 days, shorter than either planted part because the quote noise vanishes overnight. Over longer horizons the slow part takes over. After 20 days 81% of a residual is still there, after 60 days 59%, after 120 days 40%. The fast part alone would leave 71%, 35% and 12%. A book that sizes its holding period on the one-day estimate holds too briefly and pays too much turnover.

![How fast the synthetic bonds’ fitted residuals decay: the regression slope of the residual h days later on today’s, pooled over bonds, against the planted two-part error and its fast part alone (half-life 40 days). Data: s2_bondrv.decay.](https://one-course.com/images/onecourse/chapters/quant-9/s2-government-bond-relative-value/fig-b3487d3a4dab.svg)

***Figure 10.2.** How fast the synthetic bonds’ fitted residuals decay: the regression slope of the residual $h$ days later on today’s, pooled over bonds, against the planted two-part error and its fast part alone (half-life 40 days). Data: `s2_bondrv.decay`.*

## 10.4 Leverage and funding

A book with a volatility of a few basis points a year per unit of DV01 has to be levered to matter. Relative-value books finance their long bonds in repo (Book 2, chapter 5) and borrow the bonds they are short through reverse repo. Their return depends on the repo rates of the specific bonds. A bond that goes special in repo is cheap to borrow against and dear to short. The on-the-run issues the Board leaves out of its curve are rich partly because of that specialness. The trade’s risks come from the financing: haircuts that rise, repo that cannot be rolled, and many books holding the same positions. Duarte, Longstaff and Yu found that the fixed-income arbitrage strategies needing more intellectual capital earned significant alphas after bond and equity factors and after fees. That is also why the trade’s costs, not its signals, decide who can run it.

## 10.5 Strategy files

**Strategy file 10.1 — Fitted-curve rich-cheap.**

**Who pays you, and why.** Investors whose demand for particular issues (index rebalancing, regulatory holdings, supply) moves them away from the curve for weeks.

**Instruments and venues.** Government bonds, repo and reverse repo.

**Signal.** [Fitted-curve residuals](#def-s2-government-bond-relative-value-residual), scaled by each bond’s history.

**Sizing and execution.** Hedged in DV01 or curve factors; rebalanced weekly or on large moves.

**Costs.** Bid-ask on seasoned issues; repo rates; the cost of the hedge’s turnover.

**How it dies.** Residuals that trend (supply, specialness); funding that fails.

**Horizon, capacity, infrastructure.** Weeks to months; a daily curve fit, a repo desk.

**Backtest honestly.** Fit on quotes available at the time; trade at bid and offer; measure decay at the holding horizon.

**Sources.** Gürkaynak, Sack and Wright (2007) on the fitted curve; this chapter: 1.13 net DV01-neutral, 0.69 factor-neutral.

**Strategy file 10.2 — Duration-neutral butterfly.**

**Who pays you, and why.** Demand concentrated at one point of the curve.

**Instruments and venues.** Three bonds or futures; swaps.

**Signal.** The butterfly’s level against its history or a model’s fair value.

**Sizing and execution.** DV01-neutral and slope-neutral wings.

**Costs.** Three legs’ bid-ask.

**How it dies.** Curvature that trends: the 2–5–10 butterfly’s half-life was 105 days from 1994 to 2026.

**Horizon, capacity, infrastructure.** Months.

**Backtest honestly.** Weights recomputed as durations change.

**Sources.** This chapter’s FRED statistics; no performance figure verified.

**Strategy file 10.3 — Curve steepener or flattener.**

**Who pays you, and why.** Nobody reliably: a view on the slope, often on monetary policy.

**Instruments and venues.** Two bonds or futures, DV01-matched.

**Signal.** Slope against a policy or macro forecast.

**Sizing and execution.** DV01-neutral; sized on slope volatility.

**Costs.** Two legs; carry and roll-down differences.

**How it dies.** The level and slope move together in a way the hedge ratio misses.

**Horizon, capacity, infrastructure.** Months.

**Backtest honestly.** Carry and roll-down included.

**Sources.** No performance figure verified.

**Strategy file 10.4 — Off-the-run versus on-the-run.**

**Who pays you, and why.** Holders who pay for the on-the-run issue’s liquidity and its value in repo.

**Instruments and venues.** The on-the-run issue sold short, a nearby off-the-run issue bought.

**Signal.** The yield spread between them against its history over the auction cycle.

**Sizing and execution.** DV01-matched; the short financed in reverse repo.

**Costs.** The on-the-run issue’s repo specialness: the cost of borrowing it.

**How it dies.** A flight to liquidity widens the spread.

**Horizon, capacity, infrastructure.** An auction cycle.

**Backtest honestly.** Special repo rates, not general collateral.

**Sources.** Gürkaynak, Sack and Wright (2007) on why on-the-run issues are excluded; no performance figure verified.

**Strategy file 10.5 — Principal-component-hedged residual.**

**Who pays you, and why.** As for rich-cheap.

**Instruments and venues.** Bonds or futures across the curve.

**Signal.** Residuals after the first three principal components of yield changes.

**Sizing and execution.** Exposures to the components removed; the hedge spread over many bonds.

**Costs.** The hedge’s turnover.

**How it dies.** Costs: in this chapter the factor hedge lowered the net Sharpe ratio at a quarter of a basis point.

**Horizon, capacity, infrastructure.** Weeks.

**Backtest honestly.** Components estimated on past data only.

**Sources.** This chapter: 5.41 gross, 0.69 net.

## 10.6 Tutorial: above and below the curve

**Goal.** Simulate the government market, fit the curve daily, trade the residuals with three hedges, and measure their decay; read the real Treasury curve’s components and butterfly. **End state:** the table and the two figures.

1. **The book**. `def book (sim: dict , cfg: BondConfig | None = None , hedge: str = " factors " ) -> dict : """Every `every` days, long the k cheapest bonds (residual yield above the curve) and short the k richest, equal DV01 each; hedge 'none' keeps only the long side, 'dv01' both sides, 'factors' both sides with the three curve exposures removed using all bonds. Gross DV01 is one. P&L is minus DV01 times the yield change, in bp.""" cfg = cfg or BondConfig() y, tau = sim[" y " ], sim[" tau " ] res = fit_residuals(sim[" seen " ], tau, cfg.decay) T, n = y.shape pnl, turnover = np.zeros(T), np.zeros(T) w = np.zeros(n) for t in range (1 , T - 1 ): if t % cfg.every == 0 or sim[" reissued " ][t].any(): order = np.argsort(res[t]) new = np.zeros(n) new[order[-cfg.k:]] = 1.0 if hedge != " none " : new[order[:cfg.k]] = -1.0 if hedge == " factors " : new = neutralise(new, loadings(tau[t], cfg.decay)) new = new / np.abs(new).sum() turnover[t] = np.abs(new - w).sum() w = new moved = ~sim[" reissued " ][t + 1 ] # a matured bond is closed at yesterday's mark pnl[t + 1 ] = -(w[moved] * (y[t + 1 , moved] - y[t, moved])).sum() * 1e4 cost = turnover * cfg.cost return {" pnl " : pnl, " turnover " : turnover, " cost " : cost, " net " : pnl - np.roll(cost, 1 ), " residuals " : res}` **Listing 10.1.** Weekly rich-cheap positions, hedged three ways, with costs. code/firm/bondrv/firm_bondrv.py
2. **The decay**. `def decay (horizons=(1 , 5 , 20 , 60 , 120 )): """Share of a fitted residual still there after h days (the slope of res[t + h] on res[t], pooled over bonds and days, excluding reissues), against the planted mixture of two half-lives and the planted fast part alone.""" cfg, sim, books = market() res = books[" dv01 " ][" residuals " ] T = res.shape[0 ] out = {} for h in horizons: a, b = res[:T - h].ravel(), res[h:].ravel() c = np.cumsum(sim[" reissued " ], axis=0 ) alive = c[h:] == c[:T - h] # no reissue in between a, b = a[alive.ravel()], b[alive.ravel()] fast, slow = 0.5 ** (h / cfg.err_half_life), 0.5 ** (h / cfg.slow_half_life) planted = (cfg.err_sd**2 * fast + cfg.slow_sd**2 * slow) / (cfg.err_sd**2 + cfg.slow_sd**2 ) out[h] = {" slope " : float ((a * b).sum() / (a * a).sum()), " planted " : float (planted), " fast " : float (fast)} r1 = out[1 ][" slope " ] return out | {" half_life_ar1 " : math.log(0.5 ) / math.log(r1)}` **Listing 10.2.** How much of a residual is left after h days, against the planted parts. code/strategies-2/10-government-bond-relative-value/python/s2_bondrv.py
3. **Run** `s2_fetch_ust.py` once, then `table()` , `table(0.1)` , `decay()` and `fig_bondrv.py` .

**What to change next.** Rebalance only when a residual has moved by more than a basis point; hedge with three liquid bonds instead of all forty; add on-the-run issues with a planted liquidity premium and exclude them from the fit.

## 10.7 Build: bond relative value

**Purpose.** A synthetic government bond market, daily Nelson–Siegel fits, residuals, factor hedges and a rich-cheap book.

**Interface.** `BondConfig(…)`, `loadings(tau, decay)`, `simulate_market(cfg)`, `fit_residuals(yields, tau, decay)`, `neutralise(w, X)`, `book(sim, cfg, hedge)`.

**Rules.** Fit on the yields the analyst sees; trade at the true ones; a matured bond is closed at its last mark; costs per unit of DV01 traded.

**Acceptance tests.** `code/firm/bondrv/tests/`: the loadings’ limits; a pure curve leaves no residual; neutralised weights have no factor exposure; the factor hedge removes curve moves but not costs.

**Stretch.** Svensson’s fourth factor; repo specialness; auctions and reissues.

Sources and further reading

- R. S. Gürkaynak, B. Sack and J. H. Wright, “The U.S. Treasury yield curve: 1961 to the present”, *Journal of Monetary Economics* 54(8), 2007 (FEDS working paper 2006-28).
- J. Duarte, F. A. Longstaff and F. Yu, “Risk and return in fixed-income arbitrage: nickels in front of a steamroller?”, *Review of Financial Studies* 20(3), 2007.
- Board of Governors of the Federal Reserve System, H.15 constant-maturity Treasury yields, via FRED.

## 10.8 Exercises

**Exercise 10.1 ★.**

A pricing error reverts with a daily persistence of $0.5^{1/40}$. What is its half-life?

**Solution of Exercise 10.1.**

$\ln 0.5/\ln 0.5^{1/40} = 40$ days.

**Exercise 10.2 ★.**

The two-year yields 4.85%, the five-year 4.99% and the ten-year 5.11%. What is the 2–5–10 butterfly in basis points?

**Solution of Exercise 10.2.**

$2 \times 4.99 - 4.85 - 5.11 = 0.02$ percentage points: 2.0 basis points.

**Exercise 10.3 ★.**

Why are the residuals of a least-squares curve fit already neutral to the fitted factors?

**Solution of Exercise 10.3.**

Least squares makes the residuals orthogonal to the regressors: $X^\top(y - X\hat\beta) = 0$. A book with weights proportional to the residuals is already neutral to the fitted factors; the hedge matters once the book selects only some bonds.

**Exercise 10.4 ★★.**

Why does quote noise make a one-day estimate of the residuals’ half-life too short?

**Solution of Exercise 10.4.**

The noise adds variance to today’s residual without any persistence, so the regression of tomorrow on today is biased towards zero: the fitted persistence is too low and the half-life too short.

**Exercise 10.5 ★★.**

Why does the Board’s curve exclude on-the-run issues, and what trade does their exclusion suggest?

**Solution of Exercise 10.5.**

They often trade at a premium for their liquidity and their specialness in repo, which would distort a curve for ordinary bonds. The premium suggests selling the on-the-run issue against a nearby off-the-run one, if its repo cost can be carried.

**Exercise 10.6 ★★.**

Why did the factor-neutral book have the higher gross Sharpe ratio and the lower net one?

**Solution of Exercise 10.6.**

Removing three factors takes out almost all curve risk, so gross volatility falls most; but the hedge adds small positions in all forty bonds that change every week, and at 0.25 basis points the extra turnover costs more than the risk it removes is worth.

**Exercise 10.7 ★★★.**

*Coding.* Run `table(0.1)`. How do the net Sharpe ratios change, and what does that say about who can run the trade?

**Solution of Exercise 10.7.**

The DV01-neutral book rises from 1.13 to 2.54 and the factor-neutral from 0.69 to 3.48: with cheap execution the better hedge wins. The trade belongs to whoever trades most cheaply, often a dealer or a fund with low execution and financing costs.

**Exercise 10.8 ★★★.**

*Find the flaw.* “Our residuals have a half-life of 18 days, so we close every position after a month.”

**Solution of Exercise 10.8.**

The 18 days come from a one-day regression biased by quote noise and by the fast part of the error; at 120 days 40% of a residual is still there. Closing after a month leaves most of the expected reversion uncollected and pays turnover again.

## 10.9 Problem: Above and Below the Curve

**Problem 10.1.**

Weekend problem — a rich-cheap book

The chapter’s synthetic market, the Treasury curve and the public record.

**Part I — The curve.**

1. What did Gürkaynak, Sack and Wright publish, and with what method?
2. Which securities does their fit exclude, and why?
3. Give the variance shares of the first three components of Treasury yield changes.
4. Define a [fitted-curve residual](#def-s2-government-bond-relative-value-residual) .

**Part II — The trades.**

5. Define a [duration-neutral butterfly](#def-s2-government-bond-relative-value-fly) and give the 2–5–10 statistics.
6. Define a [rich-cheap signal](#def-s2-government-bond-relative-value-signal) .
7. Describe the synthetic market’s pricing errors.
8. Describe the book and its three hedges.

**Part III — The results.**

9. Give the gross and net Sharpe ratios by hedge.
10. Why does the unhedged book have a low Sharpe ratio?
11. Why does the ranking change with costs?
12. How fast do the residuals decay?

**Part IV — The verdict.**

13. State the *named result* : the rich-cheap book’s Sharpe ratio by hedge and the half-life of the residuals.
14. Why is the one-day half-life misleading?
15. What does leverage add to the trade’s risks?
16. Where do the trade’s costs come from?
17. How would you backtest it honestly?
18. Which strategy file depends most on repo?
19. How does this chapter relate to chapter 11?
20. In one sentence: what does a relative-value bond book sell?

**Solution of Problem 10.1.**

1. The Board’s daily Treasury curve from 1961, fitted with Svensson’s extension of Nelson–Siegel.
2. Callable and flower bonds, securities within three months of maturity, bills, twenty-year bonds from 1996, and on-the-run and first off-the-run issues: they carry features, segmentation or liquidity premiums that ordinary bonds do not.
3. 87.9%, 8.2% and 2.0%.
4. Market yield minus the fitted curve’s yield at the bond’s maturity.
5. Middle against wings, neutral in DV01 and slope; mean $-1.6$ basis points, standard deviation 26.6, half-life 105 days.
6. A ranking of bonds by residual to choose which to buy and sell.
7. 2 basis points reverting in 40 days, 2 in 250 days, seen through 0.5 basis points of noise.
8. Five cheapest long, five richest short, weekly; unhedged (long only), DV01-neutral, or neutral in three factors.
9. 0.36, 3.46 and 5.41 gross; 0.25, 1.13 and 0.69 net.
10. It is mostly a duration position.
11. The factor hedge’s turnover costs more at 0.25 basis points than its risk reduction is worth; at 0.1 it does not.
12. 81% left after 20 days, 59% after 60, 40% after 120.
13. **Named result.** Net of costs the DV01-neutral book earns a Sharpe ratio of 1.13 and the factor-neutral book 0.69 (5.41 gross); the residuals’ one-day half-life is 17.9 days, but 40% of a residual remains after 120 days.
14. Quote noise and the error’s slow part both escape it.
15. Financing: haircuts, repo rolls, specialness, crowded positions.
16. Bid-ask, repo and the hedge’s turnover.
17. Fit on quotes known then, trade at bid and offer, include repo, measure decay at the holding horizon.
18. Off-the-run versus on-the-run.
19. Chapter 11 trades a bond against its future, financed in repo at high leverage.
20. Liquidity and balance sheet to investors whose demands push bonds away from the curve.

## 10.10 Interview questions

**Interview question 10.1 ★ trader.**

What makes a bond rich or cheap?

**Solution of Interview question 10.1.**

Its yield against a curve fitted to comparable bonds: supply, index and regulatory demand, liquidity, repo specialness, coupon and tax effects make bonds sit above or below.

**Interview question 10.2 ★★ researcher.**

How would you fit a government yield curve, and which bonds would you leave out?

**Solution of Interview question 10.2.**

A smooth parametric form (Nelson–Siegel–Svensson) or a spline fitted to seasoned notes and bonds weighted by duration; leave out bills, bonds near maturity, on-the-run issues, and bonds with special features.

**Interview question 10.3 ★★ trader.**

Build a butterfly that is neutral in DV01 and in slope. What does it still bet on?

**Solution of Interview question 10.3.**

Solve for wing weights so that total DV01 and exposure to a slope move are zero; the position still bets on curvature at the middle, on the three bonds’ own residuals, and on their repo rates.

**Interview question 10.4 ★★ risk.**

A relative-value book is levered 30 times. What can go wrong?

**Solution of Interview question 10.4.**

Haircuts rise and force selling, repo cannot be rolled, residuals widen before they revert, many funds hold the same positions and sell together.

**Interview question 10.5 ★★ developer.**

Design the daily curve fit: inputs, exclusions, checks and outputs.

**Solution of Interview question 10.5.**

Inputs: clean prices or yields of eligible bonds; exclusions by rule; a weighted least-squares fit; outputs: parameters, fitted yields, residuals and their history; checks: fit error, parameter jumps, stale prices, new issues.

**Interview question 10.6 ★★★ researcher.**

A residual is $e_t + \eta_t$, with $e_t$ an AR(1) of persistence $\phi$ and variance $\sigma_e^2$ and $\eta_t$ independent noise of variance $\sigma_\eta^2$. Show that the one-day regression slope is $\phi\,\sigma_e^2/(\sigma_e^2 + \sigma_\eta^2)$, and explain the bias in the half-life.

**Solution of Interview question 10.6.**

The slope is $\mathrm{Cov}(e_{t+1} + \eta_{t+1}, e_t + \eta_t)/\mathrm{Var}(e_t + \eta_t) = \phi\sigma_e^2/(\sigma_e^2 + \sigma_\eta^2)$. It is below $\phi$, so $\ln 0.5/\ln(\text{slope})$ understates the half-life; the bias grows with the noise’s share of the residual’s variance.
