Hey,
Versuche gerade folgendes durchlaufen zu lassen. Leider bekomme ich immer die Fehlermeldung "Laufzeitfehler "6": Überlaufen"für Zeile 13(Else: ...). Ich habe so gut wie alle Variablen als Double gespeichert (habe gelesen das nimmt die größten Zahlen) meine variablen sollten aber auch gar nicht so groß werdenwenn alles so funktioniert wie es soll
'Simulation und Optionsberechnung
For i = 1 To AnzahlSimulationen
If Cells(19, 10) = "A" Then
avgFixings = 0
Else: avgFixings = 1 'Unterscheiden arithmetisch und geometrisch
End If
currentspot = Aktienkurs
For j = 1 To AnzahlFixings
Z = Application.NormSInv(Rnd())
currentspot = currentspot * Exp((µ - 0.5 * sigma * sigma) * ?t + sigma * Z * Sqr(?t))
If Cells(19, 10) = "A" Then
avgFixings = avgFixings + currentspot * (1 / AnzahlFixings)
Else: avgFixings = avgFixings * currentspot ^ (1 / AnzahlFixings)
End If
Next j
payoff = Application.Max((Phi) * (avgFixings - Strikepreis), 0)
avgPayoff = avgPayoff + payoff
Next i
avgPayoff = avgPayoff / AnzahlSimulationen
Mache ich irgendwo einen Fehler? Das Ergebnis ist auf jeden Fall falsch.
Über hilfe würde ich mich sehr freuen! :)
|