In diesem Video geht es um diesen Indikator hier. Das ist der Adaptive Moving Average. Der setzt sich aus mehreren Werten zusammen. Und zeichnet hier diese rote Linie. Und wann immer sich der Preis oberhalb der roten Linie befindet, ist das ein Kaufen Signal. Im andern Fall, wenn sich die Kerzen unterhalb der roten Linie bewegen, dann wäre das ein Verkaufen Signal. Wie kann man jetzt einen Expert Advisor erstellen, der in der Lage ist, nicht nur die Signale hier auf den Chart auszugeben, sondern auch eigenständig Positionen zu eröffnen. Um das zu tun, klicken wir auf diesen kleinen Button hier oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage. Weiter. Ich vergebe hier mal den Namen SimplerAMAStandaloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann man alles oberhalb von der On Tick Funktion löschen. Und die zwei Kommentarzeilen können ebenfalls entfernt werden. Zunächst nutzen wir die include Funktion. Damit holen wir uns die Datei Trade.mqh. Die ist Teil von MQL5 und stellt Handelsfunktionen bereit. Und sie ermöglicht uns, von CTrade eine Instanz mit dem Namen trade zu erstellen. Die werden wir gleich nutzen um Positionen zu eröffnen. Damit wir das können müssen einige Dinge berechnet werden. Zunächst einmal holen wir uns den Ask und den Bid Preis. Das geht mit SymbolInfoDouble für das aktuelle Währungspaar. SYMBOL_ASK liefert uns den Ask Preis. SYMBOL_BID liefert uns den Bid Preis. Wenn man mal auf ein Währungspaar hier klickt, dann sieht man: Das hier ist der Ask und das hier der Bid Preis. Diesen Preis zahlen wir, wenn wir etwas kaufen. Und das bekommen wir, wenn wir etwas verkaufen. Das dazwischen ist der Spread, davon lebt der Broker. Jetzt erstellen wir uns ein Preis Array. Das geht mit der Funktion MqlRates. Wir vergeben mal den Namen PriceInfo. Mit dem Befehl ArraySetAsSeries sortieren wir unser PriceInfo Array von der aktuellen Kerze an abwärts. Und mit der Funktion CopyRates füllen wir unser Array mit Preisdaten für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit. Wir starten mit der aktuellen Kerze null, holen uns die Daten für drei Kerzen und speichern sie in unserem Array PriceInfo. Jetzt haben wir die Daten für die Kerzen, brauchen aber noch einen String für unser Signal. Diese Variable bekommt auch den Namen Signal. Noch haben wir keinen Wert zugewiesen. Den müssen wir nämlich noch berechnen. Für unser Signal brauchen wir noch ein Array. Das bekommt den Namen myPriceArray. Und nun kommt der eigentlich spannende Teil. Wir nutzen die Funktion iAMA, die mit MQL5 kommt, um für das aktuelle Währungspaar und die ausgewählte Zeiteinheit eine Definition für unseren Expert Advisor zu erstellen. Falls Sie sich fragen, was diese Zahlen hier bedeuten. 9,2,30, 0. Dann klicken Sie doch einmal auf Einfügen, Indikatoren, Tendenz, Adaptive Moving Average. Dann sehen wir hier eine neun für die Periode, zwei ist der Wert für den schnellen EMA. Null ist die Verschiebung und dreißig ist der langsame EMA. EMA steht an der Stelle für Exponential Moving Average. Und das sind genau die Zahlen, die wir hier sehen. Für den letzten Parameter verwenden wir PRICE_CLOSE. Denn wir möchten gerne unsere Ergebnisse aufgrund der Schlusskurse ermitteln. Auch dieses PriceArray müssen wir wieder von der aktuellen Kerze an abwärts sortieren indem wir ArraySetAsSeries verwenden. Und nun füllen wir mit CopyBuffer unser PriceArray anhand der MovingAverageDefinition, die wir hier oben getroffen haben. Für Buffer null, das ist die erste Signallinie von der aktuellen Kerze null für drei Kerzen mit Preisdaten und speichern sie in unserem Array. Indem wir auf Kerze null in unserem PriceArray zugreifen, können wir den AdaptivMovingAverage Wert berechnen. Wenn man hier mal kurz den Strategietester anhält und die Maus hier über den roten Strich hält, dann sieht man, dass hier ein Wert mit sechs Nachkommastellen angezeigt wird. Das ist das, was wir hier berechnen. Und wenn sich dieser Wert oberhalb des Schlusskurses von Kerze null befindet, dann möchten wir unser Signal auf Verkaufen stellen. Man muss dazu sagen, der Schlusskurs von Kerze null wird angezeigt, auch wenn die Kerze noch gar nicht geschlossen ist. Es handelt sich in diesem Fall immer um den aktuellsten Preis. Und natürlich gibt es das auch noch anders herum. Wenn der Wert für den AdaptivMovingAverage kleiner ist, als der Schlusskurs von Kerze null, wenn also die rote Linie unterhalb dieser Kerzen hier gezeichnet wird, dann möchten wir gerne kaufen und weisen darum das Wort kaufen unserer Signalvariable zu. Und wenn unser Signal den Wert verkaufen hat und die Funktion PositionsTotal < eins, mit andern Worten, wenn wir keine geöffneten Positionen haben, dann nutzen wir trade.Sell, um zehn Mikrolot zu verkaufen. Im andern Fall, wenn unser Signal auf kaufen steht und wir keine geöffneten Positionen auf dem Chart haben, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Zum Schluss erstellen wir noch eine Chart Ausgabe. Das übernimmt der Comment Befehl. Der gibt uns den Text: Das aktuelle Signal ist. Gefolgt von dem berechneten Signal aus. Gut, das war es soweit. Klicken wir mal auf Kompilieren. Das hat ohne Fehler und Warnungen funktioniert. Und darum können wir jetzt hier oben klicken oder F4 drücken, um in den Meta Trader zurückzukehren. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination STRG+R. Hier werden wir dann die Datei SimplerAMAstandaloneEA.ex5 aus. Markieren die Option für die Visualisierung und starten unseren Test: Und da läuft unser Expert Advisor schon. Wir haben auch schon eine geöffnete Position. Und Sie haben in diesem kurzen Video gelernt, wie Sie den Adaptiv Moving Average mit MQL 5 nicht nur berechnen, sondern auch automatisch handeln können. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.
Download “MQL5 TUTORIAL - SIMPLER ADAPTIVE MOVING AVERAGE STANDALONE EXPERT ADVISOR” SimplerAMAStandaloneEA.txt – 128-mal heruntergeladen – 1,79 kB