Thursday, January 12, 2017

Décomposition Exponentielle Moyenne Mobile

J'ai essentiellement un tableau de valeurs comme ceci: Le tableau ci-dessus est simplifié, Im collectionner 1 valeur par milliseconde dans mon code réel et j'ai besoin de traiter la sortie sur un algorithme que j'ai écrit pour trouver le pic le plus proche avant un point dans le temps. Ma logique échoue parce que dans mon exemple ci-dessus, 0.36 est le vrai pic, mais mon algorithme regarderait en arrière et verrait le tout dernier nombre 0.25 comme le pic, car il y a une diminution à 0.24 avant lui. L'objectif est de prendre ces valeurs et de leur appliquer un algorithme qui les lisse un peu pour que je possède des valeurs plus linéaires. (C.-à-d.: Id comme mes résultats à curvy, pas jaggedy) On m'a dit d'appliquer un filtre exponentiel de moyenne mobile à mes valeurs. Comment puis-je le faire C'est vraiment difficile pour moi de lire les équations mathématiques, je traite beaucoup mieux avec le code. Comment puis-je traiter les valeurs dans mon tableau, en appliquant un calcul exponentiel de la moyenne mobile pour les égaliser? Demandé 8 février à 20:27 Pour calculer une moyenne mobile exponentielle. Vous devez garder un certain état autour et vous avez besoin d'un paramètre de réglage. Cela nécessite une petite classe (en supposant que vous utilisiez Java 5 ou plus tard): Instantiate avec le paramètre de décroissance que vous voulez (peut prendre l'accord doit être entre 0 et 1), puis utilisez average () pour filtrer. Lors de la lecture d'une page sur une récurrence mathématique, tout ce que vous avez vraiment besoin de savoir lorsque vous le transformer en code est que les mathématiciens aiment écrire des index dans des tableaux et des séquences avec des indices. (Theyve quelques autres notations ainsi, ce qui ne l'aide pas.) Cependant, l'EMA est assez simple car vous devez seulement se souvenir d'une vieille valeur aucune arrays compliqués d'état requis. Répondre févr. 8 12 at 20h42 TKKocheran: Pretty much. Notez que les premiers termes de la séquence moyenne sauteront un peu en raison des effets de frontière, mais vous obtenez ceux avec d'autres moyennes mobiles aussi. Cependant, un bon avantage est que vous pouvez envelopper la logique de la moyenne mobile dans le moyager et expérimenter sans déranger le reste de votre programme trop. Ndash Donal Fellows Feb 9 12 at 0:06 J'ai de la difficulté à comprendre vos questions, mais je vais essayer de répondre de toute façon. 1) Si votre algorithme a trouvé 0,25 au lieu de 0,36, alors il est faux. C'est faux parce qu'il suppose une augmentation ou une diminution monotone (qui monte ou monte toujours). Sauf si vous moyenne toutes vos données, vos points de données --- comme vous les présenter --- sont non linéaires. Si vous voulez vraiment trouver la valeur maximale entre deux points dans le temps, découpez votre tableau de tmin à tmax et trouvez le maximum de ce sous-tableau. 2) Maintenant, le concept de moyennes mobiles est très simple: imaginez que j'ai la liste suivante: 1.4, 1.5, 1.4, 1.5, 1.5. Je peux le lisser en prenant la moyenne de deux nombres: 1.45, 1.45, 1.45, 1.5. Notez que le premier nombre est la moyenne de 1,5 et 1,4 (deuxième et premier numéros) la deuxième (nouvelle liste) est la moyenne de 1,4 et 1,5 (troisième et deuxième liste ancienne) la troisième (nouvelle liste) la moyenne de 1,5 et 1,4 (Quatrième et troisième), et ainsi de suite. J'aurais pu faire la période trois ou quatre, ou n. Remarquez comment les données sont beaucoup plus lisses. Une bonne façon de voir les moyennes mobiles au travail est d'aller à Google Finance, sélectionnez un stock (essayez Tesla Motors assez volatile (TSLA)) et cliquez sur technicals au bas du graphique. Sélectionnez Moyenne mobile avec une période donnée, et Moyenne mobile exponentielle pour comparer leurs différences. Moyenne mobile exponentielle est juste une autre élaboration de cela, mais pondère les données plus anciennes moins que les nouvelles données, c'est une façon de biais le lissage vers l'arrière. Veuillez lire l'entrée de Wikipedia. Donc, c'est plus un commentaire qu'une réponse, mais la petite boîte de commentaire était juste à minuscule. Bonne chance. Si vous avez des problèmes avec les mathématiques, vous pourriez aller avec une moyenne mobile simple au lieu d'exponentielle. Donc, la sortie que vous obtenez serait les derniers termes x divisé par x. Pseudocode non testé: Notez que vous devrez manipuler les parties de début et de fin des données car clairement vous ne pouvez pas moyenne les 5 derniers termes lorsque vous êtes sur votre 2e point de données. En outre, il existe des moyens plus efficaces de calculer cette moyenne mobile (somme somme - la plus récente la plus récente), mais c'est pour obtenir le concept de ce qui se passe à travers. Réponse 2017 Stack Exchange, moyenne mobile pondérée exponentiellement sur les données, les observations plus récentes ayant un poids plus élevé que celles du passé plus lointain. Le poids relatif est déterminé en fixant la demi-vie du taux de décroissance et il diffère entre les versions à court terme et à long terme du modèle La version à court terme a une demi-vie plus courte Le modèle à long terme utilise Une demi-vie plus longue ce qu'ils veulent dire: ils ont des données quotidiennes et veulent calculer une moyenne sur les derniers n jours (ou d'autres périodes). Si les données étaient également pondérées, chaque point de données aurait juste un poids 1n. Mais au lieu de cela, ils veulent donner plus de poids aux données plus récentes et moins de poids aux données plus anciennes. Ils choisissent probablement un paramètre de lissage constant l entre 0 et 1, et pour les données qui ont k jours, ils utilisent le poids l k. Plus le l. Plus le poids diminue à mesure que l'âge k augmente. La demi-vie est le temps qu'il faut pour que le poids devienne 12 du poids des données les plus récentes. Donc si le poids l k 12 alors la demi-vie k log (12) log (l). Ce numéro contient exactement les mêmes informations que l. Il peut devenir déroutant parce que ce ratio de journaux ne sera généralement pas un nombre entier de jours k. C'est pourquoi la plupart des gens préfèrent spécifier l. 576 Vues middot Voir Upvotes middot Pas pour reproduction middot Réponse demandée par Joshua Shindell Qu'est-ce qu'une moyenne mobile exponentielle Dans le commerce, pourquoi utiliser la moyenne mobile exponentielle sur la moyenne mobile simple Comment prévoir plus d'une période dans le futur avec excel En utilisant des données variables uniques Projet 6 mois à venir avec lissage exponentiel. Comment puis-je sélectionner ma perte d'arrêt, La plupart des fois, ma perte d'arrêt est déclenché en raison d'une pointe soudaine et revenir en arrière, j'utilise 5,30,200 m moyenne mobile Quelle est l'espérance de vie moyenne d'un lutteur de sumo Pourquoi est le 200 jours Moyenne mobile exponentielle considérée comme l'indicateur le plus fiable par les commerçants professionnels Comment pouvons-nous appliquer la distribution exponentielle dans la vie réelle Comment peut-on calculer le taux de rendement d'un investissement avec des contributions de suivi et sans utiliser un solveur Comment puis-je déterminer la carie Comment puis-je construire une moyenne de 12 mois de temps de déplacement avec différents poids pour différents mois Après 1000 échantillons, le poids moyen de la ville A La population est de 60 et le poids moyen de la population de la ville B est 62. Pouvons-nous conclure que la population de la ville B039s pèse plus La réponse changera si la taille de l'échantillon est seulement un J'ai un algorithme de négociation construit avec AmiBroker qui donne des rendements cohérents sur une moyenne 10 Mensuelle lorsqu'elle est testée à nouveau. Ce qui doit être considéré avant que je puisse l'employer pour commercer dans le marché réel Quand devrait-on employer la médiane, par opposition à la moyenne Qu'est-ce qu'un taux de rendement raisonnable (conservateur) à s'attendre sur 1MM Pourquoi les gens emploient le quotweight d'evidencequot Quand vous employez La paramétrisation quotshaperate (ab) quot pour la distribution gamma, l'histoire est quothow long dois-je attendre pour les succès quotaquot, où le temps d'attente pour chaque succès est exponentiel (b).quot Comment l'histoire change avec la paramétrisation quotshapescalequot Quel est le taux de rendement que la plupart des fonds de couverture donnent aux investisseurs initiaux Comment puis-je profiter de la décroissance du temps dans le négoce d'options Quelles stratégies peuvent être utiliséesL'exploration La moyenne mobile exponentiellement pondérée La volatilité est la mesure de risque la plus courante, Dans un article précédent, nous avons montré comment calculer la volatilité historique simple. Nous avons utilisé les données réelles sur les actions de Googles afin de calculer la volatilité quotidienne basée sur 30 jours de données sur les actions. Dans cet article, nous améliorerons la volatilité simple et discuterons de la moyenne mobile exponentiellement pondérée (EWMA). Historique vs. Volatilité implicite Tout d'abord, mettons cette métrique dans un peu de perspective. Il existe deux grandes approches: la volatilité historique et implicite (ou implicite). L'approche historique suppose que le passé est prologue, nous mesurons l'histoire dans l'espoir qu'elle est prédictive. La volatilité implicite, d'autre part, ignore l'histoire qu'elle résout pour la volatilité impliquée par les prix du marché. Elle espère que le marché le sait mieux et que le prix du marché contient, même implicitement, une estimation de la volatilité. Si l'on se concentre uniquement sur les trois approches historiques (à gauche ci-dessus), elles ont deux étapes en commun: Calculer la série de retours périodiques Appliquer un schéma de pondération D'abord, nous Calculer le rendement périodique. C'est généralement une série de rendements quotidiens où chaque retour est exprimé en termes continuellement composés. Pour chaque jour, nous prenons le log naturel du ratio des prix des actions (c'est-à-dire le prix aujourd'hui divisé par le prix d'hier, et ainsi de suite). Cela produit une série de rendements quotidiens, de u i à u i-m. Selon le nombre de jours (m jours) que nous mesurons. Cela nous amène à la deuxième étape: c'est là que les trois approches diffèrent. Dans l'article précédent (Utilisation de la volatilité pour mesurer le risque futur), nous avons montré que, sous quelques simplifications acceptables, la variance simple est la moyenne des rendements au carré: Notez que ceci résume chacun des rendements périodiques, puis divise ce total par Nombre de jours ou observations (m). Donc, c'est vraiment juste une moyenne des rendements périodiques au carré. Autrement dit, chaque retour au carré reçoit un poids égal. Ainsi, si l'alpha (a) est un facteur de pondération (spécifiquement, un 1m), alors une variance simple ressemble à ceci: L'EWMA améliore la variance simple La faiblesse de cette approche est que tous les retours gagnent le même poids. Le retour hier (très récent) n'a plus d'influence sur la variance que le rendement des derniers mois. Ce problème est résolu en utilisant la moyenne mobile pondérée exponentiellement (EWMA), dans laquelle les rendements plus récents ont un poids plus important sur la variance. La moyenne mobile exponentiellement pondérée (EWMA) introduit lambda. Qui est appelé le paramètre de lissage. Lambda doit être inférieur à un. Sous cette condition, au lieu de pondérations égales, chaque rendement au carré est pondéré par un multiplicateur comme suit: Par exemple, RiskMetrics TM, une société de gestion des risques financiers, a tendance à utiliser un lambda de 0,94 ou 94. Dans ce cas, le premier La plus récente) le rendement périodique au carré est pondéré par (1-0.94) (. 94) 0 6. Le prochain rendement au carré est simplement un multiple lambda du poids antérieur dans ce cas 6 multiplié par 94 5.64. Et le troisième jour antérieur, le poids est égal à (1-0,94) (0,94) 2 5,30. C'est le sens de l'exponentielle dans EWMA: chaque poids est un multiplicateur constant (c'est-à-dire lambda, qui doit être inférieur à un) du poids des jours précédents. Cela garantit une variance pondérée ou biaisée vers des données plus récentes. (Pour en savoir plus, consultez la feuille de calcul Excel pour la volatilité de Googles.) La différence entre la volatilité et l'EWMA pour Google est illustrée ci-dessous. La volatilité simple pèse efficacement chaque rendement périodique de 0.196 comme indiqué dans la colonne O (nous avions deux années de données quotidiennes sur les cours des actions, soit 509 déclarations quotidiennes et 1509 0.196). Mais notez que la colonne P attribue un poids de 6, puis 5.64, puis 5.3 et ainsi de suite. C'est la seule différence entre la variance simple et EWMA. Rappelez-vous: Après avoir additionné toute la série (dans la colonne Q), nous avons la variance, qui est le carré de l'écart-type. Si nous voulons la volatilité, nous devons nous rappeler de prendre la racine carrée de cette variance. Quelle est la différence entre la volatilité quotidienne entre la variance et l'EWMA dans l'affaire Googles? Sa significative: La variance simple nous a donné une volatilité quotidienne de 2,4 mais l'EWMA a donné une volatilité quotidienne de seulement 1,4 (voir la feuille de calcul pour plus de détails). Apparemment, la volatilité de Googles s'est installée plus récemment donc, une simple variance pourrait être artificiellement élevée. La variation d'aujourd'hui est une fonction de la variation des jours Pior Vous remarquerez que nous devions calculer une longue série de poids exponentiellement en déclin. Nous ne ferons pas les calculs ici, mais l'une des meilleures caractéristiques de l'EWMA est que la série entière se réduit commodément à une formule récursive: Recursive signifie que les références de variance d'aujourd'hui (c'est-à-dire une fonction de la variance des jours précédents). La variance d'aujourd'hui (sous EWMA) équivaut à la variance d'hier (pondérée par lambda) plus le rendement au carré d'hier (pesé par un lambda négatif). Remarquez comment nous ajoutons simplement deux termes ensemble: la variance pondérée d'hier et la pondération pondérée hier, au carré. Même si, lambda est notre paramètre de lissage. Un lambda plus élevé (par exemple, comme RiskMetrics 94) indique une diminution plus lente dans la série - en termes relatifs, nous allons avoir plus de points de données dans la série et ils vont tomber plus lentement. En revanche, si l'on réduit le lambda, on indique une décroissance plus élevée: les poids diminuent plus rapidement et, en résultat direct de la décroissance rapide, on utilise moins de points de données. (Dans la feuille de calcul, lambda est une entrée, donc vous pouvez expérimenter avec sa sensibilité). Résumé La volatilité est l'écart-type instantané d'un stock et la métrique de risque la plus courante. C'est aussi la racine carrée de la variance. Nous pouvons mesurer la variance historiquement ou implicitement (volatilité implicite). Lors de la mesure historique, la méthode la plus simple est la variance simple. Mais la faiblesse avec la variance simple est tous les retours obtenir le même poids. Nous sommes donc confrontés à un compromis classique: nous voulons toujours plus de données, mais plus nous avons de données, plus notre calcul est dilué par des données distantes (moins pertinentes). La moyenne mobile pondérée exponentiellement (EWMA) améliore la variance simple en attribuant des pondérations aux rendements périodiques. En faisant cela, nous pouvons utiliser une grande taille d'échantillon mais aussi donner plus de poids à des retours plus récents. (Pour voir un tutoriel sur ce sujet, visitez la Tortue Bionique.)


No comments:

Post a Comment