Gewichtsbewegungsdurchschnitt

Ich möchte gern einen exponentiell gewichteten gleitenden Durchschnitt mit Parametrierung, die hier auf einem Vektor in R definiert ist. Gibt es eine bessere Implementierung als mein erster Versuch unten. Mein erster Versuch war. In meinem zweiten Versuch dachte ich, dass ich es besser machen könnte durch Vektorisierung Ich glaube, ich wäre nicht überrascht von den Ergebnissen in meinem zweiten Versuch Es war ein ziemlich hässlicher Versuch der Vektorisierung Aber es muss so etwas geben, das sich bei meinem ersten Versuch richtig verbessert. Ich habe hier eine bessere Umsetzung gefunden und es angepasst Folgt DigEmAll war sehr nett mit einer Rcpp-Version, aber auch beachten Sie, dass man nur das TTR-Paket verwenden könnte, oder, wie der Autor bemerkt, die Stats-Filter-Ansatz, den ich in einem Beitrag auf der jetzt verstorbenen R Graph Gallery vor einem Jahrzehnt verwendet habe. Anyway, Eine schnelle Shootout-Shootout zeigt die Rcpp-Version so viel schneller, was wohl bedeutet, dass wir die Parametrierung falsch bekommen haben. Tatsächlich ist Lambda 0 5 ein außergewöhnlich starker Zerfall, der einer Halbwertszeit an einem Tag entsprechen würde, oder N 1 Wenn ich das benutze, Die Lücke ist noch breiter. Für Vollständigkeit, die ganze Datei, die nur Rcpp sourceCpp - ed. answered Mar 13 bei 22 30. Ich würde TTR EMA y, Verhältnis 0 5 für die Benchmark nicht, dass ich denke, es wird viel Unterschied machen Beachten Sie auch, dass TTR EMA macht ein bisschen mehr als Statistik-Filter und diese Rcpp-Version hat es einige Fehler-Überprüfung, Griffe führen NA und nutzt das und Reclass Paradigma, um intern behandeln viele verschiedene Arten von Objekten Joshua Ulrich Mar 13 um 22 58. Danke Für die Erinnerung über das Verhältnis Dirk Eddelbuettel Mar 13 um 23 46.Y Unsere Antwort.2017 Stack Exchange, Inc. Ich habe im Wesentlichen ein Array von Werten wie diese. Das oben genannte Array ist vereinfacht, ich s sammle 1 Wert pro Millisekunde in meinem realen Code und ich muss die Ausgabe auf einem Algorithmus verarbeiten, den ich schrieb zu finden Der nächstgelegene Gipfel vor einem Zeitpunkt Meine Logik scheitert, denn in meinem Beispiel oben ist 0 36 der echte Peak, aber mein Algorithmus würde nach hinten schauen und die letzte Nummer 0 25 als die Spitze sehen, da es eine Abnahme auf 0 24 vor Es ist das Ziel, diese Werte zu nehmen und einen Algorithmus an sie anzupassen, die sie ein bisschen glätten werden, so dass ich mehr lineare Werte habe, dh ich mag meine Ergebnisse, um curvy zu sein, nicht jaggedy. Ich wurde gesagt, um eine exponentielle anzuwenden Gleitende durchschnittliche Filter auf meine Werte Wie kann ich das tun Es ist wirklich schwer für mich, mathematische Gleichungen zu lesen, ich beschäftige mich viel besser mit Code. Wie verarbeite ich Werte in meinem Array und wende eine exponentielle gleitende durchschnittliche Berechnung an, auch sie out. asked 8. Februar 12 um 20 27.Um einen exponentiellen gleitenden Durchschnitt zu berechnen Müssen Sie einen Zustand um und Sie brauchen einen Tuning-Parameter Dies erfordert für eine kleine Klasse vorausgesetzt, Sie wieder mit Java 5 oder höher. Instantiate mit dem Zerfall Parameter, den Sie tun können, sollte die Abstimmung zwischen 0 und 1 und dann verwenden Sie durchschnittlich zu filtern. Beim Lesen einer Seite auf irgendeinem mathematischen Rezidiv, alles, was Sie wirklich wissen müssen, wenn Sie es in Code umwandeln, ist, dass Mathematiker gerne Indizes in Arrays und Sequenzen mit Indizes schreiben. Sie haben auch ein paar andere Notationen, was nicht hilft, aber die EMA Ist ziemlich einfach, da man sich nur an einen alten Wert erinnern muss 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 Sequenz um ein bisschen wegen der Grenzeffekte herumspringen werden, aber man bekommt 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 dritter und zweiter alter liste die dritte neue liste der durchschnitt von 1 5 und 1 4 f Ourth und drittens, und so weiter könnte ich es Zeitraum drei oder vier, oder n Nachricht, wie die Daten ist viel glatter Ein guter Weg, um gleitende Durchschnitte bei der Arbeit zu sehen ist, um Google Finance zu gehen, wählen Sie eine Aktie Tesla Motors ziemlich flüchtig TSLA und klicken Sie auf technische an der Unterseite des Diagramms Wählen Sie Moving Average mit einem bestimmten Zeitraum und Exponential gleitenden Durchschnitt, um ihre Unterschiede zu vergleichen. Exponential gleitenden Durchschnitt ist nur eine weitere Ausarbeitung von diesem, aber gewichtet die älteren Daten weniger als die neuen Daten dies ist Ein Weg, um die Glättung nach hinten vorzutragen Lesen Sie bitte 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 gehen Mit einem einfachen gleitenden Durchschnitt anstelle von exponentiellen Also die Ausgabe, die du bekommst, wäre die letzten x Begriffe geteilt durch x Ungetestete Pseudocode. Hinweis, dass du die Start - und Endteile der Daten behandeln musst, da du deutlich die letzten 5 Terme bezahlen kannst wenn du Sind auf Ihrem 2. Datenpunkt Auch gibt es effizientere Möglichkeiten zur Berechnung dieser gleitenden durchschnittlichen Summe Summe - älteste neueste, aber dies ist, um das Konzept, was s passiert über. Erwerben 8. Februar 12 bei 20 41.Is es möglich zu implementieren Ein gleitender Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Samples. Ich habe festgestellt, dass ich ein bisschen optimieren kann, indem ich eine Fenstergröße, die eine Macht von zwei, um Bit-Verschiebung statt zu teilen, aber nicht brauchen einen Puffer zu ermöglichen Sei nett Gibt es eine Möglichkeit, ein neues gleitendes durchschnittliches Ergebnis nur als eine Funktion des alten Ergebnisses und der neuen Probe auszudrücken. Define ein Beispiel gleitenden Durchschnitt, über ein Fenster von 4 Samples zu sein. Add neue Probe eA gleitenden Durchschnitt implementiert werden kann Rekursiv, aber für eine genaue Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingabe Probe in der Summe erinnern, dh die a in Ihrem Beispiel Für eine Länge N gleitenden Durchschnitt berechnen Sie. wobei ist das Ausgangssignal und xn das Eingangssignal Eq Ich kann rekursiv geschrieben werden Muss an die Probe x nN erinnern, um zu berechnen 2.As, die von Conrad Turner hervorgehoben werden, 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 Nicht ein normaler ungewichteter gleitender Durchschnitt, sondern ein exponentiell gewichteter gleitender Durchschnitt, bei dem die Samples in der Vergangenheit ein kleineres Gewicht bekommen, aber zumindest in der Theorie vergisst man niemals die Gewichte, die in der Vergangenheit immer kleiner und kleiner werden Gleitender Durchschnitt ohne Einzelposten-Speicher für ein GPS-Tracking-Programm Ich schrieb. Ich beginne mit 1 Probe und teilen durch 1, um die aktuelle avg. I dann fügen Sie anothe Probe und teilen durch 2 auf die aktuelle avg. Dies geht weiter, bis ich zu bekommen Die Länge des Durchschnittes. Jede Zeit danach, füge ich in die neue Probe, bekomm den Durchschnitt und entferne diesen Durchschnitt aus der total. Ich bin kein Mathematiker, aber das schien wie ein guter Weg, es zu tun Ich dachte, es würde den Magen drehen Von einem echten Mathe Kerl aber, es stellt sich heraus, es ist eine der akzeptierten Möglichkeiten, es zu tun Und es funktioniert gut Nur daran erinnern, dass je höher Ihre Länge Je langsamer es folgt, was Sie folgen wollen Das mag nicht die meiste Zeit, aber wenn nach Satelliten , Wenn du langsam bist, könnte die Spur weit von der tatsächlichen Position entfernt sein und es wird schlecht aussehen Du könntest eine Lücke zwischen dem Sat und den hinteren Punkten haben Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um ausreichende Glättung zu bekommen und nicht zu bekommen Zu weit von der tatsächlichen Sat-Position mit dem geglätteten Pfad dots. answered 16. November 16 at 23 03.initialize total 0, count 0 jedes Mal sehen einen neuen value. Then ein input scanf, man add add total newValue, ein increment count, one divide Durchschnittliche Gesamtzählung. Dies wäre ein gleitender Durchschnitt über alle Inputs. Um den Durchschnitt über nur die letzten 4 Eingänge zu berechnen, würde es 4 Eingabevariablen erfordern, vielleicht kopiert jeder Eingang in einen älteren Eingabevariablen und berechnet dann den neuen gleitenden Durchschnitt als Summe der 4 Inputvariables, geteilt Durch 4 richtige Schicht 2 wäre gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung. answered 3. Februar 15 um 4 06.That wird tatsächlich berechnen den Gesamtdurchschnitt und nicht der gleitende Durchschnitt Als Zählimpuls wird größer die Auswirkungen einer neuen Eingabe Probe wird verschwindend klein Hilmar 3. Februar 15 um 13 53. Ihre Antwort.2017 Stack Exchange, Inc.


Comments

Popular posts from this blog

Trading Binär Optionen Strategien Und Taktik Abe Cofnas Pdf

Trading System In Nse

Trading System Srl Milano