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 |
Partager