Buongiorno, è possibile avere questi 4 screener che abbiano i seguenti parametri:
Screener 1: Oggi si deve verificare un nuovo massimo o minimo a 20 giorni e il precedente massimo o minimo a 20 giorni deve essersi verificato almeno quattro sedute di trading precedentemente;
Screener 2: Il range dell’ultima barra di un titolo è il più piccolo tra quelle degli ultimi quattro giorni ed è quindi una barra inside.
Screener 3: Deve segnalare quei titoli che l’ultimo giorno hanno aperto con un Gap Up o con un Gap Down e il cui Gap non è stato colmato al termine della stessa giornata;
Screener 4: l’ADX a 14 periodi è maggiore di 30 quando il titolo crea un pullback fino a toccare/scendere sotto la EMA a 20 giorni e che poi, quando ritorna sopra la EMA, il giorno dopo il titolo rompe il massimo del giorno precedente. (In alternativa, se non è completamente fattibile, mi basta l’ipotesi che l’ADX a 14 periodi sia maggiore di 30 quando il titolo crea un pullback fino a toccare/scendere sotto la EMA a 20 giorni)
Grazie per la disponibilità e buona giornata.
Screener 1: Oggi si deve verificare un nuovo massimo o minimo a 20 giorni e il precedente massimo o minimo a 20 giorni deve essersi verificato almeno quattro sedute di trading precedentemente;
Probabilmente c’e’ un modo stilisticamente migliore di scriverlo:
//Massimo
M=0
Bar=0
FOR i=20 TO 1 DO
IF High[1]>M THEN
M= High [1]
Bar= i
ENDIF
NEXT
C1= High>M and Bar=>4
Screener [c1]
//per il minimo è speculare
Screener 2: Il range dell’ultima barra di un titolo è il più piccolo tra quelle degli ultimi quattro giorni ed è quindi una barra inside.
Premesso che i criteri come da te descritti non generano necessariamente una inside (immagina una candela in gap up o down dal range molto piccolo) e che si deinisce inside una barra ricompresa interamente nel corpo (o range) della precedente
//High precedenti 4 sedute (inclusa l'ultima)
a= highest[4](high)
b= lowest [4] (low)
c1= high<a and high>b and low>b and low<a
Screener [c1]
Screener 3: Deve segnalare quei titoli che l’ultimo giorno hanno aperto con un Gap Up o con un Gap Down e il cui Gap non è stato colmato al termine della stessa giornata;
//Gap up
C1= Low>High[1]
//Gap down
C2= High<Low[1]
Screener [C1 OR C2]
Screener 4: l’ADX a 14 periodi è maggiore di 30 quando il titolo crea un pullback fino a toccare/scendere sotto la EMA a 20 giorni e che poi, quando ritorna sopra la EMA, il giorno dopo il titolo rompe il massimo del giorno precedente. (In alternativa, se non è completamente fattibile, mi basta l’ipotesi che l’ADX a 14 periodi sia maggiore di 30 quando il titolo crea un pullback fino a toccare/scendere sotto la EMA a 20 giorni)
Non ho capito molto bene e se ho capito quello che vuoi fare è abbastanza complesso (non impossibile ma complesso occorrerebbe almeno impostare un range temporale entro il quale le 3 condizioni che non sono contemporanee si devono verificarsi) Lo script sotto è per la sola parte tra ()
Dir= ADX[14]
Media = ExponentialAverage[20](close)
c1= Close<=Media and Dir>30
SCREENER [c1]
Alle linee 7 e 8 del primo screener devi sostituire High[1] con High[i].
Innanzitutto, grazie sia a Tom81 e sia a Roberto.
Innanzitutto, grazie a Tom81 e a Roberto.
Lo screener 4 sarebbe il “Sacro Graal” di L.Raschke-L.Connors” che prevede i seguenti parametri:
- L’ADX a 14 periodi deve essere inizialmente superiore a 30 e crescen
- Cercate un ritracciamento di prezzo in direzione della media mobile ~ Esponenziale a 20 periodi.
- Quando il prezzo colpisce la media mobile esponenziale a 20 periodi, collocate un acquisto stop al di sopra del massimo della barra precedente.
Vedi esempio nell’immagine allegata che restituisce i risultati richiesti.
Mi rendo conto che è un pò complicato da realizzare ed, infatti, ho cercato di rimediare con lo screener indicato tra parentesi in modo da avere, come punto di partenza, un pullback sulla EMA a 20 giorni e da lì, monitorando i titoli che danno questa configurazione, attendo il giorno del superamento del massimo della banda precedente o di quella che ha toccato il minimo sotto la EMA e poi ha chiuso sopra la EMA.
Grazie ancora e buona giornata
Ecco il n. 3 modificato come da foto (l’ho priovato e sembra funzioni):
IF BarIndex <= 1 THEN
Flag = 0 //inizializzare FLAG a zero
ENDIF
N = 3
MyADX = Adx[14]
Ema20 = Average[20,1](close)
c1 = MyADX > 30
c2 = MyADX > MyADX[1]
c3 = close > Ema20
Cond = c1 AND c2 AND c3
Flag = max(Flag,Cond)
x = 0
IF Flag THEN //se c'è stato già il segnale
IF (high > Ema20) AND (low[1] < Ema20) THEN // il prezzo deve di nuovo perforare la EMA20
IF (summation[N](low < Ema20) = N) THEN // il prezzo deve essere stato sotto EMA20 per 3 candele
IF (summation[N+1](low < Ema20) < (N+1)) THEN // ma non più di 3
x = 1 //Ok, segnale valido, poi
Flag = 0 // ripartire da zero
ELSE //se erano più di 3 candele sotto la EMA20
Flag = 0 // ripartire da zero, senza segnale valido
ENDIF
ENDIF
ENDIF
ENDIF
SCREENER[x]