Problème avec drawrectangle
Forums › ProRealTime forum Français › Support ProBuilder › Problème avec drawrectangle
- This topic has 4 replies, 4 voices, and was last updated 2 years ago by
larouedegann.
-
-
10/22/2022 at 3:21 PM #202928
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
imbalance123456789101112131415161718192021DEFPARAM CalculateOnLastBars = 2000defparam DrawOnLastBarOnly = truevaleur = barindexajoutligne = 0if islastbarupdate thenfor g = 1900 downto 1if low[g] > high [2 + g] thendrawrectangle (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")endifif high[g] < low [2 + g] thendrawrectangle (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")endifdrawrectangle (barindex + 5,high[g],barindex + 7,low[g]) coloured("black") bordercolor ("black")nextendifreturn12/05/2022 at 12:41 AM #205261Problème intéressant, je vais essayer de répondre demain
12/05/2022 at 9:50 AM #20526612/05/2022 at 10:42 AM #205268hello
D’abord (sauf erreur de ma part) je pense que tu as un conflit entre ces deux paramètres :
– DEFPARAM CalculateOnLastBars = 2000
et
– islastbarupdatesi 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
01/01/2023 at 5:20 PM #206602Bonjour,
voilà une partie de ta réponse à savoir les traits noirs.
12345678910111213141516171819defparam drawonlastbaronly=trueX = 1900if islastbarupdate thenfor g = 1 to X doif low[g] > (high [g+2]) thendrawrectangle (barindex+5,low[g],barindex +7,high[g+2]) bordercolor ("black")coloured("yellow")endifif high[g] < low [g+2] thendrawrectangle (barindex+5,high[g],barindex +7,low[g+2]) bordercolor ("black")coloured("yellow")endifdrawrectangle (barindex + 5,high[g],barindex + 7,low[g])bordercolor("black") coloured("black")nextendifreturnj’ai enlevé les rectangles disgracieux .
Pour tracer les imbalances sur le chart j’utilise un autre code
123456789TopImbalance = high<low[2]if TopImbalance thendrawcandle(low[2], low[2], high[0], high[0]) coloured("yellow")endifBottomInbalance = high[2]<lowif BottomInbalance thendrawcandle(low[0], low[0], high[2], high[2]) coloured ("yellow")endifreturnReste à trouver une personne qui est capable de retracer correctement les imbalances sur ton mur noir.
-
AuthorPosts