Le principal défaut de votre programme est que le calcul récursif est incorrect. Pour calculer la moyenne, vous devez obtenir la somme de la valeur courante et des valeurs restantes. Puis divisez cette somme par le nombre de valeurs. Le nombre de valeurs est num. La valeur courante est tout calculatenumber () renvoie. La somme des valeurs restantes est num-1 multipliée par la moyenne des valeurs restantes. La moyenne des valeurs restantes est calculée en faisant un appel récursif à average (). Ainsi, nous écrivons ce qui suit: Un programme complet utilisant cette fonction pourrait ressembler à ceci: Notez que ce n'est pas un très bon moyen de calculer la moyenne parce que vous perdez la précision chaque fois que vous divisez la somme courante par num. Lorsque cette moyenne est multipliée à nouveau lorsque l'appel récursif revient, les chiffres significatifs que vous avez perdus dans la division ne sont pas restaurés. Vous détruisez l'information en divisant puis en multipliant la somme. Pour une plus grande précision, vous voulez garder la trace de la somme que vous passez par les éléments, puis diviser à la fin. Un autre point à considérer est ce que signifie une moyenne mobile. Ce que nous avons mis en œuvre ci-dessus n'est pas une moyenne mobile, mais une moyenne fixe. C'est la moyenne d'une fenêtre fixe d'éléments. Si vous déplacez la fenêtre d'une position, vous devez tout recommencer et calculer la somme à nouveau. La bonne façon de mettre en œuvre une fenêtre en mouvement est de garder une trace de tous les éléments de la fenêtre. Lorsque vous décalez la fenêtre d'une position vers la droite, vous retirez l'élément le plus à gauche de la fenêtre et soustrayez sa valeur de la somme, puis ajoutez le nouvel élément à droite à la fenêtre et ajoutez sa valeur à la somme. C'est ce qui en fait une somme mouvante. Diviser la somme mobile par le nombre d'éléments vous donne la moyenne mobile. Le moyen naturel d'implémenter une fenêtre en mouvement est avec une file d'attente, car vous pouvez ajouter de nouveaux éléments à la tête et pop éléments anciens de la queue. Réponse Nov 22 14 at 17:44 QuotLe bon moyen d'implémenter une fenêtre en mouvement est de garder une trace de tous les éléments de la fenêtre. Lorsque vous décalez la fenêtre d'une position vers la droite, vous retirez l'élément le plus à gauche de la fenêtre et soustraire sa valeur de la sumquot comme ce serait intéressé moi beaucoup et beaucoup de mercis ndash cheroky Nov 22 14 at 18:17 Votre réponse 2017 Stack Exchange , IncChasing tendances: récurrentes moyennes de négociation des règles commerciales et les stocks internet Wai Mun Fong. Lawrence H. M. Yong Département des Finances et Comptabilité, Université nationale de Singapour, 1 Business Link, Kent Ridge, Singapour 117592, Singapour Accepté le 24 juillet 2003. Disponible en ligne le 24 mars 2004. La récente hausse et la chute des cours des actions d'Internet a conduit à des impressions populaires d'un Bulle spéculative dans le secteur Internet. Nous recherchons si les investisseurs pourraient avoir exploité l'élan dans les stocks Internet en utilisant simple moyenne mobile (MA) règles de négociation. Nous simulons le trading technique en temps réel en utilisant une stratégie de négociation récursive appliquée à plus de 800 règles de moyenne mobile. L'inférence statistique tient compte de l'hétéroscédasticité conditionnelle et des dépendances articulaires. Aucune preuve de profits commerciaux significatifs n'est trouvée. La plupart des stocks d'Internet se comportent comme randonnées aléatoires cela, combiné avec une volatilité élevée, peut être la raison de la performance lamentable des règles de la moyenne mobile. Stocks Internet Règles de moyenne mobile Stratégie récursive Bootstrap Classification JEL Tableau 6. Fig. 2. Fig. 3. La Fig. 4. Auteur correspondant. Tél. 65-6874-6693 télécopieur: 65-6779-2083. Copyright 2004 Elsevier B. V. Tous droits réservés. () Articles recommandés Contenu du livre connexe Copyright 2017 Elsevier B. V., sauf certains contenus fournis par des tiers. ScienceDirect est une marque déposée d'Elsevier B. V. Les cookies sont utilisés par ce site. Pour refuser ou en savoir plus, visitez notre page Cookies. Connectez-vous via votre institution Le guide des scientifiques et ingénieurs sur le traitement du signal numérique Par Steven W. Smith, Ph. D. Un avantage énorme du filtre de la moyenne mobile est qu'il peut être implémenté avec un algorithme qui est très rapide. Pour comprendre cet algorithme, imaginez passer un signal d'entrée, x, à travers un filtre de moyenne mobile à sept points pour former un signal de sortie, y. Maintenant, regardez comment sont calculés deux points de sortie adjacents, y 50 et y 51. Ce sont presque les mêmes points de calcul x 48 à x 53 doivent être ajoutés pour y 50 et encore pour y 51. Si y 50 a déjà été calculé , Le moyen le plus efficace de calculer y 51 est: Une fois que y 51 a été trouvé en utilisant y 50, alors y 52 peut être calculé à partir de l'échantillon y 51, et ainsi de suite. Après le premier point est calculé en y, tous les autres points peuvent être trouvés avec seulement une seule addition et soustraction par point. Cela peut être exprimé dans l'équation: Notez que cette équation utilise deux sources de données pour calculer chaque point de la sortie: points de l'entrée et points précédemment calculés de la sortie. C'est ce qu'on appelle une équation récursive, ce qui signifie que le résultat d'un calcul est utilisé dans les calculs futurs. (Le terme récursif a aussi d'autres significations, surtout en informatique). Le chapitre 19 traite plus en détail d'une variété de filtres récursifs. Soyez conscient que le filtre récursif à moyenne mobile est très différent des filtres récursifs typiques. En particulier, la plupart des filtres récursifs ont une réponse impulsionnelle infiniment longue (IIR), composée de sinusoïdes et exponentielles. La réponse impulsionnelle de la moyenne mobile est une impulsion rectangulaire (réponse impulsionnelle finie, ou FIR). Cet algorithme est plus rapide que les autres filtres numériques pour plusieurs raisons. Tout d'abord, il n'y a que deux calculs par point, indépendamment de la longueur du noyau du filtre. Deuxièmement, l'addition et la soustraction sont les seules opérations mathématiques nécessaires, alors que la plupart des filtres numériques nécessitent une multiplication longue. Troisièmement, le schéma d'indexation est très simple. Chaque indice de l'équation 15-3 se trouve en ajoutant ou en soustrayant des constantes entières qui peuvent être calculées avant le début du filtrage (c'est-à-dire p et q). Tout l'algorithme peut être réalisé avec une représentation entière. Selon le matériel utilisé, les entiers peuvent être plus d'un ordre de grandeur plus rapide que le point flottant. Étonnamment, la représentation entière fonctionne mieux que le point flottant avec cet algorithme, en plus d'être plus rapide. L'erreur arrondi de l'arithmétique à virgule flottante peut produire des résultats inattendus si vous ne faites pas attention. Par exemple, imaginez un 10 000 échantillons de signal filtrés par cette méthode. Le dernier échantillon dans le signal filtré contient l'erreur accumulée de 10 000 additions et 10 000 soustractions. Cela apparaît dans le signal de sortie comme un décalage de dérive. Les nombres entiers n'ont pas ce problème parce qu'il n'y a pas d'erreur arrondi dans l'arithmétique. Si vous devez utiliser un point flottant avec cet algorithme, le programme du Tableau 15-2 montre comment utiliser un accumulateur à double précision pour éliminer cette dérive.
No comments:
Post a Comment