Bli medlem idag
ProScreener/proscreener

SCREENER

SCREENER i ProScreener returnerar de instrument som matchar filtervillkoren, med ett valfritt sorteringskriterium. Syntax, exempel och vanliga fel förklarade.

Syntax

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

Parametrar

NamnTypStandardBeskrivning
conditionsbooleskt uttryckobligatoriskEtt eller flera villkor som ett instrument måste uppfylla för att visas i resultatet. Kombinera med AND, OR, och parenteser.
criterionnumeriskt uttryckingenValfritt värde som visas vid varje matchande instrument och används för att sortera resultatlistan.
AS "label"stränguttryckstextValfri kolumnrubrik för kriteriet i resultattabellen.

Så fungerar det

Ett ProScreener-program körs en gång per instrument i den valda listan. All kod ovanför SCREENER-anropet beräknar indikatorvärden och booleska flaggor för det instrumentet; SCREENER-anropet avgör sedan om instrumentet kommer med i resultaten. När conditions utvärderas till sant på den senaste baren, listas instrumentet.

Den valfria criterion ger varje träff ett numeriskt poängvärde. ProRealTime™ visar poängen i en egen kolumn och sorterar resultatlistan efter den, vilket är hur en screener rangordnar kandidater i stället för att bara filtrera dem. Den AS "label" suffix döper om den kolumnen.

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.

Exempel

Exempel 1, MACD- och Stochastic-filter över flera tidsramar (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 flaggor kombineras i ett enda SCREENER-anrop, och matchningarna rangordnas efter sitt avstånd från föregående dags high. Detta är exemplet från den officiella referensen.

Exempel 2, Översåld RSI med ett 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")

Endast instrument som både är översålda och aktivt handlade listas, sorterade efter sitt RSI-värde under en egen kolumnrubrik.

Exempel 3, Närhet till 52-veckorshögsta (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")

Screenern lyfter fram instrument som handlas nära sitt 52-veckorshögsta och rangordnar dem efter hur nära de är, uttryckt i procent.

Vanliga fel och fallgropar

  • Mer än ett SCREENER-anrop. Ett program accepterar exakt en SCREENER-instruktion, placerad i slutet. Att dela upp utdata över två anrop kompilerar inte; slå samman villkoren med AND eller OR istället.
  • 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.
  • Icke-numeriskt kriterium. Sorteringskriteriet måste kunna reduceras till ett tal. Att skicka in en boolesk flagga fungerar tekniskt som 0 eller 1 men ger en meningslös rangordning; beräkna i stället ett explicit poängvärde.
  • Fel omfattning. SCREENER som klistras in i indikator- eller strategikod kompilerar inte, och strategiinstruktioner som BUY eller SELL fungerar inte inuti en screener. Signallogik kan överföras mellan språken, men utdata- och orderinstruktioner kan det inte.
  • TIMEFRAME (PS), ProScreener-varianten av TIMEFRAME för villkor över flera tidsramar.
  • EQUITYFRAME, begränsar vilka instrument en screener söker igenom.
  • EstimatedVolume, prognostiserad volym vid periodens slut, användbart i likviditetsfilter.
  • NUMBERFORMAT, formaterar kriteriekolumnen som ett tal.
  • PERCENTFORMAT, formaterar kriteriekolumnen som en procentsats.
  • STRINGFORMAT, mappar kriterievärden till textetiketter.
  • DATEFORMAT, formaterar kriteriekolumnen som ett datum.