Berechnen von Moving Average. This VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. Zuerst initialisiert das VI zwei Schieberegister Das obere Schieberegister wird mit einem Element initialisiert und fügt dann den vorherigen Wert kontinuierlich mit dem neuen Wert hinzu. Dieses Schieberegister hält Die Summe der letzten x-Messungen Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Durchschnitt Dieses Schieberegister hält alle Messwerte der Ersatzfunktion Ersetzt den neuen Wert nach jeder Schleife. Dieses VI ist sehr effizient und schnell, weil es die Funktion ersetzen Element innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es in die Schleife. This VI wurde in LabVIEW 6 erstellt 1.Bookmark Share. Umzugsdurchschnitte Was sind sie. Zu den beliebtesten technischen Indikatoren gehören gleitende Durchschnitte, um die Richtung des aktuellen Trends zu messen Typ des gleitenden Durchschnitts, der üblicherweise in diesem Tutorial geschrieben wird, da MA ein mathematisches Ergebnis ist, das durch Mittelung einer Anzahl von vergangenen Datenpunkten berechnet wird. Sobald er bestimmt ist, wird der daraus resultierende Durchschnitt dann auf ein Diagramm aufgetragen, um es den Händlern zu ermöglichen, geglättete Daten anstatt zu betrachten Die sich auf die alltäglichen Preisschwankungen konzentrieren, die allen Finanzmärkten innewohnen. Die einfachste Form eines gleitenden Durchschnitts, die in geeigneter Weise als einfacher gleitender Durchschnitts-SMA bekannt ist, wird berechnet, indem man das arithmetische Mittel eines gegebenen Satzes von Werten annimmt , Um einen grundlegenden 10-tägigen gleitenden Durchschnitt zu berechnen, würden Sie die Schlusskurse aus den letzten 10 Tagen addieren und dann das Ergebnis durch 10 teilen. In Abbildung 1 ist die Summe der Preise für die letzten 10 Tage 110 durch die Anzahl der geteilt Tage 10, um den 10-tägigen Durchschnitt zu erreichen Wenn ein Händler einen 50-tägigen Durchschnitt sehen möchte, würde die gleiche Art von Berechnung gemacht werden, aber es würde die Preise in den letzten 50 Tagen enthalten. Der daraus resultierende Durchschnitt unter 11 nimmt in Gem Ount die letzten 10 Datenpunkte, um den Händlern eine Vorstellung davon zu geben, wie ein Vermögenswert in Bezug auf die letzten 10 Tage vergeben wird. Vielleicht fragen Sie sich, warum technische Händler dieses Werkzeug einen gleitenden Durchschnitt nennen und nicht nur ein normales Mittel. Die Antwort ist das als Neue Werte werden verfügbar, die ältesten Datenpunkte müssen aus dem Set gelöscht werden und neue Datenpunkte müssen eingehen, um sie zu ersetzen. So wird der Datensatz ständig auf neue Daten umgestellt, sobald er verfügbar ist. Diese Berechnungsmethode stellt sicher, dass nur die Aktuelle Information wird in Abbildung 2 berücksichtigt, sobald der neue Wert von 5 dem Satz hinzugefügt wird, bewegt sich die rote Box, die die letzten 10 Datenpunkte repräsentiert, nach rechts und der letzte Wert von 15 wird aus der Berechnung gelöscht. Weil die relativ kleine Wert von 5 ersetzt den hohen Wert von 15, würden Sie erwarten, um den Durchschnitt der Datensatzabnahme zu sehen, was es tut, in diesem Fall von 11 bis 10.Was do Moving Averages aussehen Wie einmal die Werte der MA berechnet wurden , Sie Sind auf ein Diagramm gezeichnet und dann verbunden, um eine gleitende durchschnittliche Linie zu schaffen Diese geschwungenen Linien sind auf den Charts der technischen Händler üblich, aber wie sie verwendet werden, kann drastisch mehr auf diesem später variieren Wie Sie in Abbildung 3 sehen können, ist es möglich, Füge mehr als einen gleitenden Durchschnitt zu jedem Diagramm hinzu, indem du die Anzahl der in der Berechnung verwendeten Zeitperioden anpasst. Diese geschwungenen Linien mögen anfangs ablenkend oder verwirrend sein, aber du wirst sie gewöhnen, wenn die Zeit vergeht. Die rote Linie ist einfach der Durchschnittspreis In den vergangenen 50 Tagen, während die blaue Linie ist der durchschnittliche Preis in den letzten 100 Tagen. Jetzt, dass Sie verstehen, was ein gleitender Durchschnitt ist und wie es aussieht, werden wir eine andere Art von gleitenden Durchschnitt vorstellen und untersuchen, wie es unterscheidet sich von Der oben erwähnte einfache gleitende Durchschnitt. Der einfache gleitende Durchschnitt ist bei den Händlern sehr beliebt, aber wie alle technischen Indikatoren hat er seine Kritiker. Viele Einzelpersonen argumentieren, dass die Nützlichkeit der SMA begrenzt ist Se jeder Punkt in der Datenreihe wird gleich gewichtet, unabhängig davon, wo es in der Sequenz auftritt. Kritiker argumentieren, dass die jüngsten Daten signifikanter sind als die älteren Daten und einen größeren Einfluss auf das Endergebnis haben sollten Als Reaktion auf diese Kritik, Händler begannen, mehr Gewicht auf die jüngsten Daten zu geben, die seither zur Erfindung von verschiedenen Arten von neuen Mitteln geführt hat, die beliebteste davon ist die exponentielle gleitenden Durchschnitt EMA Für weitere Lesung, siehe Grundlagen der gewichteten Moving Averages und was ist der Unterschied Zwischen einem SMA und einem EMA. Exponential Moving Average Der exponentielle gleitende Durchschnitt ist eine Art von gleitenden Durchschnitt, die mehr Gewicht auf die jüngsten Preise in einem Versuch, um es mehr auf neue Informationen zu reagieren Lernen die etwas komplizierte Gleichung für die Berechnung einer EMA kann unnötig sein Für viele Händler, da fast alle Charting-Pakete die Berechnungen für Sie machen Aber für Sie Mathe Geeks da draußen, hier ist die EMA Gleichung. Wenn die Verwendung der fo Rmula, um den ersten Punkt der EMA zu berechnen, können Sie feststellen, dass es keinen Wert gibt, der als vorherige EMA verwendet werden kann. Dieses kleine Problem kann gelöst werden, indem man die Berechnung mit einem einfachen gleitenden Durchschnitt beginnt und mit der obigen Formel von dort weiter fortfährt Haben Sie mit einer Beispielkalkulationstabelle versehen, die reale Beispiele enthält, wie man sowohl einen einfachen gleitenden Durchschnitt als auch einen exponentiellen gleitenden Durchschnitt berechnet. Der Unterschied zwischen EMA und SMA Jetzt haben Sie ein besseres Verständnis davon, wie die SMA und die EMA sind Berechnet, lassen Sie sich einen Blick darauf werfen, wie sich diese Durchschnittswerte unterscheiden Wenn Sie die Berechnung der EMA betrachten, werden Sie feststellen, dass mehr Aufmerksamkeit auf die jüngsten Datenpunkte gelegt wird, so dass es eine Art von gewichtetem Durchschnitt ist. In Abbildung 5 ist die Anzahl der Zeit Perioden, die in jedem Durchschnitt verwendet werden, sind identisch 15, aber die EMA reagiert schneller auf die sich ändernden Preise Beachten Sie, wie die EMA einen höheren Wert hat, wenn der Preis steigt und fällt schneller als die SMA, wenn der Preis dezember ist Futter Diese Reaktionsfähigkeit ist der Hauptgrund, warum viele Händler es vorziehen, die EMA über die SMA zu verwenden. Was sind die verschiedenen Tage Mean Moving Mittelwerte sind ein völlig anpassbarer Indikator, was bedeutet, dass der Benutzer frei wählen kann, was Zeitrahmen sie wollen, wenn die Erstellung des Durchschnitts Die häufigsten Zeiträume, die bei bewegten Durchschnitten verwendet werden, sind 15, 20, 30, 50, 100 und 200 Tage Je kürzer die Zeitspanne, die verwendet wird, um den Durchschnitt zu erzeugen, desto empfindlicher wird es zu Preisänderungen Je länger die Zeitspanne, desto weniger Empfindlich oder mehr geglättet, der Durchschnitt wird es sein Es gibt keinen richtigen Zeitrahmen, um bei der Einrichtung Ihrer bewegenden Mittelwerte zu verwenden Der beste Weg, um herauszufinden, welche am besten für Sie ist, ist mit einer Reihe von verschiedenen Zeiträumen zu experimentieren, bis Sie finden Eine, die zu Ihrer Strategie passt. Simple Moving Average VI. Usually, wenn die Leute über einen Moving Average sprechen, bedeuten sie Replace Point N mit dem Durchschnitt von M Punkten um Punkt N Angenommen, ich habe 100 Punkte, deren Werte 1, 2, 3 100 und Ich möchte eine 5-Punkte-Moving-Average machen Erste Sache zu beachten ist, dass es einen ist. Der gleitende Durchschnitt des dritten Punktes ist der Durchschnitt von 1, 2, 3, 4, 5 3 Der Durchschnitt des vierten Punktes ist der Durchschnitt Von 2, 3, 4, 5, 6 4 Allerdings ist dies vielleicht zu einfach ein Beispiel Wie wäre es mit dem Durchschnitt einer Schritt-Funktion, 0 von 1 bis 10, dann 20 danach. Geben Sie, werfen Sie Punkte 1 und 2 Der Durchschnitt von Punkte 1-5, um in Punkt 3 0 zu gehen, da alle Punkte 0 sind. Ähnlich wie bei Punkt 4, 5, 6,7 und 8 Punkt 9 ist der Durchschnitt von 0, 0, 0, 0, 20 4 Wie wäre es mit Punkt 10 Nun, es sollte der Durchschnitt von 0, 0, 0, 20, 20 8, aber haben Sie daran erinnern, nicht zu überschreiben Punkt 9 Hmm, scheint, wie müssen wir zwei Kopien der Array, die im Allgemeinen teuer ist zu halten. Es gibt mehrere Möglichkeiten, die du vermeiden kannst, dies zu tun. Verstehst du, wo das Problem im vorherigen Absatz auftaucht. Wenn nicht, versuchen Sie es mit Bleistift und Papier oder versuchen Sie es in LabVIEW zu codieren Ich lende Ihnen die Antwort, damit Sie überprüfen können - das Bewegen Durchschnitt von Die Schrittfunktion ist -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20, 20 -, - wo - die leeren Werte bei Die ende des arrays, die punkte, die du nicht genügend Nachbarn hast. PS - es würde mich nicht überraschen, wenn es keine LabVIEW-Funktion gibt, die das für dich tut Aber wenn du LabVIEW lernst und ein besseres Verständnis dafür haben willst Algorithmen, die du in die Arbeit steckst, es tut niemals weh, zu spielen und es selbst auszuprobieren Du könntest sogar eine Verbesserung erfahren, die mehrere von uns getan haben. Danke für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dies ist ein statistisches Werkzeug, Hilft zu sehen, was Sie sehen wollen abstrakt die Distraktoren Also die Methode ist verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, es ist perfekt für meine Art dof Datenprotokollierung - es ist ein Druck oder Temperatur oder Flow-Signal - und ich Erwerben bei so etwas wie 400 Proben sek und dann eine gemittelte einzelne Probe verwenden Und der Prozess ist ziemlich langsam wie meine Hauptcode läuft bei nicht mehr als 20 Hz Also, wenn ich ein 5 Probe maving Durchschnitt mache, kommt meine erste Probe 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Basisch bin ich mehr auf Trends und nicht Punktwerte In Das gibt es wenig Sorgen um verpasste Samples oder Schurkenwerte Natürlich würde ich es nicht wagen, diese für eine Step-Funktion zu verwenden. Das wäre grausam. Raghunathan LV2012 zu automatisieren Hydraulische Test rig. Message 4 von 15 1.108 Views. Re Simple Moving Average VI. 03-30-2016 11 58 PM. There ist gemein ptbypt das tut das selbe Sie können den Code inspizieren, wenn Sie wollen. Ein großer Fehler in Ihrem Code ist die Tatsache, dass Sie ständig wachsen und schrumpfen ein vorhandenes Array Sie sollten versuchen, ein zu finden Lösung, die an Ort und Stelle auf einer festen Größe Array funktioniert Beispiele wurden auf dem Forum im Laufe der Jahre schauen hee zum Beispiel Der Mittel kümmert sich nicht, ob die Elemente sind außer Betrieb, so können Sie einfach ersetzen das älteste Element, egal Wo es sich befindet. Sie sind auch voranstellen, das neue Element an den Anfang eines bestehenden Arrays, die immer viel teurer als Anhängen an das Ende. Ihre Stichprobengröße kann nicht ändern, sobald das VI läuft. Ihr Schieberegister sollte mit initialisiert werden Ein leeres Array, kein Array, das bereits ein einzelnes Element enthält, das null ist. Diese zusätzliche Null gibt falsche Mittelwerte. Ihr Code sollte in ein SubVI gemacht werden, damit es ähnlich wie die ptbypt Version wiederverwendet werden kann. Ihr VI kann niemals gestoppt werden , Nur abgebrochen. Gute Optimierung Tipps Der Poin T auf Initialisierung mit Zero verpasst mich Und ja der Benutzer sollte nicht ändern, die Stichprobengröße, sobald es läuft läuft. Schließlich werde ich ein SubVI und behandeln Dinge wie Stoppen etc. As auf den Punkt der Vorbereitung als Anhängen der neuen Wert auf Array, vielleicht Es gibt eine Performance-Strafe aber angesichts der Größe von meinem Array Ich bin mir sicher, dass die CPU kümmert sich nicht anwyay Aber für mich muss es so sein, wie ich die endgültigen Daten für die Plotten eines Trends eines physikalischen Parameters verwenden. Danke für Ihre Zeit. Raghunathan LV2012 zu automatisieren Hydraulische Test rigsthanks für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average-Methode Diese nachall ist ein statistisches Werkzeug, das hilft zu sehen, was Sie sehen wollen abstrakt die Distraktoren Also die Methode ist verpflichtet, einige Mängel in einigen Situationen haben Oder Kontext. Aber ich denke, es eignet sich perfekt für meine Art dof Datenprotokollierung - es ist ein Druck oder Temperatur oder Flow-Signal - und ich erwerbe bei so etwas wie 400 Samples sek und dann eine gemittelte Einzelprobe verwenden Und der Prozess ist Ziemlich langsam, da mein Hauptcode bei nicht mehr als 20 Hz läuft. Wenn ich also einen 5 Stichprobenmonitor mache, kommt meine erste Probe 5 x 50 ms später an, dann bekomme ich für alle 50ms eine gültige Probe. Aha Also willst du keine Bewegung Durchschnittlich, aber nur ein einfacher Durchschnitt Das ist viel einfacher Hier ist die Idee, die viel besser mit einem Producer Consumer Design arbeitet. Sagen Sie bei 400Hz sampling, wollen die Daten bei 400 Hz speichern, dh alle Daten auf Festplatte speichern, aber wollen Um bei 20 Hz anzuzeigen, weil du Trends, eine längere Zeitbasis, etc. sehen willst. Setz dein AD-System ein, um 20 Samples mit 400Hz Note zu sammeln, kannst du N Kanäle gleichzeitig sammeln und dir ein 2D Array von Samples geben Bekomme die Daten bei 20 Hz von der AD, die dies zum Produzenten macht, es dem Consumer anzünden. Der Verbraucher beginnt mit dem Schreiben der Daten auf die Festplatte sollte nicht viel Zeit nehmen Jetzt haben Sie ein 2D-Array - in einem For Loop, auf einem Kanal - by-Kanal-Basis, durchschnittlich die 20 Punkte Jetzt haben Sie ein 1D-Array, mit einem Averaged Point für jeden Kanal Go ahead und Plot It. Hinweis, dass dieses Schema a verwendet alle Daten, b Handles Multi-Channel-Daten mit aplomb und wenn Sie aus dem Mittleren Osten, wo sie wachsen, können Sie auch Ihre Daten mit einer saftigen Pflaume behandeln, und c können Sie sammeln Ihre Daten aus dem AD-Gerät, speichern Sie Ihre Daten auf Festplatte halten alle Punkte, und zeigen Sie Ihre Daten auf dem Bildschirm mit all Ihren Punkten, sondern auch Mittelwert, um visuelle Signal-to-Noise-Verhältnis zu verbessern, alle ohne Datenverlust zu verlieren Genau das mit 24 Kanälen bei 1KHz, wobei die Daten auf einem fernen System aufgenommen und über TCP IP an den PC gesendet werden, so dass wir auch TCP-Verarbeitung in der Schleife haben. Willkommen in der spannenden Welt der Datenerfassung und - verarbeitung mit LabVIEW Trust Ich, das ist ein wunderbares System für diese Art von work. Based auf das Feedback Ich habe auf meine ursprüngliche VI Ich habe die Moving Average Code in ein subVI. Ich habe es dann verwendet, um eine simulierte 10Channel Daten - nur um Dinge zu halten Einfach habe ich sicher, dass alle 10 Kanäle identische Daten hatten Erwarten Sie den gleichen gleitenden Durchschnitt für alle 10 Kanäle Ich bin überrascht über die kleine Varianz, die ich zwischen den Kanälen bemerke - in der Regel sind sie in der Nähe, aber nicht genau. Und nur um den Prozess zu erklären, ich versuche, dass ich auch ein XLS. So eingeschlossen habe Die Variation kommt aus dem unitialisierten Schieberegister innerhalb des Sub VI. Raghunathan LV2012 zu automatisieren Hydraulische Test rigs. Message 9 von 15 1.011 Views. Re Simple Moving Average VI. 04-01-2016 10 25 AM. Ihr Code macht immer noch keinen Sinn SINS Sie rufen den SubVI ein Skalar zu einer Zeit, Sie sind nicht immer, was Sie wollen, weil das Schieberegister nur erinnert sich die letzten N Skalare, egal was Kanal es Ist aus deinem Code ist immer noch sehr ineffizient und gewellt zB warum bist du immer noch mit Insert in Array einfügen, um sowohl in der Mani nad in der sub Sie können ein reenetrant subVI und eine parallele innerste FOR-Schleife verwenden, aber das scheint auch übermäßig kompliziert Sie wollen einen laufenden Durchschnitt auf jedem Kanal zu tun, die SubVI muss ein 2D-Array in der SubVI zu halten. All dies wurde zuvor durchgeführt. Message 10 von 15 995 Views.
No comments:
Post a Comment