MQL4 TUTORIAL GRUNDLAGEN – 73 SIMPLE SPREAD FILTER

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man einen Spread Filter in MQL4 programmieren, der Trading entweder erlaubt oder verbietet anhand der definierten Werte. Also lassen Sie uns einmal schauen, wie man so etwas programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader hier oben auf dieses kleine Symbol oder drücken die F4 Taste. Das zeigt dann hier den Metaeditor an. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerSpreadFilter, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns hier eine benutzerdefinierte input Variable erstellen. Tatsächlich ist das hier in großen Teilen MQL5 Code, der auf 4 angepasst werden kann. Und wenn Sie einmal input markieren und die F1 Taste drücken, dann sehen wir, dass man den Wert für diese Variablen innerhalb des Expert Advisors in den Einstellungen verändern kann, ohne, dass das Programm neu Kompiliert werden muss. Setzen wir hier mal den erlaubten Spread auf vier. Außerdem benötigen wir eine Variable vom Typ string für unser Signal. Hier weisen wir aber noch keinen Wert zu, denn, den möchten wir noch ermitteln. Anschließend nutzen wir MqlRates, um uns ein Preis Array zu erstellen, in dem wir die Preisdaten aufbewahren und aufrufen können. Wenn man MqlRates einmal markiert und die F1 Taste drückt, dann lernen wir, dass dort die Informationen über Preis, Volumen und Spread gespeichert werden. Mittels ArraySetAsSeries sortieren wir jetzt unser Preis Array von der aktuellen Kerze an abwärts. Im Anschluss nutzen wir CopyRates, um unser Array mit Daten zu füllen. Und zwar für das aktuelle Währungspaar und die aktuell gewählte Zeiteinheit. Wir starten mit Kerze null und benötigen die Werte für drei Kerzen. Um an den aktuellen Spread zu kommen, nutzen wir SymbolInfoInteger für das aktuelle Währungspaar auf dem Chart. Der zweite Parameter hier, SYMBOL_SPREAD, wird in Großbuchstaben geschrieben. Und wir weisen das Ergebnis der Variable CurrentSpread für unseren aktuellen Spread Wert zu. Außerdem benötigen wir noch eine weitere Variable für unseren Spread Filter. Auch der werden wir gleich Text zuweisen. Denn, wenn unser aktueller Spread größer oder gleich dem maximal erlaubten Wert ist, dann weisen wir den Wert: Trading ist nicht erlaubt, unserem Spread Filter zu, denn dann ist uns der Spread zu hoch. Im anderen Fall, wenn der aktuelle Spread kleiner oder gleich dem erlaubten Wert ist, dann möchten wir Trading erlauben. Also weisen wir den Wert: Trading ist erlaubt, unserem Filter zu. Fehlen noch ein paar einfache Einstiegsregeln. Wenn der Schlusskurs von Kerze eins größer ist, als der Schlusskurs von Kerze zwei, dann möchten wir gerne kaufen. Also weisen wir den Begriff buy unserer Signal Variable zu. Im anderen Fall, wenn der Schlusskurs für Kerze eins kleiner ist, als der Schlusskurs für Kerze zwei, dann wäre das für uns ein Verkaufssignal. Und dann weisen wir den Wert sell unserer Signal Variable zu. Und bevor wir irgendeine Position eröffnen, prüfen wir immer erst, ob der Spread Filter den Wert hat: Trading ist erlaubt. Falls das zutrifft, prüfen wir, ob unser Signal den Wert buy hat, also ein Kaufsignal besteht und ob die Funktion OrdersTotal einen Rückgabewert von null liefert. Denn das würde bedeuten, wir haben keine geöffnete Position und ein Kaufsignal. Und dann nutzen wir OrderSend, um zehn Mikrolot zu kaufen. Im anderen Fall, wenn das Signal den Wert sell hat, dann haben wir ein Verkaufssignal. Und wenn dann ebenfalls keine geöffneten Positionen existieren, dann nutzen wir OrderSend, um zehn Mikrolot zu verkaufen. Zum Schluss erstellen wir uns noch eine Chart Ausgabe. Das übernimmt der Comment Befehl. Der wird uns den aktuellen Spread, den Wert für den maximalen Spread und den Spread Filter direkt auf dem Chart ausgeben. Das war es soweit. Wenn ihnen das hier zu schnell ging, oder wenn Sie nicht wissen, was diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst einmal die anderen Videos aus diesem Grundlagenkurs anschauen. Oder vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Hier habe ich offensichtlich einen Klammerfehler. An der Stelle gehört noch die schließende Klammer für dieses if-Statement hin. Wiederholen wir das Ganze. Dann funktioniert das hier ohne Fehler. Und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf dieses kleine Symbol, oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Und im Metatrader wählen wir einfach ein Währungspaar und öffnen es in einem neuen Chart Fenster. Ich haben jetzt hier AutoTrading absichtlich deaktiviert und ziehe mir jetzt die neu erstellte Datei SimplerSpreadFilter auf das Chart. Hier kann ich meine Eingaben noch verändern und klicke auf Okay. Und jetzt sehen wir, dass der Expert Advisor anhand der aktuellen Spread Werte und unserem Filterwert das Traden entweder erlaubt oder verbietet. Das Ganze funktioniert auch im Strategietester. Allerdings wird hier der aktuelle Spread Wert nicht richtig angepasst. Auf einem Live Chart funktioniert das aber wunderbar. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Spread Filter in MQL4 programmieren. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL4.