MQL5 TUTORIAL GRUNDLAGEN – 43 SIMPLER IOSMA EXPERT ADVISOR

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man diesen Indikator hier programmieren kann. Der produziert bei Überkreuzungen dieser Nulllinie hier Trades. Das ist jetzt gerade passiert. Es handelt sich um den Moving Average of Oscillator. Und wir schauen und jetzt einmal an, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken wir im Metatrader entweder auf dieses Symbol hier oben oder wir 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 SimplerIOSMAExpertAdvisor, 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 einem include Befehl für die Datei Trade.mqh. Die gehört mit zu MQL5 und ermöglicht es uns hier, eine Instanz von der Klasse CTrade zu erstellen. Die nennen wir trade und wir werden sie später nutzen, um Positionen zu eröffnen. In der OnTick Funktion berechnen wir zunächst den Ask Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen als Parameter SYMBOL_ASK, alles in Großbuchstaben. Und mit NormalizeDouble und _Digits ermitteln wir gleichzeitig noch die richtige Nummer für die Anzahl der Nachkommastellen dieser Währung. Da kann sich je nach Währungspaar unterscheiden. Manche Währungspaare haben drei Nachkommastellen und andere haben fünf Nachkommastellen. Wiederholen wir das Ganze nochmal und berechnen den Bid Preis. Hier ändert sich wenig. Nur die Variable heißt anders und wir nutzen SYMBOL_BID, auch alles in Großbuchstaben. Danach erstellen wir eine Variable. Die ist vom Typ string. Hat den Namen signal. Und wir weisen hier zunächst noch keinen Wert zu, denn den müssen wir jetzt noch ermitteln. Dazu brauchen wir zunächst ein Array. Das wird im nächsten Schritt mit der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und im nächsten Schritt definieren wir die Eigenschaften. Dazu nutzen wir die MQL5 Funktion iOsMA für das aktuelle Währungspaar auf dem Chart und die aktuell auf diesen Chart ausgewählte Zeiteinheit. Diese drei Parameter hier sehen Sie auch, wenn Sie auf Einfügen, Indikatoren, Oszillatoren, Moving Average of Oscillater klicken. Der Wert für den schnellen EMA ist zwölf, für den langsamen EMA 26 und für den MACD-SMA ist der Wert neun. Das entspricht genau den drei Werten, die wir auch hier verwenden. Und berechnet wird das Ganze anhand der Schlusskurse. Deswegen ist der letzte Parameter PRICE_CLOSE. Mit CopyBuffer kopieren wir uns jetzt in unser Array die Werte für drei Kerzen, für Buffer null. Und wir starten mit der aktuellen Kerze null. Hin und wieder werde ich gefragt, warum ich das immer für drei Kerzen mache. Nun, das ist ganz nützlich, wenn man Überkreuzungen erkennen will. Das möchten wir in diesem Fall auch. Wir berechnen uns zunächst den aktuellen Wert, indem wir uns den Wert aus Kerze null holen. Das ist die aktuelle Kerze. Und danach schauen wir uns den Wert von Kerze eins an. Den weisen wir hier der Variable für den letzten Wert zu. Denn damit können wir jetzt feststellen, ob es eine Überkreuzung gab. Wenn nämlich der aktuelle Wert kleiner ist als null und der letzte Wert noch größer was als null, dann bedeutet das, dass die Nulllinie von oben überkreuzt wurde. Diese gestrichelte Linie hier ist die Nulllinie. Und immer, wenn so eine Überkreuzung stattfindet, haben wir entweder ein Kaufen oder Verkaufen Signal. Bei einer Überkreuzung von oben nach unten ist es ein Verkaufen Signal. Darum weisen wir jetzt den Wert sell unserer signal Variable zu. Im umgekehrten Fall, wenn der aktuelle Wert größer ist und über der Nulllinie liegt und der letzte Wert noch unter der Nulllinie lag, dann haben wir ein Kaufen Signal und dann weisen wir den Wert buy unserer signal Variable zu. Für die eigentliche Positionseröffnung überprüfen wir, ob unser signal den Wert sell hat. Und ob uns die Funktion PositionsTotal einen Wert kleiner eins zurückliefert. In diesem Fall nutzen wir trade.Sell, um eine Position für zehn Mikrolot zu verkaufen. Im umgekehrten Fall, wenn unser signal auf Kaufen steht und den Wert buy hat 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 des Comment Befehls noch eine Ausgabe auf dem Chart. Dort sehen wir dann den Text: Das Signal ist jetzt… gefolgt von dem ermittelten signal. Falls Ihnen das hier alles zu schnell ging oder, falls Sie nicht verstehen, was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus diesem Grundlagenkurs einmal anschauen. Oder vielleicht ist auch der Premiumkurs 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 war, 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. Bitte wählen Sie hier die neu erstellte Datei SimplerIOSMAExpertAdvisor.ex5 aus. Markieren Sie bitte auch hier unten den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Und sobald sich hier die nächste Überkreuzung ergibt, sollten wir eine erste Position auf dem Chart sehen. Das ist jetzt gerade passiert. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den Moving Average of Oscillator einen Expert Advisor erstellen können, der selbständig in der Lage ist, Kaufen und Verkaufen Position anhand dieser Signale hier unten zu generieren. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.