Monte Carlo In Derivative Investment
11 Pages 2628 Words
owthFactor = s0 * Exp((r - sigma ^ 2 / 2) * t)
variance = sigma * Sqr(t)
dN = N
v = 0
For i = 0 To N - 1
s = growthFactor * Exp(variance * Invers1())
vi = PayoutCall(k, s)
v = v + vi
Next i
v = discountFactor * v / dN
MCCall = v
End Function
Invers1 uses the Excel’s build in function for the Normal inversion. For simulation purposes we need to generate the Standard Normal Distribution. The cumulative distribution is the integral of its density distribution function for N(0,1):
Y(x) = 1/2π ∫(-∞,x) e^(-s^2/2) ds
In our simulation problem, we have the Y(x) samples (numbers sampled from ~U[0,1] with the Excel function Rand() – a kind of congruential random generator), but we want corresponding x samples for any distribution, e.g., Normal distribution. In other words, we want x(Y), the inverse of the cumulative distribution. Hence, given the uniformly distributed sample u we want to obtain the value x(u), that is the corresponding sample for the desirable probability distribution. In order to obtain consistent and comparable results, we will use the same inversion function for all types of simulations.(Lamberton, Lapeyre, 1996)
The PayoutCall function used by the MCCall function is the literal translation of the payoff definition (Hull, 2000) from a long position in a European call option into VBA language.
Function PayoutCall(k As Double, s As Double) As Double
Dim p As Double
p = MMax(0, s - k)
PayoutCall = p
End Function
Where Mmax is programmed as follows:
Function MMax(a As Double, b As Double) As Double
Dim c As Double
c = b
If c * a Then
c = a
End If
MMax = c
End Function
According to the Central Limit Theorem (CLT) the error generated by the Monte Carlo simulation is of size σN^(-1/2) for N samples and variance σ. Thus, the main drawback of Monte Carlo s...