1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| For alpha = 0 To 10 Step 0.0001
somme = 0
For j = 0 To nb_annee - 1
If Int(nb_mois) = 0 Then
taux_spot_1 = Worksheets("Forwards").Cells(7 + 12 * j, 7).Value
taux_spot_2 = Worksheets("Forwards").Cells(11 + 12 * j, 7).Value
Else
taux_spot_1 = Worksheets("Forwards").Cells(Int(nb_mois) + 10 + 12 * j, 7).Value
taux_spot_2 = Worksheets("Forwards").Cells(Int(nb_mois) + 11 + 12 * j, 7).Value
End If
p = nb_mois / 12 + j
T = alpha + (g * taux_spot_2 + (30 - g) * taux_spot_1) / 3000
somme = somme + Worksheets("Feuil1").Cells(i + 6, 13).Value / (1 + T) ^ p
Next
p = nb_mois / 12 + nb_annee - 1
T = alpha + (g * taux_spot_2 + (30 - g) * taux_spot_1) / 3000
somme = somme + 100 / ((1 + T) ^ p)
diff = Abs(Worksheets("Feuil1").Cells(i + 6, "J").Value - somme)
If Worksheets("Feuil1").Cells(i + 6, "J").Value < _
Worksheets("Feuil1").Cells(i + 6, "K").Value Then
alpha = alpha
Else
alpha = -alpha
End If
If diff <= 0.001 Then
Worksheets("Feuil1").Cells(i + 6, "V").Value = alpha
Else
Worksheets("Feuil1").Cells(i + 6, "V").Value = ""
End If
Next |
Partager