Bonjour,
j'ai un petit soucis pour créer mon algo de maxdrawdown. Le max drawdown en finance c'est la plus grosse chute (en %) qu'ait connu un portefeuille sur une période donnée.
J'ai donc donc une colonne L (L est la 12eme lettre de l'alphabet) sur laquelle s'étendent, à partir de la ligne 2 de mon excel, une multitude cellules ayant différentes valeurs.
Je dois procéder de la sorte:
1) Trouver la cellule ayant la plus faible valeur de ma colonne (via une boucle par exemple). On la nommera "min"
2) Faire une autre boucle allant de la première cellule de ma colonne jusqu'à cette même cellule déterminée précédemment
3) Trouver via cette dernière boucle la cellule ayant la valeur la plus grande valeur comprise entre la première cellule de ma colonne et la cellule ayant la plus faible valeur de ma colonne. On nommera cette cellule "max".
4) Appliquer le Maximum DrawDown, à savoir une variable "MDD" qui soit égale à (min-max)/min
5) Le tout, SANS APPLIQUER DE FONCTION du style Application.max ou même End(xlUp).Row, uniquement avec de simples boucles.
6) Mon algo:
Si quelqu'un peut m'aider, je l'en remercie infiniment par avance
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 Sub MDD() Dim i As Integer Dim ligne As Integer Dim min As Long Dim max As Long Dim f As Range Set f = ThisWorkbook.Worksheets("Données de marché") i = 2 While (f.Cells(i, 14).Value <> "") If f.Cells(i + 1, 14).Value < f.Cells(i, 14).Value Then min = f.Cells(i + 1, 14).Value i = i + 1 Else i = i + 1. // le problème c'est que si je tombe sur une cellule de valeur 4 qui est inférieure à celle du dessus Next. // de valeur 5, mais qu'il existe une valeur min précédente inférieure à 4, alors ça marche pas Wend. // de ce même problème je n'arrive pas non plus à trouver le max MDD = (min-max)/min End Sub
Partager