Ich habe im Wesentlichen ein Array von Werten wie folgt. Das oben genannte Array ist vereinfacht, ich sammle 1 Wert pro Millisekunde in meinem realen Code und ich muss die Ausgabe auf einem Algorithmus verarbeiten, den ich schrieb, um den nächstgelegenen Peak vor einem Zeitpunkt zu finden Logik scheitert, weil in meinem Beispiel oben, 0 36 ist die reale Spitze, aber mein Algorithmus würde nach hinten schauen und sehen die letzte Zahl 0 25 als die Spitze, da es eine Abnahme auf 0 24 vor it. The Ziel ist, diese Werte zu nehmen Und wendet einen Algorithmus an sie an, die sie ein bisschen glätten wird, damit ich mehr lineare Werte habe, dh ich mag meine Resultate, um curvy zu sein, nicht jaggedy. Ich wurde gesagt, um einen exponentiellen gleitenden durchschnittlichen Filter auf meine Werte anzuwenden Wie kann ich Tu es das ist es wirklich schwer für mich, mathematische Gleichungen zu lesen, ich befasse mich viel besser mit Code. Wie verarbeite ich Werte in meinem Array und wende eine exponentielle gleitende durchschnittliche Berechnung an, um sie auch auszumachen. 8. Februar um 20 27.Zur berechnen Ein exponentieller gleitender Durchschnitt musst du einen Zustand halten und du brauchst einen Tuning-Parameter. Dies verlangt eine kleine Klasse, die davon ausgeht, dass du Java 5 oder höher benutzt. Mit dem Zerfallsparameter, den du tun möchtest, soll das Tuning zwischen 0 und 1 und dann sein Verwenden Sie den Durchschnitt zu filtern. Wenn das Lesen einer Seite auf einige mathematische Wiederholung, alles, was Sie wirklich wissen müssen, wenn Sie es in Code ist, dass Mathematiker gerne Indizes in Arrays und Sequenzen mit Indizes schreiben Sie ve ein paar andere Notationen als auch, was doesn t Hilfe Allerdings ist die EMA ziemlich einfach, da Sie nur einen alten Wert erinnern müssen keine komplizierten Zustand Arrays erforderlich. answered Feb 8 12 bei 20 42. TKKocheran Ziemlich viel Isn t it nice, wenn die Dinge einfach sein können Wenn Sie mit einer neuen Sequenz beginnen, Bekomme einen neuen Mittelwert Hinweis, dass die ersten paar Begriffe in der gemittelten Sequenz um ein bisschen wegen der Grenzeffekte springen, aber du bekommst die mit anderen gleitenden Durchschnitten auch Allerdings ist ein guter Vorteil, dass man die gleitende durchschnittliche Logik in den Mittelwert einpacken kann Und experimentiere ohne zu stören den Rest deines Programms zu viel Donal Fellows Feb 9 12 bei 0 06.Ich habe eine harte Zeit, um Ihre Fragen zu verstehen, aber ich werde versuchen zu beantworten anyway.1 Wenn Ihr Algorithmus gefunden 0 25 statt 0 36, Dann ist es falsch Es ist falsch, weil es eine monotone Zunahme oder Abnahme annimmt, die immer nach oben geht oder immer hinuntergeht, es sei denn, du durchschnittst alle deine Daten, deine Datenpunkte, wie du sie präsentierst --- sind nichtlinear Wenn du es wirklich willst Um den maximalen Wert zwischen zwei Punkten in der Zeit zu finden, dann schneide dein Array von tmin zu tmax und finde das Maximum dieses Subarray.2 Jetzt ist das Konzept der gleitenden Durchschnitte sehr einfach vorstellen, dass ich die folgende Liste 1 4, 1 5 habe , 1 4, 1 5, 1 5 Ich kann es glätten, indem ich den Durchschnitt von zwei Zahlen 1 45, 1 45, 1 45, 1 5 Beachten Sie, dass die erste Zahl der Durchschnitt von 1 5 und 1 4 Sekunden und erste Zahlen ist Die zweite neue Liste ist der Durchschnitt von 1 4 und 1 5 Drittel und zweite alte Liste die dritte neue Liste der Durchschnitt von 1 5 und 1 4 vierte und dritte, und so weiter hätte ich es Zeitraum drei oder vier, oder n Hinweis Wie die Daten viel glatter ist Ein guter Weg, um gleitende Durchschnitte bei der Arbeit zu sehen ist, um zu Google Finance zu gehen, wählen Sie eine Aktie Tesla Motors ziemlich volatile TSLA und klicken Sie auf technische an der Unterseite des Diagramms Wählen Sie Moving Average mit einem bestimmten Zeitraum und Exponentieller gleitender Durchschnitt, um ihre Unterschiede zu vergleichen. Exponentieller gleitender Durchschnitt ist nur eine weitere Ausarbeitung von diesem, aber gewichtet die älteren Daten weniger als die neuen Daten, das ist ein Weg, um die Glättung in Richtung der Rückseite vorzuwerfen Bitte lesen Sie die Wikipedia-Eintrag. So, das ist mehr Ein Kommentar als eine Antwort, aber die kleine Kommentar-Box war nur zu winzigen Viel Glück. Wenn Sie Probleme mit der Mathematik haben, könnten Sie mit einem einfachen gleitenden Durchschnitt statt exponentiell Also die Ausgabe, die Sie erhalten würde die letzten x Begriffe geteilt werden Von x Ungetestetes Pseudocode. Hinweis, dass du die Anfangs - und Endteile der Daten behandeln musst, da du die letzten 5 Begriffe, wenn du auf deinem zweiten Datenpunkt bist, deutlich beurteilen kannst. Auch hier gibt es effizientere Berechnungsmethoden für diesen gleitenden Durchschnitt Summe - älteste neueste, aber dies ist, um das Konzept von dem, was passiert über. answered Feb 8 12 bei 20 41.Exponential Moving Average - EMA. BREAKING DOWN Exponential Moving Average - EMA. Die 12-und 26-Tage-EMAs sind Die beliebtesten kurzfristigen Mittelwerte, und sie werden verwendet, um Indikatoren wie die gleitende durchschnittliche Konvergenz Divergenz MACD und der Prozentsatz Preis Oszillator PPO Im Allgemeinen werden die 50-und 200-Tage-EMAs als Signale der langfristigen Trends verwendet Die die technische Analyse anwenden, finden sich in der Lage, bei der korrekten Anwendung sehr nützliche und aufschlussreiche, aber bei der Verwendung falsch angewendet zu werden, wenn sie falsch eingesetzt werden oder falsch interpretiert werden. Alle gleitenden Mittelwerte, die üblicherweise in der technischen Analyse verwendet werden, sind naturgemäß hintere Indikatoren. Folglich sind die Schlussfolgerungen aus der Anwendung eines Umzugs gezogen Durchschnittlich zu einem bestimmten Marktdiagramm sollte sein, um eine Marktbewegung zu bestätigen oder um seine Stärke anzugeben Sehr oft, bis zu der Zeit, in der eine gleitende durchschnittliche Indikatorlinie eine Änderung vorgenommen hat, um einen bedeutenden Marktzugang zu reflektieren, hat der optimale Punkt des Markteintritts bereits Bestanden Eine EMA dient dazu, dieses Dilemma zu einem gewissen Grad zu lindern Weil die EMA-Berechnung mehr Gewicht auf die neuesten Daten legt, umarmt sie die Preisaktion ein bisschen fester und reagiert daher schneller Dies ist wünschenswert, wenn eine EMA verwendet wird, um ein Handelseingangssignal abzuleiten. Interpreting der EMA. Like alle gleitenden durchschnittlichen Indikatoren, sind sie viel besser geeignet für Trending-Märkte Wenn der Markt in einem starken und anhaltenden Aufwärtstrend ist, wird die EMA-Indikatorlinie auch einen Aufwärtstrend und umgekehrt für einen Down-Trend zeigen. Ein wachsamer Trader wird Achten Sie nicht nur auf die Richtung der EMA-Linie, sondern auch auf das Verhältnis der Änderungsrate von einer Bar zur nächsten. Zum Beispiel, wenn die Preiswirkung eines starken Aufwärtstrends beginnt zu glätten und umzukehren, ist die Änderungsrate der EMA von Ein bar zum nächsten wird beginnen zu verkleinern bis zu diesem Zeitpunkt, dass die Indikatorlinie abflacht und die Änderungsrate Null ist. Wegen der nacheilenden Wirkung, bis zu diesem Punkt oder sogar ein paar Takte vorher, sollte die Preisaktion bereits umgekehrt haben Daraus folgt, dass die Beobachtung einer konsequenten Verminderung der Änderungsrate der EMA selbst als Indikator verwendet werden könnte, der dem Dilemma, das durch die nacheilende Wirkung von bewegten Durchschnitten verursacht wurde, weiter entgegenwirken könnte. Die Verwendung der EMA. EMAs wird üblicherweise in Verbindung mit anderen Indikatoren verwendet Um signifikante Marktbewegungen zu bestätigen und ihre Gültigkeit zu beurteilen Für Händler, die intraday und schnell bewegte Märkte handeln, ist die EMA mehr anwendbar Sehr häufig Händler verwenden EMAs, um eine Handelsvorspannung zu bestimmen Wenn zum Beispiel eine EMA auf einer Tageskarte eine starke Aufwärtsbewegung zeigt Trend, eine Intraday-Trader-Strategie kann es sein, nur von der langen Seite auf einem Intraday-Chart zu handeln. Wenn die Leistung dieses Codes kritisch ist, dann könnte es sinnvoll sein, Haufen-Zuweisungen für Kerzen zu vermeiden Ich denke, die vernünftigste Art, das zu tun Würde Kerze in eine Struktur verwandeln. Obwohl veränderliche Werttypen böse sind, würde ich auch die Kerze umgestalten, um unveränderlich zu sein. Das bedeutet auch, dass die Implementierung von newestCandle sich wahrscheinlich in ein Paar Doppelfelder ändern muss, oder alternativ ein separates, veränderliches und Rücksetzbare Klasse. Ich sehe keine andere potenzielle Leistung Problem in Ihrem Code Aber wenn es um Leistung geht, sollten Sie immer auf Profiling verlassen, nicht Ihre oder jemand anderes s intuition. Also, ich don t wie einige Namen Ihrer Methoden Speziell. ValueUpdated Methodennamen sollten in der Regel in der Form etwas tun, nicht etwas passiert Also ich denke, ein besserer Name wäre UpdateValue. Add Ändern Dies sind die beiden grundlegenden Operationen von Ihrem MovingAverage und ich denke, dass diese Namen don t drücken die Bedeutung gut ich würde Nennen sie so etwas wie MoveAndSetCurrent und SetCurrent, obwohl diese Namensgebung anzeigt, dass die grundlegenden Operationen eher Move und SetCurrent sein sollten.
No comments:
Post a Comment