Skip to main content

C Gleitenden Mittelwert Algorithmus

Ist es möglich, einen gleitenden Durchschnitt in C ohne die Notwendigkeit für ein Fenster von Proben Ive gefunden, dass ich ein bisschen optimieren kann, indem Sie eine Fenstergröße, die eine Macht von zwei für Bit-Verschiebung statt zu teilen, aber nicht brauchen zu ermöglichen Ein Puffer wäre schön. Gibt es eine Möglichkeit, ein neues gleitendes Durchschnittsergebnis nur als Funktion des alten Ergebnisses und des neuen Beispiels auszudrücken, definieren Sie einen beispielhaften gleitenden Durchschnitt in einem Fenster von 4 Proben: Add new sample e: Ein gleitender Durchschnitt kann rekursiv implementiert werden , Aber für eine exakte Berechnung des gleitenden Durchschnitts müssen Sie sich an die älteste Eingangsabfrage in der Summe (dh die a in Ihrem Beispiel) erinnern. Für einen N-gleitenden Durchschnitt berechnen Sie: wobei yn das Ausgangssignal und xn das Eingangssignal ist. Gl. (1) können rekursiv geschrieben werden, also müssen Sie sich stets an die Stichprobe xn-N erinnern, um (2) zu berechnen. Wie von Conrad Turner angemerkt, können Sie stattdessen ein (unendlich langes) exponentielles Fenster verwenden, mit dem Sie die Ausgabe nur aus dem vergangenen Ausgang und dem aktuellen Eingang berechnen können. Dies ist jedoch kein normaler (ungewichteter) gleitender Durchschnitt, sondern ein exponentieller Wert Gewogenen gleitenden Durchschnitt, wo die Proben in der Vergangenheit ein geringeres Gewicht erhalten, aber (zumindest in der Theorie) man nie etwas vergessen (die Gewichte nur kleiner und kleiner für Proben weit in der Vergangenheit). Ich habe einen gleitenden Durchschnitt ohne einzelnen Element-Speicher für ein GPS-Tracking-Programm, das ich geschrieben habe. Ich beginne mit 1 Probe und dividiere durch 1, um die aktuelle Durchschn. Ich füge dann anothe Probe und dividiere durch 2 zu den aktuellen Durchschn. Das geht so lange weiter, bis ich auf die Länge des Durchschnitts komme. Jedes Mal danach, füge ich in der neuen Probe, erhalten Sie den Durchschnitt und entfernen Sie diesen Durchschnitt aus der Gesamtmenge. Ich bin kein Mathematiker, aber das schien ein guter Weg, es zu tun. Ich dachte, es würde den Magen eines echten Mathematik-Kerl, aber es stellt sich heraus, es ist eine der akzeptierten Möglichkeiten, es zu tun. Und es funktioniert gut. Denken Sie daran, dass je höher Ihre Länge, desto langsamer folgt es, was Sie folgen wollen. Das kann nicht die meiste Zeit, aber wenn folgende Satelliten, wenn Sie langsam sind, könnte die Spur weit von der tatsächlichen Position und es wird schlecht aussehen. Sie könnten eine Lücke zwischen dem Sat und den nachfolgenden Punkten haben. Ich wählte eine Länge von 15 aktualisiert 6 mal pro Minute, um eine ausreichende Glättung und nicht zu weit von der tatsächlichen Sat-Position mit den geglätteten Spur Punkte erhalten. Antwort # 2 am: November 16, 2010, um 23:03 Uhr Initialisierung insgesamt 0, count0 (jedes Mal, wenn ein neuer Wert dann ein Eingang (scanf), ein add totalnewValue, ein Inkrement (count), ein dividieren Durchschnitt (totalcount) Dies wäre ein gleitender Durchschnitt über Alle Eingänge Um den Durchschnitt über nur die letzten 4 Eingänge zu berechnen, benötigen Sie 4 Inputvariablen, vielleicht kopieren Sie jeden Eingang zu einem älteren inputvariable und berechnen dann den neuen gleitenden Durchschnitt als Summe der 4 Inputvariablen, geteilt durch 4 (Rechtsverschiebung 2 wäre Gut, wenn alle Eingänge waren positiv, um die durchschnittliche Berechnung beantwortet werden 3. Februar um 4:06 Das wird tatsächlich berechnen den Gesamtdurchschnitt und nicht den gleitenden Durchschnitt. Wenn Zähler größer wird der Einfluss eines neuen Eingangsprobe wird verschwindend kleiner ndash Hilmar Feb Ich habe gegoogelt und keine passende oder lesbare Beispiele gefunden. Im Grunde möchte ich, um die Spur zu verfolgen Gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahlstroms unter Verwendung der letzten 1000 Zahlen als Datenabtastwert. Was ist der einfachste Weg, um dies zu erreichen, experimentierte ich mit einem kreisförmigen Array, exponentiellen gleitenden Durchschnitt und einem einfacheren gleitenden Durchschnitt und festgestellt, dass die Ergebnisse aus dem kreisförmigen Array meine Bedürfnisse am besten geeignet. Wenn Ihre Bedürfnisse sind einfach, können Sie nur versuchen, mit einem exponentiellen gleitenden Durchschnitt. Setzen Sie einfach, Sie eine Akkumulator-Variable, und wie Ihr Code sieht auf jede Probe, aktualisiert der Code den Akkumulator mit dem neuen Wert. Sie wählen eine konstante Alpha, die zwischen 0 und 1 ist, und berechnen Sie: Sie müssen nur einen Wert von Alpha zu finden, wo die Wirkung einer gegebenen Probe nur für etwa 1000 Proben dauert. Hmm, Im nicht wirklich sicher, dass dies für Sie geeignet ist, jetzt, dass Ive es hier. Das Problem ist, dass 1000 ist ein ziemlich langes Fenster für einen exponentiellen gleitenden Durchschnitt Im nicht sicher, gibt es ein Alpha, die den Durchschnitt über die letzten 1000 Zahlen, ohne Unterlauf in der Gleitkomma Berechnung. Aber, wenn Sie einen kleineren Durchschnitt wünschen, wie 30 Zahlen oder so, dieses ist eine sehr einfache und schnelle Weise, es zu tun. Beantwortet Jun 12 12 at 4:44 1 auf Ihrem Beitrag. Der exponentielle gleitende Durchschnitt kann zulassen, dass das Alpha variabel ist. Somit kann dies dazu verwendet werden, Zeitbasisdurchschnitte (z. B. Bytes pro Sekunde) zu berechnen. Wenn die Zeit seit dem letzten Akkumulator-Update mehr als 1 Sekunde beträgt, lassen Sie Alpha 1.0 sein. Andernfalls können Sie Alpha zulassen (usecs seit letztem update1000000). Ndash jxh Grundsätzlich möchte ich den gleitenden Durchschnitt eines laufenden Stroms eines Gleitkommazahls mit den neuesten 1000 Zahlen als Datenbeispiel zu verfolgen. Beachten Sie, dass im Folgenden die Summe als Elemente als addiert ergänzt wird, wobei kostspielige O (N) - Transversionen vermieden werden, um die Summe zu berechnen, die für den durchschnittlichen Bedarf benötigt wird. Insgesamt wird ein anderer Parameter von T gebildet, um z. B. Mit einer langen langen, wenn insgesamt 1000 lange s, eine int für char s, oder eine doppelte bis total float s. Dies ist ein wenig fehlerhaft, dass Nennsignale an INTMAX vorbeiziehen könnten - wenn Sie darauf achten, dass Sie ein langes langes nicht signiertes verwenden konnten. Oder verwenden Sie ein zusätzliches Bool-Datenelement, um aufzuzeichnen, wenn der Container zuerst gefüllt wird, während numsamples rund um das Array (am besten dann umbenannt etwas harmlos wie pos). Man nehme an, daß der quadratische Operator (T-Abtastwert) tatsächlich quadratischer Operator (T-Abtastwert) ist. Ndash oPless Jun 8 14 um 11:52 Uhr oPless ahhh. Gut beobachtet. Eigentlich meinte ich, dass es sich um void operator () (T sample) handelt, aber natürlich könntet ihr auch irgendeine Notation verwenden, die ihr mochtet. Wird beheben, danke. Ndash Tony D Jun 14 14 am 14:27


Comments

Popular posts from this blog

Wie Fx Optionen Arbeit

FX-Optionen Über FX-Optionen Holen Sie sich das Engagement, um Bewegungen in einigen der am meisten gehandelten globalen Währungen zu bewerten. Wenden Sie dieselben Handels - und Sicherungsstrategien an, die Sie für Aktien - und Indexoptionen verwenden, einschließlich Spreads mit bis zu zehn Beinen. ISE FX Optionen werden in US-Dollar Barausgleich in europäischer Form ausgeübt und können direkt von Ihrem bestehenden Brokerage-Konto gehandelt werden. Der Handel in Devisenoptionen öffnet um 7:30 Uhr (New Yorker Zeit) und schließt um 4:15 Uhr Produktspezifikationen SPOTPREISE Die Spotpreise basieren auf den von SIX gemeldeten Wechselkursen. Die Raten werden unter Verwendung von Modifikatoren skaliert, wie unten gezeigt, so dass der zugrundeliegende Wert ein Preisniveau ähnlich dem eines Bestands oder Indexes widerspiegelt. Basiszinssatz x Ratenmodifikator Diese Tabelle fasst den Ratenmodifikator für jedes Paar zusammen. Um die Produktspezifikationen anzuzeigen, klicken Sie auf das Symbol....

Binär Optionen Strategien

Binäre Optionen Strategien - gesponsert von Nadex Aufgrund ihrer All-oder-Nichts Charakter, bieten binäre Optionen Händler eine gute Möglichkeit, auf die Richtung eines Vermögenswertes oder den gesamten Markt zu handeln. Und was binäre Optionen faszinierend macht, sind neben ihren geradlinigen Risikoprofilen und dem definierten Risiko, dass sie aufgrund des stündlichen, täglichen oder wöchentlichen Ablaufs der Verträge für kürzere Strategien genutzt werden können. Für einen rein gerichteten Handel, verwenden wir die US 500 Binary als Beispiel. Dies ist ein Vertrag Nadex bietet, die ein Derivat der E-Mini SampP 500 Zukunft ist und läuft auf eine Nadex-Berechnung der letzten 25 Futures-Trades kurz vor dem Vertragsablauf. Wenn Sie glaubten, die E-Mini SampP 500 Zukunft für neue Höhen nach dem Trading durch ein Widerstandsniveau geleitet wurde, könnten Sie die US 500 Binary kaufen, um auf Ihre Markt-Meinung zu kapitalisieren. Auf der anderen Seite, wenn Sie glaubten, die E-Mini SampP 500 Z...

Day Trading Mit Wochen Optionen

Wöchentliche Optionen: Ein Geschäftsansatz Dan Sheridan hat das Optionsgeschäft sowohl auf institutioneller als auch auf Einzelhandelsbasis gesehen. Nach 24 Jahren als Market-Maker für Chicago Board Options Exchange und weitere zehn Jahre als Options-Mentor für private Trader blieb sein Ansatz konsequent: Um erfolgreich zu sein, müssen Sie Optionen als Geschäft behandeln. Das ist ein Handwerk, sagt er. Wir üben es täglich. Für diejenigen mit der Konsistenz und Disziplin, wird es ein gutes Geschäft. Vor kurzem hatte die Praxis einen wöchentlichen Fokus. Weeklies sind das Wachstum des Optionsgeschäfts gewesen. Mehr Verträge sind an Bord gekommen, und mehr Volumen wird gehandelt. Es gibt zwingende Gründe, warum: Weniger Kapital: Sie können höhere Renditen mit weniger Kapital zu erreichen. Wenn jemand sucht, 500 pro Woche oder 2.000 pro Monat, mit wöchentlichen Eisen Kondore machen, dauert es 10.000 Kapital verdienen 5 pro Woche. Wenn jemand die gleichen 2.000 pro Monat über monatliche Eis...