quant finance - interest rate modelling 1

14
Quantitative Finance – Interest Rate Modelling Hedeging and No arbitrage for non-tradable underlying For non-tradable underlying such as interest rate, we cannot hedge a derivative with the underlying, instead we need to hedge derivative f with another derivative g having the same non-tradable underlying. The proof below is valid for both tradable and non-tradable underlying. Assuming that derivative f can be written as : df t = f f t dt + f f t dz t , where drift of derivative and volatility of derivative are unknown by this moment. Now we generalize the BSPDE to non-tradable underlying. Step 1 : hedging = = = (by removing stochastic component) equation 1 when = or = equation 2 Step 2 : no arbitrage = = applying equation 1 to LHS = = applying equation 2 = = = constant or = = risk free rate equation 3 Derive risk neutral pricing for equity Consider a derivative f(s t ,t) with underlying s t following ordinary random process : ds t = s s t dt+ s s t dz t , and consider the same derivative (i.e. contract having the same payoff and the same maturity) f(s t ’,t) with another correlated underlying s t ’ following risk neutral process : ds t ‘ = s ‘s t ‘dt+ s ‘s t ’dz t , where s ‘= s - s (why is this risk neutral? Consider equation 3, suppose contract g is the underlying itself!) and s ’= s . = = equation 4 By Ito’s lemma (Quant_Finance_Option_Pricing.doc remark 4), we have : = 1

Upload: dick-chow

Post on 12-Jan-2016

8 views

Category:

Documents


3 download

DESCRIPTION

interest rate modelling

TRANSCRIPT

Page 1: Quant Finance - Interest Rate Modelling 1

Quantitative Finance – Interest Rate Modelling

Hedeging and No arbitrage for non-tradable underlying For non-tradable underlying such as interest rate, we cannot hedge a derivative with the underlying, instead we need to hedge derivative f with another derivative g having the same non-tradable underlying. The proof below is valid for both tradable and non-tradable underlying. Assuming that derivative f can be written as : df t

= f ft dt +f ft dzt, where drift of derivative and volatility of derivative are unknown by this moment. Now we generalize the BSPDE to non-tradable underlying.

Step 1 : hedging

=

=

= (by removing stochastic component) equation 1

when =

or = equation 2

Step 2 : no arbitrage

=

= applying

equation 1 to LHS

=

= applying equation 2

=

= = constant

or = = risk free rate equation 3

Derive risk neutral pricing for equityConsider a derivative f(st,t) with underlying st following ordinary random process : dst = sstdt+sstdzt, and consider the same derivative (i.e. contract having the same payoff and the same maturity) f(st’,t) with another correlated underlying st’ following risk neutral process : dst‘ = s‘st‘dt+s‘st’dzt, wheres‘=s-s (why is this risk neutral? Consider equation 3, suppose contract g is the underlying itself!) and s’= s.

=

= equation 4

By Ito’s lemma (Quant_Finance_Option_Pricing.doc remark 4), we have :

=

=

equation 5

By comparing the volatility term in equation 4 and the volatility term in equation 5, we have :

= equation 6

= express f’ in terms

of s‘

= putting st = st’ into equation 6 express f’

in terms of s

= express f’ in terms of

1

Page 2: Quant Finance - Interest Rate Modelling 1

f

= equation 7

i.e. price of derivative with ordinary random process underlying and the price of the same derivative with risk neutral underlying have the same volatility. By comparing the drift term in equation 4 and the drift term in equation 5, we have :

= equation 8

= express f’

in terms of s‘

= express f’

in terms of s

=

= putting st = st’ into equation 6 & 8 express f’ in

terms of f

=

= = equation 9

Applying equation 7 and equation 9, we have :

=

= equation 10

Hence, if the underlying is risk neutral, then the derivative is also risk neutral. Now lets show that the discounted derivative price with risk neutral underlying is martingale.

=

= applying

equation 10

=

= thus is

martingale

The current time is t, thus st = st’ (they are different random paths with the same starting point and the same volatility, but different drifts). Besides, the risk neutral process in sT’ can be absorbed into E^.

=

= property of martingale

= E cap stands for

risk neutral

Derive risk neutral pricing for interest rate derivativeNow we repeat the process for interest rate derivative. Consider a derivative f(rt,t) with underlying interest rate rt following ordinary random process : drt = rdt+sdzt, and consider the same derivative (i.e. contract having the same payoff and the same maturity) f(rt’,t) with another correlated underlying interest rate rt’ following risk neutral process : drt‘ = r‘dt+s‘dzt, wherer‘=r-r (why is this risk neutral? Consider equation 3, suppose contract g is the underlying itself!) and r’= r.

=

= equation 11

By Ito’s lemma (Quant_Finance_Option_Pricing.doc remark 4), we have (equation 12 is slightly different from equation 4, as the underlying random process is different : return of equity is random normal vs change in

2

Page 3: Quant Finance - Interest Rate Modelling 1

interest rate is random normal. Please derive equation 12) :

=

=

equation 12

By comparing the volatility term in equation 11 and the volatility term in equation 12, we have :

= equation 13

= express f’ in terms

of r‘

= putting rt = rt’ into equation 13 express f’ in

terms of r

= express f’ in terms of

f

= equation 14

i.e. price of derivative with ordinary random process interest rate and the price of the same derivative with risk neutral interest rate have the same volatility. By comparing the drift term in equation 11 and the drift term in equation 12, we have :

= equation

15

= express f’

in terms of r‘

= express f’ in

terms of r

=

= putting rt = rt’ into equation 13 & 15 express f’ in

terms of f

=

= = = equation 16

Applying equation 14 and equation 16, we have :

=

= equation 17

Hence, if the interest rate is risk neutral, then the derivative is also risk neutral. Now lets show that the discounted derivative price with risk neutral interest rate is martingale.

=

= see

remark

=

applying equation 17

3

Page 4: Quant Finance - Interest Rate Modelling 1

=

= thus is

martingale

Remark : = since

=

= =

The current time is t, thus rt = rt’ (they are different random paths with the same starting point and the same volatility, but different drifts). Besides, the risk neutral process in rT’ can be absorbed into E^.

=

= property of

martingale

= E cap stands for

risk neutral

Comparison of equity derivative and interest rate derivative

Equity derivative Interest rate derivative

original process = =

risk neutral process = =

derivative differential = =

= =

= =

= =

= =

= =

Ito’s integral and Ito’s isometryIto’s integral is integral with respect to zt, where integrand ft can be deterministic or stochastic.

Ito’s integral is also stochastic. Although we don’t know its distribution, we know its 1st order and 2nd order moments and it is martingale.

(1) = = thus it is martingale

4

Page 5: Quant Finance - Interest Rate Modelling 1

= = since it is martingale

We got its 1st moment, now lets look at its 2nd moment (this is called Ito’s isometry).

(2) = where

=

=

=

By Tower property, given t<t’, s<s’, time interval [t,t’] and [s,s’] do not overlap (assume s<s’<t<t’), then we have :

=

=

= =

=

=

= =

=

=

= =

=

=

=

We got its 1st moment and its 2nd moment, now lets look at covariance.

(3) =

=

=

By Tower property, given t<t’, s<s’, time interval [t,t’] and [s,s’] do not overlap (assume s<s’<t<t’), then we have :

=

5

Page 6: Quant Finance - Interest Rate Modelling 1

=

= =

=

=

= =

=

=

=

The above are true for when ft is deterministic or stochastic. But if ft is deterministic, then Ito’s integral must be random normal (because the sum of normal is also normal) :

(4) =

=

=

The above are derived assuming we are looking at time t while standing at time 0, the results can be generalized to looking at time T while standing at time t. If ft is deterministic, then Ito’s integral is random normal, with 1st moment equals to zero (i.e. zero mean) and 2nd moment found by Ito’s isometry. If ft is stochastic, then Ito’s integral is random (distribution is unknown), also with 1st moment equals to zero and 2nd

moment found by Ito’s isometry. The following are helpful in deriving interest rate model : s is dummy, t is current time, T is maturity.

Deterministic integrad Stochastic integrand

(1)

(2)

(3)

(4) distribution unknown

From interest rate model to bond price modelGiven differential equation in dru

step 1 :solve for interest rate

step 2 : solve for discounting path

step 3 : find the expectation and volatility of interest rate and

step 4 : find the expectation and volatility of discounting path and

step 5 : find bond price in form of

example 1 : Vasicek model u = dummy time in

interest rate differential eq

example 2 : Ho Lee model s = dummy time in

interest rate model

example 3 : unknown model in final exam t = current time

T = maturity

6

Page 7: Quant Finance - Interest Rate Modelling 1

Vasicek Model Interest rate model - mean reverting

=

Step 1 : solve for interest rateLets remove ru from RHS by considering :

=

=

=

=

Integrate both sides from t to s, where t < s (note : s = dummy, t = current time, T = maturity)

=

=

=

=

=

= Ito’s integral with deterministic integrand =

denote : =

where = is discount factor from time s to time t

Step 2 : solve for discounting path

=

= swap the double

integration sequence

=

=

=

= Ito’s integral with deterministic integrand =

Step 3 : find the expectation and volatility of interest rate

=

= Ito’s integral 1st moment is

zero

=

= Ito’s integral 2nd moment

time integral

7

s axis

u axis

s axis

u axis

…… ……

Page 8: Quant Finance - Interest Rate Modelling 1

=

=

=

=

Step 4 : find the expectation and volatility of discounting path

=

= Ito’s integral 1st

moment is zero

=

=

=

=

=

=

=

=

=

A short summary

=

=

=

=

=

=

step 5 : find spot and forward bond priceWe do not apply stock model for bond price, instead we can derive bond price model from interest rate model. Lets consider forward bond price first : price of zero coupon bond having $1 face value and maturity T viewing at time t.

=

= discounting path is random normal

= since

=

=

Bond price is expressed in terms of A, B and forward short rate rt. A and B are constants if a, b, t, T and are given. Lets find A and B.

8

Page 9: Quant Finance - Interest Rate Modelling 1

= terms contain rt =

= terms do not contain rt

=

Since A contains many terms similar to (1-e-a(T-t))/a, which can be expressed as B, we can simplify A :

=

=

=

=

=

=

thus : =

=

=

=

Finally we have forward bond price, and the spot bond price can be obtained simply by substituting t = 0.

= forward zero coupon bond price

where =

and =

= spot zero coupon bond price

where =

and =

Black Derman Toy Model (BDT tree) for pricing interest rate derivativeUnlike Vasicek model, which is founded on differential equation that governs instantaneous short rate, BDT tree is developed algorithmically. BDT tree is a binary recombining tree, describing the random process of instantaneous short rate. Like the Jarrow Rudd model, BDT tree has upside probability equals to downside probability (which is ½), unlike CRR tree, upside scaling and downside scaling are time dependent and short rate dependent (i.e. depends on current location in the stochastic path). Suppose BDT tree has N+1 layers, where T = Nt, with one root vertex in layer 0 representing current time 0, and n+1 vertices in layer n representing forward time nt. The instantaneous short rate at vertex rn,m is modelled as : rn,m = nn

m n[0,N-1] and m[0,n], which denotes the instantaneous short rate from time nt to time (n+1)t. Please note that the rates in the last layer (i.e. layer N) cannot be found, in other words, rN,m do not exist. Upside scaling (red) is rn+1,m+1/rn,m = (n+1n+1

m+1)/(nnm), while downside scaling (blue) is rn+1,m/rn,m = (n+1n+1

m)/(nnm), which are time

dependent. For example, the following is a BDT with N=5, there are 6 layers in total, with no short rates in the last layer.

r4,4

r3,3 r4,3

r2,2 r3,2 r4,2

r1,1 r2,1 r3,1 r4,1

r0,0 r1,0 r2,0 r3,0 r4,0

bond price p0(1) p0(2) p0(3) p0(4) p0(5)bond price volatility 0(1) 0(2) 0(3) 0(4) 0(5)

Thus there are 2N parameters in total, which should be calibrated with 2N data : bond price term structure and bond price volatility term structure, each with N different maturities that matched exactly with the time nt n[1,N] in BDT tree. Calibration is done by forward propagation, which repeatedly calls Newton Raphson for N times, the nth Newton Raphson solves two non linear equations generated from bond price with maturity nt and bond price volatility with maturity nt for parameters n-1 and n-1, n[1,N]. Please note that (1) to be more precise, there are in fact 2N-1 parameters (instead of 2N) as 0 is redundant, therefore bond price volatility for bond matures at t is not used in calibration, (2) given N bonds, we can calibrate BDT tree

9

solve

solve

solve

solve

solve

Page 10: Quant Finance - Interest Rate Modelling 1

starting from layer 0 and upto layer N-1, with the forward-most rate rN-1,m = N-1N-1m. We assume that bond

matured at time T has a price pt(T) at time t, which follows the same stochastic model as stocks (i.e. normal geometric return) :

= Time subscript denotes view point, time

argument denotes maturity.

= This can be simply derived in the same way

as stock.

=

=

=

=

= BPV = equation 18

Suppose we are looking for n and n in the middle of forward propagation, how can we obtain current bond price and current bond price volatility, for bond matured at t=(n+1)t, in terms of known parameters in the BDT, i.e. η and η η<n? Lets illustrate algorithmically.

// Given BDT, with known : Note : bdt & bp_tree are different things.// bdt.a[0], bdt.a[1], ..., bdt.a[n-1] and// bdt.b[0], bdt.b[1], ..., bdt.b[n-1] and randomly initialized guess_an and guess_bn,// this function will update bond price matured as time (n+1)t, viewing at time 0t, 1t, 2t, ..., nt.// Thus this function will used as a functor for Newton Raphson to solve bdt.a[n] and bdt.b[n].

void bdt::update_bond_price_tree(bond_price_tree& bp_tree, double guess_an, double guess_bn) {

unsigned short n = bdt::next_solve_a_and_b; // bdt.a[n-1] & bdt.b[n-1] are known, bdt.a[n] & bdt.b[n] are not.

for(m=0; m<=n+1; ++m) bp_tree(n+1,m) = $1;for(m=0; m<=n; ++m) bp_tree(n,m) = exp(-guess_an*(guess_bn^m)*t) * (bp_tree(n+1,m+1)+ bp_tree(n+1,m))/2;for(η=n-1; η>=0; --η) { for(m=0; m<=η; ++m) bp_tree(η,m) = exp(-bdt.a[η]*(bdt.b[η]^m)*t) * (bp_tree(η+1,m+1)+ bp_tree(η+1,m))/2;

}}

Bond price volatility for bond matured at t=(n+1)t can be obtained by subtituting T=(n+1)t and t=0 in equation 18.

=

=

=

=

=

=

=

where p0 = bp_tree(0,0) for bond_price_tree with maturity (n+1)tp1,1 = bp_tree(1,1) for bond_price_tree with maturity (n+1)tp1,0 = bp_tree(1,0) for bond_price_tree with maturity (n+1)t

In other words, BPV of bond with maturity (n+1)t can be obtained from the two vertices in layer 1 of BDT tree. Now we can match the bond price from BDT with observed bond price, and match the bond price volatility from BDT with observed bond price volatility to generate two non linear equations for BDT tree calibration. Here is the pseudo code.

void bdt::calibrate(const bond_price_term_structure& bp_ts, const bond_price_volatility_term_structure& bpv_ts)

{bdt::next_solve_a_and_b = 0;for(n=0;n<N;++n){

bdt::next_bp = bp_ts.mature((n+1)*dt);bdt::next_bpv = bpv_ts.mature((n+1)*dt);double a = rand_between(0.1, 0.9);double b = rand_between(0.1, 0.9);alg::newton_raphson_solve_2_eq_2_unknowns(bdt.functor1(), bdt.functor2(), a, b); bdt::update_a_and_b(a,b);

10

Page 11: Quant Finance - Interest Rate Modelling 1

}}

double bdt::functor1(double a, double b) // bond price{

bond_price_tree bp_tree;bdt::update_bond_price_tree(bp_tree, a, b);return bp_tree(0,0) - bdt::next_bp;

}

double bdt::functor2(double a, double b) // bond price volatility{

bond_price_tree bp_tree;bdt::update_bond_price_tree(bp_tree, a, b);return log(bp_tree(1,1)/ bp_tree(1,0))/(2*sqrt(dt)) - bdt::next_bpv;

}

void bdt.update_a_and_b(double an, double bn){

bdt::a[bdt::next_solve_a_and_b] = an;bdt::b[bdt::next_solve_a_and_b] = bn;bdt::next_solve_a_and_b++;

}

void newton_raphson_solve_2_eq_2_unknowns(double(*f)(double, double), double(*g)(double, double), double& a, double& b) // a and b are outputs.

{ // solve for a and b, such that : f(a,b)=0 and g(a,b)=0 }

Finally, how to determine t? It should be as small as possible. For example, if we are given the price and volatility of seven zero coupon bonds that mature in 1, 7, 13, 19, 25, 37, 49 months respectively, then we have t = 1 month, N = 49, i.e. BDT contains 50 layers, modelled short rate ranging from r0,m, r1,m, …, to r48,m (there exists no r49,m). We need a bond price term structure and a bond price volatility term structure, each with 49 data points. These 49 data points can be generated from the seven bonds using cubic spline interpolation, before BDT tree calibration.

Monte Carlo Simulation for pricing interest rate derivativeGiven Cox Ingersoll Ross model (CIR) of short rate, price (using Monte Carlo) zero coupon bond with $1 face value that expires at T :

=

= in discrete time

where parameters a, b, aregiven. CIR model is very similar to Vasicek model, both are mean reverting, the only difference is the rt term in the stochastic component. We can use bond price derived from Vasicek model as a control variate. Suppose we generate a random path of short rate with N steps : r(0), r(t), r(2t), …, r((N-1)t), where Nt = T, then we can estimate discount path by :

=

or =

Simpson’s rule for even N

11