Tuesday 14 November 2017

Einfach Beweglich Durchschnittlich Java


Simple Moving Average - SMA. BREAKING DOWN Simple Moving Average - SMA. Ein einfacher gleitender Durchschnitt ist anpassbar, da er für eine andere Anzahl von Zeiträumen berechnet werden kann, einfach durch Hinzufügen des Schlusskurses der Sicherheit für eine Anzahl von Zeiträumen und Dann dividiert diese Summe durch die Anzahl der Zeiträume, die den durchschnittlichen Preis der Sicherheit über den Zeitraum gibt Ein einfacher gleitender Durchschnitt glättet die Volatilität und macht es einfacher, den Preisverlauf eines Wertpapiers zu sehen Wenn der einfache gleitende Durchschnitt aufgibt , Das bedeutet, dass die Sicherheit s Preis steigt Wenn es nach unten zeigt bedeutet, dass die Sicherheit s Preis sinkt Je länger der Zeitrahmen für den gleitenden Durchschnitt, desto glatter die einfache gleitende Durchschnitt Ein kürzerfristig gleitenden Durchschnitt ist mehr flüchtig, aber Seine Lesung ist näher an den Quelldaten. Analytical Significance. Moving Durchschnitte sind ein wichtiges analytisches Werkzeug verwendet, um aktuelle Preisentwicklungen und das Potenzial für eine Veränderung in einem etablierten Tre zu identifizieren Nd Die einfachste Form der Verwendung eines einfachen gleitenden Durchschnitts in der Analyse ist es, um schnell zu identifizieren, ob eine Sicherheit in einem Aufwärtstrend oder Abwärtstrend ist Ein weiteres beliebtes, wenn auch etwas komplexere analytische Werkzeug, ist es, ein Paar von einfachen gleitenden Durchschnitten mit jeder Abdeckung anders zu vergleichen Zeitrahmen Wenn ein kurzfristiger einfacher gleitender Durchschnitt über einem längerfristigen Durchschnitt liegt, wird ein Aufwärtstrend erwartet. Auf der anderen Seite signalisiert ein langfristiger Durchschnitt über einem kürzeren Durchschnitt eine Abwärtsbewegung im Trend. Popular Trading Patterns. Zwei populäre Handelsmuster, die einfache gleitende Durchschnitte verwenden, schließen das Todeskreuz und ein goldenes Kreuz ein Todeskreuz tritt auf, wenn der 50-tägige einfache gleitende Durchschnitt unter dem 200-Tage-gleitenden Durchschnitt übergeht. Dies gilt als ein bärisches Signal, dass weitere Verluste auf Lager sind Das goldene Kreuz tritt auf, wenn ein kurzfristiger gleitender Durchschnitt über einen langfristigen gleitenden Durchschnitt bricht. Verstärkt durch hohe Handelsvolumina, kann dies signalisieren, dass weitere Gewinne im Laden sind. Ich habe im Wesentlichen ein Array Von Werten wie diese. Das obige 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 Meine Logik scheitert, weil in meinem Beispiel oben, 0 36 ist der echte Peak, aber mein Algorithmus würde rückwärts schauen und die letzte Nummer 0 25 als die Spitze sehen, da es eine Abnahme auf 0 24 vor ihm gibt. Das Ziel ist, diese Werte zu nehmen und einen Algorithmus anzuwenden Sie, die sie ein bisschen glätten werden, so dass ich mehr lineare Werte habe, dh ich möchte meine Ergebnisse, um curvy zu sein, nicht jaggedy. Ich wurde gesagt, um einen exponentiellen gleitenden durchschnittlichen Filter auf meine Werte anzuwenden Wie kann ich das tun Es ist wirklich Hart für mich, um mathematische Gleichungen zu lesen, behandle ich viel besser mit Code. Wie verarbeite ich Werte in meinem Array, mit einer exponentiellen gleitenden durchschnittlichen Berechnung, um sie auch out. asked Feb 8 12 am 20 27.To berechnen einen exponentiellen gleitenden Durchschnitt Sie Muss einen Zustand behalten und du brauchst einen Tuning-Parameter Dies erfordert eine kleine Klasse vorausgesetzt, Sie re verwenden Java 5 oder später. Instantiate mit dem Zerfall Parameter, den Sie tun können, sollte Tuning zwischen 0 und 1 und dann verwenden Sie durchschnittlich zu filtern. Wenn das Lesen einer Seite auf einige mathmatischen Wiederholung, alles, was Sie wirklich Muss wissen, wann es in Code umgewandelt wird, dass Mathematiker gerne Indizes in Arrays und Sequenzen mit Indizes schreiben Sie ve ein paar andere Notationen als auch, die doesn t helfen 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, erhalten Sie einen neuen Mittelwert Hinweis, dass die ersten paar Begriffe in der gemittelten Reihenfolge umspringen wird Ein bisschen wegen Boundary-Effekte, aber man bekommt die mit anderen gleitenden Durchschnitten auch Allerdings ist ein guter Vorteil, dass man die gleitende durchschnittliche Logik in den Mittelalter einpacken und experimentieren kann, ohne den Rest des Programms zu stören Viel Donal Fellows Feb 9 12 bei 0 06.Ich habe eine harte Zeit, Ihre Fragen zu verstehen, aber ich werde versuchen, irgendwie zu antworten.1 Wenn Ihr Algorithmus 0 25 statt 0 36 gefunden hat, dann ist es falsch Es ist falsch, weil es annimmt Eine monotone Zunahme oder Abnahme, 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 wirklich den Maximalwert zwischen zwei Zeitpunkten finden willst , 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, 1 4, 1 5, 1 5 I habe Kann es glatt, indem man den Durchschnitt von zwei Zahlen 1 45, 1 45, 1 45, 1 5 Beachten Sie, dass die erste Zahl ist der Durchschnitt von 1 5 und 1 4 Sekunden und erste Zahlen 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 vierten und dritten, und so weiter hätte ich es Zeitraum drei oder Vier, oder n Beachten Sie, 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 Eine vorgegebene Periode 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 ist dies ein Weg, um die Glättung nach hinten vorschneiden Bitte lesen Sie den Wikipedia-Eintrag. Also, 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 gehen Also die Ausgabe, die Sie bekommen würde Die letzten x Begriffe geteilt durch x Ungetestete Pseudocode. Hinweis, dass Sie die Start-und End-Teile der Daten zu behandeln, da klar können Sie t durchschnittlich die letzten 5 Begriffe, wenn Sie auf Ihrem 2. Datenpunkt sind Auch gibt es effizientere Möglichkeiten O F berechnen diese gleitende durchschnittliche Summe Summe - älteste neueste, aber dies ist, um das Konzept, was s passiert über. Erwerben 8. Februar 12 um 20 41. Eine einfache Umzugsdurchschnitt Umsetzung in Java. On mehrere Gelegenheiten, die ich wollte, um einfache Metriken zu berechnen In meinem Java-Anwendungen, zum Beispiel die Anzahl der Hits pro Stunde oder Fehler während eines Zeitraums Während die Berechnung einfacher Metriken ist nicht schrecklich schwierig, es ist nur extra Arbeit und ich d lieber diese Zeit auf die Problem-Domain Ich war überrascht, nicht zu verbringen Finden Sie alle weithin akzeptierten Lösungen für Metriken in Java Ich habe Metriken gefunden, aber es schien ein bisschen zu kompliziert und nicht gut dokumentiert - Alles, was ich wirklich wollte, war, einen gleitenden Durchschnitt zu berechnen, dachte ich an das Problem etwas mehr und entschied, dass es nicht schwierig ist Problem Hier ist meine Lösung. Dies funktioniert durch die Schaffung einer Reihe von Fenster Update-Frequenz Größe, dann ein Thread setzt die Zählung auf den nächsten Index im Array auf der Update-Frequenz Die Zählung für das Intervall ist einfach Array i-Array i 1 , Das ist die jüngste Zählung abzüglich der ältesten Zählung Für ein 10-Minuten-Intervall ist die älteste Zählung i 1 genau 10 Minuten alt. Um einen gleitenden Durchschnitt zu unserem Code hinzuzufügen, benötigen wir einen Zähler mit AtomicLong. Dieser Zähler sollte sein Inkrementiert auf der Grundlage der Ereignisse, die Sie interessiert in Computing zB POST-Anfragen für einen REST-Service. Wir müssen die Implementierung mit Zugriff auf den Zähler und das wird durch die GetCount-Schnittstelle erreicht Hier werde ich einen gleitenden Durchschnitt mit einem 5-Minuten-Fenster, dass Updates jede Sekunde. Und um den aktuellen Durchschnitt zu erhalten, rufen wir einfach die getAverage-Methode an. Ein wichtiges Implementierungsdetail ist, wie die Arraygröße durch das Teilen des Fensters durch die Aktualisierungsfrequenz bestimmt wird. So kann ein großes Fenster mit einer häufigen Aktualisierungsfrequenz einen signifikanten Betrag verbrauchen Des Speichers In diesem Beispiel ist die Arraygröße vernünftig 300 Wenn wir jedoch einen 24-Stunden-Gleitender Durchschnitt mit einem Intervall von 1 Sekunde erstellt haben, wäre die Größe 86400 A eine vernünftigere Aktualisierungshäufigkeit für eine 24 Stunden-Zeitraum könnte alle 5 Minuten Array-Größe von 288.Another Betrachtung der Wahl des Fensters und Update-Frequenz ist das Fenster muss durch die Frequenz teilbar sein Zum Beispiel ein 2 Minuten-Fenster mit einer 6 Sekunden Update-Frequenz ist ok, aber ein 7 Sekunden Update Häufigkeit ist nicht, da es nicht durch 120 teilbar ist Eine IllegalArgumentException wird ausgelöst, wenn die Fenstermodulaktualisierungsfrequenz nicht Null ist. Diese Implementierung erfordert einen Thread pro gleitenden Durchschnitt, was nicht sehr effizient ist. Eine bessere Lösung wäre, einen Thread über viele zu teilen Durchschnitte Aktualisiere ich habe den Code aktualisiert, um einen Thread hier zu teilen. Lastly gibt es ein anfängliches Zustandproblem, das wir noch keine Daten für das gesamte Fenster haben. Zum Beispiel wenn du ein 5 Minuten Fenster und nur 15 Sekunden Daten hast Diese Implementierung gibt null zurück Bis wir 5 Minuten Daten haben Ein weiterer Ansatz ist, den Durchschnitt zu schätzen Angenommen, wir haben eine Zählung von 10 in 30 Sekunden, dann können wir den Durchschnitt als 40 in 2 Minuten schätzen. Allerdings besteht die Gefahr von signif Icant Fehler durch Extrapolieren unvollständiger Daten Zum Beispiel, wenn wir hatten einen Burst von 20 Hits in 2 Sekunden, wir d schätzen 1200 pro 2 Minuten, was aller Wahrscheinlichkeit ist weit weg ist.

No comments:

Post a Comment