Bonjour Nicolas,
Tout d’abord, je me suis aperçu assez récemment que le site proposait une traduction instantanée en diverses langues. Alors bravo pour cette amélioration. Mes mimines se fatigueront moins en évitant tout un tas de “control C et control V” et on gagne un temps fou à suivre les forums autres que ceux en français.
Ensuite, je vous soumets deux bouts de code qui me laissent perplexe et depuis un bout de temps. Ils sont censés faire la même chose, c’est à dire déterminer les index des plus hauts et des plus bas de n périodes.
Sauf que celui intitulé “RangH et RangL” calcule apparemment par boucle itérative correctement ces index. Mais il comporte un gros inconvénient : il est très long à s’exécuter (à cause des boucles donc) déjà comme indicateur et puis incorporé à un screener et ce d’autant plus qu’il doit être complété par la détermination d’un certain nombre d’autres index de bougies.
Le bout de code “Rang H et L Barindex” est en accord sur les dernières bougies (36 périodes environ) avec le code précédent et dans les périodes plus anciennes, il ne détermine correctement les index que sur les plus bas.
QUESTIONS
1- Pouvez-vous m’éclairer en me donnant les raisons de ces distorsions ?
2- Y aurait-il une autre méthode de calcul d’une succession d’index de bougies ?
Par avance MERCI
// Calcul par boucle itérative de l'index des bougies Plus Haut et Plus Bas des 200 derniers jours
RangH1 = 0
for i = 0 to 200 do
if high[i] <> highest[200](high) then
RangH1 = RangH1 + 1
elsif high[i] = highest[200](high) then
break
endif
next
RangL1 = 0
for i = 0 to 200 do
if low[i] <> lowest[200](low) then
RangL1 = RangL1 + 1
elsif low[i] = lowest[200](low) then
break
endif
next
PlusHautHigh = highest[200](high)
PlusBasLow = lowest[200](low)
//RangL2 = 0
//For i = 0 to RangH1 do
//If Close[i] <> Lowest[RangH1](Close) Then
//RangL2 = RangL2 + 1
//Elsif Close[i] = Lowest[RangH1](Close) Then
//Break
//Endif
//Next
Return RangH1 coloured (0, 0, 255) as "Rang du Plus haut", RangL1 coloured (0, 0, 255) as "Rang du Plus bas", PlusHautHigh as "Plus Haut des high 200", PlusBasLow as"Plus Bas des low 200" //, RangL2 as "Plus bas L2"
// Calcul du rang des bougies Plus Haut et Plus Bas des 120 derniers jours méthode du Barindex
//____________________________________________________________________
// Détermination du Rang de la bougie du Plus Haut méthode du barindex
PlusHautperiode = highest[200](high)
If high = PlusHautperiode then
Hautbarindex = barindex
endif
//Bougie0 = Barindex // Index de la bougie origine
RangHautbarindex = barindex - Hautbarindex // Index de la bougie du plus haut sur 200 périodes
//______________________________________________________________________
//Détermination du Rang de la bougie du Plus Bas méthode barindex
PlusBasperiode = lowest[200](low)
If low = PlusBasperiode then
Basbarindex = barindex
endif
//Bougie0 = Barindex // Index de la bougie origine
RangBasbarindex = barindex - Basbarindex // Index de la bougie du plus bas
Return RangHautbarindex coloured(255, 0,0) as "Plus haut des high barindex", RangBasbarindex coloured(255,0, 0) as "Plus Bas des low barindex", PlusHautperiode as "Plus Haut 200", PlusBasperiode as "Plus Bas 200"