Pro Screener

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 36

SOMMARIO

Presentazione di Proscreener_____________________________________
Capitolo I : Le nozioni fondamentali________________________________
Accedere a Proscreener................................................................................................2
La finestra Migliori e Peggiori........................................................................................7

Capitolo II : La programmazione __________________________________


Instruzioni di ricerca e di filtro........................................................................................8
Anticipazione del volume.............................................................................................11
Ricerca multitime-frame...............................................................................................11
Ricerca multi-valore.....................................................................................................13

Capitolo III : Applicazioni pratiche__________________________________


Esempi semplici...........................................................................................................16
1) RSI 1ora : ipervendita..............................................................................................16
2) RSI 1ora : iperacquisto............................................................................................16
3) Incrocio di medie mobili a rialzo...............................................................................16
4) Incrocio di medie mobili a ribasso...........................................................................17

Esempi pi elaborati....................................................................................................18
1) RSI e inversione a rialzo..........................................................................................18
2) RSI ed inversione a ribasso.....................................................................................19
3) Trend a rialzo...........................................................................................................20
4) Trend a ribasso........................................................................................................21
5) Triplo rialzo..............................................................................................................22
6) Triplo schermo a ribasso..........................................................................................23

Glossario______________________________________________________

Presentazione di Proscreener

Presentazione di Proscreener
ProScreener uno strumento di scan estremamente performante che permette di creare dei filtri :
per ricercare i valori che rispettano una o pi condizioni definite in modo totalmente personalizzato
in una o pi unit di tempo (es : 1 minuto e 1 ora)
in tempo reale o a chiusura barra, con una precisione tick by tick.

ProScreener costruito a partire dal linguaggio di programmazione ProBuilder (consigliamo dunque la


previa lettura del Manuale), ed include delle estensioni che si applicano esclusivamente alle condizioni di
filtro. Le ricerche in tempo reale o a chiusura barra, possono applicarso alle seguenti unit di tempo :
1 minuto
2 minuti
3 minuti
5 minuti
10 minuti
15 minuti
30 minuti
1 ora
2 ore
3 ore
4 ore
Giornaliero
Settimanale

I risultati di una ricerca ProScreener sono illustrati in una lista dei 30 migliori valori (scelta tra i risultati
possibili) sulla base del criterio di filtro definito.
Questo manuale dunque la continuazione del Manuale ProBuilder, ma puo' essere letto in modo
indipendente. Grazie ad un approccio teorico guidato e ad esempi concreti, potrete comprendere le basi
della programmazione di filtri che vi permetteranno, a partire da comandi ad hoc, di ottenere ottimi risultati
sui mercati.
Alla fine del presente manuale, troverete un Glossario, che riassume i codici utilizzabili.
Augurandovi il miglior successo,
Buona lettura !

1 / 32

Capitolo I : Le nozioni fondamentali

Capitolo I : Le nozioni fondamentali


Accedere a Proscreener
E' possibile accedere al modulo ProScreener cliccando su "Visualizza", poi su "ProScreener", illustrato
nell'immagine :

Apparir allora la finestra ProScreener, dove possibile selezionare un codice gi creato, a partire dal men
a tendina, oppure procedere alla creazione di un nuovo codice. In tal caso, cliccate su "Gestione
ProScreener" per arrivare alla finestra di programmazione, dove avrete la scelta tra :
la "Programmazione assistita", che permette di definire le condizioni ricercate senza programmare
una sola linea di codice (per saperne di pi su questa funzionalit, consigliamo la visione del video
"Scan automatico del mercato (esempio a 3 condizioni) ").
la "Creazione per programmazione", che permette di creare dei codici pi complessi manualmente.

2 / 32

Capitolo I : Le nozioni fondamentali

La finestra di Creazione per programmazione si compone di 5 sezioni :


1. Zona di programmazione
2. Mercato di applicazione
3. Periodo considerato
4. Ordine dei risultati
5. Condivisione dei codici e gestione della finestra

Nella prima sezione possibile :


Programmare direttamente un ProScreener nella zona di testo
Utilizzare la funzione d'aiuto "Inserisci Funzione", che permette di accedere alla biblioteca delle
funzioni disponibili, separate in sette categorie, per aiutarvi contestualmente nella fase di
programmazione.

3 / 32

Capitolo I : Le nozioni fondamentali

Cominciamo ad inserire l'opzione "Inserisci Funzione" cliccando sul tasto corrispondente.


Prendiamo per esempio il comando "SCREENER", che permette di effettuare la ricerca di condizioni
(disponibile nella sezione "Comandi ProScreener").
Selezioniamo allora la parola "SCREENER" e clicchiamo su "Aggiungi" : il comando si aggiunger
automaticamente alla zona di programmazione.

Il comando "SCREENER" permette di definire le condizioni da ricercare.


L'ultima riga di ogni ProScreener deve iniziare per il comando "SCREENER".

4 / 32

Capitolo I : Le nozioni fondamentali

Ricerchiamo per esempio tutti i valori del mercato azionario italiano la cui apertura della barra in corso
(periodo) superiore alla chiusura della barra precedente. Scriviamo dunque:
c1 = (Open > Close[1])
SCREENER[c1]

Una volta definito il codice, scegliamo nella seconda sezione la lista predefinita Azioni Italia, sulla quale
applicheremo la ricerca.
Attenzione : la ricerca puo' essere effettuata anche su liste personalizzate. In tal caso bisogner stare attenti
a che siano composte da valori di uno stesso mercato, e che non contengano Futures o indici.

La terza sezione permette di definire il periodo utilizzato nella ricerca del ProScreener. In effetti, determinate
condizioni possono verificarsi in un timeframe e non in un altro.

La quarta sezione concerne il filtro dei risultati (Vedi sezione : "Instruzioni di ricerca e di filtro"). Infatti, nel
momento in cui un ProScreener presenta delle condizioni poco restrittive, i risultati possono essere molto
numerosi (diverse migliaia per il NASDAQ ad esempio). In tal caso, necessario filtrare i risultati ,secondo il
criterio proposto :
i 30 valori pi elevati (del criterio di filtro)
i 30 valori pi bassi (del criterio di filtro)

Esempio : ipotizziamo che un ProScreener ricerchi i valori con volume superiore a 20000 sull'azionario
italiano in giornaliero. Il numero di risultati potr facilmente superare i 30 massimi previsti. Impostare dunque
il criterio di filtro sulla variazione percentuale rispetto al giorno precedente, permetter di definire se
visualizzare i 30 valori con il criterio di filtro pi elevato o pi basso.

La quinta sezione permette la gestione di una eventuale condivisione del codice nel nostro spazio
comunitario.

5 / 32

Capitolo I : Le nozioni fondamentali

Una volta definiti i 5 parametri, cliccate su "Convalida Programma" per lanciare la ricerca. Se dei valori
rientrano nei criteri impostati, i risultati saranno riportati in una lista, come illustrato nell'immagine che segue.

6 / 32

Capitolo I : Le nozioni fondamentali

La finestra Migliori e Peggiori


Oltre a ProScreener, ProRealTime mette a vostra disposizione due finestre, chiamate Migliori e Peggiori. Si
tratta di strumenti di scan in tempo reale, i cui criteri sono predefiniti (contrariamente a ProScreener, che
totalmente personalizzabile). Le due finestre sono identiche e permettono di effettuare due ricerche parallele
simultaneamente (per esempio : variazione a rialzo in una finestra, variazione a ribasso nell'altra).
I criteri di ricerca proposti nella finestra Migliori e Peggiori appartengono a 4 categorie, e permettono ri
ricercare:
Le variazioni e i gap
Le maggiori variazioni in pre-apertura
Le principali figure di candele
I valori di Spread e di volume dell'order book

Per saperne di piu' sull'utilizzo della finestra Migliori e Peggiori, consigliamo la visione del video " Funzione
Migliori & Peggiori: trova le variazioni di prezzo, volume o gap d'apertura "

7 / 32

Capitolo II : La programmazione

Capitolo II : La programmazione
Nel presente capitolo, vi saranno illustrati 5 comandi ProBuilder, propri di ProScreener. Esamineremo
nell'ordine:
Le istruzioni di ricerca e di filtro
Anticipazione del volume
Ricerca multitime-frame
Ricerca multi-valore

Instruzioni di ricerca e di filtro


Il comando "SCREENER" permette di lanciare una ricerca. Si tratta dell'equivalente di "RETURN" in
ProBuilder e, come per quest'ultimo, puo' essere seguito da una panoplia di funzioni che analizzeremo
insieme.
"SCREENER" si utilizza in tal modo:

SCREENER[Condizione]
Esempio:
Ricerchiamo tutti i valori il cui prezzo di chiusura strettamente inferiore alla Banda di Bollinger inferiore. Le
bande di Bollinger sono calcolate su 10 periodi e applicate alla chiusura.
c1 = (Close < BollingerDown[10](Close))
SCREENER[c1]

E' possibile migliorare il filtro inserendo condizioni multiple di ricerca, da soddisfare simultaneamente o
alternativamente. Per fare cio', la sintassi corretta sar:

SCREENER[Condizione1 AND Condizione2]


oppure

SCREENER[Condizione1 OR Condizione2]

8 / 32

Capitolo II : La programmazione

Esempio:
Ricerchiamo i valori il cui prezzo superiore al canale di Bollinger e che rappresentano una tendenza a
rialzo.
REM Chiusura superiore alla Bollinger Superiore
Condizione1 = (Close > Bollingerup[20](Close))
REM Chiusura > Apertura
Condizione2 = Close > Open
REM MM7 > MM23
Condizione3 = (Average[7](Close) > Average[23](Close))
SCREENER[Condizione1 AND Condizione2 AND Condizione3]

E' inoltre possibile definire una costante o un indicatore (predefinito o personalizzato) che servir al tempo
stesso come criterio di ricerca e come criterio di filtro. In effetti :
Se pi di 30 risultati corrispondono alla ricerca, l'indicatore filtrer tra i risultati da illustrare, coloro
che avranno un valore dell'indcatore stesso maggiore o minore (a seconda di quanto definito nella
quarta sezione della finestra di programmazione, permette di definire l'ordine di comparsa) (vedi
descrizione a pagina 5).
Se invece meno di 30 risultati corrispondono alla ricerca, l'indicatore ordiner i risultati sulla base
del suo valore.

La sintassi corretta :

SCREENER[c1](TypicalPrice)
Per utilizzare un indicatore predefinito, necessario inserire innanzitutto l'indicatore in una variabile (che
chiameremo "Criteria") :

Criteria = RSI[14](Close)
SCREENER[c1](Criteria)
Se richiamamo un indicatore personalizzato, bisogner utilizzare l'istruzione "CALL", definita nel Manuale
ProBuilder.

MyRSI = CALL "RSI" [14]


SCREENER[c1](MyRSI)

9 / 32

Capitolo II : La programmazione

Esempio :
Ricerchiamo tutti i valori di un mercato il cui volume superiore a 50 000. Creiamo un indicatore che ci
permetter di valutare se l'RSI in iperacquisto o in ipervendita. Illustreremo i risultati del ProScreener
presentati secondo l'ordine di importanza di tal indicatore.
c1 = Volume > 50000
IF RSI[20](Close) > 70 THEN
Criteria = 1
ELSIF RSI[20](Close) < 30 THEN
Criteria = -1
ENDIF
SCREENER[c1](Criteria AS "ipertransazione")

E' possibile non utilitzzare parentesi, introducendo la sintassi "SORT BY" :

SCREENER[c1] SORT BY TypicalPrice

10 / 32

Capitolo II : La programmazione

Se desideriamo attribuire un nome personalizzato a tale colonna, dobbiamo utilizzare la funzione "AS", come
descritto:

SCREENER[c1](TypicalPrice AS "typical price")


Anticipazione del volume
Il comando "EstimatedVolume" permette davere una stima lineare del volume della barra corrente. Pi
precisamente, viene calcolato il volume stimato a partire dalla seguente formula:
Volume_stimato = Volume * Coefficiente_Multiplicatore
dove
Coefficiente_Multiplicatore = timeframe / tempo trascorso dall'inizio della candela.

Questo comando si rivela particolarmente interessante per comparare il volume stimato al volume reale.

Osserviamo un esempio:
In timeframe 10 minuti, se supponiamo che l'ultima candela sia apparsa un minuto fa, il volume stimato sar
uguale a 10 volte il volume attuale.

Proviamo a calcolare il raporto del volume anticipato del giorno sul volume del giorno precedente (per avere
pero' dei risultati rappresentativi, consigliabile utilizzare un timeframe intraday).
REM Stima il volume del giorno
Vol0 = EstimatedVolume
REM Trova il volume del giorno precedente
Vol1 = Volume[1]
REM Criterio di filtro: rapporto del volume anticipato del giorno sul volume del giorno precedente
SCREENER (Vol0 / Vol1 AS "Volume")

Ricerca multitime-frame
Per creare un ProScreener che ricerchi una o pi condizioni in pi timeframe contemporaneamente,
necessario utilizzare il comando "TIMEFRAME", la cui sintassi la seguente:

TIMEFRAME (timeframe)

11 / 32

Capitolo II : La programmazione

I diversi timeframe disponibili si traducono in codice per:


Codice

Significato

1 minute

1 minuto

2 minutes

2 minuto

3 minutes

3 minuto

5 minutes

5 minuto

10 minutes

10 minuto

15 minutes

15 minuto

30 minutes

30 minuto

1 hour

1 ora

2 hours

2 ora

3 hours

3 ora

4 hours

4 ora

daily

Giornaliero

weekly

Settimanale

Le instruzioni che seguono la linea "TIMEFRAME" saranno ricercate solamente nel periodo indicato. E'
dunque possibile posizionare diverse linee di "TIMEFRAME" in uno stesso codice, per effettuare una ricerca
multitime-frame.
Prendiamo un esempio :
Desideriamo trovare tutti i valori dell'azionario italiano, che verificano i criteri seguenti:
In timeframe settimanale, l'indicatore Williams %R a 14 periodi con valore compreso tra 0 e -20
In timeframe 30 minuti, la media mobile esponenziale a 20 periodi che incroci a rialzo la media a 12
periodi.

Saremo dunque in grado di trovare i valori che si trovano in iperacquisto in timeframe settimanale, ma che
presentano nel breve termine una tendenza a ribasso.
TIMEFRAME(weekly)
Condizione1 = Williams[14](Close) < 0 AND Williams[14](Close) > -20
TIMEFRAME(30 minutes)
Condizione2 = ExponentialAverage[20](Close) CROSSES OVER ExponentialAverage[12](Close)
SCREENER[Condizione1 AND Condizione2]

12 / 32

Capitolo II : La programmazione

Ricerca multi-valore
Abbiamo potuto constatare che con ProScreener necessario specificare un mercato (o una lista) su cui
effettuare la ricerca.

Listruzione "EQUITYFRAME", permette di mettere in relazione il criterio con un valore specifico


appartenente al mercato su cui la ricerca effettuata.
La sintassi :

EQUITYFRAME("nome del mercato" , "ticker")


Il comando permette di comparare i risultati ad un valore particolare, ma anche di costruirte un nuovo
indicatore utilizzato come condizione di filtro. Per poter mettere a profitto questa funzione bisogna :
Richiamare esclusivamente un mercato attivo in tempo reale.
Non richiamare gli indici dei principali mercati.
Il valore specificato deve fare parte dello stesso mercato di ricerca (sezione 2 della finestra
Proscreener)

Per esempio, se volete visualizzare su 30 valori dell'azionario Italiano, il prezzo di chiusura della barra
corrente del valore FIAT (ticker "F") , scriverete :

EQUITYFRAME("Azioni Italia" , "F")


MyClose = Close
SCREENER(MyClose)

13 / 32

Capitolo II : La programmazione

I diversi mercati per i quali la funzione disponibile, si traducono in codice attraverso la seguente tabella di
corrispondenze :
Codice EQUITYFRAME

Nome Mercato

AMEX

Azioni Amex

ASX

Azioni Australia

Azioni Italia

Azioni Italia

EuroNext Amsterdam

Euronext Amsterdam

EuroNext Brussella

Euronext Bruxelles

EuroNext Lisbona

Euronext Lisbona

EuroNext Parigi

Euronext Parigi

Forex

Valute

LSE

London Stock Exchange

Madrid Azioni

Azioni Spagna

NASDAQ

Azioni Nasdaq

NYSE

Azioni Nyse

SWX

Azioni Svizzera

Virt-X

Azioni Svizzera

XETRA

Azioni Germania

Come per il comando "TIMEFRAME", il codice che segue "EQUITYFRAME" sar applicato al valore
specificato al suo seguito. Per riproporre il timeframe principale, selezionato nell'interfaccia ProScreener,
baster scrivere:

EQUITYFRAME(default)

14 / 32

Capitolo II : La programmazione

Le funzioni Equityframe e Timeframe sono complementari e l'esempio seguente permetter di illustrarlo.

Immaginiamo di creare un ProScreeener che illustri i 30 valori del mercato azionario italiano aventi in
comune una determinata condizione; se desideriamo visualizzare, in una colonna della lista dei risultati, il
valore di un indicatore che calcoli la differenza tra la chiusura della barra in corso del valore FIAT (ticker F) e
la chiusura di ogni valore facente parte della lista, allora scriveremo:
REM recuperiamo le informazioni per il valore FIAT del mercato azionario italiano.
EQUITYFRAME("Azioni Italia" , "F")
MyClose = Close
REM ritorniamo sui valori del mercato selezionato nel men Liste
EQUITYFRAME(default)
REM creiamo l'indicatore per recuperare le informazioni
CloseVal = MyClose - Close
REM lanciamo lo screener
SCREENER(CloseVal AS "MyIndicator")

Esempio : il seguente ProScreener permette di rappresentare visualmente la correlazione tra un titolo ed il


suo mercato. Calcoliamo il ratio tra i due valori selezionati e calcoliamo in seguito la differenza di questo ratio
rispetto al giorno precedente.
TIMEFRAME(Daily)
CloseVal = Close
EQUITYFRAME("NASDAQ" , "AMZN")
CloseInd = Close
EQUITYFRAME(default)
Ratio = (CloseVal / CloseInd) * 100
ForzaRelativa = (Ratio - Ratio[1]) * 100
SCREENER(ForzaRelativa AS "Forza Relativa")

15 / 32

Capitolo II I : Ap pl icazioni pratiche

Capitolo III : Applicazioni pratiche


Esempi semplici
1) RSI 1ora : ipervendita
L'RSI un indicatore di iperacquisto/ ipervendita che possono essere precursori di una inversione di
tendenza. Ricerchiamo nel presente screener i valori in ipervendita.
L'ipervendita definita da : RSI < 30 ed tanto pi forte quanto pi l'RSi si avvicina a 0. Costruiamo dunque
un ProScreener che rinvia tutti i valori di cui l'RSI inferiore a 30.

Esempio di RSI in ipervendita :


REM Calcola l'RSI a 14 barre
MyRSI = RSI[14]
REM Filtro : RSI < 30
Filtre = MyRSI < 30
SCREENER[Filtre](MyRSI AS "RSI")

2) RSI 1ora : iperacquisto


Ricerchiamo i valori in iperacquisto (definiti da : RSI > 70). L'iperacquisto aumenta di intensit tanto pi si
avvicina a 100.

Esempio RSI in iperacquisto :


REM Calcola l'RSI a 14 barre
MyRSI = RSI[14]
REM Filtro : RSI > 70
Filtro = MyRSI > 70
SCREENER[Filtro](MyRSI AS "RSI")

3) Incrocio di medie mobili a rialzo


Si tratta di mettere in evidenza una tendenza in cui una media mobile corta incrocia una media mobile lunga.
Costruiamo un ProScreener che rinvia tutti i valori la cui media mobile a 20 giorni incroci a rialzo la media
mobile a 50 giorni.
Calcoliamo anche il momentum della differenza tra le due medie mobili per valutare la potenza dell'incrocio.
Se tal valore si avvicina a zero, l'incrocio lento e le duex medie mobili sono quasi parallele, dando un
segnale poco significativo. Al contrario, pi il valore elevato, e pi l'incrocio dinamico. Un esempio tipico
dato da una media mobile piatta che incrocia una media mobile nettamente orientata a rialzo.

16 / 32

Capitolo II I : Ap pl icazioni pratiche

Esempio : Incrocio a rialzo della media a 50 giorni per la media a 20 giorni.


REM Calcolo della media mobile a 20 giorni
Sma20 = Average[20]
REM Calcolo della media mobile a 50 giorni
Sma50 = Average[50]
REM Valuta la velocit relativa alla media mobile corta rispetto alla media mobile lunga
Velocita = Momentum(Sma50 - Sma20) * 100 / Close
REM Seleziona il valore al momento dell'incrocio
Filtro = Sma20 Crosses Over Sma50
SCREENER[Filtro](Velocita AS "Dinamica")

4) Incrocio di medie mobili a ribasso


Costruiamo un ProScreener che rinvii tutti i valori la cui media mobile a 20 giorni incroci a ribasso la media
mobile a 50 giorni.
Definiamo il momento allo stesso modo dell'esempio precedente.

REM Calcolo della media mobile a 20 giorni


Sma20 = Average[20]
REM Calcolo della media mobile a 50 giorni
Sma50 = Average[50]
REM Valuta la velocit relativa alla media mobile corta rispetto alla media mobile lunga
Velocita = Momentum(Sma20 - Sma50) * 100 / Close
REM Seleziona il valore al momento dell'incrocio
Filtro = Sma20 Crosses Under Sma50
SCREENER[Filtro](Velocita AS "Dinamica")

17 / 32

Capitolo II I : Ap pl icazioni pratiche

Esempi pi elaborati
1) RSI e inversione a rialzo
Presentiamo un sistema che permette di ritrovare in tempo reale i valori suscettibili di invertire e smorzare un
movimento molto forte.

Tradizionalmente, gli analisti si interessavano agli indicatori di "surriscaldamento" o alle figure di inversione,
isolandole dal loro contesto (semplimente perch non disponevano degli strumenti tecnici appropiati, che
permettessero di fare meglio).

Oggi, con ProScreener, non esistono pi limitazioni tecniche: abbiamo la possibilit di costruire un veri
sistema di scan basato per esempio sull'RSI. Il punto di partenza semplice: ricerchiamo un RSI in
iperacquisto che inverte a ribasso.

Creiamo dunque un filtro contenente due condizioni e che si scrive su una sola linea di codice.
Filtre = RSI < 30 AND Momentum[1](RSI) > 0

Andiamo poi a ricercare i valori la cui caduta pi importante e che si riveleranno i pi interessanti per la
nostra analisi. Per analizzare l'importanza della caduta, consideriamo la volatilit abituale del titolo.

REM Filtriamo i valori il cui RSI in ipervendita e in inversione.


// Criterio di filtro : RSI < 30 e crescente
Filtro = RSI < 30 AND Momentum[1](RSI) > 0
REM Determina la forza della tendenza a ribasso
REM Trova il punto pi alto sulle 20 barre precedenti.
Massimo = Highest[20](High)
REM Determina il declino a partire dal punto
Declino = Massimo - Close
REM Determina la volatilit abituale (mediana del True Range su 3 barre)
Norma = Summation[3](TR) - Highest[3](TR) - Lowest[3](TR)
Velocita = Declino / Norma
REM Mostra risultati
SCREENER[Filtro](Velocita AS "Forza a ribasso")

18 / 32

Capitolo II I : Ap pl icazioni pratiche

2) RSI ed inversione a ribasso


Ricerchiamo i valori per i quali il ProScreener in iperacquisto e si inverse a ribasso.
Come in precedenza, scriviamo :
Filtre = RSI > 70 AND Momentum[1](RSI) < 0

Recuperiamo poi i valori il cui rialzo stato pi marcato, comparativamente alla volatilit abituale del titolo.

REM Filtriamo i valori il cui RSI in iperacquisto e in inversione.


// Criterio di filtro : RSI > 70 e decrescente
Filtro = RSI > 70 AND Momentum[1](RSI) < 0
REM Determina la forza della tendenza a rialzo
// Trova il punto pi basso sulle ultime 20 barre.
Minimo = Lowest[20](Low)
REM Determina la progressione a partire dal punto
Rialzo = Close Minimo
REM Determina la volatilit abituale (mediana del True Range su 3 barre)
Norma = Summation[3](TR) - Highest[3](TR) - Lowest[3](TR)
Velocita = Rialzo / Norma
REM Mostra risultati
SCREENER[Filtro](Velocita AS "Forza a rialzo")

19 / 32

Capitolo II I : Ap pl icazioni pratiche

3) Trend a rialzo
Trend a rialzo una figura delle candele giapponesi pi note, ma necessita evidentemente di una analisi pi
ampia (esistenza di una tendenza all'inversione)
Cominciamo per definire cos' un trend a rialzo
Candela precendente nera
Candela in corso apre sotto il corpo della candela precedente
Candela in corso chiude sopra il corpo della candea precedente

Le tre condizioni si scrivono semplicemente:


Filtro = Close[1] < Open[1] AND Open < Close[1] AND Close > Open[1]

Per ricercare la tendenza a ribasso, riprendiamo il codice precedente restringendo un po' l'orizzonte
temporale. Per un RSI a 14 periodi, era ragionevole interessarsi alla caduta dei prezzi sulle ultime 20 barre.
Per le candele giapponesi, invece, l'esperienza mostra che 8 barre sono sufficienti (si tratta di strutture pi
reattive e teoricamente limitate a 7 candele).

REM Determina la forza della tendenza a ribasso


// Trova il massimo sulle 8 barre precedenti
Massimo = Highest[8](High)
REM Determina il declino a partire dal punto
Declino = Massimo - Close
REM Determina la volatilit abituale (mediana del True Range su 3 barre)
Norma = Summation[3](TR) - Highest[3](TR) - Lowest[3](TR)
REM Definiamo il trend a rialzo
Filtro = Close[1] < Open[1] AND Open < Close[1] AND Close > Open[1]
Velocita = Declino/ Norma
REM Ricerca declino
SCREENER[Filtro](Velocita AS "Forza a ribasso")

20 / 32

Capitolo II I : Ap pl icazioni pratiche

4) Trend a ribasso
Cominciamo per definire un trend a ribasso:
Candela precedente bianca
Candela in corso apre sopra il corpo della candela precedente
Candela in corso chiude sotto il corpo della candela precedente

Le tre condizioni si scrivono semplicemente come segue:


Filtro = Close[1] > Open[1] AND Open > Close[1] AND Close < Open[1]

Riprendiamo il codice dell'RSI in inversione a ribasso.

REM determina la forza della tendenza a rialzo


// Trova il minimo sulle ultime 8 barre
Minimo = Lowest[8](Low)
REM Determina la progressione a partire dal punto
Rialzo = Close - Minimo
REM Determina la volatilit abituale (mediana del True Range su 3 barre)
Norma = Summation[3](TR) - Highest[3](TR) - Lowest[3](TR)
REM ricerca trend a rialzo
Filtro = Close[1] > Open[1] AND Open > Close[1] AND Close < Open[1]
Velocita = Rialzo / Norma
REM Ricerca valori
SCREENER[Filtro](Velocita AS "Forza a rialzo")

21 / 32

Capitolo II I : Ap pl icazioni pratiche

5) Triplo rialzo
Il presente ProScreener composto da due condizioni su due diversi timeframe:
Condizione 1 : MACD <0 in timeframe settimanale
Condizione 2 : MACD crescente in timeframe settimanale
Condizione 3 : Stocastico <30 in timeframe giornaliero

Ricerchiamo dunque i valori che si avvicinano al livello di acquisto stop ricercato dal codice creato (in questo
il massimo del giorno precedente).

ProScreener trover dunque i valori che si trovano ancora sotto tale livello e parimenti i valori che hanno
appena oltrepassato la soglia, ma senza allontanarsi di pi del 5%, nei timeframe specificati.

REM Condizione 1 : MACD weekly < 0 e crescente


TIMEFRAME(weekly)
MyMACD = MACD[12,26,9](Close)
c1 = MyMACD < 0 AND MyMACD > MyMACD[1]
REM Condizione 2 : Stochastic daily < 30
TIMEFRAME(daily)
MySTO = Stochastic[14,3](Close)
c2 = MySTO < 30
REM Livello di acquisto STOP
MyStop = High[1]
REM Criterio : Posizione del prezzo rispetto a STOP
Criteria = (Close / MyStop - 1) * 100
REM Condizione 3 : prezzo sotto lo stop oppure a meno del 5% oltre
c3 = Criteria < 5
SCREENER[c1 AND c2 AND c3](Criteria)

22 / 32

Capitolo II I : Ap pl icazioni pratiche

6) Triplo schermo a ribasso


Il presente ProScreener composto da tre condizioni su due diversi timeframe:
Condizione 1 : MACD >0 in timeframe settimanale
Condizione 2 : MACD decrescente in timeframe settimanale
Condizione 3 : Stocastico >70 in timeframe giornaliero

Ricerchiamo dunque i valori che si avvicinano al livello di vendita stop ricercato dal codice creato (in questo il
minimo del giorno precedente).

ProScreener trover dunque i valori che si trovano ancora sopra tale livello e parimenti i valori che hanno
appena oltrepassato a ribasso la soglia, ma senza allontanarsi di pi del 5%, nei timeframe specificati.

REM Condizione 1 : MACD weekly > 0 et decrescente


TIMEFRAME(weekly)
MyMACD = MACD[12,26,9](Close)
c1 = MyMACD > 0 AND MyMACD < MyMACD[1]
REM Condizione 2 : Stochastic daily > 70
TIMEFRAME(daily)
MySTO = Stochastic[14,3](Close)
c2 = MySTO > 70
REM Livello della vendita stop
MyStop = Low[1]
REM Criterio : Posizione del prezzo rispetto allo STOP
Criteria = (Close / MyStop - 1) * 100
REM Condizione 3 : prezzo sopra lo stop o a meno del +5%
c3 = Criteria > -5
SCREENER[c1 AND c2 AND c3](Criteria)

23 / 32

Glossario

Glossario

A
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Abs

Abs(a)

Funzione matematica "Valore assoluto"

AccumDistr

AccumDistr(price)

Accumulazione Distribuzione classica

ADX

ADX[N]

Indicatore Average Directional Index

ADXR

ADXR[N]

Indicatore Average Directional Index Rate

AND

A AND B

Operatore logico ET

AroonDown

AroonDown[P]

Aroon Down

AroonUp

AroonUp[P]

Aroon Up

Atan

Atan(a)

Funzione matematica Arco Tangente

AS

Return Result As
"ResultName"

Istruzione per attribuire un nome


personalizzato

Average

Average[N](price)

Media Mobile Aritmetica

AverageTrueRange

AverageTrueRange[N](price)

Media mobile lisciata da Wilder

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

BarIndex

BarIndex

Conta in numero di candele su un grafico, dalla


sinistra

BollingerBandWidth

BollingerBandWidth[N](price)

Banda passante di Bollinger

BollingerDown

BollingerDown[N](price)

Supporto della banda di Bollinger

BollingerUp

BollingerUp[N](price)

Resistenza della banda di Bollinger

BREAK

(FOR...DO...BREAK...NEXT)
o
(WHILE...DO...BREAK...WEND)

Istruzione per forzare l'uscita da un circolo


FOR o WHILE

24 / 32

Glossario

C
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

CALL

myResult = CALL
myFunction

Permette di richiamare un altro indicatore

CCI

CCI[N](price) o CCI[N]
applicato per defaut al
TypicalPrice

Commodity Channel Index

ChaikinOsc

ChaikinOsc[Ch1, Ch2](price)

Oscillatore di Chaikin

Chandle

Chandle[N](price)

Chande Momentum Oscillator

ChandeKrollStopUp

ChandeKrollStopUp[Pp, Qq,
X]

Stop di protezione di Chande e Kroll in


acquisto

ChandeKrollStopDown

ChandeKrollStopDown[Pp,
Qq, X]

Stop di protezione di Chande e Kroll in vendita

Close

Close[N]

Designa il prezzo di chiusura oppure l'ultimo


prezzo registrato

COLOURED

RETURN Result
COLOURED(R,G,B)

Permette di personalizzare il colore di una


curva, secondo la convenzione RGB

COS

cos(a)

Coseno

Crosses Over

A Crosses Over B

Operatore boleano di incrocio a rialzo

Crosses Under

A Crosses Under B

Operatore boleano di incrocio a ribasso

CUMSUM

CUMSUM(price)

Somma dall'inizio dello storico

CurrentDayOfWeek

CurrentDayOfWeek

Designa il giorno attuale

CurrentHour

CurrentHour

Designa l'ora attuale

CurrentMinute

CurrentMinute

Designa il minuto attuale

CurrentMonth

CurrentMonth

Designa il mese attuale

CurrentSecond

CurrentSecond

Designa il secondo attuale

CurrentTime

CurrentTime

Designa l'ora minuto attuale

CurrentYear

CurrentYear

Designa l'anno attuale

CustomClose

CustomClose[N]

Costante parametrabile nella finestra propriet

Cycle

Cycle(price)

Cycle

25 / 32

Glossario

D
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Date

Date[N]

Data di chiusura della barra corrente

Day

Day[N]

Giorno di chiusura della barra corrente

Days

Days[N]

Contatore di giorni dal 1900

DayOfWeek

DayOfWeek[N]

Giorno della settimana di chiusura della barra


corrente

Dclose

Dclose(N)

Prezzo di chiusura giornaliero

DEMA

DEMA[N](price)

Doppia media mobile esponenziale

Dhigh

Dhigh(N)

Prezzo massimo giornaliero

DI

DI[N](price)

Demand Index

DIminus

Diminus[N](price)

DI-

Diplus

Diplus[N](price)

DI+

Dlow

Dlow(N)

Prezzo minimo di chiusura della barra


giornaliera

DO

Vedere FOR et WHILE

Istruzione facoltativa per FOR e WHILE

Dopen

Dopen(N)

Prezzo di apertura della barra giornaliera

DOWNTO

Vedere FOR

Istruzione di lettura decrescente per FOR

DPO

DPO[N](price)

Detrented Price Oscillator

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

EaseOfMovement

EaseOfMovement[I]

Ease of Movement

ELSE

Vedere
IF/THEN/ELSE/ENDIF

Istruzione per introdurre la condizione


alternativa alla prima in IF

ELSEIF

Vedere
IF/THEN/ELSE/ENDIF

Istruzione per introdurre una condizione doppia


in IF

EMV

EMV[N]

Ease of Movement Value

EQUITYFRAME

EQUITYFRAME("mercato" ,
"ticker")

Ricerca una condizione rispetto ad un valore

ENDIF

Vedere
IF/THEN/ELSE/ENDIF

Istruzione da utilizzare alla fine di IF

EndPointAverage

EndPointAverage[N](price)

Media mobile all'ultimo punto

EstimatedVolume

EstimatedVolume

Indica la stima del volume

Exp

Exp(a)

Funzione matematica Esponenziale

ExponentialAverage

ExponentialAverage[N](price)

Media mobile Esponenziale

26 / 32

Glossario

F-G
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

FOR/TO/NEXT

FOR i=a TO b DO a NEXT

Elementi dell'istruzione POUR

ForceIndex

ForceIndex(price)

Force Index: determina il controllo del mercato


(vendita o acquisto)

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

High

High[N]

Designa il prezzo massimo della barra

Highest

Highest[N](price)

Designa il prezzo massimo di un insieme di


barre

HistoricVolatility

HistoricVolatility[N](price)

Volatilit Storica (o volatilit statistica)

Hour

Hour[N]

Ora di chiusura della barra corrente

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

IF/THEN/ENDIF

IF a THEN b ENDIF

Istruzioni condizionali senza seconda


condizione

IF/THEN/ELSE/ENDIF

IF a THEN b ELSE c ENDIF

Istruzioni condizionali

IntradayBarIndex

IntradayBarIndex[N]

Conta il numero di candele in un grafico


giornaliero

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

LinearRegression

LinearRegression[N](price)

Retta di regressione lineare

LinearRegressionSlope

LinearRegressionSlope[N]
(price)

Inclinazione di regressione lineare

Log

Log(a)

Funzione logaritmica

Low

Low[N]

Designa il prezzo minimo della barra

Lowest

Lowest[N](price)

Designa il prezzo minimo di un insieme di


barre

I-J-K

27 / 32

Glossario

M
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

MACD

MACD[S,L,Si](price)

Moving Average Convergence Divergence


(MACD) in istogramma

MACDline

MACDLine[S,L](price)

Linea dell'MACD

MassIndex

MassIndex[N]

Mass Index

Max

Max(a,b)

Funzione matematica "Massimo"

MedianPrice

MedianPrice

Media del prezzo massimo e minimo

Min

Min(a,b)

Funzione matematica "Minimo"

Minute

Minute

Minuto di chiusura della barra corrente

Mod

a Mod b

Funzione matematica "Resto della divisione


euclidiane"

Momentum

Momentum[I]

Momentum

MoneyFlow

MoneyFlow[N](price)

MoneyFlow tra -1 e 1

MoneyFlowIndex

MoneyFlowIndex[N]

MoneyFlowIndex

Month

Month[N]

Mese di chiusura della barra corrente

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

NEXT

Vedere FOR/TO/NEXT

Istruzione per chiudere il circolo FOR

Not

NOT a

Operatore logico NON

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

OBV

OBV(price)

On-Balance-Volume

ONCE

ONCE VariableName =
VariableValue

Istruzione per indicare che l'istruzione sar


eseguita 1 volta sola

Open

Open[N]

Prezzo di apertura

OpenOfNextBar

OpenOfNextBar

Prezzo di apertura della barra seguente

OR

a OR b

Operatore logico O

28 / 32

Glossario

P-Q
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

PriceOscillator

PriceOscillator[S,L](price)

Percentage Price oscillator

PositiveVolumeIndex

PriceVolumeIndex(price)

Positive Volume Index

PVT

PVT(price)

"Price Volume Trend"

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

R2

R2[N](price)

Coefficiente della radice quadrata (tasso


d'errore dei prezzi della regressione lineare)

Range

Range[N]

Range (differenza tra massimo e minimo della


barra corrente)

REM

REM comment

Introduce un commento (non considerato nel


codice)

Repulse

Repulse[N](price)

Repulse (misura la spinta a rialzo e a ribasso


di ogni candela)

RETURN

Return Result

Istruzione che rinvia il risultato

ROC

ROC[N](price)

Price Rate of Change

RSI

RSI[N](price)

Relative Strength Index

Round

Round(a)

Funzione matematica "Arrotondamento


all'unit" (Intero)

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

SAR

SAR[At,St,Lim]

Parabolic SAR

SARatdmf

SARatdmf[At,St,Lim](price)

Parabolique SAR a prezzo limite

SCREENER

SCREENER[c](price)

Mostra i risultati della ricerca

Sin

Sin(a)

Funzione matematica "Seno"

Sgn

SGN(a)

Funzione matematica "Segno"

SMI

SMI[N,SS,DS](price)

Stochastic Momentum Index

SmoothedStochastic

SmoothedStochastic[N,K]
(price)

Stocastico lisciato

29 / 32

Glossario

SORT BY

Screener(c1) SORT BY price

Visualizza o ordina i risultati

Square

Square(a)

Elevazione al quadrato

Sqrt

Sqrt(a)

Radice quadrata

STD

STD[N](price)

Scarto tipo

STE

STE[N](price)

Scarto Errore

Stochastic

Stochastic[N,K](price)

Linea %K dello Stocastico

Summation

Summation[N](price)

Somma del prezzo delle ultime N candele

SuperTrend

SuperTrend[STF,N]

Super Trend

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Tan

Tan(a)

Tangente

TEMA

TEMA[N](price)

Media Mobile Esponenziale Tripla

THEN

Vedere
IF/THEN/ELSE/ENDIF

Istruzione che segue l'istruzione condizionale


"IF"

Time

Time[N]

Permette di richiamare l'ora, in formato


OraMinutoSecondo

TimeSeriesAverage

TimeSeriesAverage[N](price)

Media Mobile delle serie temporali

TIME FRAME

TIMEFRAME(periodo)

Definisce un timeframe diverso dal principale

TO

Vedere FOR/TO/NEXT

Istruzione "fino a" nell'istruzione FOR

Today

Today

Data del giorno corrente

TotalPrice

TotalPrice[N]

(Chiusura + Apertura + Massimo + Minimo)/4

TR

TR(price)

True Range

TriangularAverage

TriangularAverage[N](price)

Media Mobile Triangolare

TRIX

TRIX[N](price)

Tripla Media Mobile Esponenziale

TypicalPrice

TypicalPrice[N]

Prezzo Tipico (media dei massimi, minimi e


chiusura)

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Undefined

a = Undefined

Permette di lasciare una variabile indefinita

30 / 32

Glossario

V
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Variation

Variation(price)

Differenza tra la chiusura della vigilia e la


chiusura corrente, in %

Volatility

Volatility[S, L]

Volatilit di Chaikin

Volume

Volume[N]

Volume

VolumeOscillator

VolumeOscillator[S,L]

Oscillatore di Volume

VolumeROC

VolumeROC[N]

Volume del Rate of Change

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

WeightedAverage

WeightedAverage[N](price)

Media Mobile Ponderata

WeightedClose

WeightedClose[N]

Media tra chiusura, massimo, minimo


ponderati

WEND

Vedere WHILE/DO/WEND

Istruzione da posizionare alla fine


dell'istruzione WHEN

WHILE/DO/WEND

WHILE (condition) DO
(action) WEND

Istruzione WHEN

WilderAverage

WilderAverage[N](price)

Media Mobile di Wilder

Williams

Williams[N](close)

Calcula il %R di Williams

WilliamsAccumDistr

WilliamsAccumDistr(price)

Indicatore Accumulazione/Distribuzione di
Williams

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

XOR

a XOR b

Operatore logico esclusivo O

31 / 32

Glossario

Y
CODICE

IMPLEMENTAZIONE

DESCRIZIONE

Year

Year[N]

Permette di richiamare un anno in particolare


nel programma

Yesterday

Yesterday[N]

Permette di richiamare il giorno precedente nel


programma

CODICE

IMPLEMENTAZIONE

DESCRIZIONE

ZigZag

ZigZag[Zr](price)

Zig-Zag della teoria delle onde di Elliot

ZigZagPoint

ZigZagPoint[Zp](price)

Zig-Zag della teoria delle onde di Elliot


calcolata a Zp punti

Autres
CODICE

DESCRIZIONE

Somma

Sottrazione

Moltiplicazione

Divisione

Uguale

<>

Differenza

<

Strettamente inferiore

>

Strettamente superiore

<=

Inferiore

>=

Superiore

32 / 32

Potrebbero piacerti anche