#1 Le 21/10/2016, à 12:03
- rooky06
Lazarus : moyenne mobile exponentielle
Bonjour
Je suis debutant et essaye de calculer une moyenne mobile exponentielle
Je parviens à le faire dans le cas de deux valeurs
function EMA(periode: integer; tab: array of double): double;
begin
Result := ((tab[high(tab)] - tab[high(tab) - 1]) * (2 / (periode + 1))) +
tab[high(tab) - 1];
end;
Mais je ne sais pas comment faire une boucle avec toutes les valeurs de mon tableau.
J'ai trouvé la définition ici https://fr.wikipedia.org/wiki/Moyenne_g … onentielle mais je debute et ai du mal à developper la boucle
J ai besoin de votre aide
Merci à tous
Hors ligne
#2 Le 21/10/2016, à 12:11
- Watael
Re : Lazarus : moyenne mobile exponentielle
salut,
sur le wiki freePascal.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 21/10/2016, à 20:42
- rooky06
Re : Lazarus : moyenne mobile exponentielle
Merci
J ai donc fait ça, cela est fonctionnel mais je n ai pas moyen de savoir si le resultat est correct car je n ai pas trouvé d exemple concret
var
last, EMA: double;
I: integer;
begin
last := tab[0];
for I := 1 to high(tab) do
begin
EMA := ((tab[I] - last) * (2 / (periode + 1))) + last;
last := EMA;
end;
Result := EMA;
Dernière modification par rooky06 (Le 21/10/2016, à 20:43)
Hors ligne