problème drawtext avec des nombres
Forums › ProRealTime forum Français › Support ProBuilder › problème drawtext avec des nombres
- This topic has 9 replies, 4 voices, and was last updated 3 years ago by
JC_Bywan.
-
-
02/10/2022 at 9:35 PM #188023
Bonjour,
Pour afficher l’état de mes différentes variables j’utilise DRAWTEXT mais il me renvoie
n/d si je veux afficher certains nombres, d’autre fois les nombres sont illisibles car les digits sont les uns sur les autres …
Je calcul par exemple des % qui me donne des valeurs comme 0,00056, je veux les multiplier par 100 et là n/dIl y a une limitation ou une astuce pour palier ce problème ?
Merci
02/10/2022 at 9:50 PM #18802502/11/2022 at 10:51 AM #18804802/11/2022 at 1:53 PM #18807302/11/2022 at 2:51 PM #18808402/12/2022 at 4:19 PM #188155Bonjour,
Concernant la superposition, à part utiliser la taille la plus petite de texte (10) et dézoomer, il n’y a pas grand chose d’autre à faire, le texte reste de taille constante indépendante du zoom à l’écran, donc si trop long pour la largeur dispo sur 1 barindex à zoom donné, il va chevaucher son voisin et il faut dézoomer pour lui donner plus de place. Comme astuce on peut éventuellement créer un décalage sur la verticale selon qu’on est en bougie paire ou impaire, ça donne un peu plus de place sans dézoomer trop (dans la même veine on peut jouer sur 3 bougies avec un décalage vertical supplémentaire entre 2e et 3e etc…
Concernant le n/d, il n’y a pas une réponse unique à un n/d qui vaudrait quel que soit le code, mais si le nombre est non défini, il sera affiché n/d… par exemple un nombre calculé par récurrence mais non initialisé. Ce n’est qu’un exemple parmi d’autres, toute autre formule de calcul d’un nombre incorporant un autre nombre non défini même sans récurrence, et c’est un nombre non défini qui va en ressortir… Pour aller plus loin il faudrait voir le code, au moins tout ce qui concerne le calcul d’un affichage n/d en amont de vouloir l’afficher avec drawtext, mais je suppose que si tu voulais le montrer tu l’aurais déjà fait, donc difficile de répondre plus précisément. Cela permettrait de conclure si le problème vient de la plateforme ou du code (cette histoire de 0.00056*100 qui se calcule avant mais pas après le *100 est plutôt intrigante…).
1 user thanked author for this post.
02/12/2022 at 4:39 PM #188156Bonjour,
Rien de secret ici, je suis simplement entrain de décortiquer le code ZIGZAG de Nicolas pour compréhension, voici le code à exécuter en UT 5, il faut évidement dézoomer pour lire les valeurs.
Dézoomer ne me pose pas de problème même si ce n’est pas pratique, ce qui me gêne le plus c’est de ne pas pouvoir lire le contenu des variables par moment.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051percent = 0.011//if Dynamic then//var = cumsum(range)/barindex//varP = var/close*100//percent = average[100](varP)//else//percent = PercentVariation//endif//Pic = Peakif lastpoint<=0 thendrawtext("HIGHER avant#higher#",barindex,high+2,SansSerif,Standard,14) coloured(255,0,0)//DrawText("#c#",barindex-65,0.75,SansSerif,Standard,17)higher = max(higher,close)drawtext("HIGHER après#higher#",barindex,high+4,SansSerif,Standard,14) coloured(255,0,0)//drawtext("Higher #higher#",barindex,high+1) coloured(255,0,0)if higher <>higher[1] thenhighbar = barindexendifendifpeakpercent =((higher-close)/higher)drawtext("pourcent#peakpercent#",barindex,high+5,SansSerif,Standard,13)coloured ("white")drawtext("percent#percent#",barindex,high+6,SansSerif,Standard,13)coloured ("white")newpeak = peakpercent >= percent/100if newpeak thendrawtext("■",highbar,higher+1) coloured(255,0,0)higher=0lastpoint=1endif// Creux = Troughonce lower = close // parce que sinon il démarrera jamais car lower = 0 au démarrageif lastpoint>=0 thenlower=min(lower,close)if lower <> lower[1] thenlowbar = barindexendiftroughpercent = (close-lower) / lowernewtrough = troughpercent >= percent/100if newtrough thendrawtext("■",lowbar,lower-1) coloured("cyan")lower=close*100 // pour etre sur de réinitialiser la variablelastpoint=-1endifendifReturn02/12/2022 at 5:07 PM #188159Ok, c’est une division par zéro qui crée le nombre non défini, quand newpeak est vraie ligne26, higher est mis à 0 en ligne 29 et lastpoint à 1 ligne 30, n’est pas modifié tant que pas de newtrough, donc en bougie suivante en ligne 21 peakpercent qui est calculé avec une division par higher se retrouve en division par zéro, donc n/d et pas visualisable par drawtext tant qu’on ne retombe pas sur un higher différent de zéro en ligne 14 que si visite du if ligne 11 (donc un lastpoint<=0 venant de ligne 53, donc un newtrough vrai). En d’autres termes, peakpercent sera n/d la plupart du temps.
1 user thanked author for this post.
02/12/2022 at 5:32 PM #18816402/12/2022 at 7:45 PM #188167Oui pardon ligne 47… me suis mélangé les pinceaux entre lignes du post et lignes dans l’éditeur de code, la 53 était la même ligne dans mon éditeur mais décalée, ayant rajouté quelques lignes pour n’afficher les peakpercent que quand higher<>0 et vérifier le scénario décrit, désolé pour la confusion.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on