Probabilmente hai fatto male il copia e incolla, verifica che sia colorata di blu e sia scritta bene.
Questa è la stessa, ma PONDERATA:
DEFPARAM CalculateOnLastBars = 100
Periodi = 10
Inizio = 090000
Fine = 175000
i = 0
Pond = 0
MMP = 0
FOR j = 0 TO 5000
IF opentime[j] >= Inizio AND opentime[j] <= Fine THEN
i = i + 1
MMP = MMP + (close[j] * i)
Pond = Pond + i
IF i = Periodi THEN
BREAK
ENDIF
ENDIF
NEXT
MMP = (MMP / Pond)
IF MMP = 0 THEN
MMP = close
ENDIF
Return MMP AS "mmPt" //Media Mobile PONDERATA a Tempo
Purtroppo non si può fare quella esponenziale perché il calcolo comporta vari cicli FOR…NEXT e ProBuilder segnala errore.
Ho cambiato opentime in time e funziona. Spero sia la stessa cosa.
OpenTime restituisce l’ora di apertura della candela, mentre Time quello alla chiusura.
Ad ogni modo è impossibile che sia un errore.
Posta il codice come l’hai scritto oppure una sua foto,
Tutto OK…..avevo sbagliato. Grazie infinite.
Sono riuscito a fare anche quella Esponenziale:
DEFPARAM CalculateOnLastBars = 100
Periodi = 20
Inizio = 090000
Fine = 175000
Alpha = 2 / (Periodi + 1)
i = 0
MME = close
FOR j = 0 TO 5000
IF opentime[j] >= Inizio AND opentime[j] <= Fine THEN
i = i + 1
MME = ((close[j] - MME) * Alpha) + MME
IF i = Periodi THEN
BREAK
ENDIF
ENDIF
NEXT
IF MME = 0 THEN
MME = close
ENDIF
Return MME AS "mmEt" //Media Mobile ESPONENZIALE a Tempo
Buongiorno discovery2005, Nicolas mi ha fatto notare un errore logico ed ho dovuto sostituire, su tutti e tre gli indicatori, la riga errata:
IF opentime >= Inizio AND opentime <= Fine THEN
con quella corretta:
IF opentime[j] >= Inizio AND opentime[j] <= Fine THEN
altrimenti verificherebbe SEMPRE l’orario corrente, invece di quello della barra corretta, dando risultati sballati.
Basta che fai il copia e incolla di quella riga.
Devi anche sostituire anche il valore 5000 con 3000, nel ciclo, per evitare errori, perché la suddetta modifica causa a ProBuilder problemi di memoria.
Scusa.
ok ho corretto….grazie per la vostra disponibilita’