AND
AND in ProBuilder è un operatore logico che combina condizioni e restituisce true solo quando ogni operando è true. Sintassi, precedenza ed esempi.
Sintassi
condition1 AND condition2Come 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)
// 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 signalQuesto è 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)
// 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)
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
ENDIFL'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 cviene 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.
ANDopera sempre su condizioni booleane, non su numeri trattati come sequenze di bit. - Confrontare prima di combinare. Ogni lato di
ANDdeve essere essa stessa una condizione.close AND high > lownon è valido perchécloseda solo è un valore, non un booleano. Scrivi un confronto completo comeclose > open AND high > low. - Filtro troppo stretto. Ogni nuovo
ANDcondizione può solo ridurre il numero di corrispondenze. Uno screener che non restituisce nulla ha spesso una condizione in più.
Istruzioni correlate
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 unIF.CROSSES OVER,CROSSES UNDER, condizioni spesso combinate conAND.