MACD con filtro su superamento massimo/minimo precedente
Forums › ProRealTime forum Italiano › Supporto ProBuilder › MACD con filtro su superamento massimo/minimo precedente
- This topic has 8 replies, 2 voices, and was last updated 3 years ago by fabio_effe.
-
-
08/20/2020 at 1:07 PM #142124
Ciao a tutti, sono nuovo nel forum e sono novizio anche sulla piattaforma, motivo per cui mi scuso per eventuali imprecisioni o se dovessi chiedere temi già trattati.
Vi chiedo una mano se possibile in merito ad un indicatore che vorrei realizzare; di seguito i dettagli:
vorrei realizzare un MACD che tracci sul grafico segnali di acquisto o vendita (tramite le classiche frecce ad esempio) ma non ad ogni intersezione del macd, bensì vorrei cercare di “ripulirlo” da eventuali falsi segnali inserendo la seguente condizione:
- segnale acquisto -> se rispetto all’intersezione del macd, nei successivi 5 giorni, il prezzo supera il massimo registrato nei 10 giorni precedenti all’intersezione
- segnale vendita -> se rispetto all’intersezione del macd, nei successivi 5 giorni, il prezzo supera il minimo registrato nei 10 giorni precedenti all’intersezione
in aggiunta (ma secondariamente) si potrebbe anche pensare ad uno screener con tali parametri.
Cosa ne pensate?
Grazie mille
08/20/2020 at 2:21 PM #142134Non l’ho provato:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Once n = 10Once p = 5Once CrossBar = 0Once HH = 0Once LL = 0Once CrossUP = 0Once CrossDN = 0Once Crossing = 0If Crossbar > 0 and (BarIndex - Crossbar) > p ThenCrossBar = 0HH = 0LL = 0CrossUP = 0CrossDN = 0Crossing = 0Lcond = 0Scond = 0Endifa = MACD[12,26,9](close) //Hystob = MACDLine[12,26,9](close) //MACDc = ExponentialAverage[9](b) //SignalIf CrossUP = 0 ThenCrossUP = b Crosses Over cIf CrossUP ThenCrossing = 1CrossDN = 0EndifEndifIf CrossDN = 0 ThenCrossDN = b Crosses Under cIf CrossDN ThenCrossing = -1CrossUP = 0EndifEndifIf Crossing <> Crossing [1] ThenCrossbar = BarIndexHH = highest[n](high[1])LL = lowest[n](low[1])EndifLcond = CrossUP and Close crosses over HHScond = CrossDN and Close crosses under LLx = 0If Lcond thenx = 1Elsif Scond thenx = -1EndifRETURN x AS “Segnale”08/20/2020 at 2:38 PM #142137Grazie per la risposta.
Ho aggiunto l’indicatore sul grafico (non in finestra separata) ma non vedo indicazioni.
Mi sapresti dare una mano per favore?
Grazie
08/20/2020 at 3:32 PM #142142Questo va sotto, appena posso te lo modifico.
1 user thanked author for this post.
08/21/2020 at 1:57 AM #142182Questo va sul grafico:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Once n = 10Once p = 5Once Offset = 10 * pipsizeOnce CrossBar = 0Once HH = 0Once LL = 0Once CrossUP = 0Once CrossDN = 0Once Crossing = 0If Crossbar > 0 and (BarIndex - Crossbar) > p ThenCrossBar = 0HH = 0LL = 0CrossUP = 0CrossDN = 0Crossing = 0Lcond = 0Scond = 0Endif//a = MACD[12,26,9](close) //Hystob = MACDLine[12,26,9](close) //MACDc = ExponentialAverage[9](b) //SignalIf CrossUP = 0 ThenCrossUP = b Crosses Over cIf CrossUP ThenCrossing = 1CrossDN = 0EndifEndifIf CrossDN = 0 ThenCrossDN = b Crosses Under cIf CrossDN ThenCrossing = -1CrossUP = 0EndifEndifIf Crossing <> Crossing [1] ThenCrossbar = BarIndexHH = highest[n](high[1])LL = lowest[n](low[1])EndifLcond = CrossUP and Close crosses over HHScond = CrossDN and Close crosses under LLIf Lcond thenDRAWARROWUP(barindex,low-offset) coloured(0,255,0,255)Elsif Scond thenDRAWARROWDOWN(barindex,high+offset) coloured(255,0,0,255)EndifRETURN08/21/2020 at 11:39 AM #142199C’è un errore logico sopra. La versione corretta è questa:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051Once n = 10Once p = 5Once CrossBar = 0Once HH = 0Once LL = 0Once CrossUP = 0Once CrossDN = 0Once Crossing = 0ONCE Offset = 100 * pipsizeIf Crossbar > 0 and (BarIndex - Crossbar) > p ThenCrossBar = 0HH = 0LL = 0CrossUP = 0CrossDN = 0Crossing = 0Lcond = 0Scond = 0Endif//a = MACD[12,26,9](close) //Hystob = MACDLine[12,26,9](close) //MACDc = ExponentialAverage[9](b) //SignalCrossUP = b Crosses Over cIf CrossUP ThenCrossing = 1CrossDN = 0EndifCrossDN = b Crosses Under cIf CrossDN ThenCrossing = -1CrossUP = 0EndifIf (Crossing <> Crossing[1]) AND (Crossing <> 0) ThenCrossbar = BarIndexEndifIF Crossbar > 0 THENHH = highest[n](high[1])LL = lowest[n](low[1])IF (Not CrossUP) AND (Not CrossDN) THENCrossUP = CrossUP[1]CrossDN = CrossDN[1]ENDIFENDIFLcond = (CrossUP and open < HH AND close > HH) OR (Close crosses over HH)Scond = (CrossDN and open > LL AND close < LL) OR (Close crosses under LL)If Lcond thenDRAWARROWUP(barindex,low-offset) coloured(0,255,0,255)Elsif Scond thenDRAWARROWDOWN(barindex,high+offset) coloured(255,0,0,255)EndifRETURN08/21/2020 at 12:57 PM #142209Gentilissimo.
Una domanda per cortesia: vedo che le frecce vengono poste molto distanti dalle candele sul grafico.
Ci sarebbe un modo per avvicinarle in prossimità del prezzo?
Grazie
08/21/2020 at 1:50 PM #142212Cambia il numero di pips alla riga 9.
Ho messo 100 sul TF Daily col Dax.
Per farlo variabile in modo automatico scrivi la riga 9 cosi:
1Offset = average[20,0](range) * 1.508/21/2020 at 2:14 PM #142215 -
AuthorPosts
Find exclusive trading pro-tools on