Dépassement de capacité

Mazne

XLDnaute Nouveau
Bonjour à tous.

Je dois faire un programme de pricing pour les cours. J'ai le programme de base, mais quand je cherche à l’exécuter, j'ai un dépassement de capacité.
Si quelqu'un à une idée sur le problème peut me donner un petit coup de main, ce serait cool.

Merci d'avance.

Option Explicit



Code:
' calcul de B&S
' S = cours du sous jacent; K = prix d'exercice (strike); r = taux d'intérêts annuel sans risque (cst)
' T distance à l'échance (en années); sigma = volatilité du sous jacent; Nd = loi normale centrée réduite

Function BS(TypeOption, S, K, r, sigma, T)


Dim d1, d2 As Double
Dim Z As Integer


d1 = (Log(S / K) + (r + 0.5 * sigma ^ 2) * T) / (sigma * Sqr(T))
d2 = d1 - sigma * Sqr(T)
Z = Switch(TypeOption)
BS = Z * (S * Nd(Z * d1) - K * Exp(-r * T) * Nd(Z * d2))

End Function

' fonction de la loi normale
Function Nd(d)

Dim d As Double

Nd = WorksheetFunction.Norm_S_Dist(d)
End Function

' fonction de determination Put ou Call
Function Switch(TypeOption)

Dim TypeOption As Integer


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

Sub test()
Dim S, K, r, T, sigma As Double
Dim TypeOption As Integer


S = Cells(4, 2)
K = Cells(5, 2)
r = Cells(6, 2)
T = Cells(7, 2)
sigma = Cells(8, 2)
TypeOption = Cells(9, 2)


 Cells(3, 5) = BS(TypeOption, S, K, r, sigma, T)
End Sub
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Re : Dépassement de capacité

Salut,soit un probleme de type de variable ou plus plausible une division par 0
tu dois également avoir qqs autres erreurs de compilation avant d'avoir cette erreur ?

PS: Balise ton Code STP
 

néné06

XLDnaute Accro
Re : Dépassement de capacité

Il faut faire attention ,car lorsque le call est " en dehors" ,d1 et d2 sont négatifs et N (d1),N(d2) prennent des valeurs trés petites.
il vaut mieux utiliser des variables doubles.
A+
 

Gorfael

XLDnaute Barbatruc
Re : Dépassement de capacité

Salut Mazne et le forum
Bonne manière de noyer le poisson : une fonction qui appelle une fonction qui appelle une foncrion.
À quel niveau tu as le dépassement de capacité ?
Comme tu déclares presque tout en Variant ou en double, il y a peu de risque. La seule qui me semble vraisemblable, c'est "TypeOption As Integer" => regarde la valeur de B9 qui doit être comprise dans les limites d'un Entier.
A+
 

Mazne

XLDnaute Nouveau
Re : Dépassement de capacité

Après quelques rapides modifications, les erreurs de compilation ont changées. J'avoue que je n'y vois cependant pas plus clair.
Voilà mon fichier. Si quelqu'un a une idée, je l'en remercie d'avance ;)
 

Pièces jointes

  • Calculs sto.xlsm
    16 KB · Affichages: 74

Discussions similaires

Statistiques des forums

Discussions
314 659
Messages
2 111 624
Membres
111 237
dernier inscrit
vinthi