ZigZag difference entre ZigZagPoint et ZigZag
Forums › ProRealTime forum Français › Support ProBuilder › ZigZag difference entre ZigZagPoint et ZigZag
- This topic has 29 replies, 2 voices, and was last updated 2 years ago by Alai-n.
Tagged: zigzag, ZIGZAGPOINT
-
-
09/19/2022 at 4:08 PM #20104109/20/2022 at 6:58 AM #201065
Bonjour Nicolas,
Ca fait plaisir de voir apparaitre sur le graphique une information qui correspond à ce qui est attendu !
Dans ton post #200854 tu fais apparaitre “pointhaut” dans le code… Si tu pouvais faire pareil avec ce code-ci, ce serait parfait !!!
Normalement ensuite je devrais pouvoir me débrouiller pour faire déclencher des Alertes sur Throwback et Pullback… Enfin, je crois car je n’ai pas compris toutes les lignes du code !
09/20/2022 at 10:40 AM #20107909/20/2022 at 2:12 PM #201094Dans le post#200854 tu as posé un code pour récupérer, les points hauts ! C’est super, mais on a vu que le ZigZagPoint[15] dans cette formulation posait problème, du coup cela a une influence sur la véracité des points hauts récupérés.
Dans le post#201039 tu proposes une solution pour corriger les disfonctionnements du ZigZagPoint, c’est super, l’indicateur est stable et fiable dans l’information retournée !
Cependant là, je ne sais pas quoi rajouter au code pour récupérer les “points hauts” et “point bas” ? Pour les afficher et pouvoir y introduire une commande afin de déclencher des Alertes sur Throwback ou PullBack…
1Return itop as "itop" // Ca ne fonctionne pas pour faire apparaitre les Points Hauts09/21/2022 at 8:39 AM #201122avec le code de zigzag ci-dessous tu peux tester les valeurs de “lasttop” pour les plus hauts et “lastbottom” pour les plus bas.
12345678910111213141516171819202122232425262728293031323334353637383940zz = zigzagpoint[15]lookback = 100if islastbarupdate then//find last zigzag tops & bottomsa=0unset($zz)for i = lookback-1 downto 0itop = zz[i+1]>zz[i+2] and zz[i]<zz[i+1]ibottom = zz[i+1]<zz[i+2] and zz[i]>zz[i+1]if itop then$zz[a]=zz[i+1]$zzbar[a]=barindex-(i+1)$zztype[a]=1lasttop = $zz[a]a=a+1endifif ibottom then$zz[a]=zz[i+1]$zzbar[a]=barindex-(i+1)$zztype[a]=-1lastbottom = $zz[a]a=a+1endifnext//plot the zigzag tops & bottomsif a>0 thenfor i = 0 to a-1if $zztype[i]=1 then //is that a top?drawpoint($zzbar[i],$zz[i],3) coloured("cyan")else //nope! that's a bottomdrawpoint($zzbar[i],$zz[i],3) coloured("crimson")endifnextendifendifreturn lasttop, lastbottom1 user thanked author for this post.
09/21/2022 at 1:26 PM #201137Bonjour,
J’ai tenté de faire apparaitre les Throwback en me servant de “Lasttop” via la création simplifié d’indicateurs, mais comme on peut le voir sur l’image. La fenêtre Throwback reste vide, bien qu’un certain nombre devrait déclencher !
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/////////////////////////////////////////////////////////////// Conditions pour ouvrir une position acheteuse niveau 0ignored, indicator1, ignored = CALL "ZigZag-LastPoint"(close)c1 = (open[1] >= indicator1[0])ignored, indicator2, ignored = CALL "ZigZag-LastPoint"(close)c2 = (low[1] < indicator2[0])ignored, indicator3, ignored = CALL "ZigZag-LastPoint"(close)c3 = (close[1] > indicator3[0])// Conditions pour ouvrir une position acheteuse niveau 1ignored, indicator1, ignored = CALL "ZigZag-LastPoint"(close)c4 = (open[1] >= indicator1[1])ignored, indicator2, ignored = CALL "ZigZag-LastPoint"(close)c5 = (low[1] < indicator2[1])ignored, indicator3, ignored = CALL "ZigZag-LastPoint"(close)c6 = (close[1] > indicator3[1])// Conditions pour ouvrir une position acheteuse niveau 2ignored, indicator1, ignored = CALL "ZigZag-LastPoint"(close)c7 = (open[1] >= indicator1[2])ignored, indicator2, ignored = CALL "ZigZag-LastPoint"(close)c8 = (low[1] < indicator2[2])ignored, indicator3, ignored = CALL "ZigZag-LastPoint"(close)c9 = (close[1] > indicator3[2])// Conditions pour ouvrir une position acheteuse niveau 3ignored, indicator1, ignored = CALL "ZigZag-LastPoint"(close)c10 = (open[1] >= indicator1[3])ignored, indicator2, ignored = CALL "ZigZag-LastPoint"(close)c11 = (low[1] < indicator2[3])ignored, indicator3, ignored = CALL "ZigZag-LastPoint"(close)c12 = (close[1] > indicator3[3])// Conditions pour ouvrir une position acheteuse niveau 4ignored, indicator1, ignored = CALL "ZigZag-LastPoint"(close)c13 = (open[1] >= indicator1[4])ignored, indicator2, ignored = CALL "ZigZag-LastPoint"(close)c14 = (low[1] < indicator2[4])ignored, indicator3, ignored = CALL "ZigZag-LastPoint"(close)c15 = (close[1] > indicator3[4])/////////////////////////////////////////////////////////////Throwback = 0IF c1 AND c2 AND c3 THENThrowback = 1ENDIFIF c4 AND c5 AND c6 THENThrowback = 1ENDIFIF c7 AND c8 AND c9 THENThrowback = 1ENDIFIF c10 AND c11 AND c12 THENThrowback = 1ENDIFIF c13 AND c14 AND c15 THENThrowback = 1ENDIFReturn Throwback as "Throwback"09/21/2022 at 2:45 PM #201145Tu n’es pas obligé de faire autant de CALL, puisque tu vas à chaque fois chercher la même valeur, une seule fois suffit.
Tu as vérifié que ton “indicator1” retourne une valeur sur ton graphique ? en l’insérant dans ton RETURN.
Si une condition ne se déclenche pas, toujours commencer par vérifier ses variables.
09/21/2022 at 2:48 PM #201146Par ailleurs, le code de mon indicateur ne fonctionne que sur la barre courante et on peint les boules dans le passé, donc ton code ne va fonctionner que sur le temps réel et pas dans ton historique.
Puisque de toute manière le zigzag repeint, un signal qui casse un point haut redessine ce point haut, sauf si on a un point bas entre deux (type pattern 123 pour résumer).
09/21/2022 at 3:40 PM #201152En effet le problème réside dans tes observations du post#201146. Si j’ai fait autant de CALL c’est pour pouvoir déclencher sur les 5 Derniers “Lasttop” comme on peut le faire dans l’indicateur du post#200854.
N’y a t-il pas une solution pour récupérer plus de “Lasttop” dans l’historique avec le code du post #201122 ? Car du coup ne regarder que en temps réel diminue grandement le nombre de déclenchements possible !!!
Restera plus tard à définir une configuration “d’ invalidation” afin d’éviter des déclenchements intempestifs qui n’auraient plus de sens ! Mais pour l’heure pour exploiter un véritable Throwback les conditions temps réel sont trop restrictives, car si le marché monte un peu trop et revient en arrière,
il y a de grande chance qu’il est laissé le dernier “Lasttop” juste au-dessus de sa tête, donc du coup il ne déclenchera pas en allant tester le précédent !!! L’idée étant de déclencher une Alerte lorsque le prix touche le trait vert(image jointe) qui correspond au Lasttop[1], ce qui n’est pas possible dans l’état actuel…
09/22/2022 at 9:05 AM #201183Alain, tu fais fausse route, je pense que tu veux à tout prix obtenir quelque-chose qui n’est pas possible avec le fonctionnement des instructions ET comment fonctionne un zigzag en temps réel.
Je viens de relire ton code et tu ne peux pas faire un [2] pour obtenir le deuxième point bas 😆 Quand tu fais un offset [2] d’une variable, tu récupères la valeur dans le temps, soit ici il y a 2 bougies, donc ton code ne peut pas marcher.
Reprenons, donc tu voudrais trouver un breakout sur le point 2 comme dans l’exemple ci-joint n’est ce pas ? Si oui on peut le faire rapidement avec mon dernier code, et voir un autre sujet où cela a été fait, mais basé sur des fractals (qui ne repeignent pas!) https://www.prorealcode.com/topic/signal-sur-cassure-pic-creux/#post-146823
09/22/2022 at 9:11 AM #20118509/22/2022 at 10:15 AM #201187“Ah pardon, j’ai mieux compris ton setup en relisant ton message et ton image jointe.
Donc si on doit toucher le plus haut précédent, il faut bien qu’il y en ai eu un autre validé n’est ce pas ?”
En effet, ne travailler que sur le dernier plus haut ou plus bas récent est trop restrictif !!! L’idéal serait d’en récupérer au minimum 5 voir jusqu’à 10 “Lasttop et Lastbottom” ! Encore faut-il que cela soit possible techniquement…
Sur les images jointes, je mets en évidence certaines configurations. Jettes-y un œil pour que cela soit plus clair.
Image 1 = Mise en évidence de 2 Throwback Validé et de 2 Pullback Validé. Sur le Pullback intitulé “Pullback 2” on remarquera que la configuration intervient sur le Lastbottom[7], d’où l’intérêt de garder en mémoire un maximum de “Lasttop et Lastbottom” tant que l’invalidation d’un niveau n’intervient pas !
Image 2 = Mise en évidence d’un “Lastbottom” invalidé, car comme spécifié sur l’image la Close du chandelier se fait au-dessus du ‘Lastbottom[2]” (niveau Ref)
Image 3 = Mise en évidence d’un “Lasttop” invalidé, car comme spécifié sur l’image la Close du chandelier se fait en-dessous du ‘Lasttop[4]” (niveau Ref)
NB : Un Throwback consiste à re-tester une précédente résistance devenu support et inversement pour le Pullback.
Je pense avoir été le plus complet possible, après je ne sais pas ce qu’il est possible de faire avec tout ça… A toi de me dire
09/22/2022 at 10:20 AM #201191Ah oui, petite précision sur l’ interaction entre l’action du Prix et le niveau.
Throwback = open[1] >= Lasttop[x] and low[1] < Lasttop[x] and close > Lasttop[x]
Pullback = open[1] <= Lastbottom[x] and high[1] > Lastbottom[x] and close < Lastbottom[x]
09/26/2022 at 12:32 PM #201428Ci-joint exemple avec les pullbacks.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748//defparam calculateonlastbars=200zz = zigzagpoint[15]lookback = 500//if islastbarupdate then//find last zigzag tops & bottomsa=0unset($zz)for i = lookback-1 downto 0itop = zz[i+1]>zz[i+2] and zz[i]<zz[i+1]ibottom = zz[i+1]<zz[i+2] and zz[i]>zz[i+1]if itop then$zz[a]=zz[i+1]$zzbar[a]=barindex-(i+1)$zztype[a]=1lasttop = $zz[a]a=a+1endifif ibottom then$zz[a]=zz[i+1]$zzbar[a]=barindex-(i+1)$zztype[a]=-1lastbottom = $zz[a]a=a+1endifnext//plot the zigzag tops & bottomsif a>0 thenfor i = 0 to a-1if $zztype[i]=1 then //is that a top?drawpoint($zzbar[i],$zz[i],3) coloured("cyan")else //nope! that's a bottomdrawpoint($zzbar[i],$zz[i],3) coloured("crimson")//testing the pullbackif max(open,close)<$zz[i] and high>=$zz[i] and high>max(open,close) thendrawarrowdown(barindex,high) coloured("red")drawsegment($zzbar[i],$zz[i],barindex+5,$zz[i]) coloured("red")endifendifnextendif//endifreturn1 user thanked author for this post.
09/27/2022 at 4:48 AM #201470C’est pas mal du tout…
Je fais pareil pour les Throwback, je teste que tout fonctionne correctement avec les Alertes !
Et je pense que je vais revenir vers toi pour caler quelque chose, car il est certain que je ne vais pas m’en sortir seul, qui permette de faire le tri entre les niveaux. Un process, une petite histoire à écrire qui permette de créer une invalidation. Car maintenant du coup il y en a bcp des niveaux !!!
Merci
-
AuthorPosts
Find exclusive trading pro-tools on