Variables en tableaux en MTF
Forums › ProRealTime forum Français › Support ProBuilder › Variables en tableaux en MTF
- This topic has 2 replies, 2 voices, and was last updated 2 years ago by
keysec.
-
-
05/15/2023 at 9:50 AM #214708
Bonjour à tous,
Je suis en train de créer un indicateur complet pour le trading basé sur des zones de force (liquidité). Je veux pouvoir pour X TF, remplir un tableau pour contenir les zones qui me serviront plus tard. Je vous paste une partie du code avec en TF H1 et M30 la récupération des zones de force. Ensuite en TF default, je déroule une boucle pour les tracer. Or, lorsque je le fais, PRT trace 2 fois les mêmes zones! Est ce que quelqu’un pourrait avec un oeil frais, me dire ce que j’ai loupé svp?
Merci.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152timeframe(60 minutes, updateonclose)once indH = 0once indvH = 0supportH, resistanceH, lasthighH, lastlowH = CALL "K-ZONES"$resistanceH[indvH] = resistanceH$lasthighH[indvH] = lasthighHindvH = indvH +1$supportH[indH] = supportH$lastlowH[indH] = lastlowHindH = indH +1timeframe(30 minutes, updateonclose)once indM30 = 0once indvM30 = 0supportM30, resistanceM30, lasthighM30, lastlowM30 = CALL "K-ZONES"$resistanceM30[indvM30] = resistanceM30$lasthighM30[indvM30] = lasthighM30indvM30 = indvM30 +1$supportM30[indM30] = supportM30$lastlowM30[indM30] = lastlowM30indM30 = indM30 +1timeframe(default)if indM30 >0 and islastbarupdate thenfor j = 0 to indM30haut = $supportM30[j]bas = $lastlowM30[j]DrawText("#haut# (ZONE M30)",barindex+50,$supportM30[j],SansSerif,Standard,10)coloured(102,102,102)DrawText("#bas# (ZONE M30)",barindex+50,$lastlowM30[j],SansSerif,Standard,10)coloured(102,102,102)if close > $supportM30[j] thendrawrectangle(barindex,$supportM30[j],barindex - 300,$lastlowM30[j]) coloured(0,255,0,50) bordercolor(0,150,150,70)elsedrawrectangle(barindex,$supportM30[j],barindex - 300,$lastlowM30[j]) coloured(255,0,0,50) bordercolor(0,150,150,70)endifnextendifif indH >0 and islastbarupdate thenfor i = 0 to indHhaut = $supportH[i]bas = $lastlowH[i]DrawText("#haut# (ZONE H1)",barindex+50,$supportH[i],SansSerif,Standard,10)coloured(102,102,102)DrawText("#bas# (ZONE H1)",barindex+50,$lastlowH[i],SansSerif,Standard,10)coloured(102,102,102)if close > $supportH[i] thendrawrectangle(barindex,$supportH[i],barindex - 300,$lastlowH[i]) coloured(0,15,0,50) bordercolor(0,150,150,70)elsedrawrectangle(barindex,$supportH[i],barindex - 300,$lastlowH[i]) coloured(15,0,0,50) bordercolor(0,150,150,70)endifnextendif05/15/2023 at 11:27 AM #214711Petite remarque à la lecture, en faisant ceci:
1234supportH, resistanceH, lasthighH, lastlowH = CALL "K-ZONES"$resistanceH[indvH] = resistanceH$lasthighH[indvH] = lasthighHindvH = indvH +1tu enregistres une nouvelle colonne de ton tableau à chaque nouvelle bougie 60 minutes, même si la valeur récupérée dans l’indicateur est la même (peut être que c’est volontaire), mais tu pourrais gagner en performance si tu enregistres une valeur uniquement si elle a changé par exemple.
J’imagine que tu traces dans le passé toutes tes zones, donc il faut tracer une seule et unique fois à la lecture du code, sur la dernière bougie avec DEFPARAM DRAWONLASTBARONLY=TRUE
Par ailleurs, il est possible que tes zones soient identiques dans chacun des timeframes (hypothèse).
1 user thanked author for this post.
05/16/2023 at 1:39 PM #214810Bonjour et merci pour les premiers retour Nicolas.
J’ai filtré uniquement les valeurs différentes de zones pour gagner en performance comme tu me l’as conseillé. J’ai voulu illustrer le problème en affichant les zones M15 et M30 (complétement différentes) sur un TF en M1. J’ai simplement raccourci le rectangle de 50% pour le rectangle des zones TF M15 pour illustrer que PRT me dessine les mêmes zones. Je pense qu’il y a un problème comme si le TF M30 écrasait “timeframe(15 minute)”.
Une idée?
-
AuthorPosts
Find exclusive trading pro-tools on 