Buongiorno,
sto tentando di implementare un filtro ricorsivo in una Media Mobile detta appunto Ricorsiva (RMA), a seguire il codice che ho creato (per un RMA a 10 periodi):
//Variabili
//N = Periodo RMA (9)
//P = Periodo SMA di RMA (6)
A=close[N]
B=(close[N]+close[N-1])/2
C=(close[N]+close[N-1]+close[N-2])/3
D=(close[N]+close[N-1]+close[N-2]+close[N-3])/4
E=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4])/5
F=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5])/6
G=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6])/7
H=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6]+close[N-7])/8
I=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6]+close[N-7]+close[N-8])/9
J=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6]+close[N-7]+close[N-8]+close)/10
X=(A+B+C+D+E+F+G+H+I+J)/10
Y=average[P](X)
RETURN X as "RMA", Y as "AVERAGE RMA"
Il codice sopra riportato può anche essere scritto nel seguente modo (da A a J) a titolo di esempio:
A=close[N]
B=(A+close[N-1])/2
C=(B+close[N-2])/3
D=(C+close[N-3])/4
// e continua ...
Ora il problema da sottoporvi è:
Se io volessi aggiungere una RMA a 15 periodi con il codice che ho creato sarei costretto ad aggiungere un nuovo indicatore, in quanto quello creato nell’esempio vale solo per la variabile N=9 periodi, aggiungendo nuove righe di codice per l’adattamento al nuovo periodo.
Esiste la possibiltà di creare qualcosa di automatico, definendo la sola variabile N, a prescindere dal periodo che uno sceglie ?