Bootstrapping the interest-rate term structure Marco Marchioro www.marchioro.org October 20 th, 2012
Bootstrapping the interest-rate term structure 1 Summary (1/2) Market quotes of deposit rates, IR futures, and swaps Need for a consistent interest-rate curve Instantaneous forward rate Parametric form of discount curves Choice of curve nodes
Bootstrapping the interest-rate term structure 2 Summary (2/2) Bootstrapping quoted deposit rates Bootstrapping using quoted interest-rate futures Bootstrapping using quoted swap rates QuantLib, bootstrapping, and rate helpers Derivatives on foreign-exchange rates Sensitivities of interest-rate portfolios (DV01) Hedging portfolio with interest-rate risk
Bootstrapping the interest-rate term structure 3 Major liquid quoted interest-rate derivatives For any given major currency (EUR, USD, GBP, JPY,...) Deposit rates Interest-rate futures (FRA not reliable!) Interest-rate swaps
Bootstrapping the interest-rate term structure 4 Quotes from Financial Times c Marco Marchioro 2010-2012
Bootstrapping the interest-rate term structure 5 Consistent interest-rate curve We need a consistent interest-rate curve in order to Understand the current market conditions (e.g. forward rates) Compute the at-the-money strikes for Caps, Floor, and Swaptions Compute the NPV of exotic derivatives Determine the fair forward currency-exchange rate Hedge portfolio exposure to interest rates... (many more reasons)...
Bootstrapping the interest-rate term structure 6 One forward rate does not fit all (1/2) Assume a continuously compounded discount rate from a flat rate r D(t) = e r t (1) Matching exactly the implied discount for the first deposit rate and for the second deposit rate 1 1 + T 1 r fix(1) = D(T 1 ) = e r T 1 (2) 1 1 + T 1 r fix(2) = D(T 2 ) = e r T 2 (3)
Bootstrapping the interest-rate term structure 7 One forward rate does not fit all (2/2) Yielding and r = 1 T 1 log ( 1 + T 1 r fix(1) ) r = 1 T 2 log ( 1 + T 2 r fix(2) ) (4) (5) which would imply two values for the same r. Hence, a single constant rate is not consistent with all market quotes!
Bootstrapping the interest-rate term structure 8 Instantaneous forward rate (1/2) Given two future dates d 1 and d 2, the forward rate was defined as, [ ] 1 D (d1 ) D (d r fwd (d 1, d 2 ) = 2 ) (6) T (d 1, d 2 ) D (d 2 ) We define the instantaneous forward rate f(d 1 ) as the limit, f(d 1 ) = lim r fwd (d 1, d 2 ) (7) d 2 d 1
Bootstrapping the interest-rate term structure 9 Instantaneous forward rate (2/2) Given certain day-conventions, set T = T (d 0, d) then after preforming a change of variable from d to T we have, [ ] 1 D(T ) D(T + t) f(t ) = lim (8) t 0 t D(T + t) It can be shown that f(t ) = 1 D(T ) D(T ) T log [D(T )] = T (9)
Bootstrapping the interest-rate term structure 10 Instantaneous forward rate for flat curve Consider a continuously-compounded flat-forward curve D(d) = e z T (d 0,d) D(T ) = e z T (10) with a given zero rate z, then log [D(T )] f(t ) = T = [ z T ] = z T = log [ e z T T ] is the instantaneous forward rate
Bootstrapping the interest-rate term structure 11 Discount from instantaneous forward rate Integrating the expression for the instantaneous forward rate log [D(t)] T dt = f(t)dt log [D(T )] = T f(t)dt 0 and taking the exponential we obtain { D(T ) = exp T 0 f(t)dt } so that choosing f(t) results in a discount factor
Bootstrapping the interest-rate term structure 12 Forward expectations Recall D(T ) = E [ e T 0 r(t)dt] = e T 0 f(t)dt (11) Similarly in the forward measure (see Brigo Mercurio) [ ] r fwd (t, T ) = E T 1 T r(t )dt T t t and (12) f(t ) = E T [r(t)dt] (13)
Bootstrapping the interest-rate term structure 13 Piecewise-flat forward curve (1/2) Given a number of nodes, T 1 < T 2 < T 3, define the instantaneous forward rate as until the last node f(t) = f 1 for t T 1 (14) f(t) = f 2 for T 1 < t T 2 (15) f(t) = f 3 for T 2 < t T 3 (16) f(t) =...
Bootstrapping the interest-rate term structure 14 Piecewise-flat forward curve (2/2) We determine the discount factor D(T ) using equation D(T ) = exp It can be shown that { T 0 f(t)dt } D(T ) = 1 e f 1(T T 0 ) D(T ) = D(T 1 ) e f 2(T T 1 )... =... D(T ) = D(T i ) e f i+1(t T i ) for T T 1 (17) for T 1 < T T 2 (18) (19) for T i < T T i+1 (20) Recall that T 0 = 0
Bootstrapping the interest-rate term structure 15 Questions?
Bootstrapping the interest-rate term structure 16 (The art of) choosing the curve nodes Choose d 0 the earliest settlement date First few nodes to fit deposit rates (until 1st futures?) Some nodes to fit futures until about 2 years Final nodes to fit swap rates
Bootstrapping the interest-rate term structure 17 Why discard long-maturity deposit rates? Compare cash flows of a deposit and a one-year payer swap for a notional of 100,000$ Date Deposit IRS Fixed Leg IRS Ibor Leg Today - 100,000$ 0$ 0$ Today + 6m 0$ 0$ 1,200$ Today + 12m 102,400$ -2,500$ 1,280 $ For maturities longer than 6 months credit risk is not negligible *Estimated by the forward rate
Bootstrapping the interest-rate term structure 18 Talking to the trader: bootstrap Deposit rates are unreliable: quoted rates may not be tradable Libor fixings are better but fixed once a day (great for riskmanagement purposes!) FRA quotes are even more unreliable than deposit rates
Bootstrapping the interest-rate term structure 19 0.9 Boostrap of the USD curve using different helper lists 0.8 0.7 Zero rates (%) 0.6 0.5 0.4 0.3 0.2 0.1 Depo1Y + Swaps Depo6m + Swaps Depo3m + Swaps Depo3m + Futs + Swaps Depo2m + Futs + Swaps 0 0.5 1 1.5 2 2.5 3 3.5 time to maturity
Bootstrapping the interest-rate term structure 20 0.4 0.35 0.3 Boostrap of the USD curve using different helper lists Depo1Y + Swaps Depo6m + Swaps Depo3m + Swaps Depo3m + Futs + Swaps Spread over risk free (%) 0.25 0.2 0.15 0.1 0.05 0-0.05 0 0.5 1 1.5 2 2.5 3 3.5 time to maturity
Bootstrapping the interest-rate term structure 21 Discount interpolation Taking the logarithm in the piecewise-flat forward curve log [D(T )] = log [ D(T i 1 ) ] (T T i )f i+1 (21) discount factors are interpolated log linearly Other interpolations are possible and give slightly different results between nodes (see QuantLib for a list) Important: use the same type of interpolation for all curves!
Bootstrapping the interest-rate term structure 22 Bootstrapping the first node (1/2) Set the first node to the maturity of the first depo rate. Recalling equation (2) for f 1 = r, D(T 1 ) = e f 1 T 1 = 1 1 + T 1 r fix(1) (22) This equation can be solved for f 1 to give, f 1 = 1 T 1 log ( 1 + T 1 r fix(1) ) (23) we obtain the value of f 1.
Bootstrapping the interest-rate term structure 23 Bootstrapping the first node (2/2) 6.0% 5.0% 4.0% 3.0% 2.0% 1.0% f 1 3m 6m 1y 2y 3y 4y 5y 7y 10y
Bootstrapping the interest-rate term structure 24 Bootstrapping the second node (1/2) Set the second node to the maturity of the second depo rate. The equivalent equation for the second node gives, D(T 2 ) = e f 1 T 1 e f 2 (T 2 T 1 ) = 1 1 + T 2 r fix(2) (24) from which we obtain f 2 = log ( ) 1 + T 2 r fix(2) f1 T 1 (25) T 2 T 1 Continue for all deposit rates to be included in the term structure
Bootstrapping the interest-rate term structure 25 Bootstrapping the second node (2/2) 6.0% 5.0% 4.0% 3.0% 2.0% 1.0% f 1 f 2 3m 6m 1y 2y 3y 4y 5y 7y 10y
Bootstrapping the interest-rate term structure 26 Bootstrapping from quoted futures (1/2) For each futures included in the term structure Add the futures maturity + tenor date to the node list Solve for the appropriate forward rates that reprice the futures Note: futures are great hedging tools
Bootstrapping the interest-rate term structure 27 Bootstrapping from quoted futures (2/2) 6.0% 5.0% 4.0% 3.0% 2.0% 1.0% f 1 f 2 f 3 f 4 3m 6m 1y 2y 3y 4y 5y 7y 10y
Bootstrapping the interest-rate term structure 28 Bootstrapping from quoted swap rates For each interest-rate swap to be included in the term structure Add the swap maturity date to the node list Solve for the appropriate forward rate that give null NPV to the given swap
Bootstrapping the interest-rate term structure 29 Final piecewise-flat forward curve 6.0% 5.0% 4.0% 3.0% 2.0% 1.0% f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 3m 6m 1y 2y 3y 4y 5y 7y 10y
Bootstrapping the interest-rate term structure 30 Extrapolation Sometimes we need to compute the discount factor beyond the last quoted node We assume the last forward rate to extend beyond the last maturity D(T ) = D(T n ) e f n(t T n ) for T > T n (26)
Bootstrapping the interest-rate term structure 31 Questions?
Bootstrapping the interest-rate term structure 32 QuantLib: forward curve The curve defined in equations (17)-(20) is available in QuantLib as qlforwardcurve
Bootstrapping the interest-rate term structure 33 QuantLib: rate helpers Containers with the logic and data needed for bootstrapping Function qldepositratehelper for deposit rates Function qlfuturesratehelper for futures quotes Function qlswapratehelper2 for swap fair rates
Bootstrapping the interest-rate term structure 34 QuantLib: bootstrapped curve qlpiecewiseyieldcurve: a curve that fits a series of market quotes qlratehelperselection: a helper-class useful to pick rate helpers
Bootstrapping the interest-rate term structure 35 Questions?
Bootstrapping the interest-rate term structure 36 Foreign-exchange rates Very often derivatives are used in order to hedge against future changes in foreign exchange rates. We extend the approach of the previous sections to contracts that involve two different currencies. Consider a home currency (e.g. e), a foreign currency (e.g. $), and their current currency-exchange rate so that X e$, 1 $ = 1e X e$ (27)
Bootstrapping the interest-rate term structure 37 Foreign-exchange forward contract Given a certain notional amount N e in the home currency and a notional amount N $ in the foreign currency, consider the contract that allows, at a certain future date d, to pay N $ and to receive N e. Pay/Receive (at d) = N e N $ (28) Bootstrap the risk-free discount curve D e (d) using the appropriate quoted instruments in the e currency, and the risk-free discount curve D $ (d) similarly.
Bootstrapping the interest-rate term structure 38 Present value of notionals The present value of N e in the home currency is given by PV e = D e (d) N e (29) the present value of N $ in the foreign currency can be written as PV $ = D $ (d) N $ (30) Dividing the first expression by X e$ PV e = D e (d) N e. (31) X e$ X e$
Bootstrapping the interest-rate term structure 39 NPV of an FX forward The net present value of the forward contract in the $ currency is NPV $ fx fwd = PVe X e$ PV $ = D e (d) N e X e$ D $ (d) N $ (32) The same amount can be expressed in the foreign currency as, NPV e fx fwd = De (d)n e X e$ D $ (d) N $ (33)
Bootstrapping the interest-rate term structure 40 Arbitrage-free forward FX rate The contract is usually struck so the its NPV=0, from equation (32) N $ = De (d) X e$ D $ (d) N e. Comparing with (27), we define the forward exchange rate X e$ (d) X e$ (d) = X e$ D $ (d) D e (d). (34) The exchange rate X e$ (d) is the fair value of an FX rate at d. According to (34) the forward FX rate is highly dependent on the discount curves in each respective currency.
Bootstrapping the interest-rate term structure 41 Questions?
Bootstrapping the interest-rate term structure 42 Interest-rate sensitivities In order to hedge our interest-rate portfolio we compute the interest rate sensitivities
Bootstrapping the interest-rate term structure 43 Dollar Value of 1 basis point The Dollar Value of 1 basis point, or DV01, of an interest-rate portfolio P is the variation incurred in the portfolio when interest rates move up one basis point: with r=0.01% DV01 P = P (r 1 + r, r 2 + r,...) P (r 1, r 2,...) (35) Using a Taylor approximation DV01 P P r r (36)
Bootstrapping the interest-rate term structure 44 Managing interest-rate risk (1/2) Consider an interest-rate portfolio P with a certain maturity T Look for a swap S with the same maturity Compute DV01 for both portfolio (DV01 P ) and Swap (DV01 S )
Bootstrapping the interest-rate term structure 45 Managing interest-rate risk (2/2) Buy an amount H, the hedge ratio, of the given swap, H = DV01 P DV01 S (37) The book composed by the portfolio and the swap is delta hedged B(r) = P (r) + H S(r) (38) where r is the vector of all interest rates B(r + r) B(r) DV01 P r + H DV01 S r 0 (39)
Bootstrapping the interest-rate term structure 46 Advanced interest-rate risk management (1/2) For highly volatile interest rates use higher-order derivatives (gamma hedging) CV P 2 P r (40) r2 For portfolio with highly varying cash flows compute as many DV 01 as the number of maturities. E.g. DV01 2Y, DV01 3Y,... DV01 1Y P = P (r 1,..., r 2Y + r, r 3Y,...) P (r) (41)
Bootstrapping the interest-rate term structure 47 Advanced interest-rate risk management (2/2) Build the hedging book as B = P + H 2Y S 2Y + H 3Y S 3Y +... (42) with H 2Y = DV012Y P DV01 2Y S, H 3Y = DV013Y P DV01 3Y S,... (43) The book is delta hedge with respect to all swap rates: B(r + r) B(r) DV01 2Y P r + H2Y DV01 2Y S r + (44) +DV01 3Y P r + H2Y DV01 3Y S r +... 0
Bootstrapping the interest-rate term structure 48 Questions?
Bootstrapping the interest-rate term structure 49 References Options, future, & other derivatives, John C. Hull, Prentice Hall (from fourth edition) Interest rate models: theory and practice, D. Brigo and F. Mercurio, Springer Finance (from first edition)