Bonjour Nicolas ,
Voici un petit indicateur tout simple mais qui me pose problème.
J’en viens à m’interroger sur la commande drawrectangle (je suis en v12 beta mais en v11 c’est pareil)
Ce programme entoure une bougie centrale de jaune lorsque les 2 bougies qui l’entoure possède un gap entre elles .(seul le gap est en jaune)
Cette détection fonctionne bien (voir copie écran)
Je veux projeter ce rectangle jaune sur un “mur” noir et si une bougie postérieure comble en partie le gap la trace jaune sur le mur est recouverte de noire pour la partie comblée. (Pour info c’est le comblement de l’imbalance pour ceux qui trade avec les smart money concept)
La projection vers le “mur” fonctionne bien mais je ne sais pas pourquoi parfois le comblement en noire par une bougie de comblement du gap ne fonctionne pas. Comme ci on ne pouvait pas réécrire par dessus un rectangle.
De meme j’ai parfois des traits noirs dans un simple triangle jaune. Je ne comprend pas qui a créé ces traits noirs. D’ou mon interrogation sur le fonctionnement de la commande drawrectangle.
Merci de ton analyse si tu as une idée sur le problème
DEFPARAM CalculateOnLastBars = 2000
defparam DrawOnLastBarOnly = true
valeur = barindex
ajoutligne = 0
if islastbarupdate then
for g = 1900 downto 1
if low[g] > high [2 + g] then
drawrectangle (barindex-g ,low[g],barindex - 2 - g,high[2 + g]) coloured("yellow") bordercolor ("yellow")
drawrectangle (barindex+5,low[g],barindex +7,high[g+2]) coloured("yellow") bordercolor ("yellow")
endif
if high[g] < low [2 + g] then
drawrectangle (barindex-g,high[g],barindex - 2 -g,low[2 +g]) coloured("yellow") bordercolor ("yellow")
drawrectangle (barindex+5,high[g],barindex +7,low[g+2]) coloured("yellow")bordercolor ("yellow")
endif
drawrectangle (barindex + 5,high[g],barindex + 7,low[g]) coloured("black") bordercolor ("black")
next
endif
return
Problème intéressant, je vais essayer de répondre demain
Ces traits noirs proviennent simplement des bords des rectangles noirs que tu traces après les rectangles jaunes.
hello
D’abord (sauf erreur de ma part) je pense que tu as un conflit entre ces deux paramètres :
– DEFPARAM CalculateOnLastBars = 2000
et
– islastbarupdate
si tu utilise le “islastbarupdate” ton algorithme sera exécuté qu’a la dernière bougie donc pas besoin de préciser que tu veux utiliser et calculer que sur les 2000 dernierre bares puise ton FOR calule que sur 1900, il rempli donc déjà à la condition,
Après je n’ai pas très bien compris ton algorithme est-ce que tu ne comprends pas le BARINDEX – G avec BARINDEX[G], car le G ici c’est un OFFSET,
Si tu pouvais joindre un petit schéma simple ou par exemple un cas précis avec une seule bougie je pourrais essayer de faire ton petit code c’est pas très complet
Bonjour,
voilà une partie de ta réponse à savoir les traits noirs.
defparam drawonlastbaronly=true
X = 1900
if islastbarupdate then
for g = 1 to X do
if low[g] > (high [g+2]) then
drawrectangle (barindex+5,low[g],barindex +7,high[g+2]) bordercolor ("black")coloured("yellow")
endif
if high[g] < low [g+2] then
drawrectangle (barindex+5,high[g],barindex +7,low[g+2]) bordercolor ("black")coloured("yellow")
endif
drawrectangle (barindex + 5,high[g],barindex + 7,low[g])bordercolor("black") coloured("black")
next
endif
return
j’ai enlevé les rectangles disgracieux .
Pour tracer les imbalances sur le chart j’utilise un autre code
TopImbalance = high<low[2]
if TopImbalance then
drawcandle(low[2], low[2], high[0], high[0]) coloured("yellow")
endif
BottomInbalance = high[2]<low
if BottomInbalance then
drawcandle(low[0], low[0], high[2], high[2]) coloured ("yellow")
endif
return
Reste à trouver une personne qui est capable de retracer correctement les imbalances sur ton mur noir.