Rejoignez-nous
Opérateurs/probuilder · probacktest · proorder · proscreener

AND

AND en ProBuilder est un opérateur logique qui combine des conditions et ne renvoie vrai que lorsque chaque opérande est vrai. Syntaxe, priorité et exemples.

Syntaxe

probuilder
condition1 AND condition2

Comment ça marche

AND évalue les conditions de part et d'autre et renvoie vrai uniquement si les deux sont vraies. Enchaîner d'autres conditions avec de nouveaux AND opérateurs resserre encore le test, puisque chaque condition liée doit être vérifiée pour que le résultat soit vrai.

La priorité des opérateurs compte quand AND, OR, et NOT apparaissent dans la même expression. NOT a la priorité la plus forte, puis AND, puis OR. Donc a OR b AND c est interprété comme a OR (b AND c). Lorsque le regroupement voulu n'est pas évident, mettez les parties entre parenthèses. Cela rend la logique explicite et lève tout doute sur la façon dont l'expression est analysée.

AND fonctionne de la même manière dans les indicateurs ProBuilder, ProScreener, ProBacktest et ProOrder, car tous quatre évaluent les expressions booléennes avec les mêmes règles.

Exemples

Exemple 1, Deux conditions dans un indicateur (Indicateur)

probuilder
// RSI crossing above 50 from below on this bar
myRSIvalue = RSI[14](close)
myValueCondition = 50
IF (myRSIvalue > myValueCondition AND myRSIvalue[1] < myValueCondition) THEN
    signal = 1
ELSE
    signal = 0
ENDIF
RETURN signal

C'est le modèle issu de la référence officielle. Le signal ne se déclenche que lorsque le RSI actuel est au-dessus de 50 et que le RSI précédent était en dessous, de sorte que les deux parties du AND doit être vrai sur la même bar.

Exemple 2, Filtrage avec plusieurs critères (ProScreener)

probuilder
// Uptrend with volume confirmation
trendUp = close > Average[200](close)
volumeUp = Volume > Average[20](Volume)
cond = trendUp AND volumeUp
SCREENER[cond]

Le screener ne renvoie que les instruments dont le prix se situe au-dessus de sa moyenne à 200 périodes et dont le volume est au-dessus de sa moyenne à 20 périodes. Les deux conditions sont requises.

Exemple 3, Protection d'une entrée (ProOrder)

probuilder
DEFPARAM CumulateOrders = false
// Enter long only when flat and the setup holds
IF NOT LongOnMarket AND close CROSSES OVER Average[50](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

L'entrée n'est autorisée que lorsqu'aucune position long n'est ouverte et que le prix croise au-dessus de la moyenne à 50 périodes. Combiner un garde-fou de position avec un signal est l'un des usages les plus courants de AND.

Erreurs et pièges courants

  • Priorité avec OR. a AND b OR c est interprété comme (a AND b) OR c, ce qui n'est souvent pas l'intention. Ajoutez des parenthèses pour expliciter le regroupement voulu.
  • AND n'est pas bit à bit. ProBuilder n'a pas d'opérateur bit à bit distinct. AND fonctionne toujours sur des conditions booléennes, pas sur des nombres traités comme des motifs de bits.
  • Comparer avant de combiner. Chaque côté de AND doit elle-même être une condition. close AND high > low est invalide car close seul est une valeur, pas un booléen. Écrivez une comparaison complète comme close > open AND high > low.
  • Filtre trop restrictif. Chaque ajout AND condition ne peut que réduire le nombre de correspondances. Un screener qui ne renvoie rien a souvent une condition de trop.
  • OR, vrai lorsqu'au moins un opérande est vrai.
  • XOR, vrai lorsque exactement un opérande est vrai.
  • NOT, inverse une condition unique.
  • IF, le bloc conditionnel dans lequel ces opérateurs se trouvent habituellement.
  • THEN, ELSE, structurez les branches d'un IF.
  • CROSSES OVER, CROSSES UNDER, conditions fréquemment combinées avec AND.