Exploiter le ProScreener de ProRealTime à fond : mécanique, syntaxe, pièges et codes prêts à l'emploi
Publié : 29 août 2026, 22:24
Le ProScreener est probablement l'outil le plus sous-exploité de la plateforme. La plupart des utilisateurs s'arrêtent à la création assistée, sortent un "RSI < 30" sur les actions françaises, regardent les cinquante lignes affichées et referment la fenêtre. C'est dommage, parce que c'est en réalité un moteur de scan serveur capable de croiser plusieurs unités de temps, de comparer chaque valeur à un autre instrument, d'anticiper les volumes et de classer les résultats selon n'importe quel critère que vous programmez.
Ce sujet fait le tour complet : ce que fait vraiment le moteur, la syntaxe intégrale, les limites techniques à connaître avant de perdre trois heures, une méthode de construction, et cinq codes commentés à copier-coller.
1. Ce que fait réellement le moteur
Avant d'écrire une ligne, il faut comprendre quatre caractéristiques structurantes.
2. Les deux modes de création
Le module s'ouvre par le menu "Affichage" puis "ProScreener", ou par le raccourci CTRL+E. Depuis la gestion des ProScreeners, vous accédez à deux modes.
3. La syntaxe complète, en une passe
L'instruction centrale est SCREENER, qui joue dans un screener le rôle que RETURN joue dans un indicateur.
On combine les conditions avec AND et OR, sans limite pratique de nombre :
Le critère de tri s'écrit de trois façons équivalentes, la fonction AS servant à nommer la colonne :
Les critères multiples permettent d'afficher plusieurs colonnes de résultat, et surtout de changer le tri à l'exécution sans toucher au code. On peut en définir 3 ou 6 selon la version, séparés par des virgules. Attention : cette fonctionnalité n'est disponible que pour les codes ne contenant qu'une seule instruction SCREENER.
Le formatage des colonnes se fait avec PERCENTFORMAT, STRINGFORMAT, NUMBERFORMAT ou DATEFORMAT. Piège classique : PERCENTFORMAT multiplie la valeur par 100 et ajoute le signe. Si vous avez déjà écrit votre calcul sous la forme (Close/MM200 - 1) × 100, n'y ajoutez pas PERCENTFORMAT, sinon vous afficherez des pourcentages cent fois trop grands. Choisissez : soit vous multipliez par 100 vous-même et vous n'utilisez pas le format, soit vous laissez le ratio brut et vous appliquez PERCENTFORMAT.
Enfin, pour appeler un indicateur personnel, on passe par CALL :
4. Les trois commandes qui font toute la différence
C'est ici que le ProScreener décroche de tous les screeners gratuits du marché.
TIMEFRAME — le multi-unités de temps. Toutes les instructions qui suivent une ligne TIMEFRAME sont calculées dans l'unité indiquée. On peut donc empiler plusieurs blocs dans le même code et exiger qu'une condition soit vraie en hebdomadaire pendant qu'une autre l'est en 30 minutes. TIMEFRAME(default) ramène à l'unité choisie dans l'interface.
Un avertissement pratique : la syntaxe de TIMEFRAME dans un screener diffère de celle des stratégies, et l'unité choisie dans le menu déroulant ne s'applique qu'aux conditions marquées TIMEFRAME(default). Les résultats changent selon ce que vous sélectionnez — vérifiez toujours en croisant avec un graphique.
EQUITYFRAME — la comparaison à un autre instrument. C'est la commande la plus puissante et la moins utilisée. Elle rattache le calcul suivant à une valeur précise, ce qui permet de comparer chaque titre scanné à un indice, à un secteur ou à un concurrent. EQUITYFRAME(default) ramène à l'univers de scan.
Les noms de marché et les tickers se récupèrent dans la fenêtre "Recherche d'instrument". Si vous vous trompez, la plateforme ouvre automatiquement cette fenêtre pour vous laisser sélectionner l'instrument.
EstimatedVolume — l'anticipation de volume. Cette commande fournit une estimation linéaire du volume de la barre en cours, calculée comme le volume actuel multiplié par le rapport entre la durée de la vue et le temps écoulé depuis l'ouverture de la bougie. En vue 10 minutes, une bougie ouverte depuis une minute donne un volume estimé égal à dix fois le volume constaté. C'est l'outil indispensable pour détecter en intraday les valeurs dont le volume est en train de s'emballer, avant que la journée soit finie.
5. Les limites et pièges à connaître avant de coder
Un bon screener se construit en quatre couches, dans cet ordre.
7. Cinq codes commentés, prêts à l'emploi
Repli dans une tendance haussière établie, filtré sur la liquidité
Multi-unités de temps : tendance hebdomadaire, repli quotidien
Force relative contre un indice de référence
Emballement de volume en intraday
Compression de volatilité (squeeze) prête à exploser
Ces codes sont des points de départ à adapter à votre marché et à votre horizon. Testez-les toujours en vérifiant deux ou trois résultats sur un graphique avant de leur faire confiance.
8. Le workflow qui change tout : une batterie, pas un screener unique
L'erreur de méthode la plus répandue est de chercher LE screener parfait. Ce qui fonctionne, c'est une petite batterie de trois à cinq scans complémentaires, chacun répondant à une question différente, lancés dans un ordre fixe.
9. Ce que la V13 apporte concrètement
La nouvelle interface du ProScreener change surtout le confort de construction et de maintenance.
Le ProScreener n'est pas un outil de recherche d'idées, c'est un outil d'application systématique d'une méthode que vous avez déjà. Si vous ne savez pas décrire précisément ce que vous cherchez, aucun screener ne le trouvera pour vous. Mais si vous savez le décrire, alors TIMEFRAME, EQUITYFRAME et un critère de tri bien pensé vous donnent une capacité de balayage que très peu d'outils grand public offrent.
Deux questions pour la discussion : quels sont les screeners que vous lancez réellement toutes les semaines, et lesquels avez-vous abandonnés après les avoir confrontés aux résultats réels ? Et si certains ont des codes exploitant EQUITYFRAME de façon originale, c'est la commande la plus intéressante et la moins documentée par la communauté — le partage serait précieux.
Ce sujet fait le tour complet : ce que fait vraiment le moteur, la syntaxe intégrale, les limites techniques à connaître avant de perdre trois heures, une méthode de construction, et cinq codes commentés à copier-coller.
1. Ce que fait réellement le moteur
Avant d'écrire une ligne, il faut comprendre quatre caractéristiques structurantes.
- Le scan est exécuté côté serveur, pas sur votre machine. Vous ne subissez donc pas la charge, mais vous ne contrôlez pas non plus l'environnement d'exécution.
- La détection se fait en temps réel ou à la clôture de chaque barre, avec une précision tick par tick. À noter : il n'existe pas d'équivalent du "UpdateOnClose" des stratégies. La détection porte sur la bougie en cours. Si vous voulez raisonner sur une bougie clôturée, vous devez décaler explicitement vos conditions avec les crochets : Close[1] au lieu de Close.
- Le calcul ne dispose que des 256 dernières bougies de l'unité de temps choisie (1024 sur les plateformes Premium). C'est la limite la plus importante et la plus mal connue : une moyenne mobile 200, un plus-haut sur 250 périodes ou tout calcul nécessitant une profondeur d'historique supérieure ne donneront rien de fiable.
- Les résultats sont limités aux 50 ou 100 meilleures valeurs selon la version, sélectionnées d'après le critère de tri. C'est capital : si votre scan trouve 800 valeurs, le critère de tri ne sert pas à ranger la liste, il sert à choisir lesquelles vous verrez. Un mauvais critère de tri revient à jeter les 750 meilleures.
2. Les deux modes de création
Le module s'ouvre par le menu "Affichage" puis "ProScreener", ou par le raccourci CTRL+E. Depuis la gestion des ProScreeners, vous accédez à deux modes.
- La création assistée permet de définir vos conditions sans écrire une ligne de code, en partant d'un graphique exemple sur lequel vous avez préalablement posé les indicateurs voulus. C'est parfait pour démarrer, et suffisant pour beaucoup de besoins simples.
- La création programmée ouvre la fenêtre en quatre sections : la zone de programmation, le type de sélection, la période et le sens du tri, et enfin le choix des groupes, listes ou secteurs. C'est là que se joue tout ce qui suit.
3. La syntaxe complète, en une passe
L'instruction centrale est SCREENER, qui joue dans un screener le rôle que RETURN joue dans un indicateur.
Code : Tout sélectionner
c1 = (Close < BollingerDown[10](Close))
SCREENER[c1]
Code : Tout sélectionner
c1 = Close > BollingerUp[20](Close)
c2 = Close > Open
c3 = Average[7](Close) > Average[23](Close)
SCREENER[c1 AND c2 AND c3]
Code : Tout sélectionner
SCREENER[c1] SORT BY Critere
SCREENER[c1] SORT BY Critere AS "Nom de colonne"
SCREENER[c1](Critere AS "Nom de colonne")
Code : Tout sélectionner
SCREENER[c1](Force AS "Ecart MM200", MonRSI AS "RSI", VolMoyen AS "Volume" NUMBERFORMAT)
Enfin, pour appeler un indicateur personnel, on passe par CALL :
Code : Tout sélectionner
MonIndic = CALL "MonIndicateur"[14]
SCREENER[c1](MonIndic AS "Mon indicateur")
C'est ici que le ProScreener décroche de tous les screeners gratuits du marché.
TIMEFRAME — le multi-unités de temps. Toutes les instructions qui suivent une ligne TIMEFRAME sont calculées dans l'unité indiquée. On peut donc empiler plusieurs blocs dans le même code et exiger qu'une condition soit vraie en hebdomadaire pendant qu'une autre l'est en 30 minutes. TIMEFRAME(default) ramène à l'unité choisie dans l'interface.
Code : Tout sélectionner
TIMEFRAME(weekly)
c1 = Williams[14](Close) < 0 AND Williams[14](Close) > -20
TIMEFRAME(30 minutes)
c2 = ExponentialAverage[20](Close) CROSSES OVER ExponentialAverage[12](Close)
SCREENER[c1 AND c2]
EQUITYFRAME — la comparaison à un autre instrument. C'est la commande la plus puissante et la moins utilisée. Elle rattache le calcul suivant à une valeur précise, ce qui permet de comparer chaque titre scanné à un indice, à un secteur ou à un concurrent. EQUITYFRAME(default) ramène à l'univers de scan.
Code : Tout sélectionner
MonClose = Close
EQUITYFRAME("Euronext Paris", "CS")
CloseAXA = Close
EQUITYFRAME(default)
SCREENER MonClose > CloseAXA SORT BY MonClose AS "Cours"
EstimatedVolume — l'anticipation de volume. Cette commande fournit une estimation linéaire du volume de la barre en cours, calculée comme le volume actuel multiplié par le rapport entre la durée de la vue et le temps écoulé depuis l'ouverture de la bougie. En vue 10 minutes, une bougie ouverte depuis une minute donne un volume estimé égal à dix fois le volume constaté. C'est l'outil indispensable pour détecter en intraday les valeurs dont le volume est en train de s'emballer, avant que la journée soit finie.
5. Les limites et pièges à connaître avant de coder
- 256 bougies (1024 en Premium). Adaptez vos périodes de calcul, ou acceptez des résultats faux sur les indicateurs longs.
- Pas de UPDATEONCLOSE. Utilisez des décalages [1] pour raisonner sur bougie clôturée.
- Les 50 ou 100 résultats sont un plafond, pas une exhaustivité. Le critère de tri est donc un second filtre, à concevoir comme tel.
- Les critères multiples ne fonctionnent qu'avec une seule instruction SCREENER dans le code.
- PRINT est disponible pour déboguer, mais uniquement sur des instruments appartenant à la liste scannée, et sur 10 valeurs différentes au maximum. Vous ne pouvez pas afficher des calculs sur Apple si vous scannez les actions françaises.
- Une liste personnelle doit être homogène en marché.
- Ne confondez pas ProScreener et Palmarès. Les Palmarès sont des fenêtres de scan temps réel à critères prédéfinis, organisées en quatre familles (variations et gaps, variations de préouverture, principales figures en chandeliers, valeurs de spread et de volume du carnet). Ce sont des outils complémentaires : le Palmarès pour surveiller en continu, le ProScreener pour chercher ce que vous avez défini.
Un bon screener se construit en quatre couches, dans cet ordre.
- L'univers. Quel marché, quelle liste, quelle unité de temps. C'est une décision stratégique, pas un détail : scanner tout le NASDAQ en 5 minutes et scanner vos 40 valeurs suivies en hebdomadaire ne relèvent pas du même métier.
- Le filtre d'exploitabilité. Liquidité minimale, prix minimum, volume moyen. Une pépite technique sur une valeur qui traite 3 000 € par jour n'est pas une opportunité, c'est une nuisance. Cette couche élimine généralement 70 % du bruit.
- Le contexte. Tendance de fond, position par rapport aux moyennes longues, régime de volatilité, idéalement dans une unité de temps supérieure via TIMEFRAME. C'est ce qui distingue un screener utile d'un générateur de faux signaux.
- Le déclencheur. La condition précise et datée : croisement, franchissement, figure, sortie de compression. Une seule, la plus restrictive.
7. Cinq codes commentés, prêts à l'emploi
Repli dans une tendance haussière établie, filtré sur la liquidité
Code : Tout sélectionner
// Couche 1 : liquidité
VolMoyen = Average[20](Volume)
c1 = VolMoyen > 50000
// Couche 2 : contexte haussier
c2 = Close > Average[200](Close)
c3 = Average[50](Close) > Average[200](Close)
// Couche 3 : le repli
c4 = Close < Average[20](Close)
MonRSI = RSI[14](Close)
c5 = MonRSI > 40 AND MonRSI < 55
// Tri : ecart a la MM200, en ratio brut (PERCENTFORMAT fera la conversion)
Force = Close / Average[200](Close) - 1
SCREENER[c1 AND c2 AND c3 AND c4 AND c5](Force AS "Ecart MM200" PERCENTFORMAT, MonRSI AS "RSI", VolMoyen AS "Volume" NUMBERFORMAT)
Code : Tout sélectionner
TIMEFRAME(weekly)
Tendance = Close > Average[30](Close) AND Average[30](Close) > Average[30](Close)[1]
TIMEFRAME(daily)
Repli = RSI[14](Close) < 40
Liquide = Average[20](Volume) > 100000
Ecart = (Average[20](Close) - Close) / Close
SCREENER[Tendance AND Repli AND Liquide] SORT BY Ecart AS "Profondeur du repli" PERCENTFORMAT
Code : Tout sélectionner
TIMEFRAME(daily)
PerfValeur = Close / Close[20] - 1
// Remplacez le marche et le ticker par ceux de votre indice
// (a recuperer dans la fenetre Recherche d'instrument)
EQUITYFRAME("Indices", "PX1")
PerfIndice = Close / Close[20] - 1
EQUITYFRAME(default)
ForceRel = PerfValeur - PerfIndice
c1 = ForceRel > 0
c2 = Average[20](Volume) > 50000
SCREENER[c1 AND c2] SORT BY ForceRel AS "Surperf 20 seances" PERCENTFORMAT
Code : Tout sélectionner
// A lancer en unite de temps intraday (15 min ou 30 min)
VolAnticipe = EstimatedVolume
VolHabituel = Average[20](Volume)
Ratio = VolAnticipe / VolHabituel
c1 = Ratio > 3
c2 = Close > Open
SCREENER[c1 AND c2] SORT BY Ratio AS "x volume habituel"
Code : Tout sélectionner
LargeurBB = (BollingerUp[20](Close) - BollingerDown[20](Close)) / Average[20](Close)
PlusEtroit = lowest[100](LargeurBB)
c1 = LargeurBB <= PlusEtroit * 1.05
c2 = Average[20](Volume) > 50000
c3 = Close > Average[100](Close)
SCREENER[c1 AND c2 AND c3] SORT BY LargeurBB AS "Largeur des bandes" PERCENTFORMAT
8. Le workflow qui change tout : une batterie, pas un screener unique
L'erreur de méthode la plus répandue est de chercher LE screener parfait. Ce qui fonctionne, c'est une petite batterie de trois à cinq scans complémentaires, chacun répondant à une question différente, lancés dans un ordre fixe.
- Un scan de contexte hebdomadaire, lancé une fois par semaine, qui produit une liste de surveillance.
- Deux ou trois scans de déclencheurs quotidiens, lancés chaque soir sur cette liste réduite.
- Un ou deux scans intraday, sur volumes anticipés ou variations, pour la séance en cours.
9. Ce que la V13 apporte concrètement
La nouvelle interface du ProScreener change surtout le confort de construction et de maintenance.
- Vous choisissez le marché à scanner ou l'une de vos listes personnelles directement depuis l'interface repensée.
- Vous pouvez définir une unité de temps pour tout le screener, ou une unité de temps par condition individuelle — ce qui rend le multi-UT accessible sans écrire de TIMEFRAME à la main.
- La création de conditions personnalisées se fait en quelques clics.
- Les résultats sont mis à jour en temps réel.
- L'éditeur de code a été entièrement repensé : gestion de tous vos codes depuis la même fenêtre, découpage de l'éditeur en plusieurs sections pour visualiser plusieurs codes simultanément, rangement en dossiers et repliement des blocs. Quand on maintient une quinzaine de screeners, c'est loin d'être anecdotique.
- Complément utile côté exploitation : les listes acceptent désormais des mini-graphiques et des colonnes de valeurs d'indicateurs, avec plusieurs styles d'affichage. Une fois vos résultats de scan basculés en liste, vous pouvez donc les qualifier visuellement sans ouvrir chaque graphique.
- Utiliser une MM200 sans se rendre compte que le moteur ne dispose que de 256 bougies. Le calcul passe, mais il est fragile — préférez des périodes plus courtes ou passez en Premium.
- Négliger le critère de tri et ne voir que 50 résultats arbitraires sur 900.
- Empiler huit indicateurs corrélés entre eux en croyant renforcer le filtre, alors qu'on ne fait que mesurer huit fois la même chose.
- Oublier le filtre de liquidité et sortir des valeurs intradables.
- Confondre "détecté sur la bougie en cours" et "signal confirmé" : sans décalage [1], un croisement peut apparaître puis disparaître avant la clôture.
- Ne jamais vérifier un résultat sur un graphique. Un screener qui sort des valeurs incohérentes contient presque toujours une erreur d'unité de temps ou de format.
Le ProScreener n'est pas un outil de recherche d'idées, c'est un outil d'application systématique d'une méthode que vous avez déjà. Si vous ne savez pas décrire précisément ce que vous cherchez, aucun screener ne le trouvera pour vous. Mais si vous savez le décrire, alors TIMEFRAME, EQUITYFRAME et un critère de tri bien pensé vous donnent une capacité de balayage que très peu d'outils grand public offrent.
Deux questions pour la discussion : quels sont les screeners que vous lancez réellement toutes les semaines, et lesquels avez-vous abandonnés après les avoir confrontés aux résultats réels ? Et si certains ont des codes exploitant EQUITYFRAME de façon originale, c'est la commande la plus intéressante et la moins documentée par la communauté — le partage serait précieux.