MQL5 TUTORIAL GRUNDLAGEN – 47 SIMPLER STOCHASTIC EA

video

In diesem Video wollen wir uns einmal anschauen, wie man für diesen Oszillator hier einen Expert Advisor erstellen kann. Es handelt sich um den Stochastic Oszillator. Und wir werden ihn nutzen, um Kaufen und Verkaufen Signale zu generieren und Positionen zu eröffnen. Um das zu tun, klicken Sie im Metaeditor bitte auf dieses kleine Symbol hier oben oder drücken Sie 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 einmal den Namen SimplerStochasticEA, 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 mit einer include Funktion für die Datei Trade.mqh. Die kommt mit MQL5 und stellt uns vereinfachte Handelsfunktionen bereit. Dazu erstellen wir uns von der Klasse CTrade eine Instanz mit dem Namen trade. Die werden wir gleich benutzen, um Positionen zu eröffnen. In der OnTick Funktion starten wir damit, dass wir eine string Variable mit dem Namen signal erstellen. Die bekommt zunächst noch keinen Wert zugewiesen, denn der wird noch ermittelt. Zunächst berechnen wir erstmal den Ask und den Bid Preis. Das übernimmt die Funktion SymbolInfoDouble. Die bekommt als Parameter das aktuelle Währungspaar zugewiesen. Und wir verwenden SYMBOL_ASK, alles in Großbuchstaben, um den Ask Preis zu ermitteln. Zusätzlich nutze ich hier NormalizeDouble und _Digits, um zu ermitteln, ob das aktuelle Währungspaar drei oder fünf Nachkommastellen hat. Für den Bid Preis sieht das Ganze ziemlich ähnlich aus. Aber hier verwenden wir SIMBOL_BID. Jetzt brauchen wir zwei Arrays. Ein K Array und ein D Array. Denn der Stochastic hat hier zwei Linien. Man spricht vom König und vom Diener. Diese beiden Arrays werden jetzt mit Hilfe der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und jetzt nutzen wir die in MQL5 integrierte Funktion iStochastic für das aktuelle Währungspaar auf dem Chart und die aktuelle Zeiteinheit auf diesem Chart. Hier folgen drei weitere Parameter. Die sieht man auch hier unten in Klammern. Und wenn man mit der rechten Maustaste auf die Eigenschaften des Stochatic Oszillators klickt, denn sehen wir, wir haben eine K Periode von fünf, eine D Periode von drei und für die Verlangsamung ebenfalls einen Wert von drei. Das ist das, was wir auch hier verwenden. Die letzten beiden Parameter MODE_SMA und STO_LOWHIGH stehen hier für die Methode. SAM steht für Simple Moving Average und für den Preisbereich nutzen wir Low/High. Im Anschluss nutzen wir CopyBuffer um unser Array mit Daten zu füllen. Das tun wir anhand der Definition, die wir hier oben getroffen haben. Für das K Array nutzen wir Buffer null. Und für das D Array Buffer eins. Und in beide Arrays kopieren wir von der aktuellen Kerze null an, für drei Kerzen die Werte und speichern sie im jeweiligen Array. Um die jeweils aktuellen Werte zu ermitteln, greifen wir einfach auf die Werte von Kerze null im jeweiligen K oder D Array zu und weisen sie hier einer Variable zu. KValue null steht für die aktuelle Kerze im K Array. DValue null steht für die aktuelle Kerze im D Array. Jetzt wiederholen wir das Ganze nochmal für die Kerze davor. In diesem Fall nutzen wir Kerze eins im jeweiligen Array. Wir brauchen das, um zu ermitteln, ob wir ein Signal haben. Denn, wenn der aktuelle Wert für das K Array und der aktuelle Wert für das D Array beide unter zwanzig liegen, das bedeutet, beide Linien sind unterhalb dieser gestrichelten Linie hier, dann prüfen wir, ob der aktuelle K Wert über dem aktuellen D Wert liegt. Und ob der letzte K Wert noch unter dem D Wert gelegen hat. Wenn das der Fall ist, dann weisen wir den Wert Buy unserem signal zu, denn dann wollen wir kaufen. Der andere Fall wäre, wenn der aktuelle K Wert über achtzig liegt und der aktuelle D Wert auch über achtzig liegt. Das bedeutet, beide Linien befinden sich oberhalb der oberen gestrichelten Linie. Dann möchten wir wissen, ob der aktuelle K Wert kleiner ist, als der aktuelle D Wert. Und ob der letzte K Wert noch größer als der letzte D Wert war. In dem Fall haben wir eine solche Überkreuzung hier. Und dann möchten wir verkaufen. Darum weisen wir hier den Wert Sell unserer signal Variable zu. Wenn unser signal den Wert verkaufen, also Sell hat und der Rückgabewert für die Funktion PositionsTotal kleiner ist als eins, dann bedeutet das, wir haben keine geöffnete Position. Und weil wir ein Sell signal haben, nutzen wir jetzt trade.Sell um zehn Mikrolot zu verkaufen. Andernfalls, wenn unser signal auf Buy steht und wir ebenfalls keine geöffnete Position 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. Dort hätten wir gerne den Text: Das aktuelle Signal ist… gefolgt von dem ermittelten signal. Das war es soweit. Wenn Ihnen das hier zu schnell ging oder wenn Sie nicht verstehen, was diese Codezeilen alle bewirken sollen, dann möchten Sie sich vielleicht zunächst ein paar von den anderen Videos aus diesem Grundlagenkurs 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 diesem Fall ohne Fehler funktioniert. 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 und hier wählen wir bitte die neu erstellte Datei SimplerStochastikEA.ex5 aus, markieren hier unten die Option für den visuellen Modus und starten einen Test. Hier läuft unser Expert Advisor auch schon los. Wir hatten gerade hier die erste Überkreuzung. Und jetzt wird hier der erste Sell Trade eröffnet. Unser Expert Advisor funktioniert also so wie wir wollen. Und Sie haben in diesem kurzen Video gelernt, wie Sie den Stochastic Oszillator mit MQL5 automatisieren können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.