Iscriviti ora
Operatori/probuilder · probacktest · proorder · proscreener

AND

AND in ProBuilder è un operatore logico che combina condizioni e restituisce true solo quando ogni operando è true. Sintassi, precedenza ed esempi.

Sintassi

probuilder
condition1 AND condition2

Come funziona

AND valuta le condizioni su entrambi i lati e restituisce vero solo se entrambe sono vere. Concatenare altre condizioni con ulteriori AND operatori restringe ulteriormente il test, poiché ogni condizione collegata deve essere vera perché il risultato sia vero.

La precedenza degli operatori conta quando AND, OR, e NOT compaiono nella stessa espressione. NOT ha la precedenza maggiore, poi AND, poi OR. Quindi a OR b AND c viene letto come a OR (b AND c). Quando il raggruppamento previsto non è ovvio, racchiudi le parti tra parentesi. Rende la logica esplicita e rimuove ogni dubbio su come l'espressione viene interpretata.

AND funziona nello stesso modo negli indicatori ProBuilder, in ProScreener, ProBacktest e ProOrder, perché tutti e quattro valutano le espressioni booleane con le stesse regole.

Esempi

Esempio 1, Due condizioni in un indicatore (Indicatore)

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

Questo è il pattern del riferimento ufficiale. Il segnale si attiva solo quando l'RSI corrente è sopra 50 e quello precedente era sotto, quindi entrambe le parti del AND deve essere vero sulla stessa bar.

Esempio 2, Filtraggio con più criteri (ProScreener)

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

Lo screener restituisce solo gli strumenti in cui il prezzo si trova sopra la sua media a 200 periodi e il volume è sopra la sua media a 20 periodi. Entrambe le condizioni sono necessarie.

Esempio 3, Protezione di un ingresso (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'ingresso è consentito solo quando non c'è una posizione long aperta e il prezzo incrocia al rialzo la media a 50 periodi. Combinare un controllo sulla posizione con un segnale è uno degli usi più comuni di AND.

Errori e insidie comuni

  • Precedenza con OR. a AND b OR c viene interpretato come (a AND b) OR c, che spesso non è ciò che si intendeva. Aggiungi parentesi per indicare il raggruppamento desiderato.
  • AND non è bit a bit. ProBuilder non ha un operatore bit a bit separato. AND opera sempre su condizioni booleane, non su numeri trattati come sequenze di bit.
  • Confrontare prima di combinare. Ogni lato di AND deve essere essa stessa una condizione. close AND high > low non è valido perché close da solo è un valore, non un booleano. Scrivi un confronto completo come close > open AND high > low.
  • Filtro troppo stretto. Ogni nuovo AND condizione può solo ridurre il numero di corrispondenze. Uno screener che non restituisce nulla ha spesso una condizione in più.
  • OR, vero quando almeno un operando è vero.
  • XOR, vero quando esattamente un operando è vero.
  • NOT, inverte una singola condizione.
  • IF, il blocco condizionale in cui questi operatori di solito si trovano.
  • THEN, ELSE, struttura i rami di un IF.
  • CROSSES OVER, CROSSES UNDER, condizioni spesso combinate con AND.