Clever-Excel-Forum

Normale Version: Rückwärtsschleife Binomial
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe folgenden Binomial-Code. Sobald der Baum entwickelt ist muss denr Weg/Baum von hinten anfangend, zum ersten Wert zurück gehen (rekursion) und jeweils diskontiert werden.

Ich habe schon ein wenig versucht aber leider hat er nach kurzer Zeit beim rückwärtsgehen immer einen Bugg. Ich bekomme das mit den For schleifen nicht passend hin.

Kann mir einer von euch da weiterhelfen?

Vielen Dank im Vorraus!!
Code:
 'Baum aufbauen
 
 ReDim a(1 To (2 ^ (n + 1)) - 1, 0 To n)
 fL = 1 / fU
 gamma = -Log(1 - pd) * p0
 a(UBound(a, 1) \ 2 + 1, 0) = p0
 For j = 0 To UBound(a, 2) - 1
     k = 2 ^ (n - j - 1)
     For i = 1 To UBound(a, 1)
         If Not IsEmpty(a(i, j)) Then
            lambda = gamma / a(i, j)
            a(i - k, j + 1) = a(i, j) * fU * Exp(lambda)
            a(i + k, j + 1) = a(i, j) * fL * Exp(lambda)
         End If
     Next i
 Next j
 
'Hier beginnt die rekursion
Redim CCValue(i+1,j+1) as double

For j = 1 To i - 1
 For i = 1 To j

 If j = n Then
 CCValue(i, j) = WorksheetFunction.Max(FV, cr * S(i, j))
 Else
NOCall(i, j) = Exp(-r * dt) * (Exp(-lambda(i, j) * dt)) * (p * CCValue(i, j + 1) + (1 - p) * CCValue(i + 1, j + 1)) + (1 - Exp(-lambda(i, j) * dt)) * (1 - L) * FV
 
 coupon = Exp(-(r + lambda(i, j)) * dt) * c * FV * (ttm / n)
 End If
 

Next i
     Next j
Hallo Maxel,

Ich bezweifle, dass Du jemanden findest, der Deinen Code nachvollziehen und korrigieren mag.
Ein paar getestete Excel Algorithmen zu Binomialbäumen kannst Du hier herunterladen und dann als Beispiel verwenden:
http://sulprobil.com/Get_it_done/Control...tions.html

Viele Grüße,
Bernd P