Double Exponential Moving Average Algorithmus


Double Exponential Moving Averages Explained Traders haben sich auf gleitende Durchschnitte zu helfen, festzustellen, hohe Wahrscheinlichkeit Handel Einstiegspunkte und profitablen Exits seit vielen Jahren. Ein bekanntes Problem mit sich bewegenden Durchschnitten ist jedoch die schwere Verzögerung, die in den meisten Arten von gleitenden Durchschnitten vorhanden ist. Der doppelte exponentielle gleitende Durchschnitt (DEMA) liefert eine Lösung durch Berechnen einer schnelleren Mittelungsmethode. Geschichte des doppelten Exponential Moving Average In der technischen Analyse. Bezieht sich der Begriff gleitender Durchschnitt auf einen Durchschnittspreis für ein bestimmtes Handelsinstrument über einen bestimmten Zeitraum. Zum Beispiel berechnet ein 10-Tage-Gleitender Durchschnitt den durchschnittlichen Preis eines bestimmten Instruments in den letzten 10 zehn Tagen einen 200-Tage gleitenden Durchschnitt berechnet den durchschnittlichen Preis der letzten 200 Tage. Jeden Tag schreitet die Rückblickperiode auf Basisberechnungen der letzten X-Anzahl von Tagen vor. Ein gleitender Durchschnitt erscheint als glatte, geschwungene Linie, die eine visuelle Darstellung des längerfristigen Trends eines Instruments liefert. Schnellere gleitende Durchschnitte, mit kürzeren Rückblickperioden, sind choppierere langsamere gleitende Durchschnitte, mit längeren Rückblickperioden, sind glatter. Da ein gleitender Durchschnitt ein rückwärts gerichteter Indikator ist, ist er rückläufig. Der in Abbildung 1 gezeigte doppelte exponentielle gleitende Durchschnitt (DEMA) wurde von Patrick Mulloy entwickelt, um die Verzögerungszeit zu reduzieren, die bei herkömmlichen Bewegungsdurchschnitten festgestellt wurde. Es wurde erstmals im Februar 1994, Technical Analysis of Stocks amp Commodities Magazin in Mulloys Artikel Smoothing Daten mit schneller Moving Averages eingeführt. Abbildung 1: Dieses 1-minütige Diagramm des e-mini Russell 2000-Futures-Kontrakts zeigt zwei unterschiedliche doppelte exponentielle gleitende Mittelwerte, wobei eine 55-Periode in blau erscheint, Eine 21-Periode in rosa. Berechnung eines DEMA Wie Mulloy in seinem ursprünglichen Artikel erklärt, ist die DEMA nicht nur eine doppelte EMA mit der doppelten Verzögerungszeit einer einzelnen EMA, sondern ist eine zusammengesetzte Implementierung von Einzel - und Doppel-EMAs, die eine andere EMA mit weniger Verzögerung erzeugen als das Original zwei. Mit anderen Worten, die DEMA ist nicht einfach zwei EMAs kombiniert oder ein gleitender Durchschnitt eines gleitenden Durchschnitts, sondern ist eine Berechnung sowohl einzelner als auch doppelter EMAs. Fast alle Trading-Analyse-Plattformen haben die DEMA als Indikator, der zu den Diagrammen hinzugefügt werden kann. Daher können Händler die DEMA nutzen, ohne die Mathematik hinter den Berechnungen zu kennen und ohne irgendeinen Code schreiben oder eingeben zu müssen. Vergleich der DEMA mit traditionellen Bewegungsdurchschnitten Die gleitenden Durchschnitte sind eine der populärsten Methoden der technischen Analyse. Viele Händler verwenden sie, um Trendumkehrungen zu erkennen. Vor allem in einem gleitenden Durchschnitt Crossover, wo zwei gleitende Durchschnitte von verschiedenen Längen auf ein Diagramm gelegt werden. Punkte, wo die gleitenden Durchschnitte kreuzen, können Kauf - oder Verkaufsgelegenheiten bedeuten. Die DEMA kann Händler helfen, Rückschläge früher zu erkennen, weil es schneller ist, auf Veränderungen in der Marktaktivität zu reagieren. Abbildung 2 zeigt ein Beispiel für den e-mini Russell 2000 Futures-Kontrakt. Diese Minute-Diagramm hat vier gleitende Mittelwerte: 21-Periode DEMA (rosa) 55-Periode DEMA (dunkelblau) 21-Periode MA (hellblau) 55-Periode MA (hellgrün) Abbildung 2: Diese 1-minütige Tabelle von Zeigt der e-mini Russell 2000 Futures-Kontrakt die schnellere Reaktionszeit der DEMA bei Einsatz in einem Crossover. Beachten Sie, dass der DEMA-Crossover in beiden Fällen deutlich früher erscheint als die MA-Crossover. Die erste DEMA Crossover erscheint bei 12:29 und die nächste Bar öffnet zu einem Preis von 663,20. Die MA Crossover, auf der anderen Seite, Formen um 12:34 und die nächsten Bars Eröffnungspreis bei 660,50. Im nächsten Satz von Frequenzweichen erscheint die DEMA-Überkreuzung bei 1:33, und die nächste Leiste öffnet bei 658. Die MA dagegen bildet bei 1:43, wobei sich die nächste Leiste bei 662,90 öffnet. In jedem Fall bietet die DEMA-Überkreuzung einen Vorteil beim Einstieg in den Trend früher als der MA-Crossover. (Für mehr Einblick, lesen Sie die Moving Averages Tutorial.) Handel mit einem DEMA Die oben genannten gleitenden Durchschnitt Crossover Beispiele veranschaulichen die Wirksamkeit der Verwendung der schnelleren doppelt exponentiellen gleitenden Durchschnitt. Zusätzlich zur Verwendung der DEMA als Standalone-Indikator oder in einem Crossover-Setup kann die DEMA in einer Vielzahl von Indikatoren verwendet werden, wobei die Logik auf einem gleitenden Durchschnitt basiert. Technische Analysewerkzeuge wie Bollinger Bands. (MACD) und der dreifach exponentiellen gleitenden Durchschnitt (TRIX) basieren auf gleitenden Durchschnittstypen und können modifiziert werden, um eine DEMA anstelle anderer traditionellerer Arten von gleitenden Durchschnittswerten einzufügen. Das Ersetzen der DEMA kann Händler helfen, unterschiedliche Kauf - und Verkaufsgelegenheiten zu lokalisieren, die vor denen liegen, die von den MAs oder EMAs, die traditionell in diesen Indikatoren verwendet werden, zur Verfügung gestellt werden. Natürlich immer in einen Trend eher früher als später führt in der Regel zu höheren Gewinnen. Abbildung 2 verdeutlicht dieses Prinzip - wenn wir die Crossovers als Kauf - und Verkaufssignale nutzen wollten. Würden wir die Trades deutlich früher bei der Verwendung der DEMA Crossover im Gegensatz zu den MA Crossover geben. Bottom Line Trader und Investoren haben lange bewegte Durchschnitte in ihrer Marktanalyse verwendet. Gleitende Durchschnitte sind ein weit verbreitetes technisches Analyse-Tool, das ein Mittel zur schnellen Betrachtung und Interpretation des längerfristigen Trends eines bestimmten Handelsinstruments bietet. Da bewegte Durchschnitte durch ihre Natur sind nacheilende Indikatoren. Ist es hilfreich, den gleitenden Durchschnitt zu optimieren, um einen schnelleren, reaktionsfähigeren Indikator zu berechnen. Der doppelte exponentielle gleitende Durchschnitt bietet Händlern und Investoren einen Überblick über den längerfristigen Trend mit dem zusätzlichen Vorteil, dass er ein schneller gleitender Durchschnitt mit weniger Verzögerungszeit ist. (Für die damit zusammenhängende Lektüre, werfen Sie einen Blick auf Moving Average MACD Combo und Simple Vs. Exponential Moving Averages.) Im Codierung etwas in dem Augenblick, wo Im eine Reihe von Werten im Laufe der Zeit von einem Hardware-Kompass. Dieser Kompass ist sehr genau und Updates sehr oft, mit dem Ergebnis, dass wenn es leicht wackelt, ich am Ende mit dem ungeraden Wert, der wild unvereinbar mit seinen Nachbarn ist. Ich möchte diese Werte glätten. Nachdem ich einiges gelesen hatte, scheint es, dass was ich will, ein Hochpaßfilter, ein Tiefpaßfilter oder ein gleitender Durchschnitt ist. Gleitender Durchschnitt kann ich mit erhalten, halten Sie einfach eine Geschichte der letzten 5 Werte oder was auch immer, und verwenden Sie den Durchschnitt dieser Werte stromabwärts in meinem Code, wo ich war einmal nur mit dem jüngsten Wert. Das sollte, glaube ich, die Wackeln schön abschneiden, aber es schlägt mir, dass seine wahrscheinlich ziemlich ineffizient, und dies ist wahrscheinlich eines dieser bekannten Probleme zu Proper Programmers, denen theres eine wirklich ordentliche Clever Math-Lösung. Ich bin jedoch einer jener schrecklichen selbstprogrammierten Programmierer ohne einen Fetzen der formalen Ausbildung in etwas sogar vage mit CompSci oder Mathe verwandt. Lesen um ein Bit deutet darauf hin, dass dies ein Hoch-oder Tiefpassfilter sein kann, aber ich kann nicht finden, was in Begriffen verständlich für einen Hack wie ich, was die Wirkung dieser Algorithmen wäre auf einer Reihe von Werten, geschweige denn wie die Mathematik Arbeitet. Die Antwort hier. Zum Beispiel, technisch beantwortet meine Frage, aber nur verständlich für diejenigen, die wahrscheinlich schon wissen, wie das Problem zu lösen. Es wäre ein sehr schöner und kluger Mensch, der die Art des Problems erklären könnte, und das, wie die Lösungen funktionieren, in Begriffen, die einem Kunstabsolventen verständlich sind. Wenn Ihr gleitender Durchschnitt muss lang sein, um die gewünschte Glättung zu erreichen, und Sie brauchen nicht wirklich eine bestimmte Form des Kernels, dann sind Sie besser dran, wenn Sie einen exponentiell verfallenden gleitenden Durchschnitt verwenden: wo Sie Wählen Sie winzig, um eine entsprechende Konstante zu sein (zB wenn Sie winzige 1- 1N wählen, wird es die gleiche Menge an Mittelung wie ein Fenster der Größe N, aber verteilt unterschiedlich über ältere Punkte). Wie auch immer, da der nächste Wert des gleitenden Durchschnitts hängt nur von der vorherigen und Ihre Daten, müssen Sie nicht eine Warteschlange oder etwas zu halten. Und Sie können denken, dies zu tun, so etwas wie: Nun, ich habe einen neuen Punkt, aber ich dont wirklich vertrauen es, so Im werde 80 meiner alten Schätzung der Messung zu halten, und nur vertrauen diesem neuen Datenpunkt 20. Das ist So ziemlich das gleiche wie zu sagen, Nun, ich vertraue nur diesem neuen Punkt 20, und ich benutze 4 andere Punkte, die ich vertrauen die gleiche Menge, außer dass anstatt explizit nehmen die 4 anderen Punkten, youre Annahme, dass die Mittelung haben Sie das letzte Mal War vernünftig, so können Sie Ihre vorherige Arbeit. Beantwortet Sep 21 10 at 14:27 Hey, ich weiß, das ist 5 Jahre zu spät, aber danke für eine großartige Antwort. Ich arbeite an einem Spiel, bei dem der Klang sich nach deiner Geschwindigkeit ändert, aber wegen des laufenden Spiels auf einem Langsamcomputer würde die Geschwindigkeit stark schwanken, was für die Lenkung gut war, aber super ärgerlich in Bezug auf den Klang. Dies war eine wirklich einfache und billige Lösung für etwas, das ich für ein wirklich komplexes Problem halten würde. Ndash Wenn Sie versuchen, den gelegentlichen ungeraden Wert zu entfernen, ist ein Tiefpassfilter die beste der drei Optionen, die Sie identifiziert haben. Tiefpaßfilter erlauben langsame Änderungen, wie die, die durch das Drehen eines Kompasses von Hand verursacht werden, während Abweisen von Hochgeschwindigkeitsänderungen, wie z. B. durch Stöße auf der Straße, verursacht werden. Ein gleitender Durchschnitt wird wahrscheinlich nicht ausreichen, da die Auswirkungen eines einzelnen Blips in Ihren Daten auf mehrere nachfolgende Werte wirken, abhängig von der Größe des gleitenden Durchschnittsfensters. Wenn die ungeraden Werte leicht erkannt werden, können Sie sogar mit einem Glitch-Entfer - nal-Algorithmus besser abschneiden, der sie vollständig ignoriert: Hier ist ein Schaubild, um es zu illustrieren: Der erste Graphen ist das Eingangssignal mit einem unangenehmen Glitch. Die zweite Grafik zeigt die Wirkung eines 10-stelligen Gleitmittels. Der endgültige Graph ist eine Kombination aus dem 10-Sample-Mittelwert und dem einfachen Glitch-Detektionsalgorithmus, der oben gezeigt ist. Wenn der Glitch detektiert wird, wird anstelle des tatsächlichen Wertes der 10-Sample-Mittelwert verwendet. Gleitender Durchschnitt, den ich unten erhalten kann. Aber es scheint mir, dass seine wahrscheinlich ziemlich ineffizient. Theres wirklich kein Grund ein gleitender Durchschnitt sollte ineffizient sein. Sie halten die Anzahl der Datenpunkte, die Sie in einem Puffer (wie eine zirkuläre Warteschlange) wollen. An jedem neuen Datenpunkt pflücken Sie den ältesten Wert und subtrahieren ihn von einer Summe, und drücken Sie den neuesten und fügen Sie ihn der Summe hinzu. Jeder neue Datenpunkt bringt also nur einen Popp, eine Addition und eine Subtraktion mit sich. Ihr gleitender Durchschnitt ist immer diese Verschiebungssumme geteilt durch die Anzahl der Werte in Ihrem Puffer. Es wird ein wenig trickiger, wenn youre Empfangen von Daten gleichzeitig von mehreren Threads, aber da Ihre Daten von einem Hardware-Gerät kommt, das scheint sehr zweifelhaft für mich. Oh und auch: schreckliche Selbst-gelehrte Programmierer vereinen) Der gleitende Durchschnitt schien mir ineffizient, weil Sie einen Puffer von Werten speichern müssen - besser, nur einige Clever Maths mit Ihrem Eingabewert und aktuellen Arbeitswert zu tun Ich denke, dass ist wie exponentiell gleitenden Durchschnitt Arbeitet. Eine Optimierung, die ich für diese Art von gleitendem Durchschnitt gesehen habe, beinhaltet die Verwendung eines Fixlängen-Warteschlangen-Amps, einen Zeiger auf, wo Sie sich in dieser Warteschlange befinden, und einfach den Zeiger um (mit oder einem If) wickeln. Voila Kein teurer Pushpop. Power für die Amateure, Bruder ndash Henry Cooke Henry: Für einen geraden-gleitenden Durchschnitt brauchst du den Puffer einfach so, dass du weißt, welcher Wert geknallt wird, wenn der nächste Wert gedrückt wird. Das heißt, die quotfixed-Länge Warteschlange amp eine pointerquot Sie beschreiben ist genau das, was ich durch quotcircular queue. quot Bedeutet, warum ich sage, es ist nicht ineffizient. Was meinst du, ich meinte, Und wenn Ihre Antwort ist quotan Array, das seine Werte zurück verschiebt sich auf jedem indexierten removalquot (wie std :: vector in C). Also, I39m so weh I don39t sogar wollen, um mit Ihnen zu sprechen) ndash Dan Tao 22 September at 1:58 Henry: Ich don39t wissen über AS3, aber ein Java-Programmierer bekam Sammlungen wie CircularQueue zu seiner Verfügung (I39m nicht a Java-Entwickler, so I39m sicher, es gibt bessere Beispiele da draußen that39s genau das, was ich aus einer schnellen Google-Suche gefunden), die genau die Funktionalität implementiert, die wir reden. I39m ziemlich zuversichtlich, die Mehrheit der mittleren und niedrigen Sprachen mit Standard-Bibliotheken haben etwas ähnliches (z. B. in. NET there39s QueueltTgt). Jedenfalls war ich selbst Philosophie. alles ist vergeben. Ndash Dan Tao Ein exponentiell abnehmender gleitender Durchschnitt kann von Hand mit nur dem Trend berechnet werden, wenn Sie die richtigen Werte verwenden. Sehen Sie fourmilab. chhackdiete4 für eine Idee, wie dies schnell mit einem Stift und Papier, wenn Sie für exponentiell geglättet gleitenden Durchschnitt mit 10 Glättung suchen. Aber da Sie einen Computer haben, möchten Sie wahrscheinlich binäre Verschiebung im Gegensatz zur Dezimalverschiebung tun) Auf diese Weise brauchen Sie nur eine Variable für Ihren aktuellen Wert und einen für den Durchschnitt. Daraus kann dann der nächste Mittelwert berechnet werden. Beantwortet eine Technik namens Bereichstor, die gut funktioniert mit Low-Vorkommen falschen Proben. Unter der Annahme einer der oben erwähnten Filtertechniken (gleitender Durchschnitt, exponentiell), sobald Sie über ausreichende Historie verfügen (eine Zeitkonstante), können Sie die neue, eingehende Datenprobe für die Angemessenheit testen, bevor sie zur Berechnung hinzugefügt wird. Ist ein gewisses Wissen über die maximale vernünftige Änderungsrate des Signals erforderlich. Wird die Rohprobe mit dem letzten geglätteten Wert verglichen, und wenn der absolute Wert dieser Differenz größer als der zulässige Bereich ist, wird diese Probe herausgeworfen (oder durch eine Heuristik ersetzt, zB eine Vorhersage basierend auf der Steigungsdifferenz oder dem Trend ETS (Exponentielles Glättungszustandsraummodell) Wir diskutieren, wie diese Methoden funktionieren und wie sie verwendet werden können. (EWMA) Entsprechend ARIMA (0,1,1) - Modell mit konstantem Term Für die geglätteten Daten zur Darstellung verwenden Prognosen einfach gleitender Durchschnitt: Vergangene Beobachtungen werden gleich exponentiell gewichtet Glättung: Zuordnung von exponentiell abnehmenden Gewichten über Zeit Formel xt - Rohdatenfolge st - Ausgabe des exponentiellen Glättungsalgorithmus (Schätzung des nächsten Wertes von x) - Glättungsfaktor. 0160lt160160lt1601.Choosing Recht keine formale Weise der Wahl der statistischen Technik kann verwendet werden, um den Wert von (zB OLS) zu optimieren, desto größer wird die enge es naiv Prognose bekommt (die gleichen Ports wie Original-Serie mit einer Periode lag) Double Exponential Smoothing bearbeiten Einfach Exponentielle Glättung nicht gut, wenn es einen Trend gibt (es wird immer Bias) doppelte exponentielle Glättung ist eine Gruppe von Methoden, die sich mit dem Problem Holt-Winters doppelte exponentielle Glättung bearbeiten Und für t gt 1, wo ist der Daten-Glättungsfaktor. 0160lt160160lt1601, und ist der Trend Glättungsfaktor. 0160l160160lt1601. Ausgabe F tm - eine Schätzung des Wertes von x zum Zeitpunkt tm, mgt0 basierend auf den Rohdaten bis zum Zeitpunkt t Triple exponentielle Glättungsbearbeitung berücksichtigt saisonale Änderungen sowie Trends, die zuerst von Holts Schüler Peter Winters, 1960 Input, vorgeschlagen wurden Xt - Rohdatenfolge der Beobachtungen t 1601600 L Länge eines Zyklus der jahreszeitlichen Veränderung Die Methode berechnet: eine Trendlinie für die saisonalen Datenindizes, die die Werte in der Trendlinie gewichten, basierend darauf, wo dieser Zeitpunkt im Zyklus der Länge L fällt. S t den geglätteten Wert des konstanten Teils für die Zeit t darstellt. Bt die Reihenfolge der besten Schätzungen des linearen Trends darstellt, die den saisonalen Änderungen ct überlagert sind, ist die Folge saisonaler Korrekturfaktoren ct der erwartete Anteil des prognostizierten Trends zu jedem Zeitpunkt t mod L im Zyklus, den die Beobachtungen annehmen Initialisieren die saisonalen Indizes c tL muss es mindestens einen kompletten Zyklus in den Daten geben Der Ausgang des Algorithmus wird wieder als F tm geschrieben. Eine Schätzung des Wertes von x zum Zeitpunkt tm, mgt0 auf der Basis der Rohdaten bis zum Zeitpunkt t. Die dreifache Exponentialglättung wird durch die Formeln angegeben, wo der Datenglättungsfaktor ist. 0160lt160160lt1601, ist der Trend Glättung Faktor. 0160lt160160lt1601, und ist die saisonale Änderung Glättungsfaktor. 0160l160160lt1601. Die allgemeine Formel für die anfängliche Trendschätzung b 0 ist: Einstellen der Anfangsschätzungen für die Saisonindizes c i für i 1,2. L ist ein bisschen mehr beteiligt. Wenn N die Anzahl der vollständigen Zyklen in Ihren Daten ist, dann: Beachten Sie, dass A j der Mittelwert von x im j-ten Zyklus Ihrer Daten ist. ETS edit Overriding parameters bearbeiten

Comments