Bli medlem i dag
ProScreener/proscreener

SCREENER

SCREENER i ProScreener returnerer instrumentene som matcher filterbetingelsene, med et valgfritt sorteringskriterium. Syntaks, eksempler og vanlige feil forklart.

Syntaks

probuilder
SCREENER[conditions]
probuilder
SCREENER[conditions](criterion AS "Column name")

Parametere

NavnTypeStandardBeskrivelse
conditionsboolsk uttrykkpåkrevdÉn eller flere betingelser et instrument må oppfylle for å vises i resultatene. Kombiner med AND, OR, og parenteser.
criterionnumerisk uttrykkingenValgfri verdi som vises ved siden av hvert instrument som matcher, og som brukes til å sortere resultatlisten.
AS "label"tekststrenguttrykkstekstValgfri 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)

probuilder
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)

probuilder
// 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)

probuilder
// 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 AND eller OR i 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.
  • 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.