Bonjour,
J'ai un problème que je n'arrive pas du tout à comprendre.
J'ai une liste de valeurs (la colonne 1 est un compteur utilisé ici pour l'explication):
1 1,2319
2 1,2338
3 1,2358
4 1,2391
5 1,2313
6 1,2328
7 1,2350
8 1,2362
9 1,2337
10 1,2343
11 1,234
Je cherche les cas ou les valeurs sont séparées d'au moins +0,0012 (de haut en bas) deux fois de suite. Dans cette liste, il y a 4 cas. lignes 1,2,3 lignes 2,3,4, lignes 5,6,7 et lignes 6,7,8.
Voici une partie de mon code :
Le souci est que le cas 6,7,8 ne fonctionne pas car selon le code open_r + diff_pips > open_r_plus_un est vrai lorsque i=9 et r=2 (cad lignes 7 et 8 ici).
Or open_r + diff_pips = 1,2362 et open_r_plus_un=1,2362 , donc 1,2362 > 1,2362 ne devrait pas executer ma boucle if.
J'ai par ailleurs teste afin de voir si ces deux valeurs ressortaient comme égales et ce n'est pas le cas. Je ne comprends pas.
Avez-vous une idée ?
Merci beaucoup,
Bonne journée
J'ai un problème que je n'arrive pas du tout à comprendre.
J'ai une liste de valeurs (la colonne 1 est un compteur utilisé ici pour l'explication):
1 1,2319
2 1,2338
3 1,2358
4 1,2391
5 1,2313
6 1,2328
7 1,2350
8 1,2362
9 1,2337
10 1,2343
11 1,234
Je cherche les cas ou les valeurs sont séparées d'au moins +0,0012 (de haut en bas) deux fois de suite. Dans cette liste, il y a 4 cas. lignes 1,2,3 lignes 2,3,4, lignes 5,6,7 et lignes 6,7,8.
Voici une partie de mon code :
Code:
Dim opens_consecutifs As Double
Dim higher_lower As String
Dim diff_pips As Double '+0,0012
Dim target_profit As Double
Dim payout_time As Double
Dim temp() As Double
Dim test_reussi As Boolean
Dim open_r As Double
Dim open_r_plus_un As Double
Worksheets("Inputs").Activate
opens_consecutifs = Cells(7, 3) - 1
higher_lower = Cells(8, 3)
diff_pips = Cells(9, 3) * 0.0001
target_profit = Cells(10, 3) * 0.0001
payout_time = Cells(11, 3)
Worksheets("EUR-USD").Activate
derniere_ligne = Cells(3, 1).End(xlDown).Row
ReDim temp(2, 0)
For i = 4 To derniere_ligne 'le compteur 1 ci -dessus est en ligne 4 sur ma spreadsheet
'test d'optimisation
If Cells(i + opens_consecutifs, 3) - Cells(i, 3) > opens_consecutifs * diff_pips Then
test_reussi = True
For r = 1 To opens_consecutifs
open_r = Cells(i + r - 1, 3)
open_r_plus_un = Cells(i + r, 3)
If open_r + diff_pips > open_r_plus_un Then
test_reussi = False
Exit For
End If
Next r
If test_reussi = True Then
ReDim Preserve temp(2, UBound(temp, 2) + 1)
temp(1, UBound(temp, 2)) = i + 2
End If
End If
Next i
Le souci est que le cas 6,7,8 ne fonctionne pas car selon le code open_r + diff_pips > open_r_plus_un est vrai lorsque i=9 et r=2 (cad lignes 7 et 8 ici).
Or open_r + diff_pips = 1,2362 et open_r_plus_un=1,2362 , donc 1,2362 > 1,2362 ne devrait pas executer ma boucle if.
J'ai par ailleurs teste afin de voir si ces deux valeurs ressortaient comme égales et ce n'est pas le cas. Je ne comprends pas.
Avez-vous une idée ?
Merci beaucoup,
Bonne journée