Sunday 16 July 2017

Moving Average Pseudocode


Ich muss den Überblick über die letzten 7 Tage Arbeitsstunden in einem Flat-File-Leseschleife zu halten. Seine verwendet werden, um die Ermüdbarkeit von Arbeitsplänen zu messen. Im Moment habe ich etwas, das funktioniert, aber es scheint ziemlich ausführlich und Im nicht sicher, ob theres ein Muster, das mehr prägnant ist. Derzeit habe ich eine Java-Klasse mit einem statischen Array, um die letzten x-Tage-Daten halten, dann, wie ich durch die Datei zu lesen, hacke ich das erste Element und verschieben die anderen 6 (für eine Woche rollen insgesamt) zurück um eins. Die Verarbeitung dieses statischen Arrays erfolgt in seinem eigenen Verfahren, dh. Meine Frage: ist dies eine vernünftige Design-Ansatz, oder gibt es etwas blendend offensichtlich und einfach, diese Aufgabe zu tun Danke Jungs gefragt Aug 30 11 at 14:33 Vielen Dank Jungs: I39ve bekam die Nachricht: Verwenden Sie ein übergeordnetes Objekt und nutzen die Relevante Methoden oder einen Ringpuffer. Große Antworten, alle von ihnen. Wenn Sie darüber nachdenken, benötigen Sie immer Zugriff auf das gesamte Array, so können Sie loswerden, dass erste Eintrag - die ich warn39t 100 sicher von meiner eigenen. I39m erleichtert, dass ich hadn39t verpasste einige 1 Liner und war im Grunde auf eine vernünftige, wenn nicht effizient und knapp Track Dies ist, was ich liebe über diese Website: qualitativ hochwertige, relevante Antworten von Menschen, die ihre sht kennen. Ndash Pete855217 Aug 11, 2010, um 15:05 Uhr Warum initialisieren Sie runningTotal auf null Was ist der Typ, wo es deklariert Es wäre gut, wenn Sie einige Code-Beispiele, die tatsächlichen Java-Code ähneln setzen. Im Übrigen wäre meine Kritik die folgende: Ihre Funktion hat zu viel. Eine Funktion oder Methode sollte zusammenhängend sein. Entsprechend sollten sie eine Sache und eins nur tun. Schlimmer noch, was passiert in Ihrer for-Schleife, wenn x 5 Sie kopieren runningTotal6 in runningTotal5. Aber dann haben Sie zwei Kopien des gleichen Wertes an Position 5 und 6. In Ihrem Design, Ihre Funktion movesshuffles die Elemente in Ihrem Array berechnet die Gesamtausdruck Zeug auf Standard-Fehler liefert die Summe Es tut zu viel. Mein erster Vorschlag ist nicht zu bewegen Zeug um in der Array. Stattdessen implementieren Sie einen kreisförmigen Puffer und verwenden ihn statt des Arrays. Es vereinfacht Ihren Entwurf. Mein zweiter Vorschlag ist, Dinge in Funktionen zusammenzufassen, die zusammenhängen: haben Sie eine Datenstruktur (ein zirkularer Puffer), der Ihnen erlaubt, es hinzuzufügen (und das den ältesten Eintrag sinkt, wenn es seine Kapazität erreicht hat) Interator haben eine Funktion, die die Summe auf dem Iterator berechnet (Sie dont care, wenn Sie die Summe aus einem Array, Liste oder kreisförmigen bufer.) Dont nennen es insgesamt. Nennen Sie es Summe, die ist, was Sie berechnen. Das ist, was Id tun :) That39s große info luis, aber denken Sie daran, diese Funktion ist ein kleiner Teil der Funktionalität der Klasse, und es wäre Overkill zu viel Code hinzufügen, um es perfekt. Sie sind technisch korrekt, und ich verstehe, dass mein Code zu viel 39 macht, aber gleichzeitig ist es manchmal besser, auf der Seite des kleineren, klareren Codes zu irren als für Perfektion zu gehen. Angesichts meiner Java-Fähigkeiten, auch die Herstellung der Pseudocode Sie beschreiben kompilieren würde ich blasen mein Budget auf diese (), aber danke für die klare Beschreibung. Ndash Pete855217 Aug 31 11 at 2:23 Hmmm, es geht nicht um Perfektion, sondern um etablierte industrielle Praktiken, die wir seit den letzten 3 Jahrzehnten kennen. Sauberer Code ist immer einer, der partitioniert ist. Wir haben jahrzehntelange Evidenz, die zeigen, dass dies der Weg ist, um in den allgemeinen Fall zu gehen (in Bezug auf Kosteneffizienz, Defektverkleinerung, Verständnis usw.). Es sei denn, es ist Wegwerf-Code für eine einmalige Art der Sache. Es ist niemals teuer, dies zu tun, wenn man auf diese Weise eine Problemanalyse startet. Codierung 101, brechen das Problem und der Code folgt, weder Overkill noch schwierig) ndash luis. espinal Ihre Aufgabe ist zu einfach und die Vorgehensweise Sie angenommen haben, ist sicherlich gut für den Job. Allerdings, wenn Sie ein besseres Design verwenden möchten, müssen Sie loszuwerden, dass alle die Anzahl der Bewegung Sie besser eine FIFO-Warteschlange und machen gute Verwendung von Push-und Pop-Methoden, die Art und Weise der Code reflektiert keine Datenbewegung, nur die beiden logischen Aktionen Von neuen Daten und entfernen Sie Daten, die älter als 7 Tage sind. Beantwortet Aug 30 11 um 14: 49Moving Averages - Einfache und exponentielle gleitende Durchschnitte - Einfache und exponentielle Einführung Gleitende Mittelwerte glatt die Preisdaten zu einem Trend folgend Indikator zu bilden. Sie prognostizieren nicht die Kursrichtung, sondern definieren die aktuelle Richtung mit einer Verzögerung. Moving Averages Lag, weil sie auf vergangenen Preisen basieren. Trotz dieser Verzögerung, gleitende Durchschnitte helfen, glatte Preis-Aktion und Filter aus dem Lärm. Sie bilden auch die Bausteine ​​für viele andere technische Indikatoren und Overlays, wie Bollinger Bands. MACD und dem McClellan-Oszillator. Die beiden beliebtesten Arten von gleitenden Durchschnitten sind die Simple Moving Average (SMA) und die Exponential Moving Average (EMA). Diese Bewegungsdurchschnitte können verwendet werden, um die Richtung des Trends zu identifizieren oder potentielle Unterstützungs - und Widerstandswerte zu definieren. Here039s ein Diagramm mit einem SMA und einem EMA auf ihm: Einfache gleitende durchschnittliche Berechnung Ein einfacher gleitender Durchschnitt wird gebildet, indem man den durchschnittlichen Preis eines Wertpapiers über einer bestimmten Anzahl von Perioden berechnet. Die meisten gleitenden Mittelwerte basieren auf den Schlusskursen. Ein 5-tägiger einfacher gleitender Durchschnitt ist die fünftägige 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, wenn 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 nur die letzten fünf Tage ab. Der zweite Tag des gleitenden Mittelwerts fällt den ersten Datenpunkt (11) und fügt den neuen Datenpunkt (16) hinzu. Der dritte Tag des gleitenden Durchschnitts setzt sich fort, indem der erste Datenpunkt (12) abfällt und der neue Datenpunkt (17) addiert wird. 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 dreitägigen Berechnungszeitraum steigt. Beachten Sie auch, dass jeder gleitende Durchschnittswert knapp unter dem letzten Kurs 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 führt dazu, dass der gleitende Durchschnitt zu verzögern. Exponentielle gleitende Durchschnittsberechnung Exponentielle gleitende Mittelwerte reduzieren die Verzögerung, indem mehr Gewicht auf die jüngsten Preise angewendet wird. Die Gewichtung des jüngsten Preises hängt von der Anzahl der Perioden im gleitenden Durchschnitt ab. Es gibt drei Schritte, um einen exponentiellen gleitenden Durchschnitt zu berechnen. Berechnen Sie zunächst den einfachen gleitenden Durchschnitt. Ein exponentieller gleitender Durchschnitt (EMA) muss irgendwo anfangen, so dass ein einfacher gleitender Durchschnitt als die vorherige Periode039s EMA in der ersten Berechnung verwendet wird. Zweitens, berechnen Sie die Gewichtung Multiplikator. Drittens berechnen Sie den exponentiellen gleitenden Durchschnitt. Die folgende Formel ist für eine 10-tägige EMA. Ein 10-Perioden-exponentieller gleitender Durchschnitt wendet eine 18,18 Gewichtung auf den jüngsten Preis an. Eine 10-Perioden-EMA kann auch als 18.18 EMA bezeichnet werden. Eine 20-Periode EMA wendet eine 9,52 wiegt auf den jüngsten Preis (2 (201) .0952). Beachten Sie, dass die Gewichtung für den kürzeren Zeitraum mehr ist als die Gewichtung für den längeren Zeitraum. 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 zuweisen möchten, können Sie diese Formel verwenden, um sie in Zeiträume zu konvertieren, und geben Sie dann diesen Wert als den EMA039s-Parameter ein: Nachstehend ist ein Tabellenblattbeispiel für einen 10-tägigen einfachen gleitenden Durchschnitt und ein 10- Tag exponentiellen gleitenden Durchschnitt für Intel. Einfache gleitende Durchschnitte sind geradlinig und erfordern wenig Erklärung. Der 10-Tage-Durchschnitt bewegt sich einfach, sobald neue Preise verfügbar sind und alte Preise fallen. Der exponentielle gleitende Durchschnitt beginnt mit dem einfachen gleitenden Mittelwert (22.22) bei der ersten Berechnung. Nach der ersten Berechnung übernimmt die Normalformel. Da ein EMA mit einem einfachen gleitenden Durchschnitt beginnt, wird sein wahrer Wert erst nach 20 oder späteren Perioden realisiert. Mit anderen Worten, der Wert auf der Excel-Tabelle kann sich aufgrund des kurzen Rückblicks von dem Diagrammwert unterscheiden. Diese Kalkulationstabelle geht nur zurück 30 Perioden, was bedeutet, dass der Einfluss der einfachen gleitenden Durchschnitt hatte 20 Perioden zu zerstreuen. StockCharts geht mindestens 250 Perioden (typischerweise viel weiter) für seine Berechnungen zurück, so dass die Effekte des einfachen gleitenden Durchschnitts in der ersten Berechnung vollständig abgebaut sind. Der Lagfaktor Je länger der gleitende Durchschnitt ist, desto stärker ist die Verzögerung. Ein 10-Tage-exponentieller gleitender Durchschnitt wird die Preise sehr eng umringen und sich kurz nach dem Kursumschlag wenden. Kurze gleitende 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 Ozeantanker - lethargisch und langsam zu ändern. Es dauert eine größere und längere Kursbewegung für einen 100-Tage gleitenden Durchschnitt, um Kurs zu ändern. Die Grafik oben zeigt die SampP 500 ETF mit einer 10-tägigen EMA eng ansprechenden Preisen und einem 100-tägigen SMA-Schleifen höher. Selbst mit dem Januar-Februar-Rückgang hielt die 100-tägige SMA den Kurs und kehrte nicht zurück. Die 50-Tage-SMA passt irgendwo zwischen den 10 und 100 Tage gleitenden Durchschnitten, wenn es um den Verzögerungsfaktor kommt. Simple vs Exponential Moving Averages Obwohl es klare Unterschiede zwischen einfachen gleitenden Durchschnitten und exponentiellen gleitenden Durchschnitten, ist eine nicht unbedingt besser als die anderen. Exponentielle gleitende Mittelwerte haben weniger Verzögerungen und sind daher empfindlicher gegenüber den jüngsten Preisen - und den jüngsten Preisveränderungen. Exponentielle gleitende Mittelwerte drehen sich vor einfachen gleitenden Durchschnitten. Einfache gleitende Durchschnitte stellen dagegen einen wahren Durchschnittspreis für den gesamten Zeitraum dar. Als solches können einfache gleitende Mittel besser geeignet sein, um Unterstützungs - oder Widerstandsniveaus zu identifizieren. Die gleitende Durchschnittspräferenz hängt von den Zielen, dem analytischen Stil und dem Zeithorizont ab. Chartisten sollten mit beiden Arten von gleitenden Durchschnitten sowie verschiedene Zeitrahmen zu experimentieren, um die beste Passform zu finden. Die nachstehende Grafik zeigt IBM mit der 50-Tage-SMA in Rot und der 50-Tage-EMA in Grün. Beide gipfelten Ende Januar, aber der Rückgang in der EMA war schärfer als der Rückgang der SMA. Die EMA erschien Mitte Februar, aber die SMA setzte weiter unten bis Ende März. Beachten Sie, dass die SMA über einen Monat nach der EMA. Längen und Zeitrahmen Die Länge des gleitenden Mittelwerts hängt von den analytischen Zielen ab. Kurze gleitende Durchschnitte (5-20 Perioden) eignen sich am besten für kurzfristige Trends und den Handel. Chartisten, die sich für mittelfristige Trends interessieren, würden sich für längere bewegte Durchschnitte entscheiden, die 20-60 Perioden verlängern könnten. Langfristige Anleger bevorzugen gleitende Durchschnitte mit 100 oder mehr Perioden. Einige gleitende durchschnittliche Längen sind beliebter als andere. Die 200-Tage gleitenden Durchschnitt ist vielleicht die beliebteste. Wegen seiner Länge ist dies eindeutig ein langfristiger gleitender Durchschnitt. Als nächstes ist der 50-Tage gleitende Durchschnitt für den mittelfristigen Trend ziemlich populär. Viele Chartisten nutzen die 50-Tage-und 200-Tage gleitenden Durchschnitte zusammen. Kurzfristig war ein 10 Tage gleitender Durchschnitt in der Vergangenheit ziemlich populär, weil er leicht zu berechnen war. Man hat einfach die Zahlen addiert und den Dezimalpunkt verschoben. Trendidentifikation Die gleichen Signale können mit einfachen oder exponentiellen gleitenden Mittelwerten erzeugt werden. Wie oben erwähnt, hängt die Präferenz von jedem Individuum ab. Die folgenden Beispiele werden sowohl einfache als auch exponentielle gleitende Mittelwerte verwenden. 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 Durchschnitt zeigt, dass die Preise im Allgemeinen steigen. Ein sinkender Durchschnittswert zeigt an, dass die Preise im Durchschnitt sinken. Ein steigender langfristiger gleitender Durchschnitt spiegelt einen langfristigen Aufwärtstrend wider. Ein sinkender langfristiger gleitender Durchschnitt spiegelt einen langfristigen Abwärtstrend wider. Das Diagramm oben zeigt 3M (MMM) mit einem 150-Tage-exponentiellen gleitenden Durchschnitt. Dieses Beispiel zeigt, wie gut bewegte Durchschnitte arbeiten, wenn der Trend stark ist. Die 150-Tage-EMA sank im November 2007 und wieder im Januar 2008. Beachten Sie, dass es einen Rückgang von 15 nahm, um die Richtung dieses gleitenden Durchschnitts umzukehren. Diese nachlaufenden Indikatoren identifizieren Trendumkehrungen, wie sie auftreten (am besten) oder nach deren Eintritt (im schlimmsten Fall). MMM setzte unten in März 2009 und dann stieg 40-50. Beachten Sie, dass die 150-Tage-EMA nicht auftauchte, bis nach diesem Anstieg. Sobald es aber tat, setzte MMM die folgenden 12 Monate höher fort. Moving-Durchschnitte arbeiten brillant in starken Trends. Doppelte Frequenzweichen Zwei gleitende Mittelwerte können zusammen verwendet werden, um Frequenzweiche zu erzeugen. In der technischen Analyse der Finanzmärkte. John Murphy nennt dies die doppelte Crossover-Methode. Doppelte Crossover 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, das eine 5-Tage-EMA und eine 35-Tage-EMA verwendet, wäre kurzfristig. Ein System, das eine 50-tägige SMA - und 200-Tage-SMA verwendet, wäre mittelfristig, vielleicht sogar langfristig. Eine bullische Überkreuzung tritt auf, wenn der kürzere gleitende Durchschnitt über dem längeren gleitenden Durchschnitt kreuzt. Dies wird auch als goldenes Kreuz bezeichnet. Eine bärische Überkreuzung tritt ein, wenn der kürzere gleitende Durchschnitt unter dem längeren gleitenden Durchschnitt liegt. Dies wird als ein totes Kreuz bekannt. Gleitende Mittelübergänge erzeugen relativ späte Signale. Schließlich setzt das System zwei hintere Indikatoren ein. Je länger die gleitenden Durchschnittsperioden, desto größer die Verzögerung in den Signalen. Diese Signale funktionieren gut, wenn eine gute Tendenz gilt. Allerdings wird ein gleitender Durchschnitt Crossover-System produzieren viele whipsaws in Abwesenheit einer starken Tendenz. Es gibt auch eine Dreifach-Crossover-Methode, die drei gleitende Durchschnitte beinhaltet. Wieder wird ein Signal erzeugt, wenn der kürzeste gleitende Durchschnitt die beiden längeren Mittelwerte durchläuft. Ein einfaches Triple-Crossover-System könnte 5-Tage-, 10-Tage - und 20-Tage-Bewegungsdurchschnitte beinhalten. Das Diagramm oben zeigt Home Depot (HD) mit einer 10-tägigen EMA (grüne gepunktete Linie) und 50-Tage-EMA (rote Linie). Die schwarze Linie ist die tägliche Schließung. Mit einem gleitenden Durchschnitt Crossover hätte dazu geführt, dass drei Peitschen vor dem Fang eines guten Handels. Die 10-tägige EMA brach unterhalb der 50-Tage-EMA Ende Oktober (1), aber dies dauerte nicht lange, wie die 10-Tage zog zurück oben Mitte November (2). Dieses Kreuz dauerte länger, aber die nächste bärige Crossover im Januar (3) ereignete sich gegen Ende November Preisniveaus, was zu einer weiteren Peitsche führte. Dieses bärische Kreuz dauerte nicht lange, als die 10-Tage-EMA über die 50-Tage ein paar Tage später zurückging (4). Nach drei schlechten Signalen, schien das vierte Signal eine starke Bewegung als die Aktie vorrückte über 20. Es gibt zwei Takeaways hier. Erstens, Crossovers sind anfällig für whipsaw. Ein Preis oder Zeitfilter kann angewendet werden, um zu helfen, whipsaws zu verhindern. Händler könnten verlangen, dass die Crossover 3 Tage dauern, bevor sie handeln oder verlangen, dass die 10-Tage-EMA über die 50-Tage-EMA zu bewegen, um einen bestimmten Betrag vor handeln. Zweitens kann MACD verwendet werden, um diese Frequenzweichen zu identifizieren und zu quantifizieren. MACD (10,50,1) zeigt eine Linie, die die Differenz zwischen den beiden exponentiellen gleitenden Mittelwerten darstellt. MACD wird positiv während eines goldenen Kreuzes und negativ während eines toten Kreuzes. Der Prozentsatz-Oszillator (PPO) kann auf die gleiche Weise verwendet werden, um Prozentunterschiede anzuzeigen. Beachten Sie, dass MACD und das PPO auf exponentiellen gleitenden Durchschnitten basieren und nicht mit einfachen gleitenden Durchschnitten zusammenpassen. Diese Grafik zeigt Oracle (ORCL) mit dem 50-Tage EMA, 200-Tage EMA und MACD (50.200,1). Es gab vier gleitende durchschnittliche Frequenzweichen über einen Zeitraum von 12 Jahren. Die ersten drei führten zu Peitschen oder schlechten Trades. Eine anhaltende Tendenz begann mit dem vierten Crossover als ORCL bis Mitte der 20er Jahre. Erneut bewegen sich die durchschnittlichen Crossover-Effekte groß, wenn der Trend stark ist, erzeugen aber Verluste in Abwesenheit eines Trends. Preis-Crossover Moving-Durchschnitte können auch verwendet werden, um Signale mit einfachen Preis-Crossover zu generieren. Ein bullisches Signal wird erzeugt, wenn die Preise über dem gleitenden Durchschnitt liegen. Ein bäres Signal wird erzeugt, wenn die Preise unter dem gleitenden Durchschnitt liegen. Preis-Crossover können kombiniert werden, um innerhalb der größeren Trend Handel. 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 schon über dem längeren gleitenden Durchschnitt liegen. Dies würde den Handel im Einklang mit dem größeren Trend. Wenn zum Beispiel der Kurs über dem gleitenden 200-Tage-Durchschnitt liegt, würden sich die Chartisten nur auf Signale konzentrieren, wenn der Kurs über dem 50-Tage-Gleitender Durchschnitt liegt. Offensichtlich würde ein Schritt unterhalb der 50-Tage gleitenden Durchschnitt ein solches Signal vorausgehen, aber solche bearish Kreuze würden ignoriert, weil der größere Trend ist. Ein bearish Kreuz würde einfach vorschlagen, ein Pullback in einem größeren Aufwärtstrend. Ein Cross-Back über dem 50-Tage-Gleitender Durchschnitt würde einen Preisanstieg und eine Fortsetzung des größeren Aufwärtstrends signalisieren. Die nächste Tabelle zeigt Emerson Electric (EMR) mit dem 50-Tage EMA und 200-Tage EMA. Die Aktie bewegte sich über und hielt über dem 200-Tage gleitenden Durchschnitt im August. Es gab Dips unterhalb der 50-Tage-EMA Anfang November und wieder Anfang Februar. Die Preise schnell zurück über die 50-Tage-EMA zu bullish Signale (grüne Pfeile) in Harmonie mit dem größeren Aufwärtstrend. Im Indikatorfenster wird MACD (1,50,1) angezeigt, um Preiskreuze über oder unter dem 50-Tage-EMA zu bestätigen. Die 1-tägige EMA entspricht dem Schlusskurs. MACD (1,50,1) ist positiv, wenn das Schließen oberhalb der 50-Tage-EMA und negativ ist, wenn das Schließen unterhalb der 50-Tage-EMA liegt. Unterstützung und Widerstand Der Gleitende Durchschnitt kann auch als Unterstützung in einem Aufwärtstrend und Widerstand in einem Abwärtstrend dienen. Ein kurzfristiger Aufwärtstrend könnte Unterstützung nahe dem 20-tägigen einfachen gleitenden Durchschnitt finden, der auch in Bollinger-Bändern verwendet wird. Ein langfristiger Aufwärtstrend könnte Unterstützung nahe dem 200-tägigen einfachen gleitenden Durchschnitt finden, der der populärste langfristige bewegliche Durchschnitt ist. Wenn Tatsache, die 200-Tage gleitenden Durchschnitt bieten kann Unterstützung oder Widerstand, 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-Support zur Verfügung gestellt, mehrmals während des Vorhabens. Sobald der Trend mit einem Doppel-Top-Support-Pause umgekehrt, der 200-Tage gleitenden Durchschnitt als Widerstand um 9500 gehandelt. Erwarten Sie nicht genaue Unterstützung und Widerstand Ebenen von gleitenden Durchschnitten, vor allem längeren gleitenden Durchschnitten. Märkte werden durch Emotionen, die sie anfällig für Überschreitungen. Statt genauer Ebenen können gleitende Mittelwerte verwendet werden, um Unterstützungs - oder Widerstandszonen zu identifizieren. Schlussfolgerungen Die Vorteile der Verwendung von bewegten Durchschnitten müssen gegen die Nachteile gewogen werden. Moving-Durchschnitte sind Trend nach, oder nacheilende, Indikatoren, die immer einen Schritt hinter sich. Dies ist nicht unbedingt eine schlechte Sache. Immerhin ist der Trend ist dein Freund und es ist am besten, in die Richtung des Trends Handel. Die gleitenden Durchschnitte gewährleisten, dass ein Händler dem aktuellen Trend entspricht. Auch wenn der Trend ist dein Freund, verbringen die Wertpapiere viel Zeit in Handelsspannen, die gleitende Durchschnitte ineffektiv machen. Einmal in einem Trend, bewegte Durchschnitte halten Sie in, sondern geben auch späte Signale. Don039t erwarten, an der Spitze zu verkaufen und an der Unterseite mit bewegten Durchschnitten kaufen. Wie bei den meisten technischen Analysetools sollten die gleitenden Mittelwerte nicht allein verwendet werden, sondern in Verbindung mit anderen komplementären Tools. Chartisten können gleitende Durchschnitte verwenden, um den Gesamttrend zu definieren und dann RSI zu verwenden, um überkaufte oder überverkaufte Niveaus zu definieren. Hinzufügen von Bewegungsdurchschnitten zu StockCharts Diagrammen Gleitende Durchschnitte 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 auswählen. Der erste Parameter wird verwendet, um die Anzahl der Zeitperioden einzustellen. Ein optionaler Parameter kann hinzugefügt werden, um festzulegen, welches Preisfeld in den Berechnungen verwendet werden soll - O für die Open, H für High, L für Low und C für Close. Ein Komma wird verwendet, um Parameter zu trennen. Ein weiterer optionaler Parameter kann hinzugefügt werden, um die gleitenden Mittelwerte nach links (vorbei) oder nach rechts (zukünftig) zu verschieben. Eine negative Zahl (-10) würde den gleitenden Durchschnitt auf die linken 10 Perioden verschieben. Eine positive Zahl (10) würde den gleitenden Durchschnitt auf die rechten 10 Perioden verschieben. Mehrere gleitende Durchschnitte können die Preisplots überlagert werden, indem einfach eine weitere Overlay-Zeile zur Workbench hinzugefügt wird. StockCharts-Mitglieder können die Farben und den Stil ändern, um zwischen mehreren gleitenden Durchschnitten zu unterscheiden. Nachdem Sie eine Anzeige ausgewählt haben, öffnen Sie die erweiterten Optionen, indem Sie auf das kleine grüne Dreieck klicken. Erweiterte Optionen können auch verwendet werden, um eine gleitende mittlere Überlagerung zu anderen technischen Indikatoren wie RSI, CCI und Volumen hinzuzufügen. Klicken Sie hier für ein Live-Diagramm mit mehreren verschiedenen gleitenden Durchschnitten. Verwenden von Moving Averages mit StockCharts-Scans Hier finden Sie einige Beispielscans, die die StockCharts-Mitglieder verwenden können, um verschiedene gleitende Durchschnittssituationen zu scannen: Bullish Moving Average Cross: Diese Scans suchen nach Aktien mit einem steigenden 150-Tage-Durchschnitt und einem bullish Kreuz der 5 Tag EMA und 35-Tage EMA. Der 150-Tage gleitende Durchschnitt steigt, solange er über seinem Niveau vor fünf Tagen handelt. Ein bullish Kreuz tritt auf, wenn die 5-Tage-EMA bewegt sich über dem 35-Tage-EMA auf überdurchschnittlichen Volumen. Bearish Moving Average Cross: Diese Scans sucht nach Aktien mit einem fallenden 150-Tage einfachen gleitenden Durchschnitt und einem bärischen Kreuz der 5-Tage EMA und 35-Tage EMA. Der 150-Tage gleitende Durchschnitt fällt, solange er unter seinem Niveau vor fünf Tagen handelt. Ein bäriges Kreuz tritt auf, wenn die 5-Tage-EMA unterhalb der 35-Tage-EMA auf überdurchschnittlichem Volumen bewegt. Weitere Studie John Murphy039s Buch hat ein Kapitel gewidmet gleitende Durchschnitte und ihre verschiedenen Verwendungen. Murphy deckt die Vor-und Nachteile der gleitenden Durchschnitte. Darüber hinaus zeigt Murphy, wie bewegte Durchschnitte mit Bollinger Bands und kanalbasierten Handelssystemen funktionieren. Technische Analyse der Finanzmärkte John MurphyC Algorithmus für Null-Latenz-exponentiellen gleitenden Durchschnitt Letzte Änderung: 2012-08-13 Ich habe versucht, eine Niederfrequenz-Cutoff in c, die im Wesentlichen nimmt einen Strom von Zahlen und glättet die Ausgabe (Ausfiltern B. Hochfrequenzbewegungsjitter), jedoch ist es wichtig, dass die vorgewichteten Zahlen sofort betrachtet werden, da die Daten zeitkritisch sind (es ist die Steuerung einer Bewegungssimulationsbasis unter Verwendung der Ausgabe von einer kleinen Spielsoftware). Ive bekam einen funktionierenden gewichteten gleitenden Durchschnitt Algoithm, konnte aber mit etwas ein wenig mehr reagieren an der Vorderseite zu tun, und ich fand dies: - Der Pseudo-Code gibt es wie folgt: Eingaben: Preis (NumericSeries), Period (NumericSimple) Variablen: Faktor 2 (Periode 1) Verzögerung (Periode-1) 2 Ende sonst beginnen ZLEMA-Faktor (2Price-Pricelag) (1-Faktor) ZLEMA1 Ende Ive übersetzte es in Zu C und mein Code ist wie folgt: Allerdings scheint es nicht so zu verhalten, wie Id erwarten. Es scheint fast da, aber manchmal bekomme ich einen etwas niedrigeren Wert als alle Elemente in der Warteschlange (wenn sie alle höher sind). Meine Warteschlange und die Anzahl der Elemente in ihr als Parameter übergeben werden, mit der jüngsten an der Front zu allen Zeiten, auch ich passieren einen inkrementierenden Zähler beginnend bei 0, wie von der Funktion erforderlich. Ich bin nicht sicher, Ive interpretiert die Bedeutung von ZLEMA1 korrekt als seine nicht klar, in seinem Pseudocode, so dass Ive davon ausgegangen, dass die letzten Anrufe zlema und auch Im Annahme Preis tatsächlich bedeutet Price0. Vielleicht Ive erhielt dieses falsch Ich soll die wirklichen zlema berechneten Werte zurück zu meiner ursprünglichen Warteschlange vor dem folgenden Anruf kopieren Ich ändere nicht die ursprüngliche Warteschlange an allen anderen als nur, alle Werte eins bis zum Ende zu verschieben und das späteste am Anfang einzusetzen . Der Code, den ich verwenden, um dies zu tun ist: Wäre äußerst dankbar, wenn jemand mit einem besseren Verständnis der Mathematik könnte bitte Verstand überprüfen dies für mich zu sehen, ob Ive etwas etwas falsch Vielen Dank im Voraus, wenn Sie helfen können Erstens Dank allen für Ihre Eingabe, sehr geschätzt Das macht Sinn, denke ich, so nehme ich an, dann das Beste, das ich hoffen kann, ist einfach ein exponentieller gleitender Durchschnitt, akzeptiert wird es ein wenig Verzögerung, aber dies wird durch die schwerere Front Gewichtung als in typisch gewichtet gegeben minimiert werden Ich habe auch diesen Algorithmus, aber ein ähnliches Problem, dass die Werte nicht ganz richtig erscheinen (es sei denn, dies ist die Art der Formel). Zum Beispiel, sagen, mein Array enthält 16 Werte, alle 0.4775 - die Ausgabe ist 0.4983, aber Id erwarten, dass es 0.4775 Dies schaut nach rechts zu Ihnen. Exponentieller gleitender Durchschnitt. Statischer Schwimmerfaktor 0 statischer Schwimmer lastema 0 float ema if (currentSample lt 1) ema vals0 Faktor 2.0 ((float) numVals) 1.0) sonst ema (Faktor vals0) ((1.0 - Faktor) lastema) lastema ema return ema Umgekehrt, manchmal ist der Ausgang niedriger als jeder und jeder der Eingänge, auch wenn alle höher sind. Es wird auf die gleiche Weise wie zlema (.) Oben mit einem inkrementierenden Zähler aufgerufen. Die Formel und Pseudocode für diese sind hier: - autotradingstrategy. wordpress20091130exponential-moving-average Danke nochmals, entschuldigt sich für mein Missverständnis von einigen der Grundlagen: (Viele Grüße, Chris J Wie für den Code, den ich gepostet, youre Recht über die Array-Größe Situation: Die Filterkonstante ist eine Frequenzabschaltung. Ich habe eine digitale Signalverarbeitung (DSP) für diese Technik. De. wikipedia. orgwi kiLow-pas sfilter ist eine einfache Erklärung. Sie möchten die Discrete-Time-Realisierung. In meinem Fall ist die A die RC-Konstante, über die sie sprechen. Also die Frequenz, die es ausschneidet ist über 1 (2piA). Wenn Sie nicht über ein Verständnis von Frequency-Domain Theorie haben, kann dies kompliziert. In Ihrem Fall, Je höher Sie A, desto niedriger die Frequenz, die dieser Filter zulassen wird, bedeutet, dass es die Kurve aus mehr und mehr glätten wird. Je niedriger Sie es machen, desto mehr Rauschen ist im System erlaubt. Denken Sie daran, dass ein Muss größer oder gleich 1 wirksam sein muss. Ich habe die XLS wieder befestigt, diesmal ohne die wechselnden rand () Zahlen. Passen Sie die A-Konstante an und beobachten Sie, wie es quotsmoothsquot (oder filtert) die hochfrequenten Variationen. 2) Der letzte Punkt des Eingabefeldes hat den letzten Wert. 3) Gleiches gilt für das Ausgabe-Array. Der letzte ist der jüngste Wert. 5) Die NUMVALS ist beliebig. Sie können kontinuierlich auf die Eingabe-und Ausgabe-Array so oft wie youd wie hinzufügen und es würde nicht den Filter. Insbesondere verwendete ich 49 Punkte. Aber ich kann leicht löschen Sie die letzten 20 und die ersten 29 Ausgänge bleiben die gleichen. Die Funktion basiert nicht darauf, wie viele Punkte verwendet werden. Ich möchte erwähnen, dass ich diese Funktion für eine einmalige Konvertierung entwickelt habe. Wenn Sie eine Umwandlung für den nächsten Wert on the fly tun wollten, konnten Sie etwas einfacheres versuchen (wie angebracht). Wieder Im rostig auf c. Ich hoffe, das ist richtig. Das einzige, was Sie benötigen, um zu liefern ist die Eingangs - und Filterkonstante. Lassen Sie mich wissen, wenn dies hilft.

No comments:

Post a Comment