Bonjour,

je dois réaliser une macro excel qui permet de calculer le prix d'une option call européenne à partir de plusieurs paramètres d'entrée (K, T, S, R , N, sigma) qui doivent pouvoir être entrés manuellement (apparition d'une fenetre qui demande la valeur pour chaque paramètre).

J'ai déjà implémenté la fonction qui retourne le prix, mais je ne sais pas comment mettre le reste en forme dans l'éditeur.

Merci d'avance pour vos conseils.

Fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35
36
37
38
39
Function CallBinomial(K As Double, T As Integer, S As Double, R As Double, N As Integer, sigma As Double)
 
Dim u As Variant, d As Variant, q As Variant, esc As Variant, dt As Variant
 
dt = T / N
u = Exp(sigma * Sqrt(dt))
d = Exp(-sigma * Sqrt(dt))
 
Dim i As Integer
Dim j As Integer
 
Dim Price() As Variant
ReDim Price(N)
 
Dim Cash() As Variant
ReDim Cash(N)
 
q = (Exp(R * dt) - d) / (u - d)
esc = Exp(-R * dt)
 
Price(0) = S * (d ^ N)
 
For j = 1 To N
    Price(j) = Price(j - 1) * (u - d)
Next j
 
For j = 0 To N
    Cash(j) = Application.MaxChange(0, Price(j) - K)
Next j
 
For i = N - 1 To 0 Step -1
For j = 0 To i
    Cash(j) = esc * (q * Cash(j + 1) + (1 - q) * Cash(j))
Next j
Next i
 
CallBinomial = Cash(0)
 
End Function