Identifier high et low inconnus
Forums › ProRealTime forum Français › Support ProBuilder › Identifier high et low inconnus
- This topic has 12 replies, 2 voices, and was last updated 3 years ago by JC_Bywan.
-
-
09/23/2021 at 8:51 AM #178166
Bonjour…
Je souhaiterais solliciter votre aide pour finaliser l’indicateur ci-joint.
J’ai eu beau fouiller sur le site je n’ai pas trouvé les réponses à mes questions !
Je souhaiterais rajouter à cette petite formule simple une condition de validation et une condition d’invalidation.1- Validation = Bougie clôture au-dessus du plus haut de la configuration en 3 bougies(dans cette formule cela sera soit au-dessus de
high[3] soit high[1])2- Invalidation = Bougie clôture en-dessous du plus bas de la configuration en 3 bougies(soit low[2])
3- Si la configuration en 3 bougies que j’ai appelé “PriceActionSignal” devait se reproduire consécutivement sans que la précédente
ne soit “Validée” ou “Invalidée” alors on ne retiendra que la plus récente.PS : J’espère avoir été limpide. Mais pour simplifier ma demande. Ce que je voudrais faire c’est récupérer un plus haut et un plus bas
dans une configuration à plusieurs bougies. Et valider ou invalider un signal [X] bougies après.Par avance merci.
123456789101112131415//"PriceActionSignal" la configuration graphique consiste à déterminer le bon moment pour ouvrir une position acheteuse sur le marché.//Entrer en position lorsque le marché clôture au-dessus de la bougie dont le high est le plus haut.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Formulation de l'algorithme PriceActionSignalPriceActionSignal = low[3] > low[2] and low[2] < low[1] and high[3] > high[2] and high[2] < high[1] //and close[0] > high[x]//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Signal = 0// Représentation graphique PriceActionSignalif PriceActionSignal then//Drawcandle(open,high,low,close)coloured(255,99,71)Signal = 1endifReturn Signal as "Signal"09/23/2021 at 9:18 AM #178176Bonjour,
pour essayer de t’avancer en espérant avoir compris ton signal, j’ai juste ajouté de quoi visualiser toutes les validations et invalidations en histogrammes après stockage dans des variables du haut voulu et du bas voulu. Pas trop le temps de rester, et sans doute que d’autres pourront intervenir aussi, mais en partant de là tu peux ou bien le garder tel quel vu que c’est juste un indicateur graphique à ce stade, ou bien peut-être garder une seule validation ou invalidation par signal en cours pour enlever les histogrammes superflus une fois validé/invalidé, tout dépend de ce que tu souhaites garder sous les yeux…
123456789101112131415161718//"PriceActionSignal" la configuration graphique consiste à déterminer le bon moment pour ouvrir une position acheteuse sur le marché.//Entrer en position lorsque le marché clôture au-dessus de la bougie dont le high est le plus haut.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Formulation de l'algorithme PriceActionSignalPriceActionSignal = low[3] > low[2] and low[2] < low[1] and high[3] > high[2] and high[2] < high[1] //and close[0] > high[x]//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Signal = 0// Représentation graphique PriceActionSignalif PriceActionSignal then//Drawcandle(open,high,low,close)coloured(255,99,71)hautvoulu=max(high[1], high[3])basvoulu=low[2]Signal = 2endifValidation= close>hautvouluInvalidation= - (close<basvoulu)Return Signal as "Signal", Validation coloured(0,255,0) style(histogram) as "Validation", Invalidation coloured(255,0,0) style(histogram) as "Invalidation"1 user thanked author for this post.
09/23/2021 at 9:33 AM #17818009/23/2021 at 10:18 AM #17820509/23/2021 at 10:49 AM #178209La cause de l’erreur pour cette modification est que max() et min() ne s’utilisent que pour comparaison directe de 2 valeurs dans les parenthèses.
Tu peux soit faire un max d’une valeur et d’une 2e valeur étant elle-même un max de 2 valeurs: max(high[1], max(high[2], high[3]))
soit passer par highest avec la syntaxe suivante pour l’appliquer sur 3 valeurs, mais au rang précédent: highest[3](high)[1]
(c’était juste pour info sur la programmation, mais en pratique par définition du signal qui imposait déjà que high[2] est plus bas que les 2 autres, et low[1] et low[3] sont plus hauts que low[2], la modif n’est pas nécessaire)
1 user thanked author for this post.
09/23/2021 at 11:56 AM #178220Merci pour les infos. Mais je n’arrive toujours pas à le faire fonctionner !
Je reformule(code ci-joint).
1- Je veux déclencher un “Achat” lorsque une bougie clôture au-dessus du plus haut de ma configuration “PriceActionSignal”
2- Je veux invalider un possible “Achat” si une bougie clôture sous le plus bas de ma configuration “PriceActionSignal”
1234567891011121314151617//"PriceActionSignal" la configuration graphique consiste à déterminer le bon moment pour ouvrir une position acheteuse sur le marché.//Entrer en position lorsque le marché clôture au-dessus de la bougie dont le high est le plus haut.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Formulation de l'algorithme PriceActionSignalPriceActionSignal = open[3] > close[3] and open[2] > close[2] and open[1] > close[1]//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Signal = 0// Représentation graphique PriceActionSignalif PriceActionSignal thenhautvoulu=max(high[1], max(high[2], high[3]))basvoulu=min(low[1], min(low[2], low[3]))Signal = 2endifValidation= close>hautvouluInvalidation= - (close<basvoulu)Return Signal as "Signal"09/23/2021 at 8:48 PM #178246Les niveaux à 1, 1.5 ou 2 n’ont pas une signification particulière, c’est juste pour visualiser plus vite, le résultat final étant l’histogramme vert “achat”
123456789101112131415161718192021222324252627//"PriceActionSignal" la configuration graphique consiste à déterminer le bon moment pour ouvrir une position acheteuse sur le marché.//Entrer en position lorsque le marché clôture au-dessus de la bougie dont le high est le plus haut.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////once surveillerachat=0// Formulation de l'algorithme PriceActionSignalPriceActionSignal = low[3] > low[2] and low[2] < low[1] and high[3] > high[2] and high[2] < high[1] //and close[0] > high[x]//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Signal = 0achat = 0// Représentation graphique PriceActionSignalif PriceActionSignal thenhautvoulu=max(high[1], high[3])basvoulu=low[2]Signal = 1.5surveillerachat=1endifValidation= close>hautvouluInvalidation= - (close<basvoulu)if surveillerachat=1 and validation and not PriceActionSignal thenachat=2surveillerachat=0elsif surveillerachat=1 and Invalidation=-1 thensurveillerachat=-1endifReturn Signal as "Signal", surveillerachat style(dottedline,1) as "surveillerachat", achat coloured(0,255,0) style(histogram) as "achat"//Validation coloured(0,255,0) style(histogram) as "Validation", Invalidation coloured(255,0,0) style(histogram) as "Invalidation"1 user thanked author for this post.
09/24/2021 at 1:42 PM #17830509/25/2021 at 11:34 AM #178371L’idée, c’est que puisque “priceactionsignal” ne dure qu’une barre, et que la validation/invalidation se fait sur une autre barre, il faut séparer quand le code doit guetter une validation/invalidation de quand il ne le doit pas. C’est le rôle joué par la variable “surveillerachat”, qui est à mise à 1 quand il faut surveiller à partir d’un nouveau “priceactionsignal”, puis passe à 0 si un achat est fait, ou à -1 quand il y a invalidation (juste pour visualiser, aurait pu être à 0 aussi).
1 user thanked author for this post.
09/25/2021 at 12:09 PM #17837509/25/2021 at 4:27 PM #17839409/25/2021 at 4:55 PM #17839609/25/2021 at 5:20 PM #178403Oui,
ou bien aussi: hautvoulu=highest[4](high)[1]
ou encore pour être complet une variante: mettre en mémoire dans X le plus grand high de la barre en cours et des 3 barres précédentes X=highest[4](high), et utiliser hautvoulu=X[1] pour avoir le plus grand high des 4 barres précédentes
1 user thanked author for this post.
-
AuthorPosts