Tuesday 3 January 2017

Multicharts Moving Average Crossover

Idealerweise möchten Sie ein gefiltertes Signal sowohl glatt als auch verzögerungsfrei. Lag verursacht Verzögerungen in Ihren Trades, und zunehmende Verzögerung in Ihren Indikatoren führen in der Regel zu niedrigeren Gewinnen. Mit anderen Worten, verspäteten Ecken bekommen, was auf dem Tisch bleibt, nachdem das Fest schon begonnen hat. Deshalb investieren Investoren, Banken und Institutionen weltweit den Jurik Research Moving Average (JMA). Sie können es so anwenden wie jeder andere beliebte gleitende Durchschnitt. JMAs verbessert Timing und Glätte wird Sie verblüffen. Die gezackte graue Linie im Diagramm simuliert Preisaktionen, die in einer niedrigen Handelsspanne beginnen, dann Lücken zu einer höheren Handelsspanne. Da niemand an der Seitenlinie wartet, bewegt sich ein perfekter Rauschreduzierungsfilter (grüne Linie) gleichmäßig in der Mitte der ersten Handelsspanne und springt dann fast sofort in die Mitte der neuen Handelsspanne. EasyLanguage amp PowerLanguage Tutorial 8211 Lektion 02 : Coding A Moving Average Erstellen der ersten realen Indikator und Ausweiten der Grundlagen Nachdem Sie sich mit dem PowerLanguage Editor im vorherigen PowerLanguage Tutorial 8211 Lektion 01 vertraut gemacht haben, werden wir nun auf dieser Grundlage aufbauen. Wenn Sie haven8217t lesen Sie die letzte Lektion, würde ich vorschlagen, dass erste, wie es Ihnen beim Verständnis dieser Lektion helfen kann, zu. Let8217s beginnen mit today8217s Lektion jetzt. Öffnen Sie den PowerLanguage Editor und erstellen Sie eine neue Indikatorstudie. Ich benutze meine ABCPowerLanguage Lektion 02 8211 Moving Average, so kann ich es leicht finden, in meinem Editor später. Der Name ist völlig bis zu Ihnen selbstverständlich und Sie konnten ihn sogar später ändern. Wie der letzte Teil des Indikatornamens vermuten lässt, werden wir heute einen gleitenden Durchschnitt kreieren und gliedern. Sie haben wahrscheinlich einen gleitenden Durchschnitt auf einem Diagramm gesehen, bevor oder erinnern Sie den Begriff Durchschnitt aus Mathe. Die Hauptnutzung für Mittelwerte ist als Filter, um die eingegebenen Daten zu glätten. Das Bild zeigt eine 200 Periode einfachen gleitenden Durchschnitt, der ein sehr glattes Ergebnis ergibt. Der Nachteil dieser Glätte ist, dass Sie mehr Lag bringen. Das bedeutet, dass der Durchschnitt weniger auf Preisänderungen reagiert. Wenn Sie einen Blick auf das nächste Bild sehen Sie, wie unterschiedlich das Verhalten eines 200-Periode einfachen gleitenden Durchschnitt ist, wenn Sie es mit dem grünen 10 Periodendurchschnitt vergleichen. Letzteres ist viel schneller in Reaktion auf Preisänderungen, aber im Gegenzug gibt es viel mehr 8220noise8221 im Durchschnitt. Es gibt viele verschiedene Arten von Mittelwerten, die hauptsächlich in der Auswirkung jedes Datenpunktes auf das Ergebnis des Durchschnitts variieren. Ein einfacher gleitender Durchschnitt von 200 Perioden berechnet einfach eine Summation der letzten 200 Datenpunkte und dividiert sie durch 200. Das Ergebnis ist ein Durchschnitt, der jedem Datenpunkt denselben Einfluß (denselben Wert) auf das Ergebnis gibt. Der erste Balken und der letzte Balken, die Teil des Durchschnitts sind, werden beide gleich gewichtet für das Ergebnis. Zwei andere prominente und häufig verwendete Mittelwerte sind der Exponential Moving Average und der Weighted Moving Average. Beide haben höhere Gewichtungsfaktoren für die neueren Datenpunkte. In einem gewichteten gleitenden Durchschnitt wird die Gewichtung in der arithmetischen Progression abnehmen. Für den exponentiellen Mittelwert nimmt er exponentiell ab, daher der Name. Das wird so theoretisch sein wie heute. Wenn Sie mehr Details über Mittelwerte lesen möchten, können Sie mit diesem Wikipedia-Artikel beginnen. Für weiteres Verständnis dieser Lektion brauchen Sie diese zusätzliche Information allerdings. Let8217s beginnen mit Codierung unserer Durchschnitt. Unser Indikator sollte nicht nur einen Durchschnitt berechnen, sondern es sollte das Ergebnis auf ein Diagramm ausgeben. EasyLanguage hat das 8220Plot8221 reservierte Wort für das und wir werden es verwenden, um das zu tun. Bevor Sie mit der Programmierung etwas beginnen, ist es immer eine gute Idee, einen Schritt zurückzugehen und darüber nachzudenken, was Sie zu erreichen versuchen und wie Sie es tun werden. Da diese Studie nicht sehr komplex ist, gibt es nur ein paar Dinge zu denken. Wenn Studien komplexer werden, können Sie viel Zeit mit guter Planung im Voraus sparen. Das Ziel ist eine Studie, die berechnet und zeigt einen einfachen gleitenden Durchschnitt. Wir wollen in der Lage sein, die Länge für den Durchschnitt mit einem Eingang zu ändern so it8217s einfach, besonders anzufertigen. Für den Durchschnitt müssen wir die Menge der Werte zusammenfassen, die mit der Längeneingabe korrelieren. Wir wollen für jede mögliche Längeneingabe für die Summe Code schreiben. Der Code muss also alle möglichen Längeneingaben selbst berechnen können. Haben Sie bereits eine Idee, wie wir dies erreichen könnte? Die Antwort ist, dass wir eine Iteration-Anweisung, die wiederholt ausgeführt werden kann jeder Balken für eine bestimmte Anzahl von Malen (unsere Längeneingabe). Ich weiß, das klingt kompliziert, aber es wird ganz einfach. Wir verwenden die 8220for loop8221 für diese Aufgabe. Diese Schleife wiederholt eine oder mehrere Anweisungen für eine benutzerdefinierte, spezifische Anzahl von Iterationen. Der EasyLanguage-Code wird von oben nach unten und normalerweise von links nach rechts ausgeführt. Sobald eine Codezeile ausgeführt wird, wird die nächste Zeile ausgeführt und so weiter. Wenn die Codezeile der Anfang einer Schleife ist, werden die Codezeilen innerhalb der Schleife für den angegebenen Betrag ausgeführt. Erst wenn die Schleife beendet ist, wird die nächste Codezeile nach der Schleife ausgeführt. A für Schleife sieht und arbeitet folgendermaßen: Eine numerische Variable wird bei jedem Zyklus durch die Schleife von ihrem Startwert zu ihrem Endwert inkrementiert (oder dekrementiert). Dieses Bild zeigt eine Grundschleife mit einer numerischen Zählervariable (ii in diesem Fall) und dem Anfangswert von 0 an. Die Iterationen werden zehnmal durchgeführt, bis der Zähler den Wert von 9 erreicht hat. Dann wird der Schleifenblock als letzter ausgeführt Zeit und beendet. Sie müssen den Zählerwert selbst inkrementieren, der Loop-Code kümmert sich darum. Der aktuelle Zählerwert wird in der Zählervariable gespeichert. So können Sie es für jeden Schleifenzyklus zugreifen und es für Ihre Berechnungen verwenden. Dies wird praktisch für die Berechnung unserer durchschnittlichen kommen. Die for-Schleife kann den Zähler auch mit jeder Iteration dekrementieren. Der Anfangswert in diesem Beispiel ist 9, aber die Schleife wird zehnmal ausgeführt, bis sie ebenfalls verlassen wird. Der Zähler verringert sich einfach mit jeder Iteration um eins, bis er 0 erreicht. In Easylanguage können Sie auf datenbezogene reservierte Wörter, Variablen und Funktionen aus einer vorherigen Leiste ganz einfach Bezug nehmen. Wenn Sie eine Zahl in eckigen Klammern nach dem reservierten Wort verwenden, gibt die Berechnung oder Variable den Wert für diesen speziellen Balken zurück. Die Zahl wächst von der aktuellen Leiste (die Sie mit 0 bezeichnen) in Schritten von eins. Wenn Sie den Wert des vorherigen bar8217s innerhalb einer Variablen mit dem Namen PrevCloseValue schließen möchten, können Sie dies wie folgt ausführen: Wir wollen unseren Durchschnitt mit dem Schließen für die letzten X-Balken erstellen. Wo X eine Eingabe ist, um mehr Flexibilität zu ermöglichen. Sie wissen bereits, dass wir eine Schleife für das verwenden möchten, und wir haben gerade herausgefunden, wie wir Referenzwerte für die letzten Balken referenzieren können. Dies sollte ausreichen, um den Code für den Hauptteil unseres Indikators zu schreiben. Let8217s weiterhin durch die Erstellung der Eingabe-und variablen Abschnitten. Sie könnten daran erinnern, aus der letzten Lektion, dass die Verwendung von aussagekräftigen Variablennamen ist eine gute Kodierung Praxis und sparen Sie eine Menge Schwierigkeiten später. Wir müssen einen Eingang deklarieren, damit wir die Länge für unseren Durchschnitt auf dem Chart ändern können. Abgesehen davon, dass wir eine Variable, die die Summation, eine hält den Zählerwert und eine letzte, um den Mittelwert zu speichern hält. Für die Ausgabe des Wertes im Diagramm verwenden wir das reservierte Wort Plot. Es folgt eine Zahl, so dass Sie zwischen verschiedenen Diagrammen unterscheiden können. Welche benötigt wird, wie Sie bis zu 999 Plots in Multicharts verwenden können. Das Plot reservierte Wort kann mehrere Parameter wie Farbe, Plot Größe und einige mehr haben. Wir halten es einfach hier und verwenden Plot1 mit nur zwei Parametern 8211 die erste für den numerischen Ausdruck geplottet werden und eine zweite für den Namen, den wir dem Diagramm zuweisen möchten. Der endgültige Code sieht so aus: Nach dem Kompilieren dieses Codes sind wir fast bereit, unseren Indikator auf ein Diagramm in Multicharts zu laden. Let8217s nur einen Blick auf die Eigenschaften der Anzeige zuerst. Sie finden sie unter - gt Datei - gt Eigenschaften oder durch Klicken auf das Eigenschaften-Symbol im Menü (es sollte das übrige zum Kompilieren sein). Unter der Registerkarte Stil können Sie die Farbe, den Linienstil und die Dicke für die von Ihnen erstellte Zeichnung ändern. Wenn Sie auf die Registerkarte Eigenschaften zu gelangen, gibt es mehrere Optionen zu setzen oder zu überprüfen, aber jetzt möchten Sie vielleicht nur sicherzustellen, dass die Option 8220Same As Symbol8221 aktiviert ist. Dadurch wird sichergestellt, dass der Indikator direkt auf dem Diagramm und nicht auf dem Subchart angewendet wird. Jetzt können Sie die Anzeige auf ein Diagramm Ihrer Wahl anwenden. Wenn Sie ein Diagramm im Multicharts-Hauptfenster geöffnet haben, können Sie einfach die Anzeige in dieses Diagramm einfügen. Wenn der Indikator angewendet wird, sollte das Ergebnis ähnlich dem obigen Screenshot sein. Jedoch scheint dieses doesn8217t recht, da dieses doesn8217t wie ein gleitender Durchschnitt überhaupt aussieht. Die Preis-Serie ist fast eine flache Linie und das Grundstück von unserem Indikator kommt nur steigt. Mit dem E-Mini SampP 500 im Bereich von 18217800 ein 10 bar gleitender Durchschnittswert für diesen Markt von 182179528217647 ist offensichtlich nicht korrekt. Dies deutet auf ein Problem in unseren Berechnungen hin. Haben Sie eine Idee, was der Code fehlt Es ist eigentlich nur ein wenig, aber sehr wichtige Details, die wir vergessen haben, hinzuzufügen. Wir müssen etwas vor der for-Schleife hinzufügen. Die Schleife hält einfach die Werte für die vorherigen zehn Takte mit jedem neuen Balken an. Das ist gut und wir wollen es genau dies tun, aber wir don8217t wollen, dass es die neuen Werte auf die alten Werte hinzufügen. Mit anderen Worten, Sie müssen sicherstellen, dass CloseValueSum doesn8217t immer noch die alten Werte hält, wenn die for-Schleife startet. Mit dem Hinzufügen einer Zeile zum Code ist das Ergebnis genau das, was wir erreichen wollten. Wir können auch das display8217s-Erscheinungsbild auf dem Chart ändern. Mit dem Style Tab unter 8220Format Study8221 können wir das visuelle Ergebnis wie Linienstil, Farbe und Dicke ändern. Unter der Registerkarte 8220Inputs8221 finden Sie die erstellte Eingabe und die Standardeinstellung für die Länge. Durch das Laden einer zweiten Instanz der Studie und Verwendung einer anderen Farbe und Länge können Sie bestätigen, dass die Studie gibt ein anderes Ergebnis mit einer anderen Länge Eingabe. Wenn Sie Schwierigkeiten haben, die richtige Lösung zu finden, fühlen Sie sich frei, uns mit Ihrer Lösung zu kontaktieren, und wir werden versuchen, Ihnen rechtzeitig zu helfen. Ich habe Angst, nur um die Lösung zu bitten, aber du musst wenigstens zeigen können, dass du auch die Lösung gefunden hast. Als letzten Hinweis können Sie einen Blick auf andere durchschnittliche Indikatoren oder Funktionen und finden Sie einige Inspiration für die fehlende Link gibt. Ich hoffe, Sie haben diese Powerlanguage Tutorial Lektion und ich freue mich auf die Zusammenarbeit mit Ihnen in der nächsten.


No comments:

Post a Comment