VBA Code - was bedeutet die K-Schleife?
mctapt
ich habe in einen Finance Buch (Paul Wilmott Vol. 3) folgenden VBA Code gefunden. Der Code ist im Prinzip klar. Ich meine jedoch, dass man sich eigentlich die K-Schleife sparen kann. Wenn ich mir das mal in Form von Matritzen vorstelle, braucht man die eigentlich nicht oder? Oder macht die was besonderes, was ich noch nicht verstanden habe?
Besten Dank für Eure Hilfe.
Gruß Thomas
Function stochvol(Expry, Strike, IntRate, SMax, SigMax, dt)
Dim ds, dsig, a, b, c, d, rho, DeltaS, DeltaSig, DeltaSig1, DeltaSig2, GammaS, GammaSig, XGamma, _
Theta As Double
Dim N, i, j, k As Integer
ds = Strike / SMax * 2
dsig = 1 / SigMax
N = Int(Expry / dt) + 1
dt = Expry / N
a = 0.2
b = 1
c = 1
d = 1
rho = 0
ReDim S(0 To SMax) As Double
ReDim Sig(0 To SigMax) As Double
ReDim VOld(-1 To SMax, -1 To SigMax) As Double
ReDim VNew(-1 To SMax, -1 To SigMax) As Double
For i = 0 To SMax
S(i) = ds * i
Next i
For j = 0 To SigMax
Sig(j) = dsig * j
Next j
For i = 0 To SMax
For j = 0 To SigMax
VOld(i, j) = Application.Max(S(i) - Strike, 0)
Next j
Next i
For k = 1 To N 'Hier die K-Schleife, die ich nicht ganz verstehe
For i = 0 To SMax - 1
For j = 0 To SigMax - 1
DeltaS = (VOld(i + 1, j) - VOld(i - 1, j)) / 2 / ds
DeltaSig1 = (VOld(i, j + 1) - VOld(i, j)) / dsig
DeltaSig2 = (VOld(i, j) - VOld(i, j - 1)) / dsig
DeltaSig = DeltaSig1
If (a - b * Sig(j))