Buonasera a tutti,
sto incontrando delle difficoltà a sviluppare un’indicatore che mi possa fornire i punti di massimo e di minimo delle onde di mercato.
Vi spiego la mia idea:
- Utilizzo il grafico 5 minuti in modalità Heikin-Ashi;
- Ogni volta che c’è un cambio colore della candela controllo il minimo (per le candele rosse) e il massimo (per le candele verdi) e lo confronto con il precedente per avere un riscontro sulla direzione del trend;
TIMEFRAME (5 MINUTES)
NrBarra = BarIndex
//Chiusura e apertura barra Heikin-Ashi
Once Open5 = Open
IF BarIndex > 4 THEN
Close5 = TotalPrice
Open5 = (Open5[1] + Close5[1]) / 2
ENDIF
//Chiusura e apertura della precedente candela Heikin-Ashi
IF BarIndex > 4 THEN
PrevClose5 = TotalPrice[1]
PrevOpen5 = (PrevOpen5[2] + PrevClose5[2]) / 2
ENDIF
//-------------------------------------------------------------------
//direzione del trend - bottom/top waves
EndUp = 0
EndDown = 0
//Inverssione
IF (Close5 > Open5) AND (PrevClose5 < PrevOpen5) THEN
StartUp = NrBarra
EndDown = NrBarra
ELSIF (Close5 < Open5) AND (PrevClose5 > PrevOpen5) THEN
EndUp = NrBarra
StartDown = NrBarra
ENDIF
//Nuovo TOP
IF EndUp > StartUp THEN
LOnda = EndUp-StartUp+1
NewTop = highest[LOnda]
DrawArrowDown(NrBarra,NewTop)
ENDIF
IF NewTop > MemNewTop THEN
MemNewTop = NewTop
ENDIF
//Nuovo bottom
IF EndDown > StartDown THEN
LOnda = EndDown-StartDown+1
NewBottom = lowest[LOnda]
DrawArrowUp(NrBarra,NewBottom)
ENDIF
IF NewBottom > MemNewBottom THEN
MemNewBottom = NewBottom
ENDIF
Return NewTop Coloured ("Green"), NewBottom Coloured ("Red")
I problemi che incontro sono 2:
- le funzioni highest/lowest mi ritornano il prezzo DI CHIUSURA massimo/minimo dell’intervallo in oggetto, io invece vorrei che mi ritornassero il massimo/minimo locale di tale intervallo;
- A volte il codice non rileva un’inversione di colore delle candele e quindi non rileva il nuovo massimo/minimo (in genere quando c’è poca variazione del livello dei prezzi);
- A volte vengono rilevati due massimo/minimo consecutivi, vengono quindi disegnate due frecce uguali nella stessa direzione;
Se qualcuno ha la pazienza di aiutarmi a migliorare questo codice gliene sarei davvero molto grato.
Grazie e buona serata.
Con qualunque funzione o indicatore, se non specifichi il tipo di dati, utilizza SEMPRE CLOSE.
Per i minimi e massimi devi scrivere (low) o (high) con HIGHEST o LOWEST (o anche con medie, rsi, ecc…):
highest[LOnda](high)
lowest[LOnda](low)
Fatte le modifiche, fai uno screenshot del grafico completo (dove si leggono lo strumento, le unità, il timeframe e gli orari) evidenziando con un cerchio o altro ciò che è errato e postalo per favore.
Buonasera e grazie per la risposta,
ti ho allegato un’immagine del grafico 5Min del Nasdaq di oggi (20/06/2023).
Nell’immagine ho cerchiato i momenti in cui il codice rileva un doppio cambio colore, anche se il cambio colore delle candele avviene una sola volta, e quando invece non viene rilevato il cambio colore.
A me sembra tutto corretto.
Prova a sistituire la riga 59 (l’ultima) con questa così vedrai i valori corretti:
Return PrevClose5 AS "PrevClose5",PrevOpen5 AS "PrevOpen5",Close5 AS "Close5",Open5 AS "Open5"