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
Non l’ho provato:
Once n = 10
Once p = 5
Once CrossBar = 0
Once HH = 0
Once LL = 0
Once CrossUP = 0
Once CrossDN = 0
Once Crossing = 0
If Crossbar > 0 and (BarIndex - Crossbar) > p Then
CrossBar = 0
HH = 0
LL = 0
CrossUP = 0
CrossDN = 0
Crossing = 0
Lcond = 0
Scond = 0
Endif
a = MACD[12,26,9](close) //Hysto
b = MACDLine[12,26,9](close) //MACD
c = ExponentialAverage[9](b) //Signal
If CrossUP = 0 Then
CrossUP = b Crosses Over c
If CrossUP Then
Crossing = 1
CrossDN = 0
Endif
Endif
If CrossDN = 0 Then
CrossDN = b Crosses Under c
If CrossDN Then
Crossing = -1
CrossUP = 0
Endif
Endif
If Crossing <> Crossing [1] Then
Crossbar = BarIndex
HH = highest[n](high[1])
LL = lowest[n](low[1])
Endif
Lcond = CrossUP and Close crosses over HH
Scond = CrossDN and Close crosses under LL
x = 0
If Lcond then
x = 1
Elsif Scond then
x = -1
Endif
RETURN x AS “Segnale”
Grazie 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
Questo va sotto, appena posso te lo modifico.
Questo va sul grafico:
Once n = 10
Once p = 5
Once Offset = 10 * pipsize
Once CrossBar = 0
Once HH = 0
Once LL = 0
Once CrossUP = 0
Once CrossDN = 0
Once Crossing = 0
If Crossbar > 0 and (BarIndex - Crossbar) > p Then
CrossBar = 0
HH = 0
LL = 0
CrossUP = 0
CrossDN = 0
Crossing = 0
Lcond = 0
Scond = 0
Endif
//a = MACD[12,26,9](close) //Hysto
b = MACDLine[12,26,9](close) //MACD
c = ExponentialAverage[9](b) //Signal
If CrossUP = 0 Then
CrossUP = b Crosses Over c
If CrossUP Then
Crossing = 1
CrossDN = 0
Endif
Endif
If CrossDN = 0 Then
CrossDN = b Crosses Under c
If CrossDN Then
Crossing = -1
CrossUP = 0
Endif
Endif
If Crossing <> Crossing [1] Then
Crossbar = BarIndex
HH = highest[n](high[1])
LL = lowest[n](low[1])
Endif
Lcond = CrossUP and Close crosses over HH
Scond = CrossDN and Close crosses under LL
If Lcond then
DRAWARROWUP(barindex,low-offset) coloured(0,255,0,255)
Elsif Scond then
DRAWARROWDOWN(barindex,high+offset) coloured(255,0,0,255)
Endif
RETURN
C’è un errore logico sopra. La versione corretta è questa:
Once n = 10
Once p = 5
Once CrossBar = 0
Once HH = 0
Once LL = 0
Once CrossUP = 0
Once CrossDN = 0
Once Crossing = 0
ONCE Offset = 100 * pipsize
If Crossbar > 0 and (BarIndex - Crossbar) > p Then
CrossBar = 0
HH = 0
LL = 0
CrossUP = 0
CrossDN = 0
Crossing = 0
Lcond = 0
Scond = 0
Endif
//a = MACD[12,26,9](close) //Hysto
b = MACDLine[12,26,9](close) //MACD
c = ExponentialAverage[9](b) //Signal
CrossUP = b Crosses Over c
If CrossUP Then
Crossing = 1
CrossDN = 0
Endif
CrossDN = b Crosses Under c
If CrossDN Then
Crossing = -1
CrossUP = 0
Endif
If (Crossing <> Crossing[1]) AND (Crossing <> 0) Then
Crossbar = BarIndex
Endif
IF Crossbar > 0 THEN
HH = highest[n](high[1])
LL = lowest[n](low[1])
IF (Not CrossUP) AND (Not CrossDN) THEN
CrossUP = CrossUP[1]
CrossDN = CrossDN[1]
ENDIF
ENDIF
Lcond = (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 then
DRAWARROWUP(barindex,low-offset) coloured(0,255,0,255)
Elsif Scond then
DRAWARROWDOWN(barindex,high+offset) coloured(255,0,0,255)
Endif
RETURN
Gentilissimo.
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
Cambia 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:
Offset = average[20,0](range) * 1.5