Buongiorno Roberto,
ho questo screener che fa il suo lavoro egregiamente, vorrei aggiungere un’ulteriore regola se possibile al fine di migliorarlo.
In definitiva il codice che mi piacerebbe aggiungere a supporto di quello presente dovrebbe concorre a rilevare le azioni quando : “Adx incrocia in rialzo DI- ” e il prezzo chiude in rialzo quando le condizioni sono confermate dall’ indicatore “l_PRTbandsup ” (freccia verde UP) . Allego un grafico come esempio per maggiore chiarezza . Naturalmente la regole si applica al prezzo di chiusura di borsa.
Grazie in anticipo per il tuo supporto e disponibilità
Timeframe (weekly)
//prezzo max nelle ultime 52 settimane o linea di resistenza
//
// Canale di DONCHIAN
p = 18
Upper = HIGHEST[p](HIGH[1])
//Lower = LOWEST[p](LOW[1])
Distanza = 0.2 * pipsize
cDonchiaN = close >= (Upper - Distanza)
cWeekly = cDonchian
//cDonchiaN = close >= Upper
//prezzo52 = highest[52](close[0])
prezzo52 = highest[52](high[0])
timeframe(daily)
cprezzo = close[0] >= prezzo52[1]
mm20 = average[20,0](close)
mm50 = average[50,0](close)
mm200 = average[200,0](close)
c0 = (close > mm20) AND (close > mm50) AND (close > mm200) and cprezzo
DMI18 = DIplus[18](close)
cDmi18 = DMI18 > DMI18[1]
REM trend a rialzo delle ultime 3 candele
rem summation: calcola la somma su un numero di barre da definire
NumeroCandele = 2
// LONG
IF (summation[NumeroCandele](close > open) = NumeroCandele) THEN
a = 1
rem SHORT
elsIF (summation[NumeroCandele](close < open) = NumeroCandele) THEN
a = 2
else
a = 0
Endif
//Cabs = abs(close - open)
Rem - ABS valore assoluto
//Corpo = abs(open-close)/range>=0.70 and range>=1*average[30](range)
Rem - Range è la differenza fra High e Low di un valore
Corpo = abs(open-close)/range>=0.67
Corpo1 = abs(open[0]-close[0])=> abs(open[1]-close[1])
cVol = volume > Average[20](volume)
REM Chiusura superiore alla Bollinger Superiore
//Cond1 = (Close > Bollingerup[20](Close))
REM Chiusura > Apertura
Cond2 = Close > Open
Cond0 = cond2 and C0 and corpo and corpo1 and cvol and A and cprezzo and cdmi18 and cWeekly
//SCREENER[Cond0 ] (range as "range")
SCREENER[cond0] (dmi18[1] as "dmi")
Ciao Roberto, perdonami, provo a caricare il grafico in formato jpg per farti vedere visivamente la richieste del codice, purtroppo ancora una volta non funziona e non capisco le ragioni per cui non si carica ; ci sono istruzioni specifiche da seguire nel forum per caricare un immagine , dopo aver selezionato il file come allegato
? cordialmente ..
ci riprovo con questa nota …
Ho creato un nuovo argomento. Non aggiungere richieste diverse ad altre esistenti, altrimenti diventa difficile trovare le informazioni.
Grazie 🙂
Puoi postare un link dove posso trovare l’indicatore l_PRTbandsup?
questo è il link da cui ho copiato l’indice, ho modificato solo il nome per riconoscerlo nella mia libreria.
esempio 2 :
https://www.prorealcode.com/documentation/prtbandsup/
Il contenuto è lo stesso come puoi vedere dal codice sotto riportato per comodità di lettura.
Grazie Roberto.
Buona serata
a = PRTBandsUp
//Plot a up arrow below the candlestick when the Close crosses over the upper band
if close crosses over a then
drawarrowup(barindex,low-averagetruerange[14]/2) coloured(0,255,0)
endif
return
Non duplicare it tuoi post. Poni la tua domanda solo una volta e solo in un forum. Tutti i doppi post verranno comunque eliminati, quindi pubblicare più volte la stessa domanda ti farà perdere tempo e non ti farà avere una risposta più velocemente. Il doppio post crea solo confusione nei forum.
Grazie 🙂
Ti ho aggiunto le ulteriori condizioni. A me non riesce a trovare niente, pur avendo indicato TUTTE le liste possibili:
Timeframe (weekly)
//prezzo max nelle ultime 52 settimane o linea di resistenza
//
// Canale di DONCHIAN
p = 18
Upper = HIGHEST[p](HIGH[1])
//Lower = LOWEST[p](LOW[1])
Distanza = 0.2 * pipsize
cDonchiaN = close >= (Upper - Distanza)
cWeekly = cDonchian
//cDonchiaN = close >= Upper
//prezzo52 = highest[52](close[0])
prezzo52 = highest[52](high[0])
timeframe(daily)
//myPRTBANDSUP = PRTBANDSUP
//myPRTBANDSDOWN = PRTBANDSDOWN
//myPRTBANDSSHORTTERM = PRTBANDSSHORTTERM
//myPRTBANDSMEDIUMTERM4 = PRTBANDSMEDIUMTERM
cprezzo = close[0] >= prezzo52[1]
mm20 = average[20,0](close)
mm50 = average[50,0](close)
mm200 = average[200,0](close)
c0 = (close > mm20) AND (close > mm50) AND (close > mm200) and cprezzo
DMI18 = DIplus[18](close)
cDmi18 = DMI18 > DMI18[1]
REM trend a rialzo delle ultime 3 candele
rem summation: calcola la somma su un numero di barre da definire
NumeroCandele = 2
// LONG
IF (summation[NumeroCandele](close > open) = NumeroCandele) THEN
a = 1
rem SHORT
elsIF (summation[NumeroCandele](close < open) = NumeroCandele) THEN
a = 2
else
a = 0
Endif
//Cabs = abs(close - open)
Rem - ABS valore assoluto
//Corpo = abs(open-close)/range>=0.70 and range>=1*average[30](range)
Rem - Range è la differenza fra High e Low di un valore
Corpo = abs(open-close)/range>=0.67
Corpo1 = abs(open[0]-close[0])=> abs(open[1]-close[1])
cVol = volume > Average[20](volume)
REM Chiusura superiore alla Bollinger Superiore
//Cond1 = (Close > Bollingerup[20](Close))
REM Chiusura > Apertura
Cond2 = Close > Open
////////////////////////////////////////////////////////////
xa = close crosses over PRTBandsUp
i1 = ADX[14]
i2 = DIminus[14](close)
xb = i1 CROSSES OVER i2
xc = close > close[1]
////////////////////////////////////////////////////////////
//
Cond0 = cond2 and C0 and corpo and corpo1 and cvol and A and cprezzo and cdmi18 and cWeekly and xa and xb and xc
//SCREENER[Cond0 ] (range as "range")
SCREENER[cond0] (dmi18[1] as "dmi")