option sur action

julienha

XLDnaute Occasionnel
bonjour,j'ai élaboré un programme sous VBA pour évaluer des options sur actions versant un dividende(black and scholes). Mais lorsque j'utilise la fonction j'ai zéro comme résultat. Le modèle utilisé est le suivant avec S:cours de l'action,K:strike,r:taux d'intéret,q:dividende, T:la maturité)

Merci pour l'aide


Function BS_STD(TypeOption, S, K, r, q, sigma, T)
d1 = (Log(S / K) + (r - q + 0.5 * sigma ^ 2) * T) / (sigma * Sqr(T))
d2 = d1 - sigma * Sqr(T)
z = Switch(TypeOption)
BS = z * (S * Exp((-q) * T) * N(z * d1) - K * Exp(-r * T) * N(z * d2))
End Function
Function N(d)
N = WorksheetFunction.NormSDist(d)
End Function
Function Switch(TypeOption)
TypeOption = UCase(TypeOption)
If TypeOption = "C" Or TypeOption = "CALL" Then
Switch = 1
ElseIf TypeOption = "P" Or TypeOption = "PUT" Then
Switch = -1
End If
End Function
 

albert

XLDnaute Occasionnel
Re : option sur action

Bonjour julenha,

Je n’ai pas vérifié le fonctionnement de ton code, faute de temps, mais regarde si cette application te convient

albert
 

Pièces jointes

  • optiongreeks.xls
    43 KB · Affichages: 138

albert

XLDnaute Occasionnel
Re : option sur action

... et un BS avec dividende, mais sans vba...les formules excel sont dans la feuille.
je chercherai un exemple plus tard en vba, si nécessaire

albert
 

Pièces jointes

  • blkschol.zip
    13 KB · Affichages: 37

GIBI

XLDnaute Impliqué
Re : option sur action

Bonjour,

En relisant le code

BS = z * (S * Exp((-q) * T) * N(z * d1) - K * Exp(-r * T) * N(z * d2))

à la place de BS il faut BS_STD (mais je supose que c'est une erreur de copier/coller)

GIBI
 

Discussions similaires

Réponses
7
Affichages
353
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 379
Messages
2 087 764
Membres
103 661
dernier inscrit
fcleves