of 13

# Pricing interest rate derivatives (ext)

Pricing Interest Rate Derivative using Hull White model: detailed description of calibration and implementation methodology.
Published on: Mar 4, 2016
Published in: Economy & Finance

#### Transcripts - Pricing interest rate derivatives (ext)

• 1. Page 1 of 13 Pricing of Interest Rate Derivatives using Short Rate models SWATI MITAL swati.mital@maths.ox.ac.uk Mathematical Institute, University of Oxford Date 09 November, 2015 We produce numerical implementation of one factor short rate model and use it to price Interest Rate Derivatives, in particular, Constant Maturity Swaps (CMS). We speciﬁcally focus on the Hull-White model and show how it can be calibrated to market prices and implemented using trinomial trees. Keywords: Hull-White, Constant Maturity Swaps, Trinomial Trees, Options, Calibration 1. Introduction In the last two decades, there has been an explosion of interest rate derivatives such as American style swap options, Bermudan Swaptions, Mortgage Backed Securities and Structured Notes. In order to price and hedge these products models known as term structure of interest rates have been developed which express the relationship between the yield on a zero coupon bond and their maturity. The term structure models can be divided into two classes: equilibrium models and no-arbitrage models. Equilibrium models start with assumptions about economic variables and derive a process for the instantaneous short rate, r. They do not necessarily ﬁt to today’s term structure. In contrast, the no-arbitrage models use the observed term structure at the current time as a starting point and evolve the future prices such that they are consistent with this initial price structure and are arbitrage free. In this submission, we focus on the no arbitrage models and, speciﬁcally, develop calibration and implementation methodology for the Hull-White One Factor model. We use the textbook by [Brigo, 2006] and lecture notes provided by [Theis, 2015] to construct and calibrate the model. During the calibration phase of the project, we use post-2008 OIS-Libor dual curve bootstrapping to project the forward curve using live market prices of ﬁxed income instruments. Section 1 of this document gives an introduction to the Hull-White model and highlights the main results that will be used for implementation. Section 2 discusses the calibration of the model to cap volatilities. Section 3 shows trinomial tree implementation and, ﬁnally, Section 4 shows how to price Constant Maturity Swaps. 1.1 Single Factor Models Single factor models assume that all information about the term structure at any given point in time can be captured by a single factor. For the purpose of this paper, we are going to assume that factor is the short term interest rate, r(t). This implies that the price of any interest rate contingent claim, P(t,T), is driven by short-term interest rate and time to maturity only. P(t,T) = P(t,T,r(t)) Under cash numeraire the dynamics of the short rate, r(t), follows general Itˆo process and can be written as: ©
• 2. 2 of 13 dr(t) = µ(t,r(t))dt +σ(t,r(t))dW(t) (1.1) Therefore, by no-arbitrage argument we get the price of a zero coupon bond with maturity T as: P(t,T) = EQ t [e− T t rs ds |Ft] (1.2) The One Factor Hull White model was ﬁrst established in the article “Pricing interest-rate derivative se- curities” by John Hull and Alan White [Hull, 1990]. They extended the one factor state variable models by Vasicek so that they are consistent with the current term structure of interest rates. In this section, we concentrate on the instantaneous short-rate process under the risk neutral measure that evolves according to dr(t) = (θ(t)−ar(t))dt +σ dW(t) (1.3) where σ and a are constants and θ is a deterministic function of time. These variables are chosen so as to exactly ﬁt the term structure of interest rates being currently observed in the market. The equation (1.3) can be integrated to yield r(t) = r(s)e−a(t−s) + t s e−a(t−u) θ(u)du+σ t s e−a(t−u) dW(u) (1.4) Therefore, r(t) conditional on Fs is normally distributed with mean and variance given by E[r(t)|Fs] = r(s)e−a(t−s) + t s e−a(t−u) θ(u)du Var[r(t)|Fs] = σ2 2a (1−e−2a(t−s) ) (1.5) 1.2 Bond Option Pricing under Hull-White Model Let P(t,T) be the price of a zero coupon bond maturing at T. Then by Itˆo’s lemma, we can show that ∂P ∂t +(θ(t)−ar(t)) ∂P ∂r + 1 2 σ2 ∂2P ∂r2 −rP = 0 P(T,T) = 1 (1.6) It is possible to ﬁnd afﬁne solutions for the price of the zero coupon bond, i.e. solutions of the form P(t,T) = A(t,T)e−B(t,T)r(t) (1.7) where A(t,T) and B(t,T) are differentiable in t. By substituting A and B in the PDE satisﬁed by the zero coupon bond (Equation 1.1), we get ∂A ∂t −r ∂B ∂t +(θ(t)−ar(t))(−AB)+ 1 2 σ2 AB2 −rA = 0 (1.8) Matching coefﬁcients of r and 1 we obtain the following differential equations and their ﬁnal time conditions,
• 3. 3 of 13 ∂A ∂t −θ(t)AB+ 1 2 σ2 AB2 = 0 ∂B ∂t −aB+1 = 0 (1.9) A(T,T) = 1 B(T,T) = 0 (1.10) Since B is independent of θ it can be solved using the Integrating Factor approach to solving differential equations. The equation for A is solved using simple integration. The end result is as follows, B(t,T) = 1 a [1−e−a(T−t) ] (1.11) A(t,T) = exp[− T t θ(s)B(s,T)ds− σ2 2a2 (B(t,T)−T +t)− σ2 4a2 B(t,T)2 ] (1.12) 1.3 Relationship between θ and other parameters The goal of this section is to highlight the relationship between the time homogeneous variable, θ(t) and the term structure of interest rate at time 0. From previous section, we know that the afﬁne structure of the discount factor, P(t,T) is expressed as P(t,T) = A(t,T)e−r(t)B(t,T). Setting t = 0, taking logs on both side of this equation and substituting for A(t,T) using Equation (1.12) we get, −logP(0,T) = −log(A(t,T))+r(t)B(t,T) = T 0 θ(s)B(s,T)ds+ σ2 2a2 (B(0,T)−T)+ σ2 4a2 B(0,T)2 −r(0)B(0,T) Let f(t,T) be the market instantaneous forward rate at time t for the maturity T. Then we know that it can be expressed using the price of a zero coupon bond as, f(t,T) = − ∂ logP(t,T) ∂T Substituting t = 0 in equation for f and substituting for −logP(t,T), we get, f(0,T) = ∂ ∂T T 0 θ(s)B(s,T)ds+ σ2 2a2 (B(0,T)−T)+ σ2 4a2 B(0,T)2 −r(0)B(0,T) = T 0 θ(s) ∂B(s,T) ∂T ds+ σ2 2a2 ∂B(0,T) ∂T −1 + σ2 2a2 B(0,T) ∂B(0,T) ∂T −r(0) ∂B(0,T) ∂T From previous subsection, we know that: B(t,T) = 1 a [1−e−a(T−t) ]
• 4. 4 of 13 Differentiating both sides by T gives, ∂B ∂T = e−a(T−t) = 1−aB(t,T) (1.13) 1− ∂B ∂T = aB(t,T) (1.14) Differentiating again with respect to T gives, ∂2B ∂T2 +a ∂B ∂T = 0 (1.15) Substituting Equation (1.14) in Equation (1.12) we can simplify f(0,T) to, f(0,T) = T 0 θ(s) ∂B(s,T) ∂T ds− σ2 2a B(0,T)+ σ2 2a2 B(0,T) ∂B(0,T) ∂T −r(0) ∂B(0,T) ∂T (1.16) If we differentiate again with respect to T, we get, ∂ f(0,T) ∂T = θ(T)+ T 0 θ(s) ∂2B(s,T) ∂T2 ds− σ2 2a ∂B(0,T) ∂T + σ2 2a2 ∂B(0,T) ∂T 2 +B(0,T) ∂2B(0,T) ∂T2 −r(0) ∂2B(0,T) ∂T2 (1.17) We use the result of B(t,T) and combine the Equations (1.16) and (1.17). A lot of terms cancel out due to Equation (1.15) and we are left with, af(0,T)+ ∂ f(0,T) ∂T = θ(T)− σ2 2a (1−e−2at ) (1.18) Equivalently, we can express θ(t) in terms of forward rates and a. This result is useful during calibration because it means that we only need to calibrate for a and σ and θ(t) is given by Equation (1.19) θ(t) = ∂ f(0,t) ∂T +af(0,t)+ σ2 2a (1−e−2at ) (1.19) 2. Calibration In this section we build on the theoretical framework outlined in previous section and calibrate the one factor Hull White model to market prices. In the ﬁrst sub-section we show how to implement dual curve OIS-Libor bootstrapping for forward rates and in the next sub-section we show how the cap volatilities are used for calibration of the short rate model. 2.1 OIS Dual Curve Bootstrapping We start off by bootstrapping the discount and forward curve using the market prices of ﬁxed income instruments. We adopt the post-crisis dual curve building methodology by selecting OIS (Overnight Indexed Swap) discount curve and Libor forward curve. Due to the widening Libor-OIS spread it is
• 5. 5 of 13 TABLE 1 Bloomberg Instruments for EONIA Tenor Bloomberg Quote(%) O/N EUSWE1D Curncy −0.142 1W EUSWE1Z Curncy −0.140 1M EUSWEA Curncy −0.139 1Y EUSWE1 Curncy −0.250 2Y EUSWE2 Curncy 0.009 3Y EUSWE3 Curncy 0.012 5Y EUSWE5 Curncy 0.0077 7Y EUSWE7 Curncy 0.0329 10Y EUSWE10 Curncy 0.1095 15Y EUSWE15 Curncy 0.2596 no longer recommended to use only the swap rates to derive the Libor forward curve since the implicit discounting of the market instruments is Overnight Indexed Swap rates. We use Bloomberg market quotes for OIS rates to bootstrap the discount curve. These swap rates denote the zero-coupon maturity rates in major currencies: SONIA for GBP, EONIA for EUR and FedFunds for USD. In this instance, we use EONIA tickers to build the OIS curve. The list of tickers used is provided in Table 1 and quotes are as of 16th October 2015 (MID PRICES). The OIS curve bootstrapping uses the same methodology as single curve construction. Once we have the discount curve, our aim is to bootstrap a forward curve so that the market quoted instruments can be priced on it consistently. In order to strip the forward curve we choose the following instruments, • Deposit rates up to 1 year • FRA rates up to 2 years • Swap Rates (with respect to 6M ﬂoating rate) from 1 year onwards Table 2 has Bloomberg market instruments and quotes used for projecting the 6-month EUR forward curve, EURIBOR 6M, with day count convention of ACT/360. Quotes are as of 16th October 2015 (MID PRICES). The remainder of this section discusses discrete time implementation of constructing discount and forward curves. It assumes that there are N reset dates and Z(t,Tj) is the discount factor at time Tj. We also assume that rs is the swap rate and τj is the accrual factor from time Tj−1 to Tj. (In this subsection, since we have a P in the present value PV, we are using Z instead of P to denote discount curve.) In traditional LIBOR discounting, since the Libor swap rates are used for discounting, equating the ﬂoating and ﬁxed legs of an interest rate swap returns,
• 6. 6 of 13 TABLE 2 Bloomberg Instruments for EURIBOR 6M Tenor Bloomberg Quote(%) FRA 0×6M EUR006M Index −0.051 FRA 6×12M EUFR0F1 Curncy −0.043 SwapRate1Y EUSA1 Curncy 0.094 SwapRate2Y EUSA2 Curncy 0.099 SwapRate3Y EUSA3 Curncy 0.101 SwapRate5Y EUSA5 Curncy 0.329 SwapRate7Y EUSA7 Curncy 0.591 SwapRate10Y EUSA10 Curncy 0.938 SwapRate15Y EUSA15 Curncy 1.309 PVfloat = 1−Z(t,TN) = PVfixed = N ∑ j=1 τjZ(t,Tj)rs Given ﬁxed swap rate, we can solve for discount factor Z(t,TN) using the above relation. Since swaps are liquid instruments and market provides quotes for various maturities, several points on the discount curve can be solved for by selecting varying maturity swap instruments and interpolation is used for in-between reset dates. To summarize, in traditional Libor discounting we would ﬁrst solve for discount factor followed by calculation of the forward Libor using the equations, Z(t,Tn) = 1−rn ∑n−1 j=1 τjZ(t,Tj) 1+rnτn (2.1) Ln−1,n = Z(t,Tn−1)−Z(t,Tn) Z(t,Tn)τn (2.2) In the post-2008 dual curve (Libor-OIS) bootstrapping, the discounting on swaps is done using Overnight rates and, therefore, for a given par swap, we can compute the present value of it’s ﬁxed and ﬂoating legs given a set of reset dates by, PVfloat = n−1 ∑ j=1 τjZ(t,Tj)Lj−1,j +Ln−1,nZ(t,Tn)τn (2.3) PVfixed = rn n ∑ j=1 τjZ(t,Tj) (2.4) The discounting curve, Z(t,Tn), has been constructed from OIS rates as explained earlier. By recur- sively setting the present values of both legs to be equal to each other for different maturity swaps, we can now bootstrap the forward libor rates as,
• 7. 7 of 13 Ln−1,n = rn ∑n j=1 τjZ(t,Tj)−∑n−1 j=1 τjZ(t,Tj)Lj−1,j Z(t,Tn)τn (2.5) We have implemented dual curve bootstrapping of forward rates using Cubic Spline and Linear In- terpolation in MATLAB. Cubic Spline gives much smoother forward rates between reset dates of the underlying instruments but it is computationally expensive. Linear interpolation, however, is quick to run and but gives sharp transition at maturity dates. The output is shown in Figure (1). FIG. 1. Forward and Zero Rates 2.2 Calibration to Cap Volatilities An interest rate cap is a collection of caplets where each caplet is a call option on the forward rate, L(ti−1,ti), from time ti−1 to ti. We use risk neutral pricing to show that the price of a caplet with strike X and notional N at time t is given by, Cplt(t,ti−1,ti,N,X) = NEQ [e− ti t rs ds τi(L(ti−1;ti−1,ti)−X)+ |Ft] Forward rate, Li−1,i, can be deﬁned in terms of the discount rates as, L(t;ti−1,ti) = 1 τi P(t,ti−1) P(t,ti) −1 Substituting the forward rate deﬁnition in the price of the caplet gives,
• 8. 8 of 13 Cplt(t,ti−1,ti,N,X) = NEQ [e− ti t rs ds τi(L(ti−1;ti−1,ti)−X)+ |Ft] = NEQ [e− ti−1 t rs ds P(ti−1,ti)τi(L(ti−1;ti−1,ti)−X)+ |Ft] = NEQ [e− ti−1 t rs ds P(ti−1,ti) 1 P(ti−1,ti) −1−Xτi + |Ft] = NEQ [e− ti−1 t rs ds (1−(1+Xτi)P(ti−1,i))+ |Ft] = N(1+Xτi)ZBP t,ti−1,ti, 1 1+Xτi where ZBP(t,T,S,X) is the price of a European put option with strike X, maturity T written on a zero coupon bond maturing at time S. Cap is a collection of caplets each with it’s payment dates T = t0,...tn. Hence, we can express the price of caps as, Cap(t,T,N,X) = N n ∑ i=1 (1+Xτi)ZBP t,ti−1,ti, 1 1+Xτi (2.6) Under the Hull-White model [Brigo, 2006, Sec. 3.3], we can get an analytical solution to the price of the zero-coupon bond option. We ﬁrst note that the price of a zero coupon bond put option written on an underlying bond with maturity S at a given time t and strike X can be expressed under the forward measure T as, ZBP(t,T,S,X) = P(t,T)EQT t (X −P(T,S))+ |Ft (2.7) We now consider the forward bond prices P(t,S,T) = P(t,S) P(t,T) and note that they are a martingale under the QT measure. Hence, we can write, dP(t,S,T) P(t,S,T) = (σB(r,S)−σB(r,T))dWT (t) (2.8) For a Hull-White model we know the variance of the short rate, σB is given in Equation (1.5), σB(r,T) = σ2 2a [1−e−2a(T−t) ] Since the forward bond price at time T is equal to P(T,S), we can write the Bond Option price using the Black-Scholes formula for put options as, ZBP(t,T,S,X) = XP(t,T)Φ(−h+σp)−P(t,S)Φ(−h) (2.9) This result is useful for calibration because it gives us an analytical way of computing the prices of caps (or ﬂoors) and matching them against the market prices of caps in order to get the best ﬁt for a and sigma. For Hull-White model one-factor model, we use the afﬁne structure of P(t,T) to give, σp = σ 1−e−2a(T−t) 2a B(T,S)
• 9. 9 of 13 h = 1 σp log P(t,S) P(t,T)X + σp 2 Market (brokers) like to quote implied Black volatilities of caps as opposed to prices. So we ﬁrst convert the Black-volatilities into prices using the Black-76 formula: CpltBlack (F,X,N,T,t,σ) = N(FΦ(d1)−XΦ(d2)) d1 = ln(F K )+ σ2T 2 σ √ T d2 = d1 −σ √ T (2.10) where F is the forward price of the underlying, X is the strike of the caplet, N is notional (assumed to be 1) and σ is the volatility. Hence the ﬁnal steps involved in calibration of the one factor Hull-White model are, 1. Bootstrap Forward and Discount Curves as described in Section 2.1 2. Get Cap volatilites from the market 3. Convert to Cap Prices using Black’s Formula 4. Select initial guess for a and σ and compute cap prices using Equation (2.10) 5. Run a least squares solver to reﬁne a and sigma until the model cap prices and market cap prices are within tolerance bounds. Figure (2) shows the ﬁt to the cap volatilities using MATLAB’s solver, lsqcurvefit. The least- squares solver converged with a maximum of 500 iterations and with a tolerance level of 10−3. We also show uncalibrated model cap prices using initial guesses of a and σ. In order to compute θ(t), we use the relationship as described in Section (1.3).
• 10. 10 of 13 FIG. 2. Calibration Fit to Market Cap Prices At this point we could, in fact, use Monte Carlo Simulation to price interest rate derivatives. Al- though this is not the approach we take in this submission, we have included a small simulation of a calibrated Hull White model for illustration purposes. Figure (3) shows the distribution at the end of 1 year using daily time-steps. FIG. 3. Short Rate Simulation with calibrated parameters
• 11. 11 of 13 3. Implementation of Trinomial Trees After we have calibrated the Hull-White one factor model, we construct trinomial trees which are a discrete time implementation of the stochastic differential equation (1.4). The Hull-White trees are popular amongst the practitioners since they converge to the the continuous time model and replicate the initial term structure. Due to their backwards in time approach they are also useful for pricing early-exercise products like Bermudan Swaptions. At each node in the tree, working backwards, we can determine whether it is optimal to exercise the option or not. The references used for the tree implementation are [Brigo, 2006, Sec. 3.3.3] and [Hull, 2010, Pg. 708-718]. If we deﬁne a new process x as, dx(t) = −ax(t)dt +σdW(t), x(0) = 0 (3.1) or equivalently for s < t, x(t) = x(s)e−a(t−s) +σ t s e−a(t−u) dW(u) Then we see that we can re-write the one-factor short rate Equation (1.4) as, r(t) = x(t)+α(t) (3.2) where α(t) = f(0,t)+ σ2 2a2 (1−e−at )2 (3.3) The construction of trinomial tree discretization of the short rate is a two step process. In the ﬁrst stage, we construct a tree for the variable x that is initially 0 and then follows the process in Equation (3.1). This is done by dividing the time horizon T into times t0 < t1 < ... < tN such that ∆t = ti+1 −ti matches the option exercise date. We deﬁne a node (i, j) in the tree such that the time index is i and the space index is j. We then evolve the process x as deﬁned in Equation (3.1) along the tree nodes. At a given node (i, j) the value of x is xi,j = j(∆x) where ∆x is the vertical spacing between the tree nodes, ∆x = √ 3V∆t The mean and variance of the tree are given by E[x(t + ∆t) − x(t)] = x(t)M = x(t)(−a∆t) and VAR[x(t +∆t)−x(t)] =V = σ2 2a (1−e−2a∆t). The selection of ∆x is chosen to reduce error minimization. We also select jmin and jmax so that the probabilities of the tree are always positive. Hull and White showed that if jmax is set equal to the smallest integer greater than 0.184/(a∆t) and jmin = −jmax then the probabilities are always positive. We use this result in the implementation. The probability at the three branches from a given node are chosen so that these mean and variance match those in the tree. • Branch (a) is used if −jmax < j < jmax • Branch (b) is used if j = −jmax • Branch (c) is used if j = jmax
• 12. 12 of 13 As shown by Hull, it turns out the probability at a given node (i, j) is only dependent on j and hence we can select the probabilities for the three branches as, • Branch (a) pu = 1 6 + j2M2 + jM 2 , pm = 2 3 − j2 M2 , pd = 1 6 + (j2M2 − jM) 2 (3.4) • Branch (b) pu = 1 6 + j2M2 − jM 2 , pm = −1 3 − j2 M2 +2jM, pd = 7 6 + (j2M2 −3jM) 2 (3.5) • Branch (c) pu = 7 6 + j2M2 +3 jM 2 , pm = −1 3 − j2 M2 −2 jM, pd = 1 6 + (j2M2 + jM) 2 (3.6) In the second stage, we adjust the tree construction for x(t) and convert it into tree for r(t). We use Equation (3.3) for α(t) and deﬁne αi = α(i∆t). At each point on the node α is computed iteratively so that the initial term structure is matches exactly to r(t). 3.1 Example Implementation We run through an example output of the Hull-White trinomial tree implementation. Let σ = 0.0114 and a = 0.0423. We select ∆t = 0.0192. ∆x = σ √ 3∆t = 0.0027 M = −a∆t = 0.000812 The Table 3 shows the initial Hull-White probabilities for 6 different tree nodes. The j represents the space index and time index i is assumed to be 0. Notice that the reason pm probability stays the same is because M is very low in the shown example. TABLE 3 Hull-White Tree Probabilities j 0 1 2 3 4 5 j∆x 0 0.0027 0.0054 0.0081 0.108 0.0135 pu 0.1667 0.1663 0.1659 0.1655 0.1650 0.1646 pm 0.667 0.6667 0.6667 0.6667 0.6667 0.6667 pd 0.1667 0.1671 0.1675 0.1679 0.1683 0.1687 4. Pricing Constant Maturity Swaps on Hull White Tree A CMS (Constant Maturity Swap) is an interest rate swap where one party pays a swap rate of a ﬁxed tenor, known as the CMS rate and receives speciﬁed ﬁxed or ﬂoating rate (usually on Libor). We have
• 13. 13 of 13 used [Theis, 2015] and [Hull, 2006] to get a better understanding of these products. We are going to price ﬂoating/ﬂoating Constant Maturity Swaps where payer leg is tied to the CMS rate on a 2-year swap and the receiver leg is tied to the Libor. The net value of the CMS is, V(t) = Vfix(t)−VCMS(t) Constant Maturity Swaps are unique because the reset dates of the CMS legs do not match the payment frequency of the underlying swap. To illustrate this further, suppose that the reset dates of the CMS legs are t1,t2,...tn but the underlying swap has payment dates ti + s1, ti + s2,...,ti + sn where sj = j12 q where q is the payment frequency of the underlying swap. Let rcms(ti) be the CMS rate at ti. Then give accrual factor τi and denoting the discount factor, as before, to Z(t,ti + sj), we set the two legs to be equal at each reset date and ﬁnd that the CMS rate is equal to, rCMS(ti) = 1−Z(ti,ti +sn) ∑n j=1 τjZ(ti,ti +sj) (4.1) We create a small example to price a 1-year CMS swap where the CMS leg is tied to a 2-year swap rate with reset legs every 6 months. In order to price it on a Hull-White tree, we ﬁrst create a tree for 2-year and then recurse through the end nodes. For simplicity we match the tenor of the tree to be 6 months as well, so we can price exactly at each node without the need for any interpolation. At each point on the tree node we compute the discount factor Z(ti,ti + 0.5) and use equation (4.1) to ﬁnd the swap rate. In a more extensive implementation, we’ll have to extend the tree so that it can handle interpolation between nodes, large number of nodes (space-efﬁciency) and time efﬁciency for looking up the correct node. 5. Conculding Remarks The aim of this submission was to calibrate and construct a one factor short rate model. In most trading applications, at least a two factor Hull White model is used where the volatility, σ is driven by a second stochastic differential equation with a Brownian Motion that is correlated to the one driving the rates. This gives better ﬁt to not just the cap volatilities for at-the-money (ATM) strike but to the entire cap or swaption surface. REFERENCES BRIGO, DAMIANO AND MERCURIO, FABIO Interest Rate Models-Theory and Practice With Smile, Inﬂation and Credit (2006), Second Edition Springer Finance HULL, JOHN AND ALAN WHITE (1990) ”Pricing Interest-Rate-Derivative Securities”, Review of Financial Studies HULL, JOHN AND BASU SANKARSHAN (2010) Seventh Edition Options, Futures, and other Derivatives, Pearson India THEIS, JOCHEN Modelling Interest Rate Derivatives (2015) MSc. Mathematical Finance Lecture Notes, Univ. of Oxford, (Advanced Module 5)