Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
12 views5 pages

Yixing Li - Midterm 3

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 5

Q1

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
(&! (&!

&!"#! '&! ) &!"#! '&! )


𝐸( − − 𝐵1𝑟! ) = 0, 𝐸( − − 𝐵1𝑟! ) 2 = σ" Δt, then the model
(&! (&! (&! (&!

has:
&!"#! '&! )
𝑉𝑎𝑟 4 − − 𝐵 1𝑟! 5 = σ" Δt ,
(&! (&!

# &!"#! '&! )
σ =/$% 𝑉𝑎𝑟( − − 𝐵1𝑟! )
(&! (&!

Finally I get a= 0.01138756, b= -0.000928032, σ= 0.021312886.

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.

When calculating the PV of fixed payment, I use the formula:


3 4."67% '9 $
PV(fixed)= 100 ∗ 0.283%/2 ∗ ∑73;# 𝑃 K0, "L = 100 ∗ "
∗ ∑:3;# 𝐸[𝑒 % ]
For the calculation of integrals I use the right end points,
for example:
: :
1
𝐼# = Δ𝑡 ∗ Q 𝑟 # 3 = ∗ Q𝑟 # 3
" #" 12 #"
3;# 3;#

When calculating the PV of float reveived, I use the following formula:


&$ $
' ∫(&% &' =>
PV(float)= 100 ∗ ∑7:
3;# 𝐸[ &%
∗𝑒 ]
#"
For the calculation of integrals I also use the right end points.

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.

Finally, P(swap)=PV(float)-PV(fixed)= 1.882293146.

b.
Put K=98 5-yr Zero coupon bond

t=0 t=3 t=8

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.
&% &%

Then I calculate 500-path put option payoffs at t=3, Payoff= Max{98-P(bond),0}.


Then I discount the payoffs to t=0 to get the price of this put option and calculate the
average of these prices.
) +
P(put option) = Payoff(t=3)* 𝐸 7𝑒 ' ∫! &' =>
8= Payoff(t=3)* 𝐸 7𝑒 ' ∫( &' => 8
In this formula, the integral we use should be from year 0 to year 3, which is
#
Δ𝑡 ∗ ∑7: 7:
3;# 𝑟 & 3 = #" ∗ ∑3;# 𝑟 & 3 here.
&% &%

Finally, I get the price of put option as 11.49601555.

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)

For example, 𝑟AA = 𝑟4 + [𝜃(0) + 𝜃(Δt)]Δt + 2 ∗ 0.01√Δ𝑡.


After generating binomial lattice, I calculate the callable bond value at each node.
The bond is 1% semi-annual, callable for 100 on coupon dates starting at t=1 (2nd
coupon)
+, +,
𝑒 '&BA C∗$! ∗ 100.5 = 𝑃A
⎧ '&BA +- = & C∗$! +-
⎪𝑒 ∗ 100.5 = 𝑃A =
So for example, 𝐵7 = …

⎪ …
⎩ 𝑒 '&B=+, C∗$! ∗ 100.5 = 𝑃=+,
And for non-coupon payment day, for example:
'&BA C∗$! +- +, +-
⎧ 𝑒 +. & ∗ (𝑃A + 𝑃A = )/2
⎪𝑒 '&BA = C∗$! ∗ (𝑃A+- = + 𝑃A+. =% )/2
𝐵7E = …
#" ⎨
⎪ …
'&B= +- C∗$! +, +-
⎩ 𝑒 ∗ (𝑃= + 𝑃A= )/2

For coupon-payment day (from t=1 to t=2.5), for example:


'&BA C∗$! +( +& +(
⎧min {𝑒 ∗ (𝑃A + 𝑃A = )/2, 100} + 0.5
+( %/ %
⎪ '&BA%/ = & C∗$!
𝑃A = + 𝑃A =
min {𝑒 ∗ , 100} + 0.5
𝐵".E = 2
⎨ …
⎪ …
'&B= +( C∗$! = +& +(
⎩min {𝑒 ∗ (𝑃 + 𝑃A= )/2, 100} + 0.5
But for t=0.5, although it is coupon payment day, the bond is not callable, and its
calculation is not influenced by the call.
Finally, I get the price of this callable bond as 95.59994187.

b.
Put K=99 2-yr Zero coupon bond

t=0 t=1 t=3

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.

You might also like