Ciao. Premetto che non capisco niente di script, ne trovato uno https://www.prorealcode.com/prorealtime-indicators/daily-data-intraday-timeframe/ . dal quale ho “estratto” questa parte
once DayAverage=Dclose(1)
DayAverage=1
FOR i=1 to D DO
DayAverage=DCLOSE(i)+DayAverage
NEXT
DayAverage=DayAverage/D
return DayAverage as "Day Close Average"
e ho ottenuto la EMA20 daily visibile su grafico a 1 ora.
Il problema e’ che la EMA non si riesce avedere su TF inferiori. A me servirebbe su grafico a 3 min.
Qualcuno mi riesce aiutare o e’ interessato ad avere le medie giornaliere su grafico intraday?
In allegato c’e’ anche il file originale
1. Non duplicare i topic, ti avevo chiesto di postarlo nell’altro, perché aprirne uno nuovo?
2. Non aprirlo nel forum sbagliato, riguarda un indicatore, non la piattaforma, quindi sempre ProBuilder.
L’ho spostato io.
Quel link a cui fai riferimento fa la media aritmetica di prezzi giornalieri da utilizzare anche su TF più piccoli, ma non si tratta di medie esponenziali o altri indicatori, questi NON possono essere rapportati dal giornaliero a TF più piccoli, né viceversa.
Qualcuno usa moltiplicare i periodi per il numero di barre. Ad esempio, se ha una media 20 sul Daily e la vuole visualizzate sul TF a 1 ora, siccome in un giorno ci sono 24 ore, moltiplica i 20 periodi per 24, ottenendo 480, quindi pensa che una Ema480 oraria corrisponda ad una media 20 giornaliera. ERRATO, può in qualche modo avvicinarcisi, ma non è così, lo stesso vale per uno stocastico od un Rsi o qualunque altro indicatore che non siano le medie semplici e loro derivati (tipo le Bande di Bollinger).
Credo sia già stato codificato qualcosa, ma non ne sono sicuro.
Tra pochi mesi ci sarà il supporto MTF e quindi tutto questo sarà risolto.
Quindi, attendere oppure cercare di avvicinarcisi di più moltiplicando i periodi (o dividendoli per fare l’operazione inversa, da un TF più piccolo ad uno più grande).
Il tuo codice è errato, stai effettuando il calcolo a partire dal giorno precedente mentre una media mobile considera anche il periodo corrente nel suo calcolo. Prova questo che si abbina perfettamente a una SMA quotidiana:
d = 20
DayAverage=dclose(0)
FOR i=1 to D-1 DO
DayAverage=DCLOSE(i)+DayAverage
NEXT
DayAverage=DayAverage/D
return DayAverage as "Day Close Average"
Si noti che per poter calcolare il calcolo sul grafico devono essere visualizzate unità sufficienti.