Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

la meilleure moyenne mobile

4 réponses
Avatar
fetnat
Bonjour,

Je cherche à utiliser le bout de code ci-dessous pour faire une moyenne
mobile qui filtre enormément et qui n'est quasiment pas en retard.

Je ne connais pas le langage de ce code mais je cherche à l'adapter en VBA.

Je patauge depuis un moment et j'en appelle à vos lumières pour avoir un
exemple qui tient la route.

'function JMA( array, per )
'{
'TN1=MA(array,per);
's1=0;
'for( i = 0; i < per; i=i+1 )
'{
's1=s1+((per-(2*i)-1)/2)*Ref(array,-i);
'}
'return TN1+(((per/2)+1)*S1)/((per+1)*per);
'}
'k=Param("Period",15,1,100,1);
'J=JMA(C,k);

Je n'arrive même pas à présenter un embrion de code, rien, nada, c'est
vous dire si mes ambitions sont au delà de mes compétences...

Merci pour l'aide

fetnat

4 réponses

Avatar
Jacquouille
Bonjour
EN A1:A100, les données.
Pour une moyenne mobile de 10 . ( les 10 dernières entrées)
en B1-----> =Moyenne(A$1:A1)
Que tu tires jusque en B10
En B10------> =Moyenne(A1:A10)
A tirer vers le bas.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"fetnat" a écrit dans le message de news:

Bonjour,

Je cherche à utiliser le bout de code ci-dessous pour faire une moyenne
mobile qui filtre enormément et qui n'est quasiment pas en retard.

Je ne connais pas le langage de ce code mais je cherche à l'adapter en
VBA.

Je patauge depuis un moment et j'en appelle à vos lumières pour avoir un
exemple qui tient la route.

'function JMA( array, per )
'{
'TN1=MA(array,per);
's1=0;
'for( i = 0; i < per; i=i+1 )
'{
's1=s1+((per-(2*i)-1)/2)*Ref(array,-i);
'}
'return TN1+(((per/2)+1)*S1)/((per+1)*per);
'}
'k=Param("Period",15,1,100,1);
'J=JMA(C,k);

Je n'arrive même pas à présenter un embrion de code, rien, nada, c'est
vous dire si mes ambitions sont au delà de mes compétences...

Merci pour l'aide

fetnat


Avatar
fetnat
Bonjour Jacquouille,

Merci pour la suggestion.
Mais une moyenne mobile ordinaire a de gros défauts.

L'algorythme de ce code inconnu devrait gommer les faiblesses de retard
d'une moyenne ordinaire.

Je cherche à transposer le code inconnu en VBA.

Bonne soirée

fetnat



Bonjour
EN A1:A100, les données.
Pour une moyenne mobile de 10 . ( les 10 dernières entrées)
en B1-----> =Moyenne(A$1:A1)
Que tu tires jusque en B10
En B10------> =Moyenne(A1:A10)
A tirer vers le bas.



Avatar
Jacquouille
RE
Je comprends ta déception devant la simplicité de ma réponse.
Mais, en raisonnement pur et dur, une moyenne aura toujours du retard,
puisque elle tient compte du présent et du passé.....et plus la durée de
prise en compte sera longue, plus la moyenne aura du retard.
Bonne chance.

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"fetnat" a écrit dans le message de news:

Bonjour Jacquouille,

Merci pour la suggestion.
Mais une moyenne mobile ordinaire a de gros défauts.

L'algorythme de ce code inconnu devrait gommer les faiblesses de retard
d'une moyenne ordinaire.

Je cherche à transposer le code inconnu en VBA.

Bonne soirée

fetnat



Bonjour
EN A1:A100, les données.
Pour une moyenne mobile de 10 . ( les 10 dernières entrées)
en B1-----> =Moyenne(A$1:A1)
Que tu tires jusque en B10
En B10------> =Moyenne(A1:A10)
A tirer vers le bas.





Avatar
fetnat
Bonsoir,

Pas de déception majeure, le parcours est toujours très long, j'apprends
la patience et l'entêtement :) Certains diront que je ferai mieux
d'apprendre le VBA !...

J'entends bien, mais si cela fait ce que je crois, c'est vraiment
spectaculaire et le flitrage réduit le retard à un pouième.
Beaucoup d'intervenants devraient être interessés par le résultat.

Je n'ai jamais touché aux tableaux ni aux fonctions, alors je suis un
peu court.

Les courbes de comparaisons (moyenne, géometrique, harmonique, réduite)
sont déjà prêtes pour voir la différence.

fetnat

RE
Je comprends ta déception devant la simplicité de ma réponse.
Mais, en raisonnement pur et dur, une moyenne aura toujours du retard,
puisque elle tient compte du présent et du passé.....et plus la durée de
prise en compte sera longue, plus la moyenne aura du retard.
Bonne chance.