SCREENER
SCREENER i ProScreener returnerer instrumentene som matcher filterbetingelsene, med et valgfritt sorteringskriterium. Syntaks, eksempler og vanlige feil forklart.
Syntaks
SCREENER[conditions]SCREENER[conditions](criterion AS "Column name")Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
conditions | boolsk uttrykk | påkrevd | Én eller flere betingelser et instrument må oppfylle for å vises i resultatene. Kombiner med AND, OR, og parenteser. |
criterion | numerisk uttrykk | ingen | Valgfri verdi som vises ved siden av hvert instrument som matcher, og som brukes til å sortere resultatlisten. |
AS "label" | tekststreng | uttrykkstekst | Valgfri kolonneoverskrift for kriteriet i resultattabellen. |
Slik fungerer det
Et ProScreener-program kjører én gang per instrument i den valgte listen. All koden over SCREENER-kallet beregner indikatorverdier og boolske flagg for det instrumentet; SCREENER-kallet avgjør deretter om instrumentet kommer med i resultatene. Når conditions evalueres til sann på den siste baren, blir instrumentet listet.
Den valgfrie criterion gir hvert treff en numerisk score. ProRealTime™ viser scoren i en egen kolonne og sorterer resultatlisten etter den, som er måten en screener rangerer kandidater framfor bare å filtrere dem. Den AS "label" suffiks endrer navnet på kolonnen.
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.
Eksempler
Eksempel 1, MACD- og Stochastic-filter på flere tidsrammer (ProScreener)
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)Tre flagg kombineres i ett enkelt SCREENER-kall, og treffene rangeres etter avstanden til forrige dags høyeste. Dette er eksempelet fra den offisielle referansen.
Eksempel 2, Oversolgt RSI med et likviditetsfilter (ProScreener)
// 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")Bare instrumenter som både er oversolgt og aktivt handlet, listes opp, sortert etter RSI-verdien under en egendefinert kolonneoverskrift.
Eksempel 3, Nærhet til 52-ukers høyeste (ProScreener)
// 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")Screeneren henter frem instrumenter som handles nær sin 52-ukers høyeste, og rangerer dem etter hvor nær de er, uttrykt i prosent.
Vanlige feil og fallgruver
- Mer enn ett SCREENER-kall. Et program godtar nøyaktig én SCREENER-instruksjon, plassert på slutten. Å dele utdataene over to kall kompilerer ikke; slå sammen betingelsene med
ANDellerORi stedet. - 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.
- Ikke-numerisk kriterium. Sorteringskriteriet må kunne reduseres til et tall. Å sende inn et boolsk flagg fungerer teknisk som 0 eller 1, men gir en meningsløs rangering; beregn en eksplisitt skår i stedet.
- Feil omfang. SCREENER limt inn i indikator- eller strategikode kompilerer ikke, og strategiinstruksjoner som BUY eller SELL feiler inne i en screener. Signallogikk kan overføres mellom språkene, utdata- og ordreinstruksjoner kan ikke.
Relaterte instruksjoner
TIMEFRAME (PS), ProScreener-varianten av TIMEFRAME for betingelser på flere tidsrammer.EQUITYFRAME, begrenser hvilke instrumenter en screener skanner.EstimatedVolume, projisert volum ved periodeslutt, nyttig i likviditetsfiltre.NUMBERFORMAT, formaterer kriteriekolonnen som et tall.PERCENTFORMAT, formaterer kriteriekolonnen som en prosentverdi.STRINGFORMAT, kobler kriterieverdier til tekstetiketter.DATEFORMAT, formaterer kriteriekolonnen som en dato.