Screener avec zigzag échouant 5-10% du temps !
Forums › ProRealTime forum Français › Support ProScreener › Screener avec zigzag échouant 5-10% du temps !
- This topic has 15 replies, 2 voices, and was last updated 4 years ago by Machin.
-
-
09/24/2020 at 6:58 PM #145272
Bonsoir tout le monde, voici un code qui me pose problème depuis un moment.
En outre le screener renvoie des stocks avec une variable “Structure” étant égale à 0, or il devrait renvoyé (comme il le fait 90% du temps) des stocks ayant une variable “structure” égale à 1. Par ailleurs l’indicateur ayant le même code que le screener détermine la variable “structure” comme étant nulle, c’est troublant.
Vous pouvez retrouver le code ci-dessous, celui-ci à pour but de rechercher des actifs ayant des plus bas croissants (en l’occurrence trois plus bas croissants).
Merci pour votre aide 🙂
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566ZZ=ZigZag[3](low)//définition bottomif zz[2]>zz[1] and zz>zz[1] thenBottom=1elseBottom=0endif//Coordonnées du premier low :If bottom=1 thenpremierbot=low[1]elseendif//Coordonnées du deuxieme low :boucle1=1if bottom=1 thenwhile boucle1<50 doboucle1=boucle1+1if bottom[boucle1]=1 thenSecondBot=low[boucle1+1]breakelseSecondbot=0endifwendendif//Coordonnées du troisième low :boucle2=1if bottom=1 thenwhile boucle2<50 doboucle2=boucle2+1if bottom[boucle2+boucle1]=1 thenTroisiemeBot=low[boucle2+1+boucle1]breakelseTroisiemeBot=0endifwendendif//Suppression cassure de plus bas (permet de limiter les erreurs liées aux données actualisées en fin de journée)Minimum=lowest[10] (low)if low>minimum thenSupMini=1elseSupMini=0endif//Variable finaleIf SupMini=1 thenIf Premierbot>Secondbot and Secondbot>Troisiemebot thenStructure=1elseStructure=0endifelsif SupMini=0 thenStructure=0endifScreener[structure=1]09/25/2020 at 8:06 AM #145308Je n’ai pas testé le screener, mais cela ressemble fort à une désynchronisation des résultats dut à un historique différent.
Puisque ton code utilise le zigzag qui commence à se calculer dés la première barre de l’historique pour trouver des points hauts et des points, si l’historique est différent entre ProScreener et le graphique de l’instrument que tu observes, alors il peut y avoir en effet des différences.
Pour mémoire, ProScreener se limite à 254 unités. Essaie d’afficher uniquement cette quantité de bougies sur le graphique pour voir si des différences continuent de se produire.
09/25/2020 at 5:13 PM #14541909/28/2020 at 9:56 AM #145637L’idéal pour comprendre la différence entre l’indicateur Zigzag calculé par le screener et celui affiché sur ton graphique, c’est ajouté la valeur du zigzag dans la colonne de critère de tri :
1Screener[structure=1](ZZ as "valeur zigzag")09/28/2020 at 3:15 PM #14570109/28/2020 at 3:28 PM #14570609/28/2020 at 3:34 PM #14570709/28/2020 at 3:41 PM #14570809/28/2020 at 3:59 PM #145714NTES est pour moi conforme, en v11 (voir image), fin de journée, donc résultat de la veille. J’utilise le code du screener transformé en indicateur :
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566ZZ=ZigZag[3](low)//définition bottomif zz[2]>zz[1] and zz>zz[1] thenBottom=1elseBottom=0endif//Coordonnées du premier low :If bottom=1 thenpremierbot=low[1]elseendif//Coordonnées du deuxieme low :boucle1=1if bottom=1 thenwhile boucle1<50 doboucle1=boucle1+1if bottom[boucle1]=1 thenSecondBot=low[boucle1+1]breakelseSecondbot=0endifwendendif//Coordonnées du troisième low :boucle2=1if bottom=1 thenwhile boucle2<50 doboucle2=boucle2+1if bottom[boucle2+boucle1]=1 thenTroisiemeBot=low[boucle2+1+boucle1]breakelseTroisiemeBot=0endifwendendif//Suppression cassure de plus bas (permet de limiter les erreurs liées aux données actualisées en fin de journée)Minimum=lowest[10] (low)if low>minimum thenSupMini=1elseSupMini=0endif//Variable finaleIf SupMini=1 thenIf Premierbot>Secondbot and Secondbot>Troisiemebot thenStructure=1elseStructure=0endifelsif SupMini=0 thenStructure=0endifreturn structure09/28/2020 at 3:59 PM #14571609/28/2020 at 4:06 PM #14571709/28/2020 at 4:06 PM #145719Le code en question123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566ZZ=ZigZag[3](low)//définition bottomif zz[2]>zz[1] and zz>zz[1] thenBottom=1elseBottom=0endif//Coordonnées du premier low :If bottom=1 thenpremierbot=low[1]elseendif//Coordonnées du deuxieme low :boucle1=1if bottom=1 thenwhile boucle1<50 doboucle1=boucle1+1if bottom[boucle1]=1 thenSecondBot=low[boucle1+1]breakelseSecondbot=0endifwendendif//Coordonnées du troisième low :boucle2=1if bottom=1 thenwhile boucle2<50 doboucle2=boucle2+1if bottom[boucle2+boucle1]=1 thenTroisiemeBot=low[boucle2+1+boucle1]breakelseTroisiemeBot=0endifwendendif//Suppression cassure de plus bas (permet de limiter les erreurs liées aux données actualisées en fin de journée)Minimum=lowest[10] (low)if low>minimum thenSupMini=1elseSupMini=0endif//Variable finaleIf SupMini=1 thenIf Premierbot>Secondbot and Secondbot>Troisiemebot thenStructure=1elseStructure=0endifelsif SupMini=0 thenStructure=0endifreturn structure09/28/2020 at 4:30 PM #14572209/28/2020 at 4:34 PM #14572409/28/2020 at 5:00 PM #145731bien compris, ci-dessous les codes à tester pour trouver la structure de 3 point bas de plus en plus haut successifs :
indicateur123456789101112131415ZZ=ZigZag[3](low)//définition bottomif zz[2]>zz[1] and zz>zz[1] thenif zz>lastzz thencount=count+1elsecount=0endiflastzz=zzendifstructure = count = 3return structurescreener123456789101112131415ZZ=ZigZag[3](low)//définition bottomif zz[2]>zz[1] and zz>zz[1] thenif zz>lastzz thencount=count+1elsecount=0endiflastzz=zzendifstructure = count = 3screener[structure]1 user thanked author for this post.
-
AuthorPosts