Comment screener une condition s’exprimant par une boucle?
Forums › ProRealTime forum Français › Support ProScreener › Comment screener une condition s’exprimant par une boucle?
- This topic has 9 replies, 3 voices, and was last updated 6 years ago by OursPro.
-
-
10/31/2018 at 4:34 PM #8387811/02/2018 at 8:55 AM #84025
Bonjour
Veuillez m’excuser si je ne m’adresse pas au bon endroit :
je voudrais faire un screen pour détecter des actions qui sont restées au-dessus de mon stop pendant un certain nombre de séances (mettons 100 pour fixer les idées.)
J’ai pensé qu’il fallait faire une boucle avec un indice pour obtenir la condition devant servir à sélectionnez mes actions, mais je ne sais pas comment exprimer la condition à screener .
Est-ce que quelqu’un pourrait m’aider?
Merci d’avance.
123456789<once i =0if Close [i] > ChandeKrollStopUp[10, 20, 3][i] and i < 100 theni = i +1endifSCREENER [?]>11/02/2018 at 9:16 AM #84030Le topic est réparé, votre dernier message a été supprimé, désolé. Pour une raison que j’ignore il comportait un code “malveillant” provenant sans doute de l’image que vous avez envoyé dans le sujet. Merci d’ajouter les images avec l’outil approprié et d’éviter les formats TIF, et de privilégier les formats JPEG ou PNG.
11/02/2018 at 2:56 PM #84041L’Image que j’ai voulu insérer était une copie d’écran. Je suis sur Mac, c’est du PNG et il n’y a pas de code malveillant.
Je vais essayer d’insérer du code PRT avec deux versions d’un screen pour sélectioner des actions dont la cloture n’est jamais en dessous du ChandKroll Stop au cours des 10 dernières séances.
La première est une méthode “bourin”, elle marche mais n’est pas élégante : il faut entrer les chiffres un par un après avoir copier 10 fois le même texte. iii
La deuxième me parraît plus pro, avec un indice qu’on choisi, mais elle ne marche pas et je ne vois pas où je me suis trompé. C’est surement simple, mais il me faudrait un deuxième cerveau.
Merci d’avance . (J’ai bien utilisé le bouton PRT code, mais apparemment, je n’obtiens pas le bon résultat en couleur?)
1234567891011121314151617181920212223242526272829//Je choisis combien de séances doivent cloturer au-dessus du stopn = 5//c est la condition à screener, elle et nulle par défault.once c = 0//initialisation de l'indice :once i = 0//Toutes les fermetures doivent être supérieures au stopif Close [i] > ChandeKrollStopUp[10, 20, 3][i] then//Si la condition est remplie n foisif i<n theni=i+1//, l'action est validée.elsif c = 1 thenendif//sinon elle ne l'est paselsec = 0endif//On retiend les actions qui ont validé n fais la condition.SCREENER [c = 1]//Aucune action n'est retenue! Où est l'erreur?Méthode pas élégante qui marche1234567891011121314151617181920c2 = ChandeKrollStopUp[10, 20, 3][9] < ChandeKrollStopUp[10, 20, 3][4]c3 = ChandeKrollStopUp[10, 20, 3][4] < ChandeKrollStopUp[10, 20, 3]c4 = (ChandeKrollStopUp[10, 20, 3] - ChandeKrollStopUp[10, 20, 3][9]) / ChandeKrollStopUp[10, 20, 3][9] > 0.1once c = 0//Toutes les fermetures doivent être supérieures au stopif Close > ChandeKrollStopUp[10, 20, 3] and Close [1] > ChandeKrollStopUp[10, 20, 3][1] and Close [2] > ChandeKrollStopUp[10, 20, 3][2] and Close [3] > ChandeKrollStopUp[10, 20, 3][3] and Close [4] > ChandeKrollStopUp[10, 20, 3][4] and Close [5] > ChandeKrollStopUp[10, 20, 3][5]and Close [6] > ChandeKrollStopUp[10, 20, 3][6]and Close [7] > ChandeKrollStopUp[10, 20, 3][7]and Close [8] > ChandeKrollStopUp[10, 20, 3][8]and Close [9] > ChandeKrollStopUp[10, 20, 3][9] then//, l'action est validée.c = 1//sinon elle ne l'est paselsec = 0endif//On retiend les actions qui ont validé n fOis la condition.SCREENER [(c = 1) and c2 and c3 and c4]11/02/2018 at 3:13 PM #84042J’ajoute quelques commentaires à mon post qui est passé finallement numéroté avec ses couleurs.
C’est le premier avec une boucle qui ne marche pas.(recherche sur 5 séances seulement).
Le deuxième programme marche (recherche sur 9 séances), mais la longue ligne avec une succession de “and” a été coupée par votre logiciel (ligne 9) : on devine facilement la suite. Il ne faut pas tenir compte des 3 premières lignes qui sont hors sujet : Je les avais ajoutées pour imposer que la tendance soit croissante également.
11/02/2018 at 3:24 PM #84043Pour info pratique pour les nouveaux, dans une fenêtre de code PRT insérée dans un message de ce forum, une ligne plus longue que la largeur dispo sur vos écrans est quand même visible intégralement soit en passant sur la fenêtre avec la souris pour faire apparaitre en bas une barre de défilement horizontale, soit en utilisant le premier des 3 boutons du coin supérieur droit (celui avec la flèche retour chariot) qui si on clic dessus va alors faire des retours à la ligne respectant la largeur dispo pour éviter de défiler horizontalement
11/02/2018 at 4:18 PM #84047Pour que la première façon fonctionne, il aurait fallu faire varier i avec une boucle for next (car écrit tel que ci-dessus i n’est pas incrémenté plusieurs fois dans la bougie considérée puis réinitialisé pour la suivante comme il le devrait).
Mais la 2e façon est meilleure dans l’esprit de toute façon, les boucles étant trop consommatrices de ressource dans PRT avec le moteur actuel (qui devrait bientôt s’améliorer). Si l’élégance est ce que tu cherches à y rajouter, alors le mot-clé “summation” devrait en apporter:
123condition= Close>ChandeKrollStopUp[10,20,3]if summation[10](condition)=10 thenetc...1 user thanked author for this post.
11/03/2018 at 10:37 AM #84079Merci pour tes conseils , le mot-clé “summation” me convient très bien mais je ne l’avais pas encore utilisé : la condition vaut 1 quand elle est remplie, et donc elle doit l’être 10 fois! Elémentaire mon cher Watson!
Mais je vais tout de même réfléchir pour que ma boucle fonctionne correctement. Je ne suis pas très familiarisé avec ce langage, bien qu’il soit “basic” .
11/04/2018 at 11:43 AM #84117Les boucles, c’est le sujet principal de la formation sur la programmation avancée 🙂
11/07/2018 at 4:04 PM #84338Merci, mais je n’ai aucune envie de suivre une formation supplémentaire. J’apprends à programmer en programmant et quand j’ai un problème je cherche sur la doc ou je demande sur Internet. Quand je ne trouve pas sur un site, je vais voir sur un autre.
(Pour info, j’ai déjà fait 15 ans d’études et ça me suffit 😇) Mais j’aurai toujours quelque chose à apprendre…et j’accepte tous les conseils!
-
AuthorPosts
Find exclusive trading pro-tools on