Ich habe aus dem Netz folgende VBA-Programmierung und bekomme sie nicht zum Laufen, vor allem deshalb weil ich keine Ahnung habe.
Attribute VB_Name = "BS"
Dieses Modul enthält sämtliche Funktionen, die zum internen (in vba) berechnen
der Black & Scholes Formel notwendig sind.
Function bsCall(Kurs As Double, Strike As Double, Sigma As Double, Zins As Double, RLZ As _
Double)
Berechnet den Preis eines europischen Calls nach der B/S-Formel
bsCall = Kurs * nv(bsd1(Kurs, Strike, Zins, Sigma, RLZ)) - Strike * nv(bsd2(Kurs, Strike, Zins, _
_
Sigma, RLZ)) * Exp(-Zins * RLZ)
End Function
Function bsPut(Kurs As Double, Strike As Double, Sigma As Double, Zins As Double, RLZ As Double) _
_
Berechnet den Preis eines europischen Puts nach der B/S-Formel
bsPut = (-1) * Kurs * nv((-1) * bsd1(Kurs, Strike, Zins, Sigma, RLZ)) + Strike * nv((-1) * bsd2( _
_
Kurs, Strike, Zins, Sigma, RLZ)) * Exp(-Zins * RLZ)
End Function
Function nv(z As Double)
Liefert den Wert der Standardnormalverteilung f¸r einen Z-Wert
nv = Application.WorksheetFunction.NormSDist(z)
End Function
Function bsd1(Kurs#, Strike#, Zins#, Sigma#, RLZ#)
Nach Sandmann 2001, S.272
bsd1 = (Log(Kurs / (Strike * Exp(-RLZ * Zins))) + 0.5 * Sigma ^ 2 * RLZ) / (Sigma * Sqr(RLZ))
End Function
Function bsd2(Kurs#, Strike#, Zins#, Sigma#, RLZ#)
Nach Sandmann 2001, S.272
bsd2 = (Log(Kurs / (Strike * Exp(-RLZ * Zins))) - 0.5 * Sigma ^ 2 * RLZ) / (Sigma * Sqr(RLZ))
End Function
Es handelt sich um eine .bas-Datei, die ich auch importiert habe und habe jetzt über Einfügen->Funktion->Kategorie auswählen 'Benutzerdefiniert' fünf neue Funktionen, die mit BS.... beginnen, davon aber nur bsd1 und bsd2 rechnen, die anderen zeigen lediglich WERT# an.
Insbesondere die nv= verstehe ich gar nicht einzuordnen.
Als Werte habe ich beispielhaft verwendet:
Kurs 7109
Strike 7250
Sigma 19,23
Zins 1,11
RLZ 0,03056
Kann mir jemand sagen, wie ich den Syntax aufbauen muß, um das zum Laufen zu bringen.
Ein Makro scheint es ja nicht zu sein, oder doch? Man sieht, ich verstehe das nicht wirklich.
Für jede Hilfe vorab herzlichen Dank!
Grüße Uwe