PROREALTIME - PROSCREENER

2B - PATTERNS CANDELE GIAPPONESI


In questo capitolo vedremo come impostare screeners per la ricerca di patters di candele giapponesi.

Una volta che conoscete le caratteristiche di un pattern, è possibile programmarlo.

Vedremo prima i singoli codici per ogni patterns e poi come impostare gli screeners.

Li ho divisi per patterns d'inversione di uptrend e downtrend e patterns di continuazione di uptrend e downtrend.


1 - PATTERNS CANDLESTICKS D'INVERSIONE (UTILIZZABILI ANCHE PER LA CONTINUAZIONE)

 

Questi screeners trovano patterns candlesticks di inversione o di continuazione.

Per determinare se la prima o la seconda tipologia devono essere coadiuvati da altre condizioni quali ipercomprato o ipervenduto e da condizioni di medie mobili per identificare il trend.

Ogni condizione raccoglie tutte le sottocondizioni per identificare un pattern candlestick e si dividono in patterns rialzisti e pattern ribassisti.

Basta copiare il codice.

 

PRINCIPALI PATTERNS D'INVERSIONE 

 

// engulfing pattern rialzista (anche reversal day)

C1=range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close[0]>=open[1]

 

// engulfing pattern ribassista (anche reversal day)

C1=range[0]>=range[1] AND close[1]>open[1] AND close[0]<open[0] AND open[0]>=close[1] AND close[0]<=open[1]

 

// hammer rialzista

C1 = close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0]+(range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1]

 

// shooting star ribassista

C1 = close[1]>open[1] AND open[0]<high[0]-(range*0.66) AND close[0]<high[0]-(range*0.66) AND range[0]>abs(open-close)*4 AND high[0]>high[1]

 

// piercing pattern rialzista

C1 = close[1]<open[1] AND open[0]<low[1] AND close[0]>=low[1]+(range[1]*0.50) AND close[0]<open[1]

 

// dark cloud cover ribassista

C1 = close[1]>open[1] AND open[0]>high[1] AND close[0]<=high[1]-(range[1]*0.50) AND close[0]>open[1]

 

// swing point low + one white soldier (rialzista)

C1 = close[2]<open[2] AND low[2]>low[1] AND low[0]>low[1] AND close[0]>open[0] AND close[0]>high[1] AND high[2]>high[1] AND high[0]>high[1] AND high[0]>high[2] AND close[0]>open[2] AND close[0]>=low[0]+(range[1]*0.50)

 

// swing point high + one white soldier (ribassista)

C1 = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50)

 

 

_______________________________________________________________________________________

 

 

I patterns di inversione possono essere coadiuvati, per esempio

dalle seguenti condizioni quali:

 

mercato in ipervenduto per i pattern rialzisti od ipercomprato per i ribassisti mediante l'oscillatore RSI o altri oscillatori a piacere:

C2 = rsi[14](close)<40 o 50

C2 = rsi[14](close)>60 o 50

 

Prezzo sotto (p.rialzisti) o sopra (p. ribassisti) una media mobile per esempio a 20 o 10 periodi per definire il trend corrente:

C3 = close[0]<exponentialaverage[x](close)

C3 = close[0]>exponentialaverage[x](close)

 

Grandezza della candela reversal tramite indicatore ATR (con moltiplicatore*1 modificabile in base alla grandezza richiesta):

C4= range[0]>averagetruerange[x](close)*1

 

aumento di volume su pattern reversal solo per azionario e commodities:

C5= volume[0]>volume[1]

C6= average[x](Volume)<volume[0]

 

Esistenza di trend

C7=ADX[14]>=20

 

Si possono utilizzare più patterns insieme nella ricerca, ponendoli successivamente mediante il comando screener con la congiunzione OR tra parentesi invece che AND.

 

Esempio proscreener (vanno messi i codici relativi):

 

C1=ENGULFING RIALZISTA

C2=HAMMER RIALZISTA

C3= SWING POINT LOW RIALZISTA

C4= VOLUME

C5= RSI

C6 = MEDIA MOBILE

 

screener [(C1 OR C2 OR C3) AND C4 AND C5 AND C6]

 

IMPORTANTE:

Va detto inoltre che i pattern d'inversione possono formarsi anche nella direzione del trend corrente come ad esempio dopo un ritracciamento, come nel caso della strategia swing trading.

 

Possono essere utilizzati come condizioni aggiuntive allo screener del swing trading visto al punto 4.

In questo caso si possono ricercare pattern d'inversione a favore di trend e quindi al di sopra di una o due medie mobili (vedi anche il capitolo sulla strategia swing trading).

 

Ecco sotto due esempi di pattern d'inversione:

contro trend ed a favore di trend.

Come vedete, in base alle condizioni aggiuntive potete determinare in che direzione utilizzare il pattern d'inversione.

 

PATTERN D'INVERSIONE CONTROTREND: IL PATTERN SI FORMA AL DI SOTTO LA MEDIA MOBILE .
PATTERN D'INVERSIONE CONTROTREND: IL PATTERN SI FORMA AL DI SOTTO LA MEDIA MOBILE .
PATTERN D'INVERSIONE A FAVORE DI TREND: IL PATTERN SI FORMA AL DI SOPRA LA MEDIA MOBILE.
PATTERN D'INVERSIONE A FAVORE DI TREND: IL PATTERN SI FORMA AL DI SOPRA LA MEDIA MOBILE.

2 - PATTERNS CANDLESTICKS DI CONTINUAZIONE (UTILIZZABILI ANCHE PER L'INVERSIONE)

 

Come nel caso dei patterns d'inversioni appena visti, anche questi patterns sono utilizzabili sia come preavviso di continuazione del trend che per una possibile inversione poichè rappresentano fasi di momentanea congestione raffigurate da vari tipi di inside day ed harami.

 

Per quanto riguarda la continuazione di trend basta che questi pattern siano al di sopra (per un uptrend) o al di sotto (per un downtrend) di 1 o 2 medie mobili (una breve ed una più lunga per determinare il trend) in quanto seguono il trend corrente.

Oppure l'ideale è utilizzarli con le condizioni dello screener 5 di trend continuo.

 

Se invece si cercano patterns reversal possono essere utilizzati aggiungendo gli strumenti citati nel paragrafo precedente.

 

// inside day (solo range) reversal rialzista o continuazione ribassista

C1= close[1]<open[1] AND high[0]<=high[1] AND low[0]>=low[1]

 

// inside day (solo range) reversal ribassista o continuazione rialzista

C1=close[1]>open[1] AND high[0]<=high[1] AND low[0]>=low[1]

 

// Harami (body+range) reversal rialzista o continuazione ribassista

C1=close[1]<open[1] AND open[0]>=close[1] AND close[0]<=open[1] AND open[0]<=open[1] AND close[0]>=close[1] AND high[1]>=high[0] AND low[1]<=low[0]

 

// Harami (body+range) reversal ribassista o continuazione rialzista

C1=close[1]>open[1] AND open[0]<=close[1] AND close[0]>=open[1] AND open[0]>=open[1] AND close[0]<=close[1]AND high[1]>=high[0] AND low[1]<=low[0]

 

Per le multinside day basta creare il codice con più candele inserite all'interno del range di una più grande.

 

POSSIBILE PATTERN DI CONTINUAZIONE UPTREND: L'INSIDE CANDLE SI FORMA AL DI SOPRA DELLA MEDIA MOBILE.
POSSIBILE PATTERN DI CONTINUAZIONE UPTREND: L'INSIDE CANDLE SI FORMA AL DI SOPRA DELLA MEDIA MOBILE.
POSSIBILE PATTERN DI INVERSIONE RIALZISTA: L'INSIDE CANDLE SI FORMA SOTTO LA MEDIA MOBILE.
POSSIBILE PATTERN DI INVERSIONE RIALZISTA: L'INSIDE CANDLE SI FORMA SOTTO LA MEDIA MOBILE.

3 - SCREENER CON PATTERNS D'INVERSIONE RIALZISTA

Le condizioni in blu sono quelle riguardanti i pattern inside di continuazione.

Potete scegliere di ometterli dai vostri screeners di inversione, scrivendo davanti ai codici relativi le due barre // e togliendoli dal codice finale screener.

 

TIMEFRAME (DAILY)

// periodo ATR

X=20

// moltiplicatore ATR

Y=1

// periodo media mobile volume

Z=60

// periodo media mobile

media=20

// engulfing pattern rialzista (anche reversal day)

C1=range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close[0]>=open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

 

// hammer rialzista

C2 = close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0]+(range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// piercing pattern rialzista

C3 = close[1]<open[1] AND open[0]<low[1] AND close[0]>=low[1]+(range[1]*0.50) AND close[0]<open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// swing point low + one white soldier (rialzista)

C4 = close[2]<open[2] AND low[2]>low[1] AND low[0]>low[1] AND close[0]>open[0] AND close[0]>high[1] AND high[2]>high[1] AND high[0]>high[1] AND high[0]>high[2] AND close[0]>open[2] AND close[0]>=low[0]+(range[1]*0.50) AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

 

// inside day (solo range) reversal rialzista o continuazione ribassista

C5= close[1]<open[1] AND high[0]<=high[1] AND low[0]>=low[1] AND range[1]>averagetruerange[X](close)*Y

// Harami (body+range) reversal rialzista o continuazione ribassista

C6=close[1]<open[1] AND open[0]>=close[1] AND close[0]<=open[1] AND open[0]<=open[1] AND close[0]>=close[1] AND high[1]>=high[0] AND low[1]<=low[0] AND range[1]>averagetruerange[X](close)*Y

 

C7 = rsi[14](close)<40

C8 = close[0]<exponentialaverage[media](close)

C9=ADX[14]>=20

 

screener [(C1 OR C2 OR C3 OR C3 OR C4 OR C5 OR C6) AND C7 AND C8 AND C9]

 


4 - SCREENER CON PATTERNS D'INVERSIONE RIBASSISTA

Le condizioni in blu sono quelle riguardanti i pattern inside di continuazione.

Potete scegliere di ometterli dai vostri screeners di inversione, scrivendo davanti ai codici relativi le due barre // e togliendoli dal codice finale screener.

 

TIMEFRAME (DAILY)

// periodo ATR

X=20

// moltiplicatore ATR

Y=1

// periodo media mobile volume

Z=60

// periodo media mobile

media=20

// engulfing pattern ribassista (anche reversal day)

C1=range[0]>=range[1] AND close[1]>open[1] AND close[0]<open[0] AND open[0]>=close[1] AND close[0]<=open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// shooting star ribassista

C2 = close[1]>open[1] AND open[0]<high[0]-(range*0.66) AND close[0]<high[0]-(range*0.66) AND range[0]>abs(open-close)*4 AND high[0]>high[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// dark cloud cover ribassista

C3 = close[1]>open[1] AND open[0]>high[1] AND close[0]<=high[1]-(range[1]*0.50) AND close[0]>open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// swing point high + one white soldier (ribassista)

C4 = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50) AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

 

// inside day (solo range) reversal ribassista o continuazione rialzista

C5=close[1]>open[1] AND high[0]<=high[1] AND low[0]>=low[1] AND range[1]>averagetruerange[X](close)*Y

// Harami (body+range) reversal ribassista o continuazione rialzista

C6=close[1]>open[1] AND open[0]<=close[1] AND close[0]>=open[1] AND open[0]>=open[1] AND close[0]<=close[1]AND high[1]>=high[0] AND low[1]<=low[0] AND range[1]>averagetruerange[X](close)*Y

 

C7 = rsi[14](close)>60

C8 = close[0]>exponentialaverage[media](close)

C9=ADX[14]>=20

 

screener [(C1 OR C2 OR C3 OR C3 OR C4 OR C5 OR C6) AND C7 AND C8 AND C9]

 


5 - SCREENER CON PATTERNS DI CONTINUAZIONE DI UPTREND

 

Le condizioni in blu sono quelle riguardanti i pattern inside di continuazione.

Potete scegliere di ometterli dai vostri screeners di inversione se volete utilizzare solo i pattern di inversione da swing trading, scrivendo davanti ai codici relativi le due barre // e togliendoli dal codice finale screener.

 

TIMEFRAME (DAILY)

// periodo ATR

X=20

// moltiplicatore ATR

Y=1

// periodo media mobile volume

Z=60

//periodo media mobile

media=20

// inside day (solo range) reversal ribassista o continuazione rialzista

C1=close[1]>open[1] AND high[0]<=high[1] AND low[0]>=low[1] AND range[1]>averagetruerange[X](close)*Y

// Harami (body+range) reversal ribassista o continuazione rialzista

C2=close[1]>open[1] AND open[0]<=close[1] AND close[0]>=open[1] AND open[0]>=open[1] AND close[0]<=close[1]AND high[1]>=high[0] AND low[1]<=low[0] AND range[1]>averagetruerange[X](close)*Y

// engulfing pattern rialzista (anche reversal day)

C3=range[0]>=range[1] AND close[1]<open[1] AND close[0]>open[0] AND open[0]<=close[1] AND close[0]>=open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// hammer rialzista

C4 = close[1]<open[1] AND open[0]>low[0]+(range*0.66) AND close[0]>low[0]+(range*0.66) AND range[0]>abs(open-close)*4 AND low[0]<low[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// piercing pattern rialzista

C5 = close[1]<open[1] AND open[0]<low[1] AND close[0]>=low[1]+(range[1]*0.50) AND close[0]<open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// swing point low + one white soldier (rialzista)

C6 = close[2]<open[2] AND low[2]>low[1] AND low[0]>low[1] AND close[0]>open[0] AND close[0]>high[1] AND high[2]>high[1] AND high[0]>high[1] AND high[0]>high[2] AND close[0]>open[2] AND close[0]>=low[0]+(range[1]*0.50) AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

 

C7 = rsi[14](close)>60

C8 = close[0]>exponentialaverage[media](close)

C9=ADX[14]>=20

screener [(C1 OR C2 OR C3 OR C3 OR C4 OR C5 OR C6) AND C7 AND C8 AND C9]

 


6 - SCREENER CON PATTERNS DI CONTINUAZIONE DI DOWNTREND

 

Le condizioni in blu sono quelle riguardanti i pattern inside di continuazione.

Potete scegliere di ometterli dai vostri screeners di inversione se volete utilizzare solo i pattern di inversione da swing trading, scrivendo davanti ai codici relativi le due barre // e togliendoli dal codice finale screener.

 

TIMEFRAME (DAILY)

// periodo ATR

X=20

// moltiplicatore ATR

Y=1

// periodo media mobile volume

Z=60

// periodo media mobile

media=20

// inside day (solo range) reversal rialzista o continuazione ribassista

C1= close[1]<open[1] AND high[0]<=high[1] AND low[0]>=low[1] AND range[1]>averagetruerange[X](close)*Y

// Harami (body+range) reversal rialzista o continuazione ribassista

C2=close[1]<open[1] AND open[0]>=close[1] AND close[0]<=open[1] AND open[0]<=open[1] AND close[0]>=close[1] AND high[1]>=high[0] AND low[1]<=low[0] AND range[1]>averagetruerange[X](close)*Y

// engulfing pattern ribassista (anche reversal day)

C3=range[0]>=range[1] AND close[1]>open[1] AND close[0]<open[0] AND open[0]>=close[1] AND close[0]<=open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// shooting star ribassista

C4 = close[1]>open[1] AND open[0]<high[0]-(range*0.66) AND close[0]<high[0]-(range*0.66) AND range[0]>abs(open-close)*4 AND high[0]>high[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// dark cloud cover ribassista

C5 = close[1]>open[1] AND open[0]>high[1] AND close[0]<=high[1]-(range[1]*0.50) AND close[0]>open[1] AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

// swing point high + one white soldier (ribassista)

C6 = close[2]>open[2] AND high[2]<high[1] AND high[0]<high[1] AND close[0]<open[0] AND close[0]<low[1] AND low[2]<low[1] AND low[0]<low[1] AND low[0]<low[2] AND close[0]<open[2] AND close[0]<=high[0]-(range[1]*0.50) AND range[0]>averagetruerange[X](close)*Y AND volume[0]>volume[1] AND average[Z](Volume)<volume[0]

 

C7 = rsi[14](close)<40

C8 = close[0]<exponentialaverage[media](close)

C9=ADX[14]>=20

 

screener [(C1 OR C2 OR C3 OR C3 OR C4 OR C5 OR C6) AND C7 AND C8 AND C9]

 



Scrivi commento

Commenti: 1
  • #1

    Gaspare (lunedì, 28 ottobre 2019 20:03)

    Salve
    forse chiedo troppo ma confido nella tua disponibilita' e gentilezza, grazie.
    Si puo' costruire un TS basato sui PATTERNS CANDELE GIAPPONESI?
    Cioe' si possono codificare in un sistema unico da mettere on line?
    Certamente poi si dovra' scegliere il Time free piu' idoneo all'operativita'.
    Ancora grazie