SCREENER
SCREENER in ProScreener restituisce gli strumenti che soddisfano le condizioni di filtro, con un criterio di ordinamento opzionale. Sintassi, esempi ed errori comuni spiegati.
Sintassi
SCREENER[conditions]SCREENER[conditions](criterion AS "Column name")Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
conditions | espressione booleana | obbligatorio | Una o più condizioni che uno strumento deve soddisfare per comparire nei risultati. Combinale con AND, OR, e parentesi. |
criterion | espressione numerica | nessuno | Valore opzionale mostrato accanto a ogni strumento corrispondente e usato per ordinare la lista dei risultati. |
AS "label" | stringa | testo dell'espressione | Intestazione di colonna opzionale per il criterio nella tabella dei risultati. |
Come funziona
Un programma ProScreener viene eseguito una volta per ogni strumento della lista selezionata. Tutto il codice sopra la chiamata SCREENER calcola i valori degli indicatori e i flag booleani per quello strumento; la chiamata SCREENER decide poi se lo strumento entra nei risultati. Quando conditions risulta vera sul bar più recente, lo strumento viene elencato.
L'opzionale criterion assegna a ogni corrispondenza un punteggio numerico. ProRealTime™ mostra il punteggio in una colonna dedicata e ordina l'elenco dei risultati in base a esso: è così che uno screener classifica i candidati invece di limitarsi a filtrarli. Il AS "label" suffisso rinomina quella colonna.
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.
Esempi
Esempio 1, Filtro MACD e Stochastic multi-timeframe (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 flag sono combinati in una singola chiamata SCREENER e le corrispondenze sono classificate in base alla loro distanza dal massimo del giorno precedente. Questo è l'esempio della documentazione ufficiale.
Esempio 2, RSI in ipervenduto con un filtro di liquidità (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")Vengono elencati solo gli strumenti che sono sia in ipervenduto sia attivamente scambiati, ordinati per il loro valore RSI sotto un'intestazione di colonna personalizzata.
Esempio 3, Prossimità al massimo di 52 settimane (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")Lo screener individua gli strumenti che scambiano vicino al loro massimo di 52 settimane e li classifica in base a quanto sono vicini, espresso in percentuale.
Errori e insidie comuni
- Più di una chiamata SCREENER. Un programma accetta esattamente un'istruzione SCREENER, posta alla fine. Dividere l'output su due chiamate non compila; unisci le condizioni con
ANDoORinvece. - 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.
- Criterio non numerico. Il criterio di ordinamento deve ridursi a un numero. Passare un flag booleano tecnicamente funziona come 0 o 1 ma produce una classifica priva di significato; calcola invece un punteggio esplicito.
- Ambito errato. SCREENER incollato in codice di indicatore o di strategia non compila, e le istruzioni di strategia come BUY o SELL non funzionano all'interno di uno screener. La logica dei segnali è trasferibile tra i linguaggi, le istruzioni di output e di ordine no.
Istruzioni correlate
TIMEFRAME (PS), la variante ProScreener di TIMEFRAME per condizioni multi-timeframe.EQUITYFRAME, limita gli strumenti che uno screener analizza.EstimatedVolume, volume proiettato a fine periodo, utile nei filtri di liquidità.NUMBERFORMAT, formatta la colonna del criterio come numero.PERCENTFORMAT, formatta la colonna del criterio come percentuale.STRINGFORMAT, associa i valori del criterio a etichette testuali.DATEFORMAT, formatta la colonna del criterio come data.