Screener dont HA passe au-dessus d’un SMA
Forums › ProRealTime forum Français › Support ProScreener › Screener dont HA passe au-dessus d’un SMA
- This topic has 7 replies, 2 voices, and was last updated 1 year ago by imencity.
-
-
06/24/2023 at 9:10 PM #216703
Bonjour,
Je tente de faire un screener qui:
- cherche parmi les x dernières bougies (ici 50 dernières bougies)
- quand le haut d’une bougie Heikin Ashi passe au-dessus d’une moyenne mobile simple 40
- et que elle-même ou celle d’avant ou l’avant-avant dernière ait ouvert SOUS cette SMA40 (en général c’est la même bougie ou max celle d’avant)
- et que le RSI14 passe au-dessus des 50
- et que les x dernières (par exemple 5) bougies aient un RSI14 < 50
J’ai un peu commencé mais je bute… pouvez-vous m’aider svp ?
Merci.
1234567891011121314151617181920212223242526// HAUSSIER// CODE HEIKIN ASHIONCE OuvertureHA = (open + close + high + low)/4ONCE ClotureHA = (open + close)/2//ONCE PlusBasHA = high//ONCE PlusHautHA = lowOuvertureHA = (OuvertureHA + ClotureHA)/2ClotureHA = (open + close + high + low)/4//PlusBasHA = MIN(MIN(OuvertureHA,ClotureHA),low)//PlusHautHA = MAX(MAX(OuvertureHA,ClotureHA),high)indicator1 = Average[40](close)c1 = (ClotureHA > indicator1) and (OuvertureHA < indicator1 or OuvertureHA[1] < indicator1)criteria = RSI[14](close)c2 = criteria > 50 and criteria[3] < 50cond = c1 and c2if summation[50](cond)>=1 thenSignal = 1endifSCREENER[Signal] (Signal AS "Signal")06/26/2023 at 6:51 AM #216748Bjr,
“le haut d’une bougie Heikin Ashi passe au-dessus d’une moyenne mobile simple 40”:
=> le code compare la closeHA et la SMA40, alors que le texte parle du haut de bougie HA, soit le texte décrit mal et le code est bon, soit il faut modifier c1 en remplaçant “ClotureHA > indicator1″ par “PlusHautHA > indicator1”
“elle-même ou celle d’avant ou l’avant-avant dernière ait ouvert SOUS cette SMA40”:
=> le texte évoque 3 comparaisons à faire dont l’avant-veille avec la SMA40 mais le code n’en fait que 2 il manque l’avant-veille, si le texte est bon mais pas le code, alors ajouter dans c1: or OuvertureHA[2] < indicator1
“le RSI14 passe au-dessus des 50”
=> RSI[14](close) crosses over 50
“les x dernières (par exemple 5) bougies aient un RSI14 < 50”
=> on va supposer qu’on parle des 5 précédentes plutôt que 5 dernières (dernières incluent courante, qui elle-même se doit d’être supérieure à 50 et ne peut pas à la fois être au-dessus et au-dessous)
sous50 = summation[5](RSI[14](close)<50)<50
c2= RSI[14](close) crosses over 50 and sous50[1]
screener[c1 and c2]
06/26/2023 at 10:11 AM #216774Bonjour Nicolas,
Merci de ta réponse.
Je pense que tu m’a donné la solution à ce qui me bloquait avec: sous50 = summation[5](RSI[14](close)<50)<50
Mais bon oui c’était bien les 50 dernières bougies afin de voir le “futur” de cette configuration pour voir si mon hypothèse tiens la route (ça va plus vite que d’attendre le temps réelle 😉
Mais j’aurais évidemment pu regarder sur les 100 dernières bougies car oui dans mon texte ça fait beaucoup de 50 et on peut penser que je me trompe.Pour le HA oui je me suis trompé en écrivant. Je voulais bien le closeHA.
En tout cas merci, je vais regarder cela 😉
06/26/2023 at 9:19 PM #216822Il me manque un point, c’est le premier: dans les 50 dernières bougies.
Sauf erreur le CROSSES OVER indique un état lors de la bougie en cours. J’ai besoin d’identifier les “CROSSES OVER” qui ont eu lieu par ex à la 40 ème bougies.123456789101112131415161718192021222324252627282930// HAUSSIER// CODE HEIKIN ASHIONCE OuvertureHA = (open + close + high + low)/4ONCE ClotureHA = (open + close)/2//ONCE PlusBasHA = high//ONCE PlusHautHA = lowOuvertureHA = (OuvertureHA + ClotureHA)/2ClotureHA = (open + close + high + low)/4//PlusBasHA = MIN(MIN(OuvertureHA,ClotureHA),low)//PlusHautHA = MAX(MAX(OuvertureHA,ClotureHA),high)indicator1 = Average[40](close)c1 = (ClotureHA > indicator1) and (OuvertureHA < indicator1 or OuvertureHA[1] < indicator1 or OuvertureHA[2] < indicator1)criteria = RSI[14](close)sous50 = summation[5](criteria<50)<50c2 = criteria crosses over 50 and sous50[1]cond = c1 and c2filtre = SUMMATION[200](range>0.1) > 150if cond thenSignal = 1elseSignal = 0endifSCREENER[Signal and filtre] (Signal AS "Signal")Comment faire ?
06/27/2023 at 6:03 AM #216833Je sais pas trop comment ça s’est passé, mais j’ai mal fait la variable sous50. L’idée était de vérifier qu’une condition a eu lieu 5 fois sur 5 via summation, qui doit être = 5 si ok 5 fois sur 5. Le bon sous50 est:
sous50 = summation[5](RSI[14](close)<50)=5
ou avec ton criteria: sous50= summation[5](criteria<50)=5
Pour le crossover, ça dépend, soit il doit avoir eu lieu dans les 50 indépendamment du reste qui a lieu en courante, soit c’est toutes les conditions à la fois qui doivent avoir eu lieu ensemble au moment du crossover dans les 50, ce qui ne se coderait pas de la même façon.
06/27/2023 at 6:28 AM #21683606/27/2023 at 6:49 AM #21683906/27/2023 at 7:56 AM #216848 -
AuthorPosts
Find exclusive trading pro-tools on