DrawOnLastBarOnly avec d’autres timeframes
Forums › ProRealTime forum Français › Support ProBuilder › DrawOnLastBarOnly avec d’autres timeframes
- This topic has 15 replies, 5 voices, and was last updated 1 year ago by Lavallette.
-
-
06/15/2023 at 3:37 PM #216289
Hello,
J’ai créé ce dummy indicateur afin de monter de manière simple mon problème.
1234567891011121314151617181920212223//// MUST be used in 5 minutes timeframe////DefParam DrawOnLastBarOnly = trueLength = 20timeframe(1 day)BasD = average[Length](close)VaD = BasD + 2TimeFrame(5 minutes, DEFAULT)Bas = average[Length](close)Va = Bas + 2Offset = 10drawtext(BasD ,barindex-offset,0,dialog,bold,20) coloured("ORANGE")drawtext(VaD ,barindex-offset,1,dialog,bold,20) coloured("GREEN")//drawtext(Bas ,barindex-6*offset,0,dialog,bold,20) coloured("ORANGE")drawtext(Va ,barindex-6*offset,1,dialog,bold,20) coloured("GREEN")return // Bas as "Bas", Va as "Va", VaD as "VaD", BasD as "BasD"Dans cet exemple, le graphique est en 5 minute. Deux time frames sont utilisés dans l’indicateur 5’ (le défaut) et 1 jour. Comme vous le voyez les deux valeurs en daily ne sont
pas disponibles. N/D est affiché.En revanche si je change timeframe(1 day) en timeframe(720 minutes) cela fonctionne.
De plus si des variables sont utilisée dans l’instruction return, les appels drawtext ne fonctionne pas ! Seulement les 2 courbes sont affichées (VA et BaS).
- Quelqu’un a-t-il une explication ?
Est-il possible d’utiliser DrawOnLastBarOnly en MTF en mélangeant 5’ et daily?
Dans ce contexte peut-on mélanger drawtext et return ?
Merci
06/15/2023 at 7:16 PM #216306Bjr,
normalement l’échelle se cale sur ce qui provient du return, sauf si la ligne return est vide auquel cas l’échelle est dans la zone autour de 0.
Comme la coordonnée verticale des drawtext est 0 ou 1, ça correspond au comportement normal de les voir avec une ligne return vide, ce n’est pas que l’échelle verticale se cale sur le drawtext mais sur la zone proche de 0 (drawtext ou pas).
Et quand la ligne return n’est pas vide mais retourne des valeurs éloignées de 0 (ici zone 50-60) l’échelle verticale se cale sur cette zone là, le drawtext étant alors ici trop bas. On peut par exemple déplacer le drawtext en zone 50-60 pour le mettre en partie visible, ou autre possibilité on peut ajouter zéro à la ligne return (return 0 as “zéro”, etc…) pour changer la quantité verticale affichée en y incluant le zéro si on ne veut pas changer la coordonnée verticale de drawtext .
1 user thanked author for this post.
06/16/2023 at 8:40 AM #216325Merci pour ce retour. En effet c’est par très malin de ma part.
Voila une nouvelle version qui montre encore mieux le problème. Pourquoi les valeurs de BasD et VaD (du timeframe Daily) ne sont pas disponibles et ne s’affichent pas en ORANGE?
Notez que si le deuxième timeframe est 30 minutes cela fonctionne parfaitement!!!
Quelqu’un aurait-il une explication?
06/17/2023 at 2:00 AM #2163709 BasD = average[Length](close)
9 BasD = average[Length](close[0])
1 user thanked author for this post.
06/19/2023 at 9:22 AM #216438Tu as besoin de plus d’historique chargée (donc des unités visibles sur le graphique) pour que les calculs du TF daily se fassent correctement, voilà pourquoi tu n’obtiens rien avec si peu de données chargées.
1 user thanked author for this post.
06/19/2023 at 5:50 PM #216482Merci. En effet mais même avec plus d’historique les drawtext ne fonctionne pas.
Pourtant les valeurs de retour sont correctes.
Je joins un autre example qui montre le problème.
06/19/2023 at 5:53 PM #216484Voilà ce que cela donne.
Il faut que je vérifie mais je ne comprends pas pourquoi cela semble mieux fonctionner avec BasD = average[Length](close[0]) !!!
06/19/2023 at 10:31 PM #216492Bonjour Lavallette
Je ne sais pas encore pourquoi (close) affiche ‘n/a’ et (close[0] affiche la valeur.
Cependant, j’ai remarque que la version (close) affiche la valeur sur le prochain ‘tick’ provenant du marche.
Donc, je suppose que si le marche est ferme ou si le trafic sur le marche est faible, alors pas de ‘tick’, pas de mise a jour.
En speculant un peu plus profondement, a la reception d’un nouveau sont obligees de recalculer et de mettre a jour.
Salutations
1 user thanked author for this post.
06/20/2023 at 12:30 AM #216493Cela fonctionne avec la ligne 8 exprimée en MINUTES si elles sont <= 960, et avec les HEURES si elles sont <=16 :
12timeframe(16h)Timeframe(960mn)vous pouvez transformer un TF Daily en TF 12h :
1timeframe(12h)1 user thanked author for this post.
06/20/2023 at 7:53 AM #216496Désolé, 12 heures ne font pas une journée 🙂
06/20/2023 at 4:11 PM #216506Un grand merci pour vos réponses.
Après avoir passé des heures sur ces problèmes, je suis arrivé à la conclusion que le MTF dans PRT version du 7 avril 2023 est complètement non fonctionnelle !
Cela fonctionne pour des indicateurs simples, mais pas lorsqu’ils se compliquent et lorsqu’ils font appel à plusieurs Timeframe (de cinq minutes à weekly).
Donc”A bon Entendeur” et faites attention lorsque vous utilisez le MTF.
06/21/2023 at 8:11 AM #216526Ici sur le DAX en timeframe 5-minutes, 10k unités, ça fonctionne correctement, on va bien les moyennes mobiles affichées sur le graphique du prix et j’ai ajouté l’indicateur en dessous pour voir le texte (voir image jointe).
Je remarque en effet un soucis avec IBM avec la valeur N/A uniquement sur les derniers chandeliers, alors que la valeur est bien présente, je vérifie.
06/21/2023 at 8:12 AM #216528voici le code utilisé pour référence, je vais me rapprocher du support.
12345678910111213141516171819202122232425//// MUST be used in 5 minutes timeframe////DefParam DrawOnLastBarOnly = trueLength = 10timeframe(1 day)BasD = average[Length](close)VaD = BasD + 2TimeFrame(5 minutes)Bas = average[Length](close)Va = Bas + 2Offset = 10drawtext("daily",barindex,1.5,dialog,bold,20)drawtext(BasD ,barindex-offset,0,dialog,bold,20) coloured("ORANGE")drawtext(VaD ,barindex-offset,1,dialog,bold,20) coloured("GREEN")//drawtext("5 minutes",barindex-6*offset,1.5,dialog,bold,20)drawtext(Bas ,barindex-6*offset,0,dialog,bold,20) coloured("ORANGE")drawtext(Va ,barindex-6*offset,1,dialog,bold,20) coloured("GREEN")return Bas as "Bas", Va as "Va", VaD as "VaD", BasD as "BasD"06/21/2023 at 9:39 AM #216533Je viens de m’apercevoir que le premier calcul affiche N/A, mais dés que le prix se met à jour le résultat correct s’affiche ensuite. Sur DAX ou IBM le correctement est identique, mais l’un est plus lent que l’autre évidemment. Je confirme donc que le code fonctionne correctement, mais qu’il faut un update du prix en effet.
06/29/2023 at 3:51 PM #216991Merci pour ces investigations mais je crois tout de même qu’il y a un problème. Je dis cela bien que je n’aime pas mettre la faute sur les autres, dans ce cas PRT.
A moins naturellement que j’ai loupé un truc! Dans ce cas un ENORME MEA CULPA.Voilà un exemple plus détaillé.
L’indicateur MTF
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960//// MUST be used in 5 minutes timeframe////DefParam DrawOnLastBarOnly = trueLength = 20//*******************************timeframe(1 Month)trueRangeM = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKCM = average[length](trueRangeM[0])//*******************************timeframe(1 week)trueRangeW = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKCW = average[length](trueRangeW[0])//*******************************timeframe(1 day)trueRangeD = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKCD = average[length](trueRangeD[0])//*******************************timeframe(4 hours)trueRange4H = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC4H = average[length](trueRange4H[0])//*******************************timeframe(60 Minutes)trueRange1H = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC1H = average[length](trueRange1H[0])//*******************************timeframe(30 Minutes)trueRange30M = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC30M = average[length](trueRange30M[0])//*******************************timeframe(15 Minutes)trueRange15M = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC15M = average[length](trueRange15M[0])//*******************************TimeFrame(5 minutes, DEFAULT)trueRange5M = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC5M = average[length](trueRange5M[0])//*******************************// Drawing//*******************************Offset = 10// MONTHLY *******************************drawtext(devKCM,barindex-offset,-0.5,dialog,bold,20) coloured("ORANGE")// WEEKLYdrawtext(devKCW,barindex-2*offset,-0.5,dialog,bold,20) coloured("ORANGE")// Dailydrawtext(devKCD,barindex-3*offset,-0.5,dialog,bold,20) coloured("ORANGE")// 4Hdrawtext(devKC4H,barindex-4*offset,-0.5,dialog,bold,20) coloured("ORANGE")// 1Hdrawtext(devKC1H,barindex-5*offset,-0.5,dialog,bold,20) coloured("ORANGE")// 30Mdrawtext(devKC30M,barindex-6*offset,-0.5,dialog,bold,20) coloured("ORANGE")// 15Mdrawtext(devKC15M,barindex-7*offset,-0.5,dialog,bold,20) coloured("ORANGE")// 5Mdrawtext(devKC5M,barindex-8*offset,-0.5,dialog,bold,20) coloured("ORANGE")returnL’indicateur simple pour chacun des Timeframes
12345678910111213DefParam DrawOnLastBarOnly = trueLength = 20//*******************************trueRange = MAX(High[0] - Low[0], max(High[0] - close[1], close[1] - Low[0]))devKC = average[length](trueRange[0])//*******************************// Drawing//*******************************Offset = 10drawtext(devKC,barindex-offset,-0.5,dialog,bold,20) coloured("ORANGE")returnVoilà ce que cela donne sur un écran. Certaines valeurs sur les unités courtes fonctionnent mais il y a des soucis sur les Timeframe plus grand.
J’adorerai avoir tord mais surtout comprendre.
Quelqu’un pourrait-il me mettre sur la voie?
- Quelqu’un a-t-il une explication ?
-
AuthorPosts
Find exclusive trading pro-tools on