Anomalie dans un indicateur
Forums › ProRealTime forum Français › Support ProBuilder › Anomalie dans un indicateur
- This topic has 6 replies, 4 voices, and was last updated 2 years ago by
BenCD.
-
-
10/14/2022 at 5:27 PM #202570
Bonjour à tous,
J’ai créé un petit indicateur tout simple, mais il m’affiche des ‘anomalies’ que je n’arrive pas à comprendre, c’est peut être sous mes yeux, mais je ne vois rien!
Voici le code :
defparam drawonlastbaronly = true
if islastbarupdate then
for i = 50 downto 0 do
for j = i-1 downto 0 do
if High[i] > Highest[max(j,1)](High) then
drawray (Barindex[i], High[i], Barindex, High[i])
else
break
endif
next
next
endifreturn
Et voici les anomalies que je rencontre, sur le S&P en 5min :
Le High n’est pas plus grand que le plus grand des Highs sur sa droite,
Quelqu’un a t il une idée?
Merci à tous!
10/14/2022 at 5:49 PM #202572Veuillez ne pas inclure de photos ou de documents dans le message. Utilisez le bouton "Sélectionner un fichier" pour les joindre. Merci 🙂
10/14/2022 at 5:51 PM #20257410/14/2022 at 6:08 PM #20257610/14/2022 at 6:15 PM #20257710/14/2022 at 6:37 PM #202580Bonsoir,
à vue d’oeil ça serait parce que la bougie immédiatement à droite d’une bougie “i” n’est pas prise en compte dans ton highest, vu que le nombre entre crochets du highest n’est pas un rang, mais un nombre incluant la bougie actuelle de rang 0.
Exemple: i=3, ton highest[j]() sera au plus highest[i-1](), c’est à dire highest[2](), donc un highest parmi rang 0 et rang 1, tu n’as pas inclus le rang 2 avec cette formulation. Donc j devrait partir de i plutôt que i-1
D’autre part, même si ce n’est pas lié à l’anomalie directement, je ne vois pas trop pourquoi tu fais cette autre boucle sur j (à moins qu’elle serve dans un autre bout de code non montré). Ne pas faire de boucle sur j, et juste faire “if high[i] > highest[i](high) then” devrait te donner tes drawray sans aussi regarder highest[i-1], highest [i-2], etc… non?
1234567891011defparam drawonlastbaronly = trueif islastbarupdate thenfor i = 50 downto 0 doif High[i] > Highest[max(i,1)](High) thendrawray (Barindex[i], High[i], Barindex, High[i])endifnextendifreturn1 user thanked author for this post.
10/14/2022 at 6:42 PM #202583Ah oui parfait JC cela fonctionne! 🙂
J’étais parti dans une mauvaise direction en faisant une “double boucle”.
Pour chaque bougie ‘i’ je testais les bougies à sa droite donc nouvelle boucle ‘j’.Après ton explication, je réalise que cela n’était pas très malin!
Merci pour ton aide rapide et précieuse.
-
AuthorPosts
Find exclusive trading pro-tools on