Rejoignez-nous
ProScreener/proscreener

SCREENER

SCREENER en ProScreener renvoie les instruments qui correspondent aux conditions de filtrage, avec un critère de tri facultatif. Syntaxe, exemples et erreurs courantes expliqués.

Syntaxe

probuilder
SCREENER[conditions]
probuilder
SCREENER[conditions](criterion AS "Column name")

Paramètres

NomTypePar défautDescription
conditionsexpression booléennerequisUne ou plusieurs conditions qu'un instrument doit satisfaire pour apparaître dans les résultats. À combiner avec AND, OR, et des parenthèses.
criterionexpression numériqueaucunValeur facultative affichée à côté de chaque instrument correspondant et utilisée pour trier la liste de résultats.
AS "label"chaînetexte de l'expressionEn-tête de colonne facultatif pour le critère dans le tableau de résultats.

Comment ça marche

Un programme ProScreener s'exécute une fois par instrument de la liste sélectionnée. Tout le code situé au-dessus de l'appel SCREENER calcule les valeurs d'indicateurs et les drapeaux booléens pour cet instrument ; l'appel SCREENER décide ensuite si l'instrument figure dans les résultats. Quand conditions est vrai sur le bar le plus récent, l'instrument est listé.

Le paramètre facultatif criterion attribue à chaque résultat un score numérique. ProRealTime™ affiche le score dans une colonne dédiée et trie la liste des résultats selon celui-ci, c'est ainsi qu'un screener classe les candidats au lieu de simplement les filtrer. Le AS "label" suffixe renomme cette colonne.

A screener contains exactly one SCREENER instruction, and it replaces RETURN as the program's terminal statement. Conditions built on other timeframes are declared with the ProScreener variant of TIMEFRAME before the flags are computed, as in the first example.

Exemples

Exemple 1, Filtre MACD et Stochastique multi-unités de temps (ProScreener)

probuilder
REM Flag 1: weekly MACD below zero but rising
TIMEFRAME(weekly)
MyMACD = MACD[12,26,9](Close)
c1 = MyMACD < 0 AND MyMACD > MyMACD[1]

REM Flag 2: daily Stochastic under 30
TIMEFRAME(daily)
MySTO = Stochastic[14,3](Close)
c2 = MySTO < 30

REM Reference level: yesterday's high
MyStop = High[1]

REM Score: distance from yesterday's high, in percent
Criteria = (Close / MyStop - 1) * 100

REM Flag 3: price no more than 5 percent above that high
c3 = Criteria < 5

SCREENER[c1 AND c2 AND c3](Criteria)

Trois indicateurs booléens sont combinés dans un seul appel SCREENER, et les correspondances sont classées selon leur distance par rapport au plus haut de la veille. Il s'agit de l'exemple de la référence officielle.

Exemple 2, RSI en survente avec un filtre de liquidité (ProScreener)

probuilder
// Momentum condition: 14-period RSI in oversold territory
myRSI = RSI[14](close)
oversold = myRSI < 30

// Liquidity condition: 20-bar average volume above a floor
liquid = Average[20](volume) > 500000

SCREENER[oversold AND liquid](myRSI AS "RSI 14")

Seuls les instruments à la fois en survente et activement traités sont listés, triés selon leur valeur de RSI sous un en-tête de colonne personnalisé.

Exemple 3, Proximité du plus haut de 52 semaines (ProScreener)

probuilder
// Highest weekly high over the past 52 weeks
TIMEFRAME(weekly)
yearHigh = Highest[52](high)

// Compare the daily close against that level
TIMEFRAME(daily)
distance = (close / yearHigh - 1) * 100

// Keep instruments within 3 percent of the high
near = distance > -3

SCREENER[near](distance AS "Pct vs 52w high")

Le screener fait ressortir les instruments qui se négocient près de leur plus haut de 52 semaines et les classe selon leur proximité, exprimée en pourcentage.

Erreurs et pièges courants

  • Plus d'un appel SCREENER. Un programme accepte exactement une instruction SCREENER, placée à la fin. Répartir la sortie sur deux appels ne compile pas ; fusionnez les conditions avec AND ou OR à la place.
  • RETURN in a screener. ProScreener has no RETURN. Code ported from an indicator must replace its RETURN line with a SCREENER call, moving plotted values into the criterion slot if they should stay visible.
  • Critère non numérique. Le critère de tri doit se ramener à un nombre. Passer un indicateur booléen fonctionne techniquement comme 0 ou 1 mais produit un classement dénué de sens ; calculez plutôt un score explicite.
  • Mauvaise portée. SCREENER collé dans du code d'indicateur ou de stratégie ne compile pas, et les instructions de stratégie telles que BUY ou SELL échouent à l'intérieur d'un screener. La logique de signal se transfère d'un langage à l'autre, pas les instructions de sortie et d'ordre.
  • TIMEFRAME (PS), la variante ProScreener de TIMEFRAME pour les conditions multi-unités de temps.
  • EQUITYFRAME, restreint les instruments analysés par un screener.
  • EstimatedVolume, volume projeté en fin de période, utile dans les filtres de liquidité.
  • NUMBERFORMAT, formate la colonne de critère comme un nombre.
  • PERCENTFORMAT, formate la colonne de critère comme un pourcentage.
  • STRINGFORMAT, associe les valeurs du critère à des libellés texte.
  • DATEFORMAT, formate la colonne de critère comme une date.