Skip to main content

Exponentiell Gleitender Durchschnitt Java Code

Was ist AvgOldValue jetzt (nein, it39s nicht in Ihrem Code definiert) Bitte don39t gelten sloppy quothot fixquot Bearbeitungen an den geposteten Code, dass nur mehr Fehler einzuführen. Pfosten Sie den realen Code, den Sie verwenden. Don39t erstellen einige spezielle Version Sie abgeleitet, um hier posten. Geben Sie uns die reale Sache. Auf diese Weise erhalten Sie eine echte Überprüfung. Ndash I39ll Kommentare hinzufügen morgen Aug 31 16 am 23:08 Ihre Variablennamen sind alle Sub-Par. Warum die unnötigen Präfixe (f. e. lValue) Hier ist meine einfache und ultimative Tipp, wenn es um Namen: Nennen Sie Dinge nach dem, was sie tun oder was sie enthalten. Und meine ultimative Regel: Sie haben nie erlaubt, einen Buchstaben Variablennamen verwenden, mit der einzigen Ausnahme sind Dimensionen. Das ist ein Paradebeispiel für einen nicht hilfreichen Kommentar. Insgesamt sehe ich nicht, warum Ihre Klasse statisch ist. Es scheint, wie es wird wie eine Instanzklasse verwendet werden, aber Sie wollen nicht die Referenz um, Sie haben einfach ein Singleton hier passieren. Betrachten Sie das Erstellen einer Instanzklasse und übergeben Sie dann die Referenzinstanz an die Threads, die diese Instanz teilen. Ich habe im Wesentlichen ein Array von Werten wie folgt: Das obige Array ist vereinfacht, Im sammeln 1 Wert pro Millisekunde in meinem realen Code und ich muss die Verarbeitung Ausgabe auf einem Algorithmus, den ich schrieb, um den nächsten Peak vor einem Zeitpunkt zu finden. Meine Logik schlägt fehl, weil in meinem Beispiel oben 0.36 die wahre Spitze ist, aber mein Algorithmus würde rückwärts schauen und sehen die sehr letzte Zahl 0.25 als die Spitze, als theres eine Abnahme zu 0.24 vor ihm. Das Ziel ist, diese Werte zu nehmen und einen Algorithmus auf sie, die glätten sie ein wenig, so dass ich mehr lineare Werte. (Dh: Id wie meine Ergebnisse curvy, nicht jaggedy) Ive wurde gesagt, um einen exponentiellen gleitenden durchschnittlichen Filter auf meine Werte anzuwenden. Wie kann ich dies tun Es ist wirklich schwer für mich, mathematische Gleichungen zu lesen, gehe ich viel besser mit Code. Wie verarbeite ich Werte in meinem Array, die Anwendung einer exponentiellen gleitenden Durchschnittsberechnung, um sie herauszufordern, um einen exponentiellen gleitenden Durchschnitt zu berechnen. Müssen Sie einige Zustand zu halten und Sie benötigen einen Tuning-Parameter. Dies erfordert eine kleine Klasse (vorausgesetzt, Sie verwenden Java 5 oder höher): Instantiate mit dem Decay-Parameter, die Sie wollen (kann Abstimmung sollte zwischen 0 und 1) und dann mit Average () zu filtern. Beim Lesen einer Seite auf einige mathematische Rekursion, alles, was Sie wirklich wissen müssen, wenn Sie es in Code ist, dass Mathematiker gerne Indizes in Arrays und Sequenzen mit Indizes schreiben. (Theyve einige andere Anmerkungen außerdem, die nicht helfen.) Jedoch ist die EMA ziemlich einfach, da Sie nur an einen alten Wert erinnern müssen, der keine komplizierten Zustandarrays erfordert. Beantwortet Feb 8 12 at 20:42 TKKocheran: Ziemlich viel. Isn39t es schön, wenn die Dinge einfach sein können (Wenn Sie mit einer neuen Sequenz beginnen, erhalten Sie einen neuen Mittelwert.) Beachten Sie, dass die ersten paar Begriffe in der durchschnittlichen Sequenz wird ein bisschen durch Randeffekte springen, aber Sie erhalten die mit anderen gleitenden Durchschnitten auch. Allerdings ist ein guter Vorteil, dass Sie die gleitende durchschnittliche Logik in die Mittelung einwickeln und experimentieren können, ohne den Rest des Programms zu viel zu stören. Ndash Donal Fellows Ich habe eine harte Zeit, Ihre Fragen zu verstehen, aber ich werde versuchen, trotzdem zu beantworten. 1) Wenn Ihr Algorithmus 0,25 statt 0,36 gefunden hat, dann ist es falsch. Es ist falsch, weil es eine monotone Zunahme oder Abnahme (das ist immer nach oben oder immer nach unten). Wenn Sie ALLE Ihre Daten nicht klassifizieren, sind Ihre Datenpunkte - wie Sie sie darstellen - nichtlinear. Wenn Sie wirklich den maximalen Wert zwischen zwei Zeitpunkten finden wollen, dann schneiden Sie Ihr Array von tmin zu tmax und finden Sie das Maximum dieses Unterarrays. 2) Nun ist das Konzept der gleitenden Durchschnitte sehr einfach: vorstellen, dass ich die folgende Liste haben: 1.4, 1.5, 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 ist der Durchschnitt von 1,5 und 1,4 (zweite und erste Zahlen) die zweite (neue Liste) ist der Durchschnitt von 1,4 und 1,5 (dritte und zweite alte Liste) die dritte (neue Liste) der Durchschnitt von 1,5 und 1,4 (Vierte und dritte), und so weiter. Ich könnte es Zeitraum drei oder vier gemacht haben, oder n. Beachten Sie, wie die Daten viel glatter. Ein guter Weg, um zu sehen, gleitende Durchschnitte bei der Arbeit ist, gehen Sie zu Google Finance, wählen Sie eine Aktie (versuchen Tesla Motors ziemlich volatil (TSLA)) und klicken Sie auf Technische Daten am unteren Rand des Diagramms. Wählen Sie Moving Average mit einer bestimmten Periode und Exponential gleitenden Durchschnitt, um ihre Differenzen zu vergleichen. Exponentielle gleitende Durchschnitt ist nur eine weitere Ausarbeitung dieser, aber Gewichte die älteren Daten weniger als die neuen Daten ist dies ein Weg, um die Glättung nach hinten auszugleichen. Bitte lesen Sie den Wikipedia-Eintrag. Also, dies ist eher ein Kommentar als eine Antwort, aber die kleine Kommentar-Box war nur zu klein. Viel Glück. Wenn Sie Probleme mit der Mathematik haben, könnten Sie mit einem einfachen gleitenden Durchschnitt statt exponentiell gehen. Also die Ausgabe erhalten Sie die letzten x-Terme durch x geteilt werden. Ungetestetes Pseudocode: Beachten Sie, dass Sie die Anfangs - und Endteile der Daten behandeln müssen, da deutlich, dass Sie die letzten 5 Ausdrücke nicht durchschnittlich sind, wenn Sie auf Ihrem 2. Datenpunkt sind. Außerdem gibt es effizientere Methoden, diesen gleitenden Durchschnitt (sum sum - älteste neueste) zu berechnen, aber dies ist, um das Konzept von dem, was passiert, zu bekommen. Antwort # 1 am: August 20, 2010, 07:12:01 am »Ein Client fragte mich, den anderen Tag, wenn DTrace verwendet werden könnte, um einen gleitenden Durchschnitt aufrechtzuerhalten. Gut, ja, es kann. DTrace hat eine sehr leistungsfähige eingebaute Unterstützung für verschiedene Arten von Aggregationen. Einschließlich der Unterstützung für die Aufrechterhaltung eines Durchschnittswertes, die das Schreiben dieser Art von Code childs spielen macht. Heres ein einfaches Code-Snippit, das den durchschnittlichen freien Speicher anzeigt, seit das dtrace-Skript gestartet wurde: Diese Mittelungsfunktion gibt Ihnen einen Durchschnitt, seit das DTrace-Skript gestartet wurde, was ideal für Scripte mit einer begrenzten Lebensdauer ist. Aber wenn Sie ein System über einen längeren Zeitraum überwachen, dann ist die Mittelungsfunktion nicht so nützlich - die jüngsten Änderungen werden von allen älteren Daten ausgeflutet. Für diese Art von Maßnahme Sie in der Regel etwas wie ein rollenden oder gleitenden Durchschnitt, die Ihnen den Durchschnitt über die letzten N Proben. Wenn eine neue Probe kommt, müssen Sie die älteste Probe wegwerfen, die neue Probe hinzufügen und den Durchschnitt neu berechnen. DTrace Aggregationen nicht direkt helfen Ihnen, diese Arbeitsgruppe zu halten, müssen Sie es selbst zu halten. Sie können dieses Arbeitsset in einer Aggregation oder einem assoziativen Array speichern. Aber da die Größe der Menge youre Mittelung über vordefiniert ist, können Sie auch ein skalares Array verwenden. Und anstatt, den Durchschnitt über dem Array bei jedem Beispiel neu zu berechnen, wenn youre intelligenter Sie eine laufende Summe aller Proben im Satz beibehalten und Differenzen berechnen. Wenn Sie einen Eintrag im Array ersetzen, subtrahieren Sie ihn von der Summe, und wenn Sie das neue Sample zum Array hinzufügen, fügen Sie es der Summe hinzu. Dann ist der Durchschnitt nur die Summe dividiert durch die Anzahl der Abtastwerte. viel schneller. Heres einige Beispielcode, der die Aufrechterhaltung eines gleitenden Mittels des freien Gedächtnisses auf dem Kasten demonstriert: Und heres die Ausgabe. Beachten Sie, wie die Anzahl der Proben bei N (N10) ausfällt. Wenn Sie dies auf einer Grafik mit etwas wie das DTrace Chime Visualisierung Tool gezeichnet. Sie erwarten, dass mehr Instabilität anfangs zu sehen, wenn die Stichprobenanzahl kleiner als N ist, und dann haben die gleitenden Mittel sinken aufgrund der erhöhten Dämpfung der Mittelung über den Arbeitssatz. Um zu vermeiden, daß die letzten N Abtastwerte verfolgt werden müssen, ist es auch möglich, etwas andere Mittelungsverfahren zu verwenden, die über alle historischen Abtastwerte mittelbar sind, jedoch mit einer Vorherrschaft, die den neueren Daten, wie einem gewichteten gleitenden Durchschnitt oder einem exponentiellen Bewegen, vorherrscht durchschnittlich. Unten ist ein einfacher DTrace-Beispielcode für einen exponentiellen gleitenden Durchschnitt. Sie können die Gewichtungen entsprechend der Stichprobenperiode anpassen, die Sie signifikant halten möchten. Beachten Sie, dass der Wert des Mittelwerts richtig initialisiert werden muss, andernfalls wird die Mittelung eine falsche Nullprobe enthalten.


Comments

Popular posts from this blog

Finanzas Forex 2013 Dodge

Vielen Dank, dass Sie sich mit der United States Attorneys Office bezüglich Ihrer Investition bei Evolution Marketing Group (EMG) in Verbindung gesetzt haben. Die Bundesregierung fährt fort, die Operationen von EMG zu untersuchen und arbeitet, um Mittel zu finanzieren, um zu den verletzten Investoren zurückzukehren. Bitte beachten Sie, dass die Vereinigten Staaten nicht in der Lage sind, Gelder für die Opfer freizugeben, bis eine Einziehungsverfügung in den Vereinigten Staaten begünstigt wird, nachdem der Beschluss der Zivilverletzung oder der Strafverfolgung eingelegt wurde. Gracias von comunicarse con la Oficina von Fiscalia Evolution Marketing Group (EMG) in der Bundesrepublik Deutschland. El gobierno föderalen contina su investigacin sobre las operaciones de EMG y est trabajando und recuperar fondos para devolver ein los inversionistas afectados. Anmerkung, por Bevorzugung, que el gobierno kein puede absolver los fondos apoderados a las victimas hasta que una resolucin, ya Meer con

Panduan Pemula Forex

8220Saya tidak tahan Melihat ada tinta merah di kolom laba Rugi, 8221 seorang Diva bergidik dalam sebuah wawancara. 8220Saya seorang stier, antenne akan bereaksi dengan warna merah, 8221 sambungnya. 8221 Jika Saya Melihat warna merah, Saya Akan menjual saham Saya secepatnya.8221 Barbra Streisand Pernahkah Anda menemukan pengendara mobil Yang tidak pernah mengalami Kempes Selama hidupnya verbieten. Syangnya, Anda Pasti sulit untuk menemukan der luky Mann seperti itu. Begtu juga dalam perdagangan saham, tidak ada investor yang selalu untung sepanjang hidupnya. Kalaupun dia sukses, pasti kerugiannya lebih sedikit dari keuntungannnya. Kalaupun sering untung, salah satu strategi andalan mereka adalah schnittverlust, berani memotong kerugian agar kerugian tidak semakin dalam. Schneiden Verlust menjadi startegi efektif saat kondisi pasar sedang bearish atau absturz. Schnittverlust merupakan keputusan yang paling berat karena anda harus merealisasikan kerugian. Bisa dibayangkan jika bursa Abst