Bonjour à tous

Je suis en train de travailler sur un calcul de maximum drawdown : un instrument financier permettant de calculer la perte maximum si on avait investi au plus mauvais moment

L'idée c'est d'avoir une plage de valeur et de calculer le maxDD via une fonction VBA

Mon code doit pas etre loin d'être bon mais j'ai une erreur #Valeur!, pouvez vous me dire si vous reperer quelque chose qui cloche car là je ne vois pas très bien :

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
Option Explicit
 
Function Maxdrawdown(TheRange As Range) As Double
 
Dim i, n As Integer
Dim diff, maximum As Double
 
Maxdrawdown = 0
i = 0
maximum = TheRange(1, 1)
n = TheRange.Rows.Count
 
For i = 0 To n - 1
 
    If TheRange(i + 1, 1) > maximum Then
        maximum = TheRange(i + 1, 1)
    End If
 
    diff = (maximum - Range(i + 1, 1)) / maximum
 
    If (diff > Maxdrawdown) Then
        Maxdrawdown = diff
    End If
 
Next i
 
End Function
Merci beaucoup d'avance