Moving Average Beispiel In C
Ich weiß, das ist erreichbar mit Schub wie pro: Aber ich möchte wirklich vermeiden, Boost. Ich habe gegoogelt und fand keine geeigneten oder lesbaren Beispiele. Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Stroms von Gleitkommazahlen mit den aktuellsten 1000 Zahlen als Datenmuster verfolgen. Was ist der einfachste Weg, um dies zu erreichen, experimentierte ich mit einem kreisförmigen Array, einem exponentiellen gleitenden Durchschnitt und einem einfacheren gleitenden Durchschnitt und fand, dass die Ergebnisse aus dem kreisförmigen Array meinen Bedürfnissen am besten entsprechen. Gefragt am 12. Juni 12 um 4:38 Wenn Ihre Bedürfnisse einfach sind, können Sie nur versuchen, einen exponentiellen gleitenden Durchschnitt. Setzen Sie einfach, Sie machen eine Akkumulator-Variable, und wie Ihr Code bei jedem Sample sieht, aktualisiert der Code den Akkumulator mit dem neuen Wert. Sie wählen eine konstante Alpha, die zwischen 0 und 1 ist, und berechnen Sie diese: Sie müssen nur einen Wert von Alpha zu finden, wo die Wirkung einer bestimmten Probe nur für etwa 1000 Proben dauert. Hmm, Im nicht wirklich sicher, dass dies für Sie geeignet ist, jetzt, dass Ive es hier. Das Problem ist, dass 1000 ist ein ziemlich langes Fenster für einen exponentiellen gleitenden Durchschnitt Im nicht sicher, es gibt ein Alpha, die den Durchschnitt über die letzten 1000 Zahlen, ohne Unterlauf in der Gleitkomma Berechnung zu verbreiten würde. Aber wenn du einen kleineren Durchschnitt wünschst, wie 30 Zahlen oder so, das ist eine sehr einfache und schnelle Möglichkeit, es zu tun. Antwortete Jun 12 12 um 4:44 1 auf deinem Post. Der exponentielle gleitende Durchschnitt kann das Alpha variabel sein. So kann es verwendet werden, um Zeitbasis-Mittelwerte (z. B. Bytes pro Sekunde) zu berechnen. Wenn die Zeit seit dem letzten Akkumulator-Update mehr als 1 Sekunde ist, lassen Sie Alpha 1,0 sein. Andernfalls kannst du alpha sein (usecs seit letztem update1000000). Ndash jxh Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Stroms von Gleitkommazahlen mit den aktuellsten 1000 Zahlen als Datenmuster verfolgen. Beachten Sie, dass die unten genannte Gesamtsumme als Elemente als addreplaced, Vermeidung kostspieliger O (N) Traversal, um die Summe zu berechnen - benötigt für die durchschnittliche - on demand. Insgesamt wird ein anderer Parameter von T verwendet, um z. B. Mit einer langen langen, wenn insgesamt 1000 lang s, ein int für char s, oder ein doppeltes bis total float s. Dies ist ein bisschen fehlerhaft, dass Numsamples an INTMAX vorbeikommen könnten - wenn man sich vorstellt, dass man eine langjährige langjährige langwierige Zeit haben könnte. Oder verwenden Sie ein zusätzliches bool Datenelement, um aufzuzeichnen, wenn der Container zum ersten Mal gefüllt wird, während er Numsamples um das Array herumtreibt (am besten dann umbenannt etwas Unschuldiges wie Pos). Antwortete am 12. Juni 12 um 5:19 man geht davon aus, dass der Quanten-Operator (T-Stichprobe) tatsächlich quasi Operator (T-Probe) ist. Ndash oPless Jun 8 14 um 11:52 oPless ahhh. Gut beobachtet. Eigentlich habe ich gedacht, dass es nicht leer ist () (T Probe), aber natürlich könntest du auch immer Notizen verwenden, die du mochst. Werde reden, danke Wenn es möglich ist, einen gleitenden Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Proben Ive gefunden, dass ich ein bisschen optimieren kann, indem Sie eine Fenstergröße, die eine Macht von zwei, um für Bit zu ermöglichen, zu implementieren - Shifting statt zu teilen, aber nicht brauchen einen Puffer wäre schön. Gibt es eine Möglichkeit, ein neues gleitendes durchschnittliches Ergebnis nur als eine Funktion des alten Ergebnisses auszudrücken und das neue Sample Definieren Sie ein Beispiel gleitender Durchschnitt, über ein Fenster von 4 Samples: Add new sample e: Ein gleitender Durchschnitt kann rekursiv implementiert werden , Aber für eine genaue Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingabe Probe in der Summe (dh die a in Ihrem Beispiel) erinnern. Für eine Länge N gleitenden Durchschnitt berechnen Sie: wobei yn das Ausgangssignal ist und xn das Eingangssignal ist. Gl. (1) kann rekursiv geschrieben werden, also musst du dich immer an die Probe xn-N erinnern, um zu berechnen (2). Wie von Conrad Turner hervorgehoben, können Sie stattdessen ein (unendlich langes) exponentielles Fenster verwenden, mit dem Sie die Ausgabe nur aus der Vergangenheit und dem aktuellen Eingang berechnen können. Dies ist jedoch kein Standard (ungewichtet) gleitender Durchschnitt, sondern exponentiell Gewichteter gleitender Durchschnitt, wo Proben in der Vergangenheit ein kleineres Gewicht bekommen, aber (zumindest in der Theorie) vergisst du niemals etwas (die Gewichte werden in der Vergangenheit immer kleiner und kleiner). Ich habe einen gleitenden Durchschnitt ohne Einzelposten-Speicher für ein GPS-Tracking-Programm, das ich geschrieben habe. Ich fange mit 1 Probe an und teile mit 1, um die aktuelle avg zu bekommen. Ich füge dann eine Probe hinzu und teile mit 2 auf die aktuelle avg. Das geht weiter, bis ich die Länge des Durchschnitts erreicht habe. Jedes Mal danach füge ich die neue Probe hinzu, bekomme den Durchschnitt und beseitige diesen Durchschnitt von der Summe. Ich bin kein Mathematiker, aber das schien ein guter Weg, es zu tun. Ich dachte, es würde den Magen eines echten Mathe-Kerls drehen, aber es stellt sich heraus, dass es eine der akzeptierten Möglichkeiten ist, es zu tun. Und es geht gut Denken Sie daran, dass je höher Ihre Länge desto langsamer ist es, was Sie folgen wollen. Das mag die meiste Zeit nicht ausmachen, aber wenn man den Satelliten folgt, wenn man langsam ist, könnte der Weg weit von der aktuellen Position entfernt sein und es wird schlecht aussehen. Du hättest eine Lücke zwischen dem Sat und den hinteren Punkten. Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um ausreichende Glättung zu bekommen und nicht zu weit von der tatsächlichen Sat-Position mit den geglätteten Pfad-Punkten zu bekommen. Antwortete 16. November 16 um 23:03 initialize total 0, count0 (jedes Mal, wenn du einen neuen Wert sehe, dann eine Eingabe (scanf), man add totalnewValue, ein Inkrement (count), ein divide average (totalcount) Dies wäre ein gleitender Durchschnitt über Alle Eingänge Um den Durchschnitt über nur die letzten 4 Eingänge zu berechnen, würde es 4 Eingangsvariablen erfordern, vielleicht jede Eingabe in eine ältere Eingabevariable kopieren und dann den neuen gleitenden Durchschnitt berechnen, als Summe der 4 Eingangsvariablen, geteilt durch 4 (rechte Verschiebung 2 wäre Gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung beantwortet Feb 3 15 um 4:06 Das wird tatsächlich berechnen den Gesamtdurchschnitt und NICHT der gleitende Durchschnitt. Wie Zähler wird größer die Auswirkungen einer neuen Eingabe Probe wird verschwindend klein ndash Hilmar Feb 3 15 at 13:53 Ihre Antwort 2017 Stack Exchange, IncMoving Durchschnitte - Einfache und exponentielle Moving Averages - Einfache und exponentielle Einleitung Durchgehende Durchschnitte glatt die Preisdaten zu einem Trend folgen Indikator. Sie nicht vorhersagen Preisrichtung, sondern definieren die aktuelle Richtung mit einer Verzögerung Umzugsdurchschnitte verzögern, weil sie auf vergangenen Preisen basieren. Trotz dieser Verzögerung, gleitende Durchschnitte helfen glatte Preis-Aktion und filtern die Lärm. Sie bilden auch die Bausteine für viele andere technische Indikatoren und Overlays wie Bollinger Bands. MACD und der McClellan Oszillator. Die beiden beliebtesten Arten von gleitenden Durchschnitten sind der Simple Moving Average (SMA) und der Exponential Moving Average (EMA). Diese gleitenden Durchschnitte können genutzt werden, um die Richtung des Trends zu identifizieren oder mögliche Unterstützungs - und Widerstandsniveaus zu definieren. Hier ist ein Diagramm mit einem SMA und einem EMA darauf: Einfache bewegliche Durchschnittsberechnung Ein einfacher gleitender Durchschnitt wird durch die Berechnung des Durchschnittspreises einer Sicherheit über eine bestimmte Anzahl von Perioden gebildet. Die meisten gleitenden Durchschnitte basieren auf Schlusskursen. Ein 5-tägiger einfacher gleitender Durchschnitt ist die Fünf-Tage-Summe der Schlusskurse geteilt durch fünf. Wie der Name schon sagt, ist ein gleitender Durchschnitt ein Durchschnitt, der sich bewegt. Alte Daten werden gelöscht, da neue Daten verfügbar sind. Dies bewirkt, dass sich der Durchschnitt entlang der Zeitskala bewegt. Unten ist ein Beispiel für einen 5-tägigen gleitenden Durchschnitt, der sich über drei Tage entwickelt. Der erste Tag des gleitenden Durchschnitts deckt einfach die letzten fünf Tage ab. Der zweite Tag des gleitenden Durchschnitts sinkt den ersten Datenpunkt (11) und fügt den neuen Datenpunkt (16) hinzu. Der dritte Tag des gleitenden Mittels setzt sich fort, indem er den ersten Datenpunkt (12) fällt und den neuen Datenpunkt (17) addiert. Im obigen Beispiel steigen die Preise allmählich von 11 auf 17 über insgesamt sieben Tage. Beachten Sie, dass der gleitende Durchschnitt auch von 13 auf 15 über einen Zeitraum von drei Tagen steigt. Beachten Sie auch, dass jeder gleitende Mittelwert knapp unter dem letzten Preis liegt. Zum Beispiel ist der gleitende Durchschnitt für Tag eins gleich 13 und der letzte Preis ist 15. Preise der vorherigen vier Tage waren niedriger und dies bewirkt, dass der gleitende Durchschnitt zu verzögern. Exponentielle Verschiebung Durchschnittliche Berechnung Exponentielle gleitende Durchschnitte reduzieren die Verzögerung, indem sie mehr Gewicht auf die jüngsten Preise anwenden. Die Gewichtung, die auf den jüngsten Preis angewendet wird, hängt von der Anzahl der Perioden im gleitenden Durchschnitt ab. Es gibt drei Schritte zur Berechnung eines exponentiellen gleitenden Durchschnitts. Zuerst berechnen Sie den einfachen gleitenden Durchschnitt. Ein exponentieller gleitender Durchschnitt (EMA) muss irgendwann anfangen, so dass ein einfacher gleitender Durchschnitt als vorhergehende Periode verwendet wird039s EMA in der ersten Berechnung. Zweitens berechnen Sie den Gewichtungsmultiplikator. Drittens berechnen Sie den exponentiellen gleitenden Durchschnitt. Die folgende Formel gilt für eine 10-tägige EMA. Ein 10-stelliger exponentieller gleitender Durchschnitt gilt eine 18,18 Gewichtung auf den letzten Preis. Eine 10-Perioden-EMA kann auch als 18.18 EMA bezeichnet werden. Eine 20-Punkte-EMA wendet ein 9,52-Gewicht auf den letzten Preis an (2 (201) .0952). Beachten Sie, dass die Gewichtung für den kürzeren Zeitraum mehr als die Gewichtung für den längeren Zeitraum ist. In der Tat, die Gewichtung sinkt um die Hälfte jedes Mal, wenn die gleitende durchschnittliche Periode verdoppelt. Wenn Sie uns einen bestimmten Prozentsatz für eine EMA wünschen, können Sie diese Formel verwenden, um sie in Zeiträume umzuwandeln und diesen Wert als den EMA039s-Parameter einzugeben: Unten ist ein Tabellenkalkulationsbeispiel für einen 10-tägigen, einfachen gleitenden Durchschnitt und einen 10- Tag exponentieller gleitender Durchschnitt für Intel. Einfache gleitende Durchschnitte sind einfach und erfordern wenig Erklärung. Der 10-Tage-Durchschnitt bewegt sich einfach, wenn neue Preise verfügbar sind und die alten Preise fallen. Der exponentielle gleitende Durchschnitt beginnt mit dem einfachen gleitenden Mittelwert (22.22) in der ersten Berechnung. Nach der ersten Berechnung übernimmt die normale Formel. Weil eine EMA mit einem einfachen gleitenden Durchschnitt beginnt, wird ihr wahrer Wert erst 20 Jahre später realisiert. Mit anderen Worten, der Wert auf der Excel-Tabelle kann sich aufgrund der kurzen Rückblickzeit von dem Diagrammwert unterscheiden. Diese Kalkulationstabelle geht nur zurück 30 Perioden, was bedeutet, dass der Einfluss des einfachen gleitenden Durchschnittes 20 Perioden hat, um zu zerstreuen. StockCharts geht zurück mindestens 250-Perioden (typischerweise viel weiter) für seine Berechnungen, so dass die Effekte des einfachen gleitenden Durchschnitts in der ersten Berechnung vollständig zerstreut sind. Der Lag-Faktor Je länger der gleitende Durchschnitt, desto mehr die Lag. Ein 10-tägiger, exponentieller gleitender Durchschnitt wird die Preise ganz genau verkleinern und kurz nach dem Preis drehen. Kurze bewegte Durchschnitte sind wie Schnellboote - flink und schnell zu ändern. Im Gegensatz dazu enthält ein 100-Tage-Gleitender Durchschnitt viele vergangene Daten, die ihn verlangsamen. Längere gleitende Durchschnitte sind wie Ozean-Tanker - lethargisch und langsam zu ändern. Es dauert eine größere und längere Preisbewegung für einen 100-tägigen gleitenden Durchschnitt, um den Kurs zu wechseln. Die obige Grafik zeigt die SampP 500 ETF mit einer 10-tägigen EMA genau nach den Preisen und einem 100-Tage-SMA-Schleifen höher. Sogar mit dem Januar-Februar-Rückgang hielt die 100-Tage-SMA den Kurs und ging nicht ab. Die 50-Tage-SMA passt irgendwo zwischen den 10 und 100 Tage gleitenden Durchschnitten, wenn es um den Lagfaktor geht. Einfache vs exponentielle Verschiebungsdurchschnitte Auch wenn es deutliche Unterschiede zwischen einfachen gleitenden Durchschnitten und exponentiellen gleitenden Durchschnitten gibt, ist man nicht unbedingt besser als die andere. Exponentielle gleitende Durchschnitte haben weniger Verzögerung und sind daher empfindlicher gegenüber den jüngsten Preisen - und die jüngsten Preisänderungen. Exponentielle gleitende Durchschnitte werden sich vor einfachen gleitenden Durchschnitten drehen. Einfache gleitende Durchschnitte stellen dagegen einen wahren Durchschnittspreis für den gesamten Zeitraum dar. Als solche können einfache gleitende Durchschnitte besser geeignet sein, um Unterstützung oder Widerstand Ebenen zu identifizieren. Die Verschiebung der durchschnittlichen Präferenz hängt von den Zielen, dem analytischen Stil und dem Zeithorizont ab. Chartisten sollten mit beiden Arten von gleitenden Durchschnitten sowie verschiedene Zeitrahmen experimentieren, um die beste Passform zu finden. Die folgende Grafik zeigt IBM mit dem 50-Tage-SMA in Rot und der 50-Tage-EMA in grün. Beide erreichten Ende Januar, aber der Rückgang der EMA war schärfer als der Rückgang der SMA. Die EMA tauchte Mitte Februar auf, aber die SMA setzte sich bis Ende März fort. Beachten Sie, dass die SMA über einen Monat nach der EMA auftauchte. Längen und Zeitrahmen Die Länge des gleitenden Durchschnitts hängt von den analytischen Zielen ab. Kurze bewegte Durchschnitte (5-20 Perioden) eignen sich am besten für kurzfristige Trends und Handel. Chartisten, die sich für mittelfristige Trends interessieren, würden sich für längere gleitende Durchschnitte entscheiden, die sich über 20-60 Perioden erstrecken könnten. Langfristige Investoren bevorzugen gleitende Durchschnitte mit 100 oder mehr Perioden. Einige gleitende durchschnittliche Längen sind beliebter als andere. Der 200-Tage-Gleitender Durchschnitt ist vielleicht der beliebteste. Wegen seiner Länge ist dies eindeutig ein langfristiger gleitender Durchschnitt. Als nächstes ist der 50-Tage-Gleitender Durchschnitt für den mittelfristigen Trend sehr beliebt. Viele Chartisten verwenden die 50-Tage - und 200-Tage-Gruppendurchschnitte zusammen. Kurzfristig war ein 10-tägiger gleitender Durchschnitt in der Vergangenheit sehr beliebt, weil es leicht zu berechnen war. Man hat einfach die Zahlen hinzugefügt und den Dezimalpunkt verschoben. Trend Identifikation Die gleichen Signale können mit einfachen oder exponentiellen gleitenden Durchschnitten erzeugt werden. Wie oben erwähnt, hängt die Präferenz von jedem einzelnen ab. In diesen Beispielen werden sowohl einfache als auch exponentielle gleitende Durchschnitte verwendet. Der Begriff Gleitender Durchschnitt gilt für einfache und exponentielle gleitende Mittelwerte. Die Richtung des gleitenden Durchschnitts vermittelt wichtige Informationen über die Preise. Ein steigender gleitender Durchschnitt zeigt, dass die Preise im Allgemeinen zunehmen. Ein fallender gleitender Durchschnitt zeigt an, dass die Preise im Durchschnitt fallen. Ein steigender langfristiger gleitender Durchschnitt spiegelt einen langfristigen Aufwärtstrend wider. Ein fallender langfristiger gleitender Durchschnitt spiegelt einen langfristigen Abwärtstrend wider. Die obige Grafik zeigt 3M (MMM) mit einem 150-Tage-exponentiellen gleitenden Durchschnitt. Dieses Beispiel zeigt, wie gut bewegte Mittelwerte arbeiten, wenn der Trend stark ist. Die 150-tägige EMA hat sich im November 2007 und wieder im Januar 2008 abgelehnt. Beachten Sie, dass es einen Rückgang der Rückkehr in die Richtung dieses gleitenden Durchschnittes gab. Diese nacheilenden Indikatoren identifizieren Trendumkehrungen, wie sie auftreten (am besten) oder nachdem sie auftreten (im schlimmsten Fall). MMM setzte sich im März 2009 fort und stieg dann 40-50 an. Beachten Sie, dass die 150-Tage-EMA erst nach diesem Anstieg auftauchte. Sobald es so war, fuhr MMM in den nächsten zwölf Monaten weiter an. Durchgehende Durchschnitte arbeiten brillant in starken Trends. Double Crossovers Zwei gleitende Mittelwerte können zusammen verwendet werden, um Crossover-Signale zu erzeugen. In der technischen Analyse der Finanzmärkte. John Murphy nennt dies die doppelte Crossover-Methode. Doppelte Übergänge beinhalten einen relativ kurzen gleitenden Durchschnitt und einen relativ langen gleitenden Durchschnitt. Wie bei allen gleitenden Durchschnitten definiert die allgemeine Länge des gleitenden Durchschnitts den Zeitrahmen für das System. Ein System mit einer 5-tägigen EMA und 35-Tage-EMA wäre kurzfristig. Ein System, das eine 50-Tage-SMA - und 200-Tage-SMA verwendet, wäre mittelfristig, vielleicht sogar langfristig. Ein bullish crossover tritt auf, wenn der kürzere gleitende Durchschnitt über dem längeren gleitenden Durchschnitt kreuzt. Dies ist auch als goldenes Kreuz bekannt. Eine bärige Überkreuzung tritt auf, wenn der kürzere gleitende Durchschnitt unter dem längeren gleitenden Durchschnitt liegt. Dies ist bekannt als ein totes Kreuz. Durchgehende durchschnittliche Crossover produzieren relativ späte Signale. Schließlich verwendet das System zwei nacheilende Indikatoren. Je länger die gleitenden Mittelperioden sind, desto größer ist die Verzögerung der Signale. Diese Signale funktionieren gut, wenn ein guter Trend greift. Allerdings wird ein gleitendes durchschnittliches Crossover-System in der Abwesenheit eines starken Trends viele Peitschen produzieren. Es gibt auch eine Triple-Crossover-Methode, die drei gleitende Durchschnitte beinhaltet. Wieder wird ein Signal erzeugt, wenn der kürzeste gleitende Durchschnitt die beiden längeren Durchschnitte überschreitet. Ein einfaches Triple-Crossover-System könnte 5-tägige, 10-tägige und 20-tägige gleitende Durchschnitte beinhalten. Die Grafik oben zeigt Home Depot (HD) mit einer 10-Tage EMA (grüne gepunktete Linie) und 50-Tage EMA (rote Linie). Die schwarze Linie ist die tägliche Schließung. Mit einem gleitenden durchschnittlichen Crossover hätte drei Whipsaws zu einem guten Handel geführt. Die 10-tägige EMA brach unterhalb der 50-Tage-EMA Ende Oktober (1), aber das dauerte nicht lange, als die 10-Tage nach oben Mitte (2) zurückblieben. Dieses Kreuz dauerte länger, aber die nächste Baisse Crossover im Januar (3) trat in der Nähe Ende November Preisniveau, was zu einer anderen Whipsaw. Dieses bärische Kreuz dauerte nicht lange, als die 10-tägige EMA über die 50-Tage ein paar Tage später (4) zurückging. Nach drei schlechten Signalen zeigte das vierte Signal einen starken Zug, als die Aktie über 20 vorrückte. Es gibt zwei Takeaways hier. Zuerst sind Crossover anfällig für peitschen. Ein Preis - oder Zeitfilter kann angewendet werden, um Whipsaw zu verhindern. Trader könnten verlangen, dass die Crossover bis 3 Tage vor dem Handeln oder verlangen die 10-Tage-EMA, um über die 50-Tage-EMA um einen bestimmten Betrag vor dem Handeln zu bewegen. Zweitens kann MACD verwendet werden, um diese Crossover zu identifizieren und zu quantifizieren. MACD (10,50,1) zeigt eine Linie, die die Differenz zwischen den beiden exponentiellen gleitenden Mittelwerten darstellt. MACD dreht sich positiv während eines goldenen Kreuzes und negativ während eines toten Kreuzes. Der Prozentsatz-Preis-Oszillator (PPO) kann auf die gleiche Weise verwendet werden, um prozentuale Unterschiede zu zeigen. Beachten Sie, dass MACD und das PPO auf exponentiellen gleitenden Durchschnitten basieren und nicht mit einfachen gleitenden Durchschnitten übereinstimmen. Diese Grafik zeigt Oracle (ORCL) mit der 50-Tage-EMA, 200-Tage EMA und MACD (50.2001). Es gab vier gleitende durchschnittliche Übergänge über einen Zeitraum von 2 12 Jahren. Die ersten drei führten zu Whipsaws oder schlechten Trades. Eine anhaltende Tendenz begann mit dem vierten Crossover als ORCL bis Mitte der 20er Jahre. Noch einmal, gleitende durchschnittliche Übergänge funktionieren gut, wenn der Trend stark ist, aber produzieren Verluste in der Abwesenheit eines Trends. Preis-Crossovers Moving-Mittelwerte können auch verwendet werden, um Signale mit einfachen Preis-Crossover zu generieren. Ein bullisches Signal wird erzeugt, wenn sich die Preise über dem gleitenden Durchschnitt bewegen. Ein bärisches Signal wird erzeugt, wenn die Preise unter dem gleitenden Durchschnitt liegen. Preisübergänge können kombiniert werden, um im größeren Trend zu handeln. Der längere gleitende Durchschnitt setzt den Ton für den größeren Trend und der kürzere gleitende Durchschnitt wird verwendet, um die Signale zu erzeugen. Man würde bullish Preiskreuze nur dann suchen, wenn die Preise bereits über dem längeren gleitenden Durchschnitt liegen. Dies würde im Einklang mit dem größeren Trend handeln. Zum Beispiel, wenn der Preis über dem 200-Tage-Gleitender Durchschnitt liegt, würden sich die Chartisten nur auf Signale konzentrieren, wenn der Preis über den 50-Tage-Gleitender Durchschnitt geht. Offensichtlich würde ein Umzug unter dem 50-Tage-Gleitender Durchschnitt einem solchen Signal vorausgehen, aber solche bärigen Kreuze würden ignoriert werden, weil der größere Trend auf ist. Ein bärisches Kreuz würde einfach einen Pullback in einem größeren Aufwärtstrend vorschlagen. Eine Kreuzung über dem 50-Tage-Gleitender Durchschnitt würde einen Aufschwung der Preise und die Fortsetzung des größeren Aufwärtstrends signalisieren. Die nächste Grafik zeigt Emerson Electric (EMR) mit der 50-Tage-EMA und 200-Tage-EMA. Die Aktie bewegte sich oben und hielt über dem 200-Tage gleitenden Durchschnitt im August. Es gab Dips unter der 50-Tage-EMA Anfang November und wieder Anfang Februar. Die Preise sind schnell über die 50-Tage-EMA zurückgekehrt, um bullische Signale (grüne Pfeile) im Einklang mit dem größeren Aufwärtstrend zu liefern. MACD (1,50,1) wird im Indikatorfenster angezeigt, um Preiskreuze über oder unter der 50-Tage-EMA zu bestätigen. Die 1-tägige EMA entspricht dem Schlusskurs. MACD (1,50,1) ist positiv, wenn das Schließen über dem 50-Tage-EMA liegt und negativ ist, wenn das Schließen unterhalb der 50-Tage-EMA liegt. Unterstützung und Widerstand Bewegliche Mittelwerte können auch als Unterstützung in einem Aufwärtstrend und Widerstand in einem Abwärtstrend dienen. Ein kurzfristiger Aufwärtstrend könnte Unterstützung in der Nähe des 20-tägigen einfachen gleitenden Durchschnitts finden, der auch in Bollinger Bands verwendet wird. Ein langfristiger Aufwärtstrend könnte Unterstützung in der Nähe der 200-Tage einfachen gleitenden Durchschnitt, die die beliebtesten langfristigen gleitenden Durchschnitt ist. Wenn die Tatsache, die 200-Tage gleitenden Durchschnitt kann Unterstützung oder Widerstand bieten, nur weil es so weit verbreitet ist. Es ist fast wie eine sich selbst erfüllende Prophezeiung. Die Grafik oben zeigt die NY Composite mit dem 200-Tage einfachen gleitenden Durchschnitt von Mitte 2004 bis Ende 2008. Die 200-Tage-Unterstützung unterstützt mehrmals während des Vormarsches. Sobald der Trend mit einer doppelten Top-Support-Pause umgekehrt, fuhr der 200-Tage-Gleitender Durchschnitt als Widerstand um 9500. Erwarten Sie nicht genaue Unterstützung und Widerstand Ebenen von bewegten Durchschnitten, vor allem längere gleitende Durchschnitte. Die Märkte werden von Emotionen angetrieben, was sie zu Überschwemmungen macht. Anstelle von exakten Ebenen können gleitende Mittelwerte verwendet werden, um Stütz - oder Widerstandszonen zu identifizieren. Schlussfolgerungen Die Vorteile der Verwendung von gleitenden Durchschnitten müssen gegen die Nachteile gewogen werden. Durchgehende Durchschnitte sind Trendfolgen oder Nachlauf, Indikatoren, die immer ein Schritt dahinter sein werden. Das ist aber nicht unbedingt eine schlechte Sache. Immerhin ist der Trend dein Freund und es ist am besten, in Richtung des Trends zu handeln. Durchgehende Durchschnitte versichern, dass ein Händler mit dem aktuellen Trend übereinstimmt. Auch wenn der Trend Ihr Freund ist, verbringen die Wertpapiere viel Zeit in Handelsbereichen, die gleitende Durchschnitte ineffektiv machen. Einmal in einem Trend, bewegte Durchschnitte halten Sie in, aber auch späte Signale. Don039t erwarten, an der Spitze zu verkaufen und an der Unterseite zu kaufen, indem bewegte Durchschnitte. Wie bei den meisten technischen Analysewerkzeugen sollten gleitende Durchschnitte nicht allein verwendet werden, sondern in Verbindung mit anderen komplementären Werkzeugen. Chartisten können gleitende Durchschnitte verwenden, um den Gesamttrend zu definieren und dann RSI zu verwenden, um überkaufte oder überverkaufte Ebenen zu definieren. Hinzufügen von Moving Averages zu StockCharts Charts Verschieben von Durchschnittswerten sind als Preisüberlagerungsfunktion auf der SharpCharts Workbench verfügbar. Mit dem Dropdown-Menü Overlays können Benutzer entweder einen einfachen gleitenden Durchschnitt oder einen exponentiellen gleitenden Durchschnitt wählen. Mit dem ersten Parameter wird die Anzahl der Zeiträume eingestellt. Ein optionaler Parameter kann hinzugefügt werden, um festzulegen, welches Preisfeld in den Berechnungen verwendet werden soll - O für das Open, H für das Hoch, L für das Niedrige und C für das Schließen. Ein Komma wird verwendet, um Parameter zu trennen. Ein weiterer optionaler Parameter kann hinzugefügt werden, um die gleitenden Mittelwerte nach links (vergangene) oder rechts (Zukunft) zu verschieben. Eine negative Zahl (-10) würde den gleitenden Durchschnitt nach links verschieben 10 Perioden. Eine positive Zahl (10) würde den gleitenden Durchschnitt auf die richtigen 10 Perioden verschieben. Mehrere gleitende Durchschnitte können das Preisplot überlagert werden, indem man einfach eine weitere Overlay-Linie zur Workbench hinzufügt. StockCharts-Mitglieder können die Farben und den Stil ändern, um zwischen mehreren gleitenden Durchschnitten zu unterscheiden. Nach Auswahl eines Indikators öffnen Sie die erweiterten Optionen, indem Sie auf das kleine grüne Dreieck klicken. Erweiterte Optionen können auch verwendet werden, um eine gleitende durchschnittliche Überlagerung zu anderen technischen Indikatoren wie RSI, CCI und Volume hinzuzufügen. Klicken Sie hier für eine Live-Chart mit mehreren verschiedenen gleitenden Durchschnitten. Mit Moving Averages mit StockCharts Scans Hier sind einige Beispiel-Scans, die StockCharts-Mitglieder verwenden können, um für verschiedene gleitende durchschnittliche Situationen zu scannen: Bullish Moving Average Cross: Diese Scans sucht nach Aktien mit einem steigenden 150-Tage-einfachen gleitenden Durchschnitt und einem bullish Kreuz der 5 - Tag EMA und 35-Tage-EMA. Der 150-Tage-Gleitender Durchschnitt steigt, solange er über seinem Niveau vor fünf Tagen gehandelt wird. Ein bullisches Kreuz tritt auf, wenn die 5-Tage-EMA über die 35-Tage-EMA auf überdurchschnittliche Lautstärke bewegt. Bearish Moving Average Cross: Diese Scans suchen nach Aktien mit einem fallenden 150-Tage-einfachen gleitenden Durchschnitt und einem bärischen Kreuz der 5-tägigen EMA und 35-Tage-EMA. Der 150-Tage-Gleitender Durchschnitt fällt, solange er unter seinem Niveau vor fünf Tagen gehandelt wird. Ein bärisches Kreuz tritt auf, wenn die 5-tägige EMA unterhalb der 35-Tage-EMA auf überdurchschnittlichem Volumen bewegt. Weitere Studie John Murphy039s Buch hat ein Kapitel gewidmet, um die Durchschnitte und ihre verschiedenen Verwendungen gewidmet. Murphy deckt die Vor-und Nachteile der gleitenden Durchschnitte. Darüber hinaus zeigt Murphy, wie bewegte Mittelwerte mit Bollinger Bands und kanalbasierten Handelssystemen arbeiten. Technische Analyse der Finanzmärkte John Murphy Ich möchte die Berechnung des Aktienkurses im Durchschnitt entwickeln. Aber viel komplexe Berechnung wurde später geplant. Mein erster Schritt zu wissen, wie man Moving Average effizient berechnen kann. Ich muss wissen, wie man die Input-und Return-Output effizient zu nehmen. Betrachtete Input Datum und Preis. Konsumierte Ausgabe Datum, Preis und Moving Average. Wenn ich 500 Datensätze habe und ich will, um zu berechnen Moving Average für 5 Tage was ist der effiziente Weg, anstatt hin und her zu gehen in der Array von Datum und Preis wieder zu vermeiden, was ist der beste Weg, um Eingang zu erhalten (ArrayList, Tabelle, Array Etc) und return output. Anmerkung: Die heutige MA von 5 Tagen wird der Durchschnitt der letzten 5 Tage einschließlich des heutigen Preises sein. Gestern wird MA der Durchschnitt der letzten 5 Tage von gestern sein. Ich möchte die Tage bleiben, um flexibel zu sein, anstatt 5 könnte es 9, 14, 20 usw. sein. Donnerstag, 10. April 2008 um 15:21 Uhr Wenn du eine einfache Berechnung ohne deine Mühe benötigst, kannst du TA-Lib benutzen. Aber wenn Sie möchten, dass Ihre Berechnung effizienter als TA-Lib ist, dann können Sie Ihren eigenen technischen Indikator erstellen. TA-Lib ist großartig, aber Problem ist, dass diese Bibliothek nur statische Methoden hat. Das heißt, wenn Sie SMA-Array-Werte auf der Grundlage von 500 Preisscheinen berechnen müssen, dann werden Sie das gesamte Array von Bars senden und es wird Array von SMA-Werten zurückgeben. Aber wenn du neue 501-st-Wert bekommst, dann solltest du wieder das ganze Array senden und TA-Lib wird wieder rechnen und SMA-Array von Werten zurückgeben. Stellen Sie sich jetzt vor, Sie brauchen einen solchen Indikator auf echten Preisfutter, und für jede Preisänderung benötigen Sie einen neuen Indikatorwert. Wenn Sie einen Indikator haben, ist kein großes Problem, aber wenn Sie Hunderte Indikatoren arbeiten, könnte es ein Performance-Problem sein. Ich war in einer solchen Situation und fange an, Echtzeit-Indikatoren zu entwickeln, die effizient sind und zusätzliche Berechnungen für neue Preisleisten oder für geänderte Preisscheine machen. Unglücklicherweise brauchte ich nie SMA-Indikator für meine Handelssysteme, aber ich habe solche für EMA, WMA, AD und andere. Ein solcher Indikator AD wird auf meinem Blog veröffentlicht und man kann von dort aus sehen, was die Grundstruktur meiner Echtzeit-Indikator-Klasse ist. Ich hoffe, dass Sie kleine Änderungen benötigen, um SMA-Indikator zu implementieren, denn ist einer der einfachsten. Die Logik ist einfach. Um SMA zu berechnen, benötigen Sie nur n letzte Preiswerte. So Klasseninstanz wird eine Sammlung von Preisen haben, die speichern wird nur die letzten n Anzahl der Preise halten, wie SMA definiert ist (in Ihrem Fall 5). Wenn du also eine neue Bar hast, wirst du die älteste entfernen und neue hinzufügen und die Berechnung erstellen. Donnerstag, 10. April 2008 16:04 Alle Antworten Es gibt eine Bibliothek namens TA-Lib, die alles für dich macht und es ist Open Source. Es hat etwa 50 Indikatoren, die ich denke. Weve hat es in der Produktionsumgebung verwendet und es ist sehr effizient und realibel. Sie können es in C, Java, C, etc. verwenden. Wenn Sie einfache Berechnung ohne Ihre Bemühung benötigen, als Sie TA-Lib verwenden können. Aber wenn Sie möchten, dass Ihre Berechnung effizienter als TA-Lib ist, dann können Sie Ihren eigenen technischen Indikator erstellen. TA-Lib ist großartig, aber Problem ist, dass diese Bibliothek nur statische Methoden hat. Das heißt, wenn Sie SMA-Array-Werte auf der Grundlage von 500 Preisscheinen berechnen müssen, dann werden Sie das gesamte Array von Bars senden und es wird Array von SMA-Werten zurückgeben. Aber wenn du neue 501-st-Wert bekommst, dann solltest du wieder das ganze Array senden und TA-Lib wird wieder rechnen und SMA-Array von Werten zurückgeben. Stellen Sie sich jetzt vor, Sie brauchen einen solchen Indikator auf echten Preisfutter, und für jede Preisänderung benötigen Sie einen neuen Indikatorwert. Wenn Sie einen Indikator haben, ist kein großes Problem, aber wenn Sie Hunderte Indikatoren arbeiten, könnte es ein Performance-Problem sein. Ich war in einer solchen Situation und fange an, Echtzeit-Indikatoren zu entwickeln, die effizient sind und zusätzliche Berechnungen für neue Preisleisten oder für geänderte Preisscheine machen. Unglücklicherweise brauchte ich nie SMA-Indikator für meine Handelssysteme, aber ich habe solche für EMA, WMA, AD und andere. Ein solcher Indikator AD wird auf meinem Blog veröffentlicht und man kann von dort aus sehen, was die Grundstruktur meiner Echtzeit-Indikator-Klasse ist. Ich hoffe, dass Sie kleine Änderungen benötigen, um SMA-Indikator zu implementieren, denn ist einer der einfachsten. Die Logik ist einfach. Um SMA zu berechnen, benötigen Sie nur n letzte Preiswerte. So Klasseninstanz wird eine Sammlung von Preisen haben, die speichern wird nur die letzten n Anzahl der Preise halten, wie SMA definiert ist (in Ihrem Fall 5). Wenn du also eine neue Bar hast, wirst du die älteste entfernen und neue hinzufügen und die Berechnung erstellen. Donnerstag, 10. April 2008 16:04 Ich würde den gleitenden Durchschnitt in der Datenbank über eine gespeicherte Prozedur oder in einen Würfel berechnen. Haben Sie Analysis Services gesehen, hat es die Möglichkeit, gleitende Durchschnitte zu berechnen. Donnerstag, 10. April 2008 16:05 Ja. TA-LIB ist gut, aber vielleicht nicht für mich geeignet. Wenn ich neuen Wert oder aktualisierten Wert für die Geschichte der Datensätze Ich werde die Berechnung in einer separaten Funktion nur für das neue Angebot und speichern Sie es in der Datenbank. Ich plane, das Zitat jede Stunde zu aktualisieren. Ich muss etwa 25 bis 30 technische Indikatoren für 2200 Aktien machen. Donnerstag, 10. April 2008 17:51 Die Ausführungszeit eines TA-Lib-Aufrufs auf einem Array von 10000 Elementen dauert ca. 15 Millisekunden (auf einem Intel Core Duo 2.13 Ghz). Dies ist der Durchschnitt aller Funktionen. Zu den schnellsten gehört SMA weniger als 2,5 Millisekunden. Die langsamste, HTTRENDMODE, nimmt 450 Millisekunden. Mit weniger Elementen ist es schneller. SMA dauert ca. 0,2 Millisekunden für 1000 Eingangselemente. Die Geschwindigkeitsverstärkung ist fast linear (der Overhead der Ausführung des Funktionsaufrufs ist vernachlässigbar). Im Rahmen Ihrer Bewerbung ist TA-Lib sehr unwahrscheinlich, dass Ihr Engpass für Geschwindigkeitsleistung ist. Auch ich in der Regel nicht empfehlen, diese quotlast nquot Lösung. Lesen Sie weiter unten für Details. Zuerst eine Korrektur zur Boban. s-Anweisung Alle Funktionen in TA-Lib können auch einen einzigen letzten Wert berechnen, indem sie ein Minimum an Quell-Nquot-Elementen verwenden. Sie können ein Array von Größe 10000 haben, haben Daten initialisieren nur für die ersten 500 Elemente, fügen Sie ein Element und rufen TA-Lib, um die SMA nur für das neue Element zu berechnen. TA-Lib wird nicht mehr als nötig aussehen (wenn SMA von 5, dann wird TA-Lib eine einzelne SMA mit den letzten 5 Werten berechnen). Dies ist mit dem Parameter startIdx und endIdx möglich. Sie können einen zu berechnenden Bereich oder einen einzelnen Wert angeben. In diesem Szenario würden Sie startIdx endIdx 500, um das 501st Element zu berechnen. Warum ist eine solche Quell-Napot-Lösung potenziell gefährlich für einige Unabhängig von der Auswahl Boban. s Lösung oder TA-Lib betrachten, dass mit einer kleinen endlichen Anzahl von vergangenen Daten nicht gut funktionieren mit den meisten TA-Funktionen. Mit SMA ist es offensichtlich, dass man nur n Element benötigt, um einen Durchschnitt über n Element zu berechnen. Es ist nicht so einfach mit EMA (und vielen anderen TA-Funktionen). Der Algo hängt oft von dem vorherigen Wert ab, um den neuen Wert zu berechnen. Die Funktion ist rekursiv. Das bedeutet, dass alle bisherigen Werte Einfluss auf zukünftige Werte haben. Wenn Sie sich entscheiden, Ihren Algo zu verwenden, um nur eine kleine Anzahl von vergangenen n Wert zu verwenden, erhalten Sie nicht das gleiche Ergebnis wie jemand, der über eine große Anzahl von vergangenen Werten berechnet. Die Lösung ist ein Kompromiss zwischen Geschwindigkeit und Präzision. Ich habe das oft im Kontext von TA-Lib besprochen (ich nenne es den quartierbaren Zeitraum in der Dokumentation und dem Forum). Um es ganz einfach zu halten, ist meine allgemeine Empfehlung, wenn Sie den Unterschied zwischen einem Algo mit einer endlichen Impulsantwort (FIR) aus einem Algo mit einer unendlichen Impulsantwort (IIR) nicht machen können. Sie werden sicherer sein, über alle Daten zu berechnen, die Sie haben verfügbar. TA-Lib spezifiziert in dem Code, dessen Funktionen eine instabile Periode (IIR) haben. Bearbeitet von mfortier Freitag, 15. August 2008 04:25 Korrigieren Sie englischen Satz Freitag, 15. August 2008 04:20
Comments
Post a Comment