MQL5 TUTORIAl GRUNDLAGEN – 108 SIMPLER IOBVEA OSZILLATOR

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor erstellen kann, der in der Lage ist, aufgrund von maximalen oder minimalen Werten eines Oszillators Positionen zu eröffnen. Um das zu tun, klicken Sie im Metatrader bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das ruft hier dann den Metaeditor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerIOBVEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und wir entfernen auch die Kommentarzeilen. Wir beginnen, indem wir mit Hilfe des include Befehles hier die Datei Trade.mqh importieren.

 

Die werden wir gleichen nutzen, um Positionen zu eröffnen. In der OnTick Funktion erstellen wir uns zunächst eine String Variable für das Signal. Und damit wir Positionen eröffnen können, benötigen wir noch den Ask Preise und den Bid Preis. Die berechnen wir mit Hilfe von SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK beziehungsweise SYMBOL_BID und mit Hilfe von NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen je nach Währungspaar automatisch berechnen. Außerdem brauchen wir für unseren Expert Advisor ein Array für die Preisdaten. Das sortieren wir dann mit Hilfe von ArraySetAsSeries von der aktuellen Kerze an abwärts. Jetzt definieren wir unseren Oszillator. In unserem Fall nutzen wir den Oszillator On Balance Volume für das aktuelle Währungspaar auf dem Chart und die aktuell eingestellte Zeiteinheit. Der dritte Parameter hier VOLUME_TICK soll uns das Tickvolumen anzeigen. Danach nutzen wir CopyBuffer, um anhand der Definition die wir hier oben getroffen haben, für das Oszillatoren Signal, angefangen von Kerze null für 100 Kerzen, die Daten in unser Array kopieren zu können.

 

Und das ermöglicht es uns, den aktuellen Wert zu ermitteln, indem wir einfach auf den Wert Kerze null in unseren Array zugreifen. Jetzt brauchen wir noch den maximalen und den minimalen Wert. Dazu ermitteln wir mit Hilfe von ArrayMaximum zunächst die Nummer der Kerze, die in unserem EAArray, angefangen von Kerze null für das komplette Array den höchsten Wert hat. Entsprechend lässt sich mit ArrayMinimum auch die Nummer der Kerze ermitteln, die den minimalsten Wert in unserem Array hat. Und jetzt sind wir in der Lage, den tatsächlich maximalen Wert zu ermitteln, indem wir in unserem Array den Wert von der eben ermittelten Kerze auslesen. Das gleiche wiederholen wir dann nochmal und ermitteln den Wert für die minimale Kerze. Wie gesagt, es handelt sich immer um die letzten 100 Kerzen. Und wenn die aktuelle Kerze größer oder gleich ist zu dem bisher ermittelten Maximalwert in unserem Array, dann sehen wir das als Kaufen Signal und setzen unser Signal hier auf buy. Im anderen Fall, wenn der aktuelle Wert für Kerze null kleiner oder gleich ist zu bis jetzt minimal gemessenen Wert, dann ist das für uns ein Verkaufen Signal. Also setzen wir unser Signal hier auf sell.

 

Und wenn unser Signal auf Verkaufen steht und wir keine geöffneten Positionen haben, wenn also der Rückgabewert von PositionsTotal kleiner ist als eins, dann nutzen wir trade.sell um zehn Mikrolot zu verkaufen. Andernfalls, wenn unser Signal hier auf Kaufen steht und wir ebenfalls keine geöffnete Position haben, dann nutzen wir trade.buy um zehn Mikrolot zu kaufen. Zum Schluss erstellen wir uns noch eine Chartausgabe. Das macht der Comment Befehl. Der wird uns den aktuellen, den maximalen und den minimalen Wert auch auf unserem Chart anzeigen. Hier unten versteckt sich noch irgendwo die schließende Klammer. Und das war es im Großen und Ganzen. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst ein anderes Video aus der Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Und da gibt es übrigens jetzt auch Links zu den Quellcodes für diese Grundlagenvideos.

 

Für den Moment klicken wir mal auf Kompilieren oder drücken die F7 Taste. Das sollte hier ohne Fehler funktionieren. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Das ruft dann hier den Strategietester auf. Bitte wählen Sie hier die neu erstellte Datei SimplerIOBVEA.ex5 aus, markieren Sie hier unten die Option für den visuellen Modus. Eventuell müssen Sie etwas scrollen, um den Haken hier zu setzen. Und danach klicken wir auf Test starten. Wie man sieht, wird unser Oszillator hier gar nicht angezeigt. Ich reduziere mal die Geschwindigkeit und starte den Test erneut. Auch das hat nichts geholfen. Also schließen wir den Strategietester, suchen uns ein leeres Chart oder löschen den Indikator auf dem aktuellen. Danach klicken wir auf Einfügen, Indikatoren, Volumen, On Balance Volume. Hier können wir die Standardwerte übernehmen, klicken auf Okay.

 

Danach klicken wir mit der rechten Maustaste in das Chart, wählen Vorlagen, Vorlage speichern und speichern das Ganze unter der Bezeichnung tester.tpl. Den aktuellen Wert können Sie ersetzen. Tester.tpl ist die Schablone, die wir im Strategietester gleich angezeigt bekommen. Also wiederholen wir unseren Test. Und diesmal werden sogar zwei Oszillatoren angezeigt. Unser Expert Advisor fängt auch schon an, fleißig zu kaufen und zu verkaufen. Und Sie haben in diesem kurzen Video gelernt, wie Sie für einen Oszillator anhand von minimalen und maximalen Werten kaufen oder verkaufen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.