Yixing Li - Midterm 3
Yixing Li - Midterm 3
Yixing Li - Midterm 3
a.
For Vasicek process dr = a(b-r)dt + σdz, Δt=1/252, then we have Δr = A + Br+ ε.
A=abΔt, B=-aΔt, Δt=1/252.
To determine a,b and σ, I firstly calculate Δr based on the real world data. My goal is
to find the a and b to minimize ∑(Δr − A − B𝑟! )" . Then I calculate Δr − A − B𝑟! and
calculate the sum of them. Then I use SOLVER to find the appropriate a and b to
minimize ∑(Δr − A − B𝑟! )" . Here I got a= 0.025016511, b= 0.003085497.
As for σ, because E( (Δr − A − B𝑟! )" = σ" Δt and E (Δr − A − B𝑟! ) = 0 (since
E(z2)=0), the model has sample 𝑉𝑎𝑟(Δr − A − B𝑟! ) = σ" Δt , so σ =
#
/$% 𝑉𝑎𝑟(Δr − A − B𝑟! ) = 0.002048213.
b.
For CIR process dr = a(b-r)dt + σ√rdz, we have Δr/√r = A/√r + B√r + ε.
A=abΔt, B=-aΔt, Δt=1/252
&!"#! '&! )
I firstly use SOLVER to find the a and b that minimize ∑( − − 𝐵 1𝑟! )2, and
(&! (&!
&!"#! '&! )
also I add a constraint: ∑( − − 𝐵1𝑟! ) = 0 in SOLVER. And for σ, since
(&! (&!
has:
&!"#! '&! )
𝑉𝑎𝑟 4 − − 𝐵 1𝑟! 5 = σ" Δt ,
(&! (&!
# &!"#! '&! )
σ =/$% 𝑉𝑎𝑟( − − 𝐵1𝑟! )
(&! (&!
Q2.
a.
I need to convert Problem1.a Vasicek real world model dr = a(b-r)dt + σdz to Risk
Neutral model.
dr = [a(b-r)- λ(t,r)]dt + σdz
Here we already know a= 0.025016511, b= 0.003085497, σ = 0.002048213, and
λ(t,r)= λ, so we only need to solve the value of constant λ.
*+',- *+',-
Here 𝑑𝑟 = 𝑎 7 *
− 𝑟8 𝑑𝑡 + 𝜎𝑑𝑧, so I set b’= *
.
Here we use the exact formula to price a zero coupon bond(assume par 100):
P(0,10)=100*A(0,10)exp[-r0B(0,10)], r0 = 0.0025688.
On the other hand, the market price of a 10-year zero bond (par 100) is calculated as :
Pm=100/[1+(2.15%/2)^20]= 80.74674044.
Here we need to use SOLVER to find a λ which will make the model price equal to the
market price.
Finally I get λ = -2.138345615.
b.
Here we assume λ(t,r)=λ√r, for a Risk Neutral CIR Model:
dr = [a(b-r)- λ(t,r)]dt + σ√r dz
we use the a, b , σ from Problem 1 (Real World Model) and λ(t,r) to calculate new a and
b in the Risk Neutral Model.
*+
a’=a+λr, b’=*./ 1.
Here we also need to use the exact formula to price a zero coupon bond(assume par
100): P(0,10)=100*A(0,10)exp[-r0B(0,10)], r0 = 0.0025688, and the market price of the
bond is also Pm=100/[1+(2.15%/2)^20]= 80.74674044.
Finally I use SOLVER to find the λ that makes the model price equals to the market
price of the bond. I get λ = -208.4675543
Q3.
Here we use the Vasicek risk neutral model dr = a(b-r)dt + σdz, r0 =0.0013950
Again I use the exact price formula for these 7 zero coupon bonds:
P(0,T) = 100*A(0,T) exp[-r0B(0,T)], A(0,T) and B(0,T) are calculated by using the
formulus containing a,b, and σ.
On the other hand, we need to calculate the market price of 1/3/5/10/20/30/50-year zero
coupon bond by using the semi-annual spot rates (%) on high quality corporate bonds.
PTj= 100/[1+(r/2)^j].
Then we get the market prices of these zero coupon bonds as:
Then I use SOLVER to find a,b, and σ that can minimize ∑(P(0, Tj) − 𝑃23 )" .
Finally I get a=0.0405596, b= 0.1375098, σ= 0.0198401.
The errors per 100 par are as follow:
Q4.
a.
For this interest swap, fixed rate = 0.283%, notional = 100, r0=0.0013950, 3-year, fixed
payments are semi-annual, and float are received monthly.
Our goal is to price this swap, P(swap)=PV(float)-PV(fixed).Firstly, here we need to
use the formula: dr = a(b-r)dt + σdz, a=0.0405596, b= 0.1375098, σ= 0.0198401.
Then I use the formula above to generate 500 paths Monte Carlo rates.
As a result, I will make 6 fixed payments and received 12 float rates in total.
Here, because I use 500-path Monte Carlo method, I will have 500 PVs for fixed
payment and 500 PVs for float received. Then I calculated the Average value of
PV(fixed)= 0.838079147, and PV(float)= 2.720372293.
b.
Put K=98 5-yr Zero coupon bond
With the same process as in (a), I generate 500-path Monte Carlo rates using the formula
dr = a(b-r)dt + σdz, a=0.0405596, b= 0.1375098, σ= 0.0198401.
Then I calculate the price of the zero coupon bond at t=3 using the formula:
) *
P(t,T) = 100 ∗ 𝐸 7𝑒 ' ∫! &' =>
8, which is P(3,8) = 100 ∗ 𝐸 7𝑒 ' ∫+ &' => 8here.
For the Integral calculation, we need to use the integral from year 3 to year 8, which is
#
Δ𝑡 ∗ ∑?: ?:
3;7@ 𝑟 & 3 = #" ∗ ∑3;7: 𝑟 & 3 here.
&% &%
Q5.
a.
Ho-Lee (RN) : dr = 𝜃(t)dt + σdz
𝜃(t)= Ft(0,t) + σ2t
Here 𝜃(t) = 0.0022t1/10 + 0.0001t, so we get Ft(0,t) = 0.0022t1/10.
Therefore, F(0,t) = 0.002 t11/10.
The graph for 0≤t≤20 is shown below.
F(0,t)
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0
0
0.8
1.6
2.4
3.2
4
4.8
5.6
6.4
7.2
8
8.8
9.6
10.4
11.2
12
12.8
13.6
14.4
15.2
16
16.8
17.6
18.4
19.2
20
b.
First, I use Hoo-Lee model to generate monthly step, binomial lattice.
dr = (0.0022t1/10 + 0.0001t)dt + .01dz, r0 = 0.02.
&
Here, 𝑟!.$% = 𝑟! + K0.0022𝑡 &( + 0.0001tL Δt + .01 ∗ √Δ𝑡 ∗ (1 𝑜𝑟 − 1)
b.
Put K=99 2-yr Zero coupon bond
Firstly, the value of this 2-year zero coupon bond is 100 at t=3. Then I use the same
Binomial lattice above to firstly calculate the price of bond at t=1.
I use the formula below to price this zero coupon bond:
F 0 (!.$!,2).F 1 (!.$!,2)
P(t,T) = 𝑒 '&! $! [ "
]
Then after I get zero coupon prices at t=0, I use these prices to calculate payoffs of the
put option, Payoff= Max{99-P(bond),0}.
After that I discount these payoffs to t=0, use the same function P(t,T) =
F 0 (!.$!,2).F 1 (!.$!,2)
𝑒 '&! $! [ "
].
Finally I get the put option price as 3.638041232.