Saturday 18 February 2017

Exponentiell Gewichteter Gleitender Durchschnitt Vba

, Wobei 2 (1 n) Der Index t wird verwendet, um die Zeit zu bezeichnen, z. B. T-1 bezieht sich auf den Zeitraum vor t und n, der vom Benutzer spezifiziert werden soll, bezieht sich auf die Mittelungsperiode des EMA. Zum Beispiel hat das EMA-Äquivalent eines dreidimensionalen einfachen gleitenden Mittels n von 3. Je größer der Wert von n ist, desto kleiner wird. Dies führt zu einer größeren (1-) und desto mehr von EMA t-1 wird in EMA t beibehalten. Der erste Wert von EMA in einer Zeitreihe kann als ein einfacher gleitender Durchschnitt von n Tagen8217 der Preise angenommen werden. Einige Benutzer können es auch vorziehen, den ersten Wert der EMA ab dem zweiten Zeitraum zu starten, an dem EMA auf Periode 2 x Periode 2 Preis (1 8211) x Periode 1 Preis. Benutzer sollten verstehen, dass der exponentielle gleitende Durchschnitt tatsächlich eine unendliche Reihenerweiterung ist, in der die früheren Preise ein immer geringeres Gewicht auf EMA t haben. Betrachten Sie das Folgende: Dies führt dazu, dass die EMA reaktionsfähiger und weniger volatil ist als ihr einfacher gleitender Durchschnitt. Eine ausführlichere Diskussion dieser finden Sie in meinem Artikel über Filter in der Finanzierung und technische Analyse. Methode A verwendet Funktionen, während Methode B Unterprozeduren verwendet, um CMF zu berechnen. Methode B ist schneller und flexibler. Fügen Sie diesen Code in Ihr ThisWorkBook Codefenster in VBA ein. Klicken Sie mit der rechten Maustaste auf dieses Arbeitsbuch in Projekt-Explorer und klicken Sie auf Code anzeigen. Private Sub WorkbookOpen () Der Rest gehört zu jedem Modul Weist Excel an, diese in die Liste der Funktionen aufzunehmen, Beschreibungen hinzuzufügen und eine neue Kategorie mit dem Namen Technische Indikatoren zu erstellen. Application. MacroOptions-Makro: EMA, Beschreibung: Gibt den exponentiellen gleitenden Durchschnitt zurück. Amp Chr (10) amp Chr (10) amp Wählen Sie die letzten Perioden aus, wenn der aktuelle Zeitraum der erste ist. Amp Chr (10) amp Chr (10) amp Gefolgt von aktuellen Preisen und n. Der Zerfallsfaktor des exponentiellen gleitenden Durchschnitts wird berechnet als alpha2 (n1), öffentliche Funktion EMA (EMAYesterday, Preis, n) EMA alpha Preis (1 - alpha) EMAYesterday Wenn Sie mit dem oben beschriebenen fertig sind, können Sie den exponentiellen gleitenden Durchschnitt berechnen, indem Sie in eine beliebige Zelle EMA (EMA, Aktueller Preis, n) eingeben. Geben Sie den letzten Periodenpreis der letzten EMA ein, wenn Sie die erste EMA Ihres Datensatzes berechnen. Um Methode B auszuführen, müssen Sie das Unterverzeichnis Runthis von der Seite auf AccumulationDistribution Line in Ihr Modul kopieren. Sie müssen auch EMA aus dem Runthis-Sub ausführen. Fügen Sie die folgende Zeile zu dem Unter Runthis Platzieren Sie es direkt vor End Sub Und deaktivieren Sie alle anderen Makros, die Runthis aufruft Dieser Sub beginnt mit der Berechnung von EMA ab t2 Sub EMA (close1 als Range, Ausgang als Range, n als Long) close0 close1 ( 1, 1).Adresse (False, False) Ausgabe 1 (2, 1).Adresse (False, False) Ausgabe 1 (1, 1).Adresse (Falsch, Falsch) Ausgabe (2, 1).Value 2 (1 Amp amp amp (amp amp) amp (1 amp n amp) amp output1 ausgang (2, 1).Value 2 (1 amp n amp) amp schliessen1a amp (1-2 (1 amp n amp)) amp Close0 Wie das, was Sie gerade gelesen haben Digg es oder Tipd es. Das Ziel von Finance4Traders ist es, Händler helfen, indem sie ihnen unvoreingenommene Forschung und Ideen. Seit Ende 2005 entwickle ich handelnde Strategien auf persönlicher Basis. Nicht alle dieser Modelle sind für mich geeignet, aber andere Investoren oder Händler könnten sie nützlich finden. Schließlich haben die Menschen unterschiedliche Investmenttrading-Ziele und Gewohnheiten. So wird Finance4Traders eine bequeme Plattform, um meine Arbeit zu verbreiten. (Lesen Sie mehr über Finance4Traders) Bitte benutzen Sie diese Website in geeigneter und rücksichtsvoller Weise. Dies bedeutet, dass Sie Finance4Traders durch mindestens einen Link zurück zu dieser Website zitieren sollten, wenn Sie irgendwelche unserer Inhalte verwenden. Darüber hinaus ist es uns nicht gestattet, unsere Inhalte rechtswidrig zu nutzen. Sie sollten auch verstehen, dass unser Inhalt keine Garantie gewährt wird und dass Sie unseren Inhalt selbständig verifizieren sollten, bevor Sie sich darauf verlassen können. Beziehen Sie sich auf die Website-Inhaltsrichtlinie und Datenschutzbestimmungen, wenn Sie diese Website besuchen. 0 Kommentare: Kommentar veröffentlichen Eine Handelsstrategie ist sehr ähnlich zu einer Unternehmensstrategie. Kritisch studieren Ihre Ressourcen wird Ihnen helfen, effektivere Entscheidungen zu treffen. (Weiterlesen) 8226 Technische Indikatoren verstehen Technische Indikatoren sind mehr als Gleichungen. Gut entwickelte Indikatoren, wenn sie wissenschaftlich angewendet werden, sind tatsächlich Werkzeuge, um Händler zu helfen, wichtige Informationen aus den Finanzdaten zu extrahieren. (Lesen Sie weiter) 8226 Warum ich Excel bevorzuge, präsentiert Ihnen Daten visuell. Dies macht es viel einfacher für Sie, Ihre Arbeit zu verstehen und Zeit zu sparen. (Fortsetzung) Berechnen der gewichteten Bewegungsdurchschnitte in Excel mit Exponentialglättung Excel-Datenanalyse für Dummies, 2. Ausgabe Das Exponential-Glättungswerkzeug in Excel berechnet den gleitenden Durchschnitt. Die exponentielle Glättung gewichtet jedoch die in den gleitenden Durchschnittsberechnungen enthaltenen Werte, so daß neuere Werte einen größeren Einfluss auf die Durchschnittsberechnung haben und alte Werte einen geringeren Effekt haben. Diese Gewichtung wird durch eine Glättungskonstante erreicht. Um zu veranschaulichen, wie das Exponential-Glättungswerkzeug arbeitet, nehmen Sie an, dass Sie wieder die durchschnittliche tägliche Temperaturinformation betrachten. Gehen Sie folgendermaßen vor, um gewichtete gleitende Mittelwerte mit exponentieller Glättung zu berechnen: Um einen exponentiell geglätteten gleitenden Durchschnitt zu berechnen, klicken Sie zuerst auf die Schaltfläche Data tab8217s Data Analysis. Wenn Excel das Dialogfeld Datenanalyse anzeigt, wählen Sie aus der Liste den Punkt Exponentielle Glättung aus, und klicken Sie dann auf OK. Excel zeigt das Dialogfeld Exponentielle Glättung an. Identifizieren Sie die Daten. Um die Daten zu identifizieren, für die Sie einen exponentiell geglätteten gleitenden Durchschnitt berechnen möchten, klicken Sie in das Textfeld Eingabebereich. Identifizieren Sie dann den Eingabebereich, indem Sie entweder eine Arbeitsbereichsadresse eingeben oder den Arbeitsblattbereich auswählen. Wenn Ihr Eingabebereich eine Textbeschriftung enthält, um Ihre Daten zu identifizieren oder zu beschreiben, aktivieren Sie das Kontrollkästchen Beschriftungen. Geben Sie die Glättung konstant. Geben Sie den Glättungskonstantenwert in das Textfeld Dämpfungsfaktor ein. Die Excel-Hilfedatei legt nahe, dass Sie eine Glättungskonstante zwischen 0,2 und 0,3 verwenden. Vermutlich jedoch, wenn Sie dieses Tool verwenden, haben Sie Ihre eigenen Ideen, was die richtige Glättungskonstante ist. (Wenn you8217re ahnungslos über die Glättungskonstante, vielleicht sollten Sie shouldn8217t mit diesem Tool.) Sagen Sie Excel, wo die exponentiell geglättete gleitende durchschnittliche Daten platzieren. Verwenden Sie das Textfeld Ausgabebereich, um den Arbeitsblattbereich zu identifizieren, in dem Sie die gleitenden Durchschnittsdaten platzieren möchten. Beispielsweise legen Sie die gleitenden Durchschnittsdaten in das Arbeitsblatt-Feld B2: B10. (Optional) Diagramm die exponentiell geglätteten Daten. Um die exponentiell geglätteten Daten darzustellen, aktivieren Sie das Kontrollkästchen "Diagrammausgabe". (Optional) Geben Sie an, dass Standardfehlerinformationen berechnet werden sollen. Um Standardfehler zu berechnen, aktivieren Sie das Kontrollkästchen Standardfehler. Excel legt Standardfehlerwerte neben den exponentiell geglätteten gleitenden Mittelwerten fest. Klicken Sie auf OK, nachdem Sie festgelegt haben, welche gleitenden durchschnittlichen Informationen Sie berechnen möchten und wo Sie sie platzieren möchten. Excel berechnet gleitende durchschnittliche Informationen. Hier ist ein Code, der hilfreich sein sollte für diejenigen, die technische Analyse im Handel und wollen Strategien in Excel zu testen. Sie berechnet den einfachen, linear gewichteten und exponentiellen gleitenden Durchschnitt. Weiter werde ich die Schritte zur Erstellung des Formulars und des VBA-Codes vorstellen und erläutern. Einfügen einer UserForm 8211 Name: MAForm Fügen Sie vier Labels aus den Toolbox-Steuerelementen hinzu 8211 Beschriftungen wie im obigen Druckbildschirm Fügen Sie eine ComboBox für die gleitende durchschnittliche Typauswahl hinzu. Es heißt comboTypeMA Fügen Sie zwei RefEdit-Steuerelemente für den Eingabebereich und den Ausgabebereich hinzu. Fügen Sie eine TextBox hinzu, um die gleitende durchschnittliche Periode zu selektieren. Fügen Sie zwei Schaltflächen hinzu: Name: buttonSubmit, Caption: Submit und Name: buttonCancel, Caption: Cancel Um die Dropdown-Liste für die MA-Typ-Auswahl zu generieren und das User-Formular zu laden, ein neues Modul Wird mit dem unten stehenden Code eingefügt. Die ComboBox-Elemente, die mit gleitenden Durchschnittswerten und dem Benutzerformular gefüllt werden, werden geladen. Option Explicit Sub loadMAForm () Mit MAFormboTypeMA. RowSource. AddItem Einfach. AddItem Gewichtet. AddItem Exponentielles Ende Mit MAForm. Show End Sub Unten ist der Code, der der Schaltfläche Submit zugeschrieben wird. Private Sub buttonSubmitClick () Dim inputRange, outputRange Als Bereich Der inputRange enthält die Preisreihen, die für die Berechnung der MAs verwendet werden, und der outputRange wird mit den gleitenden Durchschnittswerten gefüllt. Dim inputPeriod As Integer Der gleitende Durchschnittszeitraum wird deklariert. Dim inputAddress, outputAddress As String Die als String deklarierten Eingabe - und Ausgabebereiche. Wenn comboTypeMA. Value ltgt Exponential und comboTypeMA. Value ltgt Einfach und comboTypeMA. Value ltgt Weighted True Dann MsgBox Wählen Sie einen gleitenden Durchschnittstyp aus der Liste aus. RefInputRange. SetFocus Exit Sub Dieser Teil der Prozedur erzwingt die ersten Einschränkungen bezüglich der übermittelten Daten. Wenn der gleitende Durchschnittstyp nicht in der Dropdown-Liste enthalten ist, wird der Vorgang nicht zum nächsten Schritt fortgesetzt, und der Benutzer wird aufgefordert, ihn erneut auszuwählen. ElseIf RefInputRange. Value Then MsgBox Bitte wählen Sie den Eingabebereich. RefInputRange. SetFocus Exit Sub ElseIf RefOutputRange. Value Dann MsgBox Bitte wählen Sie den Ausgabebereich. RefOutputRange. SetFocus Exit Sub ElseIf RefInputPeriod. Value Then MsgBox Bitte wählen Sie die gleitende durchschnittliche Periode. RefInputPeriod. SetFocus Exit Sub ElseIf Nicht IsNumeric (RefInputPeriod. Value) Dann MsgBox Moving durchschnittliche Periode muss eine Zahl sein. RefInputPeriod. SetFocus Exit Sub End If Weitere Einschränkungen werden erstellt. Eingabebereich, Ausgabebereich und Eingabeperiode dürfen nicht leer sein. Auch die gleitende durchschnittliche Periode muss eine Zahl sein. InputAddress RefInputRange. Value inputRange Range (inputAddress) outputAddress RefOutputRange. Value Set outputRange Range (outputAddress) inputPeriod RefInputPeriod. Value Die Argumente für inputRange und outputRange werden inputAddress und outputAddress als Strings deklariert. If inputRange. Columns. Count ltgt 1 Dann kann der MsgBox-Eingabebereich nur eine Spalte haben. RefInputRange. SetFocus Exit Sub Der inputRange darf nur eine Spalte enthalten. ElseIf inputRange. Rows. Count ltgt outputRange. Rows. Count Dann hat der MsgBox-Ausgabebereich eine andere Anzahl von Zeilen als der Eingabebereich. RefInputRange. SetFocus Exit Sub End If Die inputRange und outputRange müssen eine gleiche Anzahl von Zeilen haben. Dim RowCount As Integer RowCount inputRange. Rows. Count Dim CROW As Integer ReDim inputarray (1 bis RowCount) Für crow 1 Um RowCount inputarray (CROW) inputRange. Cells (krähe, 1).Value Next CROW inputarray als Array deklariert ist und it8217s Elemente Entsprechen den Werten aus jeder Zeile des Eingangsbereichs. Wenn inputPeriod gt RowCount Then MsgBox Anzahl der ausgewählten Beobachtungen ist amp RowCount amp und die Periode ist amp inputPeriod amp. Der Eingangsbereich muss eine höhere oder gleiche Anzahl von Elementen haben als der ausgewählte Zeitraum. RefInputRange. SetFocus Exit Sub End Wenn eine weitere Einschränkung hinzugefügt wird 8211 Der Eingabebereich muss eine höhere oder gleiche Menge an Elementen als die Periode haben. Wenn inputPeriod lt 0 dann MsgBox Moving durchschnittliche Periode größer als 0 sein muss. RefInputPeriod. SetFocus Exit Sub End If Die gleitende durchschnittliche Periode muss größer als Null sein. ReDim outputarray (inputPeriod To RowCount) Als Variant werden auch die Array-Dimensionen von outputarray bestimmt. Die untere Schranke des Arrays ist der Wert inputPeriod und die obere Schranke der Wert von RowCount (die Anzahl der Elemente im inputRange). Im folgenden Teil der Prozedur wurde der einfache gleitende Durchschnitt berechnet, wenn die Auswahl für comboTypeMA einfach ist. SMA ----------------------------------------- Wenn comboTypeMA. Value Simple Then Dim i , j As Integer Dim Temp As Double Für i inputPeriod Um RowCount Temp 0 für j (i - (inputPeriod - 1)) bis i Temp Temp inputarray (j) Next j output (i) Temp inputPeriod outputRange. Cells (i, 1).Value outputarray (i) Next outputRange. Cells (0, 1).Value SMA (amp inputPeriod amp) Grundsätzlich berechnet die Prozedur den gleitenden Durchschnitt der letzten x Zahlen (x entspricht der inputPeriod), beginnend mit dem Element von Das Inputarray gleich der inputPeriod. Unten ist ein vereinfachtes Beispiel, das jeden Schritt des Verfahrens zeigt. In diesem Beispiel gibt es vier Ziffern (no01, no02, no03 und no04) von Zeile 1 bis Zeile 4 und die gleitende durchschnittliche Periode ist 3. Nach jedem neuen gleitenden Durchschnitt berechnet jede Zelle des outputRange den Wert aus dem Wert Ausgabearray. Und nachdem alle gleitenden Mittelwerte berechnet werden, wird in der Zelle über outputRange ein Titel eingefügt, der den gleitenden Durchschnittstyp und die Periode enthält. Dieser nächste Teil wird den exponentiellen gleitenden Durchschnitt berechnen. EMA ------------------------------------------ ElseIf comboTypeMA. Value Exponential Dann Dim Alpha As Doppeltes alpha 2 (inputPeriod 1) Für j 1 Zu inputPeriod temp temp inputarray (j) Nächstes j outputarray (inputPeriod) temp inputPeriod Zunächst wird der Wert von alpha bestimmt. Da bei der Berechnung der Wert der EMA auf der vorherigen EMA basiert, wird der erste der einfache gleitende Durchschnitt sein. (I - 1) alpha (inputarray (i) - outputarray (i - 1)) Next i Beginnend mit dem zweiten gleitenden Durchschnitt werden sie auf der Grundlage der obigen Formel berechnet: Vorherige EMA plus alpha multipliziert mit der Differenz zwischen der aktuellen Zahl aus dem Eingangsarray und dem vorherigen EMA-Wert. Denn ich RowCount outputRange. Cells (i, 1) inputPeriod. Wert output (i) Next i outputRange. Cells (0, 1).Value EMA (amp inputPeriod amp) Genau wie der Code für SMA, wird die output bevölkert und Die Zelle über Outputarray repräsentiert den Typ und die Periode des gleitenden Durchschnitts. Unten ist der Code für die Berechnung der gewichteten gleitenden Durchschnitt. WMA ------------------------------------------ ElseIf comboTypeMA. Value Weighted Then Dim Temp2 Als Integer Für i inputPeriod Zu RowCount temp 0 temp2 0 Für j (i - (inputPeriod - 1)) Zu i temp Inputarray (j) (j - i InputPeriod) temp2 temp2 (j - i inputPeriod) (I, 1).Value outputarray (i) Weiter i outputRange. Cells (0, 1).Value WMA (amp inputPeriod amp) End If Die folgende Tabelle enthält die Schritte für die Berechnung der einzelnen Variablen für die WMA-Berechnung. Genau wie im vorherigen Beispiel, in diesem gibt es für Zahlen im inputRange. Und die Eingabeperiode ist 3. Unten ist der endgültige Code der Prozedur, die das Benutzerformular entlädt. Unload MAForm End Sub Die folgende Prozedur ist für die Schaltfläche Abbrechen. Es wird in demselben Modul hinzugefügt. Private Sub buttonCancelClick () Unload MAForm End Sub


No comments:

Post a Comment