Media Mobile Ricorsiva
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Media Mobile Ricorsiva
- This topic has 4 replies, 2 voices, and was last updated 3 years ago by Emperor.it.
Tagged: MA, Media, Media Mobile, media mobile ricorsiva, media ricorsiva, moving average, recursive, recursive moving average, ricorsivo, rma
-
-
12/29/2020 at 12:10 PM #155542
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):
12345678910111213141516171819//Variabili//N = Periodo RMA (9)//P = Periodo SMA di RMA (6)A=close[N]B=(close[N]+close[N-1])/2C=(close[N]+close[N-1]+close[N-2])/3D=(close[N]+close[N-1]+close[N-2]+close[N-3])/4E=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4])/5F=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5])/6G=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6])/7H=(close[N]+close[N-1]+close[N-2]+close[N-3]+close[N-4]+close[N-5]+close[N-6]+close[N-7])/8I=(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])/9J=(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)/10X=(A+B+C+D+E+F+G+H+I+J)/10Y=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:
12345A=close[N]B=(A+close[N-1])/2C=(B+close[N-2])/3D=(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 ?
12/29/2020 at 1:12 PM #155552Si, si possono usare gli array.
Più tardi te la faccio.
12/29/2020 at 4:36 PM #15557312/30/2020 at 2:33 AM #155638Non servono gli array, basta una somma all’interno di un ciclo:
12345678910N = 10 //Periodo RMA (10)P = 6 //Periodo SMA di RMA (6)Somma = 0FOR i = N-1 DOWNTO 0j = N - iSomma = Somma + (summation[j](close[i]) / j)NEXTSomma = Somma / NY = average[P](Somma)RETURN Somma as "RMA", Y as "AVERAGE RMA"ovviamente puoi cambiare entrambi i periodi come preferisci e magari aggiungere le variabili in modo da poterne variare i periodi dalle proprietà dell’indicatore. Questa a 10 e 6 periodi è identica alla tua sopra.
1 user thanked author for this post.
12/30/2020 at 10:05 AM #155655Perfetto !!!
Grazie 1000.
-
AuthorPosts
Find exclusive trading pro-tools on