slt,
je dois calculer un strike en fonction du type de l'option du delta de la volatilité et de la maturité et j'ai une fonction d'interpolation dedans pour interpoler les taux en fonction de chaque maturité donnée, mon code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function strike1(CP As String, spot As Double, delta1 As Double, vol As Double, maturite As Double) As Double
Dim taux_domestique As Double
Dim taux_etranger As Double
Dim NomTableau As Variant
 
If CP = "call" Then
taux_domestique = InterpoleTx(NomTableau = Range("A17:A26"), NomTalbeau = Range("B17:B26"), maturite) And taux_etranger = InterpoleTx(NomTableau = Range("A29:A42"), NomTableau = Range("C29:C42"), maturite)
ElseIf CP = "put" Then
taux_domestique = InterpoleTx(NomTableau = Range("A17:A26"), NomTableau = Range("C17:C26"), maturite) And taux_etranger = InterpoleTx(NomTableau = Range("A29:A42"), NomTableau = Range("B29:B42"), maturite)
 
strike1 = spot * Exp(((taux_domestique - taux_etranger + (0.5 * vol * vol)) * maturite) - (vol * Sqr(2 * maturite * Log(1 / (delta1 * Sqr(2 * 22 / 7))))))
End If
 
End Function
normalement je dois étalé ce calcul pour une matrice car delta est as range la maturité aussi et la volatilité est une matrice,
mais pour le moment j'essaye de la calculer juste pour une seule cellule comme début et j'ai trouvé un prob au niveau de l'interpolation car le bloc sur le quel j'effectue cette interpolation est fixe et j'arrive pas à le fixé sur le code VBA


merci les amis ^^