MQL5 TUTORIAL GRUNDLAGEN – 54 SIMPLER IFORCE EXPERT ADVISOR

video

In diesem Video wollen wir einmal für diesen Oszillator hier einen Expert Advisor erstellen. Es handelt sich um den sogenannten Force Index Oszillator. Der wird normalerweise genutzt, um Signale zu bestätigen. Aber wir werden ihn diesmal nutzen, um Signale zu erzeugen. Schauen wir uns also einmal an, wie man das in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader hier oben auf dieses kleine Symbol drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerIForceExpertAdvisor, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einer include Anweisung. Die wird die Datei Trade.mqh importieren, die Bestandteil von MQL5 ist und uns vereinfachte Handelsfunktionen bietet. Danach erstellen wir uns hier eine Instanz von der Klasse CTrade. Die bekommt den Namen trade und wird später verwendet, um Positionen zu eröffnen. Innerhalb der OnTick Funktion berechnen wir jetzt den Ask Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK, um den Ask Preis zu berechnen. Und mit NormalizeDouble und _Digits stellen wir sicher, dass die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar berechnet wird. Das kann sich nämlich je nach Währung unterscheiden. Danach wiederholen wir das Ganze nochmal für den Bid Preis. Die Anweisungen sind nahezu identisch. Aber diesmal nutzen wir SYMBOL_BID als Parameter. Bitte alles in Großbuchstaben. Außerdem brauche wir noch eine Variable für unser Signal. Die ist vom Typ string, damit sie Textketten aufnehmen kann. Wir weisen hier aber noch keinen Wert zu, denn der wird gleich ermittelt. Dazu erstellen wir uns zunächst einmal ein Price Array. Und für den Force Index nutzen wir die integrierte Funktion iForce. Die wird mit MQL5 mitgeliefert und benötigt einige Parameter. Der erste Parameter hier steht für das aktuelle Chart. Der zweite Parameter steht für die ausgewählte Zeiteinheit auf dem Chart. Und diesen Wert 13, den sehen wir auch, wenn wir im Metatrader auf Einfügen, Indikatoren, Oszillatoren, Force Index klicken. Dann taucht hier die 13 bei der Anzahl der Kerzen für die Ermittlung der Ergebnisse auf. Wir möchten gerne für einen Simple Moving Average und für das Tick Volumen berechnen. Und das sind auch die zwei letzten Parameter. MODE_SMA steht für Simple Moving Average. Und VOLUME_TICK gibt uns das Tick Volumen. Mit Hilfe der Funktion ArraySetAsSeries sortieren wir jetzt unser Price Array von der aktuellen Kerze an abwärts. Und dann nutzen wir CopyBuffer, um anhand der Force Index Definition, die wir hier oben getroffen haben, für Buffer null, von der aktuellen Kerze null, für drei Kerzen, unsere Daten in unserem Price Array zu speichern. Danach sind wir in der Lage, den Force Index Wert für die aktuelle Kerze zu berechnen. Dazu schauen wir einfach in Kerze null von unserem Price Array. Und mit NormalizeDouble und Komma sechs, habe ich das Ganze hier noch so formatiert, dass wir sechs Nachkommastellen berechnen, so wie hier vom Indikator angezeigt. Das Ganze berechnen wir jetzt nochmal für Kerze eins. Ansonsten ist alles soweit identisch, bis auf den Namen der Variable. Wir können jetzt eine Überkreuzung ermitteln indem wir prüfen, ob der Force Index Value jetzt kleiner ist als null. Und ob der letzte Force Index Value noch größer war als null. In dem Fall hätten wir eine Überkreuzung von oben. Dann möchten wir kaufen und weisen den Begriff buy unserer Signal Variable zu. Natürlich gibt es auch eine Überkreuzung von unten. Das wäre dann der Fall, wenn der aktuelle Force Index Value größer ist als null und der letzte Wert noch kleiner war als null. In dem Fall weisen wir den Begriff sell unserer Signal Variable zu. Wenn wir jetzt ein Verkaufssignal haben und uns die Funktion PositionsTotal einen Wert kleiner eins zurückliefert, dann bedeutet das, wir haben keine geöffneten Positionen. Und dann nutzen wir trade.Sell um zehn Mikrolot zu verkaufen. Andernfalls, wenn unser Signal auf Kaufen steht und wir ebenfalls keine geöffneten Positionen haben, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Zum Schluss erstellen wir uns mit Hilfe der Comment Funktion noch eine Ausgabe auf dem Chart. Die wird uns den Text ausgeben: Das Signal ist jetzt, gefolgt von dem ermittelten Signal. Falls Ihnen das alles hier zu schnell ging oder falls Sie nicht genau wissen, was diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos in dieser Grundlagenserie anschauen. Oder vielleicht ist auch der Premium Kurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Das hat in meinem Fall ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir jetzt auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Das ruft dann hier den Strategietester auf und hier wählen Sie bitte die neu erstellte Datei SimplerIForceExpertAdvisor.ex5 aus, markieren hier unten die Option für den visuellen Modus und starten Ihren Test. Hier ist unser Expert Advisor auch schon in Betrieb. Wir haben eine erste Kaufposition eröffnet. Hier oben werden buy und sell Signale generiert. Der Expert Advisor funktioniert also wie erwartet. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den Force Index Oszillator einen Expert Advisor erstellen können, der in der Lage ist, eigenständig Signale zu generieren und zu handeln. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.