Bonjour Nicolas, bonjour à tous,
Je m’arrache les cheveux sur la codification d’un Proscreener. Cela doit pourtant être relativement simple. Je cherche à screener toutes les actions qui respecte une condition c1 (par exemple le stochastique qui croise à la baisse la valeur 20) dans une tendance haussière (ma tendance haussière est définie par MM50>MM200 et close>MM50). Jusque là rien de bien compliqué.
Là où ça se corse, c’est que je souhaite que mon Proscreener ne me retourne que les actions pour lesquelles c’est la première fois que je rencontre la condition c1 dans cette tendance.
Prenons l’exemple d’une action A, dans une tendance haussière qui durerait 100 périodes et qui respecterait 5 fois la condition c1 (c’est à dire dont le stochastique croiserait 5 fois à la baisse la valeur 20 : c1.1, c1.2, c1.3, c1.4 et c1.5). Et bien, j’aimerais que mon Proscreener ne me retourne l’action A uniquement la première fois que la condition est respectée (c1.1) et pas les autres fois.
Je n’y arrive pas. Est-ce que quelqu’un a la solution ?
Merci d’avance
Il faut tout d’abord définir ce qui démarre et termine ce que tu appelles une “tendance”. A partir de ce principe on pourra n’autoriser le renvoi que du premier signal à partir du début de cette “tendance”.
Ma tendance démarre quand (MM50>MM200 et close>MM50).
Et se termine quand quand MM50 <= MM200 ou close <MM50
Merci Nicolas pour ta réactivité.
Ma tendance démarre quand :(MM50>MM200) AND (close>MM50)
Et se termine quand (MM50 <= MM200) OR (close <= MM50)
A partir de cette définition de tendance, comment peut-on n’autoriser le renvoi que du premier signal ?
Je crois que nos messages se sont croisés. Merci de ne pas “up” un topic toutes les heures pour obtenir une réponse avec un message inutile, c’est la meilleure façon de n’en obtenir aucune 🙂
Bonsoir Nicolas,
Effectivement nos messages se sont croisés. Et effectivement, j’avais déjà fait cette demande il y a un moment. Je ne m’en rappelais plus et en plus tu m’avais donné la solution… Je suis sincèrement désolé pour le dérangement et te remercie grandement pour ce blog d’une qualité remarquable ainsi que pour ta présence régulière.
Re,
Il me reste toutefois une question en suspens.
La solution que tu me proposais ici : https://www.prorealcode.com/topic/condition-dans-un-indicateur/ permettait de coder l’indicateur (qui fonctionne parfaitement). J’ai essayé de retranscrire le code pour faire le proscreener associé, sans succès. Peux-tu m’aider une nouvelle fois ?
J’ai simplement changé la dernière ligne:
MM50 = average[50](close)
MM200 = average[200](close)
c1 = MM50 > MM200 AND close > MM50
c2 = high > high[1] AND low > low[1]
if c1 and not c1[1] then
startbar=barindex
endif
signal=0
if c1 and c2 and signalbar<>startbar then
signalbar=startbar
signal=1
endif
screener [signal]
Bonsoir Nicolas,
C’est ce que j’avais fait avant de te demander mais ça ne fonctionne pas. Le screener me retourne des actions qui ne respectent pas les conditions. Aurais-tu une autre proposition (sans screener le signal=1 mais en créant une condition particulière par exemple) ?
Les résultats que j’obtiens correspondent bien aux signaux de l’indicateur de l’autre topic. Voir image, l’indicateur est affiché en bas, si signal = 1, alors on screen.
OK, c’est bon, ça marche cette fois-ci. J’avais pourtant tester de la même façon… Merci Nicolas. Bonne journée !