STAD70 W17 Name (f,l): Test 3 ID #:
1. The Black-Scholes model assumes that asset return volatility is constant over time, but we have already seen that this is not supported empirically. In fact, volatility fluctuates randomly and exhibits clustering. The Heston stochastic volatility model tries to capture this behavior by employing an mean-reverting process for volatility. Let St denote the asset price, and Vt denote the instantaneous return variance (i.e. squared volatility). The Heston model is given by the following SDE (under the risk-neutral measure):
dSt = rStdt + VtStdWtS
dV =κ(V ̄−V)dt+σ VdWV
ttVtt
where V ̄ is the long-run variance, κ is the mean-reversion strength, σV is the volatility of the variance, r is the risk-free rate, and W S , W V are possibly correlated standard Brownian motions. For all questions below, consider the following parameters:
S0 =100, V0 =.2, V ̄ =.25, κ=1, σV =.1, r=.02
Unlike Black-Scholes (i.e. geometric Brownian motion), the Heston model has no closed-
form solution for the value of the asset at time T .
(a) Use Euler discretization to simulate N = 10, 000 paths from time 0 to T = 1, with m = 100 steps each (i.e. the step size is ∆t = T/m = .01), assuming the two Brownian motions WS,WV are independent. Your scheme should work as follows:
S =S +S r∆t+√V (√∆tZS)
(i+1)∆t i∆t i∆t i∆t √ i √ , fori=1,…,m
V(i+1)∆t = Vi∆t + κ(V ̄ − Vi∆t)∆t + σV Vi∆t( ∆tZiV ) where ZiS ⊥ ZiV ∼iid N(0, 1).
(b) Assume the two Brownian motions are correlated, with correlation coefficient ρ = −.5. Modify your code from the previous part accordingly.
(c) Use the paths you generated to price a 1yr European call option with strike K = 100. Provide a 95% confidence interval for your price estimate. Finally, verify your answer by comparing it to the price given by the function callHestoncf() in the NMOF package in R. Look at the function’s help file to figure out its syntax (this is also a numerical solution, derived through PDE methods rather than simulation).
(d) Apply a Control Variate variance reduction technique to your simulation from the
previous part, using the Black-Scholes European call price as your control. Use the
same random Normals ZS you generated for the Heston model, but evolve the price √ ̄
according to the Geometric Brownian motion model with constant volatility V dSt =rStdt+V ̄StdWtS
Use the error of the Black-Scholes model to reduce that of the Heston model. (You can get the Black-Scholes price from the GBSOption() function in the R package fOptions)