MQL4 TUTORIAL GRUNDLAGEN – 42 SIMPLER Accumulation Distribution Expert Advisor

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man diesen Oszillatorwert hier für Accumulation Distribution benutzt. Das machen wir in Kombination mit einem einfachen gleitenden Durchschnitt. Und nur wenn zwei Bedingungen erfüllt, dann erstellen wir hier oben ein Kaufen oder Verkaufen Signal. Schauen wir uns also einmal an, wie man so etwas mit MQL4 programmieren kann. Dazu klicken Sie bitte hier oben auf diesen kleinen Button oder drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerADEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion entfernt werden. Und auch die zwei Kommentarzeilen kommen weg. Wir starten damit, dass wir uns hier erstmal eine Signal Variable vom Typ string erstellen. Die bekommt aber noch keinen Wert zugewiesen, denn den möchten wir noch berechnen. Danach erstellen wir uns einen einfachen gleitenden Durchschnitt. Den nenne ich hier MyMovingAverage. Wir machen das mit der iMA Funktion. Die haben wir schonmal durchgenommen. Falls Sie also nicht verstehen, was diese Code Zeile hier bewirken soll, dann schauen Sie sich eventuell das entsprechende Video aus den Grundlagenvideos noch einmal an. Und außerdem nutzen wir die Funktion iAD für den Accumulation Distribution Oszillator. Den setzen wir als Filter ein. In unserem Fall berechnen wir hier den Wert für das aktuelle Währungspaar auf dem Chart und die aktuelle Zeiteinheit. Der letzte Parameter ist ein Verschiebungswert. In diesem Fall setzen wir den auf null, weil wir gerne für die aktuelle Kerze, also für Kerze null, den Wert ermitteln möchten. Und um zu ermitteln, ob der Wert gestiegen oder gefallen ist, berechnen wir hier nochmal einen vorherigen Wert. Der heißt LastIADValue. Und hier wird die Berechnung für zehn Kerzen vorher ausgeführt. Als Einstiegskriterium prüfen wir hier erstmal, ob der aktuelle Ask Preis größer ist als der MyMovingAverage. Das ist immer dann der Fall, wenn die Kerzen über dieser grünen Linie hier sind. Außerdem möchte ich wissen, ob der aktuelle Wert für den Accumulation Distribution Oszillator größer ist als der letzte Wert. Das wäre der Fall, wenn die Werte hier ansteigen. Und nur wenn beides zutrifft, dann setze ich hier unser Signal auf den Wert buy. Denn dann will ich kaufen. Im umgekehrten Fall, wenn wir einen Downtrend haben, wenn also der Bid Preis kleiner ist, als der MyMovingAverage, das ist der Fall, wenn sich die Kerzen unter dieser grünen Linie hier befinden. Dann möchte ich gerne wissen, ob der Wert für den Oszillator jetzt kleiner ist, als der letzte gemessene Wert. Und falls das der Fall ist, dann setzen wir den Wert für unsere Signalvariable auf sell. Denn dann möchten wir verkaufen. Die Positionen selbst eröffnen wir, wenn entweder das Signal auf kaufen steht und wir keine geöffneten Positionen haben. In dem Fall nutzen wir den OrderSend Befehl und OP_BUY um eine Kaufposition für zehn Mikrolot zu eröffnen. Andernfalls, wenn unsere Signal Variable den Wert sell hat, dann möchten wir verkaufen. Auch das tun wir nur in dem Fall, dass wir keine anderen geöffneten Positionen haben. Und dann nutzen wir OrderSend und OP_SELL, um eine Sell Position mit zehn Mikrolot zu eröffnen. Zum Schluss hätten wir gerne noch eine Bildschirmausgabe. Das übernimmt der Comment Befehl. Der wird uns den aktuellen IAD Wert und in einer neuen Zeile das aktuelle Signal ausgeben. Und das war es soweit. Wenn Sie alles haben, dann können Sie jetzt hier auf Kompilieren klicken. Ich habe wieder irgendwo einen Fehler eingebaut. Ja, so wie es aussieht, fehlt hier eine Klammer. Holen wir das mal nach und Kompilieren erneut. Dann geht das hier ohne Fehler ab. Falls das bei Ihnen nicht funktioniert hat oder Sie nicht verstehen, was dieser Code hier bewirkt, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie noch einmal anschauen. Oder vielleicht ist auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Wenn das Kompilieren funktioniert, dann können Sie hier oben klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Im Metatrader selbst müssen wir zunächst die Schablone für den Backtest vorbereiten. Dazu klicken wir auf Einfügen, Indikatoren, Tendenz, Moving Average. Hier nutzen wir den Simple Moving Average mit einer Periode für zwanzig Kerzen ohne Verschiebung. Die Werte sollen anhand der Schlusskurse berechnet werden. Klicken wir mal auf Okay. Dann erscheint hier die grüne Linie für unseren gleitenden Durchschnitt auf dem Bildschirm. Jetzt wiederholen wir das nochmal. Wählen dieses Mal Einfügen, Indikatoren, Volumen, Accumulation/ Distribution aus. Hier können wir die Standardwerte übernehmen. Bestätigen das mit Okay. Und jetzt wird auch unser Oszillator angezeigt. Und damit das im Backtest auch so ist, klicken wir jetzt rechts, wählen Vorlagen, Vorlage Speichern. Und speichern das Ganze unter dem Namen tester.tpl. Denn das ist die Schablone, die im Strategietest genutzt wird. Die alte Schablone können Sie überschreiben. Bitte wählen Sie jetzt im Strategietester die neu erstellte Datei SimplerADEA.ex4 aus, markieren Sie den visuellen Modus und starten Sie einen Test. So sieht das Ganze jetzt im Betrieb aus. Wir haben hier Kaufen und Verkaufen Signale die anhand unseres Oszillatorwertes her für den Accumulation Distribution Oscillator gefiltert werden. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.