AND
AND i ProBuilder er en logisk operator som kombinerer betingelser og returnerer true bare når hver operand er true. Syntaks, presedens og eksempler.
Syntaks
condition1 AND condition2Slik fungerer det
AND evaluerer betingelsene på hver side og returnerer true bare hvis begge er true. Å lenke flere betingelser med ytterligere AND operatorer strammer testen ytterligere, siden hver sammenkoblet betingelse må holde for at resultatet skal bli sant.
Operatorprioritet har betydning når AND, OR, og NOT opptrer i samme uttrykk. NOT binder sterkest, deretter AND, deretter OR. Så a OR b AND c leses som a OR (b AND c). Når den tiltenkte grupperingen ikke er åpenbar, sett delene i parentes. Det gjør logikken eksplisitt og fjerner all tvil om hvordan uttrykket tolkes.
AND fungerer på samme måte i ProBuilder-indikatorer, ProScreener, ProBacktest og ProOrder, fordi alle fire evaluerer boolske uttrykk med de samme reglene.
Eksempler
Eksempel 1, To betingelser i en indikator (Indikator)
// 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 signalDette er mønsteret fra den offisielle referansen. Signalet utløses bare når gjeldende RSI er over 50 og forrige RSI var under, så begge delene av AND må være sann på samme bar.
Eksempel 2, Filtrering med flere kriterier (ProScreener)
// Uptrend with volume confirmation
trendUp = close > Average[200](close)
volumeUp = Volume > Average[20](Volume)
cond = trendUp AND volumeUp
SCREENER[cond]Screeneren returnerer bare instrumenter der prisen ligger over sitt 200-periodegjennomsnitt og volumet er over sitt 20-periodegjennomsnitt. Begge betingelsene kreves.
Eksempel 3, Sikre en inngang (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
ENDIFInngangen tillates bare når det ikke finnes en åpen long-posisjon og prisen krysser over 50-periodegjennomsnittet. Å kombinere en posisjonssperre med et signal er en av de vanligste bruksmåtene for AND.
Vanlige feil og fallgruver
- Presedens med OR.
a AND b OR ctolkes som(a AND b) OR c, noe som ofte ikke er det som var ment. Legg til parenteser for å angi grupperingen du vil ha. - AND er ikke bitvis. ProBuilder har ingen separat bitvis operator.
ANDvirker alltid på boolske betingelser, ikke på tall behandlet som bitmønstre. - Sammenligne før kombinering. Hver side av
ANDmå selv være en betingelse.close AND high > lower ugyldig fordiclosealene er en verdi, ikke en boolsk verdi. Skriv en fullstendig sammenligning somclose > open AND high > low. - Å stramme et filter for hardt. Hver tilføyde
ANDbetingelse kan bare redusere antallet treff. En screener som ikke returnerer noe har ofte én betingelse for mye.