Scan con media e MACD
Forums › ProRealTime forum Italiano › Supporto ProScreener › Scan con media e MACD
- This topic has 11 replies, 2 voices, and was last updated 10 months ago by massininja.
-
-
01/26/2024 at 7:10 PM #226919
Salve,
vorrei creare uno scan che non scremi gli strumenti della mia lista, ma che semplicemente evidenzi se uno strumento risolve una determinata metrica oppure no.
Esempio:
-trend rialzista: prezzo di chiusura superiore a media mobile 5 periodi e media mobile 20 periodi
-trend ribassista: prezzo di chiusura inferiore a media mobile 5 periodi e inferiore a media mobile 20 periodi
-trend laterale: prezzo di chiusura inferiore a media mobile 5 periodi e superiore media mobile 20 periodi OPPURE prezzo di chiusura superiore a media mobile 5 periodi e inferiore media mobile 20 periodi
conferma tramite MACD
-trend rialzista: trigger line sopra la signal line
-trend ribassista: trigger line sotto la signal line
-inversione rialzista: quando la differential line incrocia dal basso verso l’alto la signal line
-inversione ribassista: quando la differential line incrocia dall’alto verso il basso la signal line
Vorrei capire come fare per far sì che ogni strumento riporti il risultato “Sì” se il criterio è verificato e “no” se invece non è verificato
Grazie mille
Massimo
01/27/2024 at 9:59 AM #226934Come desideri che venga determinato se un trend è Rialzista, Ribassista o Laterale?
01/27/2024 at 2:14 PM #226941Buongiorno,
ipotizando una risposta di tipo binario sarebbe perfetto se la condizione che dovesse verificarsi venisse determinata con un “1” e le altre due non verificate venissero indicate con uno “0”.
Esempio:
titolo trend rialzista trend rib. trend laterale macd rialzista macd ribassista etc. eni 1 0 0 1 0 Ho visto uno screening del genere su metastock e mi piacerebbe poterlo ricreare anche qui.
Grazie mille davvero
01/27/2024 at 4:07 PM #226945Lo schema va bene, ma vorrei sapere come desideri che venga determinato un trend Rialzista, Ribassista o Laterale.
Ad esempio è rialzista quando il prezzo è sopra la media a 200 periodi e ribassista quando è sotto? E magari lo consideriamo laterale quando tra il prezzo e la media a 200 periodi ci soo vari incroci nelle ultime N candele?
Oppure in altro modo?
01/27/2024 at 4:20 PM #226946Scusami, non ho specificato che mi stavo riferendo a un trend di breve termine, per cui ipotizzavo questo:
-Trend rialzista se l’ultimo prezzo di chiusura è superiore sia alla media mobile a 5 periodi, sia a quella di 20 periodi.
-Trend ribassista se l’ultimo prezzo di chiusura è inferiore sia alla media mobile a 5 periodi, sia a quella di 20 periodi
– Trend laterale: ultimo prezzo di chiusura inferiore a media mobiule a 5 e superiore a media mobile 20, oppure superiore a media mobile 5 periodi e inferiore a media mobile a 20 periodi
Grazie mille
01/27/2024 at 4:31 PM #226949Ok, te lo faccio appena possibile.
01/27/2024 at 5:56 PM #22695701/30/2024 at 11:43 AM #227093Ecco fatto:
12345678910111213141516171819202122232425262728293031// restituisce i seguenti vslori://// 1 = Rialzo// 2 = Ribasso// 3 = inversione Rialzista// 4 = inversione Ribassista//Sma5 = average[5,0](close)Sma20 = average[20,0](close)Rialzo = close > max(Sma5,Sma20)Ribasso = close < min(Sma5,Sma20)//Laterale = ((close > Sma20) AND (close < Sma5)) OR ((close > Sma5) AND (close < Sma20))MyMACD = Average[12,1](close) - Average[26,1](close)MySignal = Average[9,1](MyMACD)MyHisto = MyMACD - MySignalUP = Rialzo AND (MyMACD > MySignal)DN = Ribasso AND (MyMACD < MySignal)invUP = MyHisto CROSSES OVER MySignalinvDN = MyHisto CROSSES UNDER MySignalSegnale = 0IF UP THENSegnale = 1ELSIF DN THENSegnale = 2ELSIF invUP THENSegnale = 3ELSIF invDN THENSegnale = 4ENDIFSCREENER[Segnale](Segnale AS "1=UP,2=DN,3=up,4=dn")quando restituisce i valori dei 4 possibili segnali, utilizzo tutto maiuscolo (UP e DN) per i segnali rialzisti e ribassisti, mentre tutto minuscolo (up e dn) per le inversioni. Questo perché il testo che spiega il criterio non può superare una certa lunghezza.
Se ti restituisce troppi segnali e non risci a vederli tutti puoi filtrarli con il prezzo cambiando l’ultima riga in:
1SCREENER[Segnale AND (close > 15)](Segnale AS "1=UP,2=DN,3=up,4=dn")in modo da vederne meno (nell’esempio solo quelli con prezzo > 15).
Mi sono accorto adesso che in realtà avevi già specificato nel post iniziale come determinare il trend. Scusami, non l’avevo letto bene.
01/30/2024 at 1:21 PM #227102Fantastico, grazie mille davvero!
01/30/2024 at 2:33 PM #227108Ho provato il codice e funziona bene, ho solo inserito la variabile “Laterale” che nel codice oroginale era inserita come testo.
Volevo chiederle, attualmente la colonna di risposta mi rimanda solo uno dei segnali (1 o 2 o 3 o 4 etc). Eventualmente sarebbe possibile modificare i lcodice affinché ogni colonna abbia la sua analisi e, modificare la risposta del segnale in sì=1 o no=0
titolo trend rialzista trend rib. trend laterale macd rialzista macd ribassista etc. eni 1 0 0 1 0 In modo da avere non una scrematura dei titoli ma una panoramica complessiva, dove poter vedere al colpo d’occhio quali titoli della mia lista soddisfano i vari requisiti.
Grazie in anticipo!
01/31/2024 at 11:38 AM #227167Eccolo, il 9 iniziale serve solo per fare in modo che restino gli ZERI iniziali, altrimenti li toglierebbe:
123456789101112131415161718192021222324252627282930313233343536373839// restituisce i seguenti vslori://// Rialzo Ribasso inv.Rialz Inv.Ribas. Later.// U D u d L// 1 1 1 1 1//Sma5 = average[5,0](close)Sma20 = average[20,0](close)Rialzo = close > max(Sma5,Sma20)Ribasso = close < min(Sma5,Sma20)Laterale = ((close > Sma20) AND (close < Sma5)) OR ((close > Sma5) AND (close < Sma20))MyMACD = Average[12,1](close) - Average[26,1](close)MySignal = Average[9,1](MyMACD)MyHisto = MyMACD - MySignalUP = Rialzo AND (MyMACD > MySignal)DN = Ribasso AND (MyMACD < MySignal)invUP = MyHisto CROSSES OVER MySignalinvDN = MyHisto CROSSES UNDER MySignalSegnale = 900000IF UP THENSegnale = Segnale + 10000ENDIFIF DN THENSegnale = Segnale + 1000ENDIFIF invUP THENSegnale = Segnale + 100ENDIFIF invDN THENSegnale = Segnale + 10ENDIFIF Laterale THENSegnale = Segnale + 1ENDIFIF Segnale = 900000 THENSegnale = 0ENDIFSCREENER[Segnale AND (close > 15)](Segnale AS "- UDudL")alla fine, se SEGNALE ha ancora valore 900000 significa che nessuna condizione è soddisfatta, per cui la variabile viene posta a ZERO in modo che non restituisca nessun valore.
02/07/2024 at 1:20 PM #227546 -
AuthorPosts
Find exclusive trading pro-tools on