Tuesday 21 February 2017

Exponentielle Mobile Moyenne Python

Hmmm, il semble que ce quoteasy à implementquot fonction est en fait assez facile de se tromper et a favorisé une bonne discussion sur l'efficacité de la mémoire. Je suis heureux d'avoir des ballonnements, si cela veut dire savoir que quelque chose a bien été fait. Ndash Richard Sep 20 14 at 19:23 NumPys manque d'une fonction particulière domaine spécifique est peut-être due à la discipline des équipes de base et la fidélité à la directive NumPys prime: fournir un type de tableau N-dimensionnelle. Ainsi que des fonctions pour créer et indexer ces tableaux. Comme beaucoup d'objectifs fondamentaux, celui-ci n'est pas petit, et NumPy le fait brillamment. Le SciPy (beaucoup plus grand) contient une collection beaucoup plus grande de bibliothèques spécifiques au domaine (appelées sous-paquets par SciPy devs) - par exemple, l'optimisation numérique (optimiser), le traitement du signal (signal) et le calcul intégral (intégrer). Ma conjecture est que la fonction que vous recherchez est dans au moins un des sous-paquets SciPy (scipy. signal peut-être) cependant, je regarderais d'abord dans la collection de SciPy scikits. Identifier les scikit (s) pertinent (s) et chercher la fonction d'intérêt là-bas. Scikits sont développés indépendamment paquets basés sur NumPySciPy et dirigé vers une discipline technique particulière (par exemple, scikits-image, scikits-learn, etc) Plusieurs de ces ont été (en particulier, le génial OpenOpt pour l'optimisation numérique) Avant de choisir de résider sous la rubrique relativement nouvelle scikits. La page d'accueil Scikits aimé au-dessus des listes d'environ 30 scikits tels. Bien qu'au moins plusieurs d'entre eux ne soient plus en développement actif. En conséquence, Pandas est devenue, AFAIK, la bibliothèque de séries chronologiques de NumPy de facto. Pandas a plusieurs fonctions qui peuvent être utilisées pour calculer une moyenne mobile la plus simple de ces est probablement rollingmean. Que vous utilisez comme suit: Maintenant, il suffit d'appeler la fonction rollingmean passant dans l'objet Series et une taille de fenêtre. Qui dans mon exemple ci-dessous est de 10 jours. Vérifier qu'il a fonctionné - par ex. Les valeurs comparées de 10 à 15 dans la série originale par rapport à la nouvelle série lissée avec moyenne de roulis Le mécanisme de fonction, ainsi qu'une douzaine d'autres fonctions sont regroupés de manière informelle dans la documentation Pandas sous la rubrique des fonctions de fenêtre mobile un deuxième groupe de fonctions connexes Dans Pandas est désignée sous le nom de fonctions pondérées exponentiellement (par exemple, ewma, qui calcule une moyenne pondérée exponentiellement mobile). Le fait que ce second groupe ne soit pas inclus dans la première (fonctions de fenêtres mobiles) est peut-être parce que les transformations pondérées exponentiellement ne s'appuient pas sur une fenêtre de longueur fixeindicateurs techniques 0.0.15 Ce module fournit quelques indicateurs techniques pour analyser les stocks. Ce module fournit quelques indicateurs techniques pour analyser les stocks. Quand je peux je vais ajouter plus. Si quelqu'un souhaite contribuer avec un nouveau code ou des corrections, vous êtes libre. Moyenne mobile moyenne pondérée (WMA), Moyenne mobile exponentielle (EMA) Bandes de Bollinger (BB), Bande passante de Bollinger, B Il faut numpy. Ce module a été fait et testé sous Windows avec Python 2.7.3 et numpy 1.6.1.Im dans le processus de création d'un algorithme de trading forex et a voulu essayer mon coup de calcul EMA (Exponential Moving Averages). Mes résultats semblent être corrects (par rapport aux calculs que j'ai fait à la main), donc je crois que la méthode suivante fonctionne, mais je voulais juste obtenir un ensemble supplémentaire d'yeux pour s'assurer que je ne manque rien. Notez que cela renvoie juste l'EMA pour le dernier prix, il ne retourne pas un tableau d'EMAs car ce n'est pas ce dont j'ai besoin pour mon application. Recursion est un bon outil pour le bon travail, mais ici il est utilisé pour accomplir simple bouclage. Comme tel le code. Est plus difficile à lire et à raisonner. Est plus lent parce qu'une grande partie du code dans ema ne doit être exécuté qu'une seule fois. Échouera avec une valeur suffisamment grande de la fenêtre en raison de la pile d'appels Pythons débordant. Veuillez documenter au moins les paramètres de chaque fonction, par ex. Cette fenêtre est la longueur de la fenêtre, et cette position compte en arrière à partir de la fin des données. (En fait, les choses seraient plus claires si la position était un index vers l'avant normal dans les données) Augmenter une exception lorsque vous trouvez un paramètre a une valeur non valide. Si vous renvoyez Aucun, vous ne provoquerez qu'une exception plus confuse. En fait, si j'essaie Indicators (). Ema (closeprices, 600) Je reçois la récursivité infinie parce que sma renvoie None. Ce qui rend ema appel sma encore et encore. Le point précédent révèle également que si len (données) lt fenêtre 2 n'est pas le bon contrôle de validité. Le 1 dans data-window2 1: - window 1 ne me semble pas correct. Je suppose que vous voulez data-window2: - window L'instruction return previousema est dans un endroit étrange parce qu'à ce point vous avez calculé une nouvelle currentema. C'est le cas de base de la récursion, et il est d'usage de manipuler le cas de base d'abord. Réponse assez superficielle: Vous n'avez pas besoin d'écrire une classe pour ce que vous faites (et je vous suggère de jeter un oeil à cette vidéo). Votre classe n'incorpore aucune donnée et vous l'utilisez juste pour avoir vos fonctions dans une même entité. Je suppose que les choses seraient plus faciles à comprendre si vous deviez définir classmethod pour rendre évident que vous ne comptez vraiment sur n'importe quelle instance que ce soit. Cependant, une option encore meilleure serait de définir simplement des fonctions dans un module indicateur. Réponse Nov 24 14 at 18:04 Merci pour les suggestions que j'ai effectivement les ont comme méthodes de classe et débattu aller et retour entre même en utilisant une classe ou tout simplement la définition des fonctions dans un module indicateur (que je vais maintenant faire). Ndash ChrisC Nov 25 14 at 19:12 Il suffit de regarder la vidéo aussi, des trucs géniaux. Ndash ChrisC Nov 25 14 at 19:43 Votre réponse 2017 Stack Exchange, Inc


No comments:

Post a Comment