MQL5 TUTORIAL GRUNDLAGEN – 109 SIMPLER FRACTALS EXPERT ADVISOR

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man diesen Indikator hier berechnen kann. Es handelt sich um sogenannte Fractale. Also lassen Sie uns einmal schauen, wie man das mit MQL5 automatisieren kann. Um das zu tun, klicken Sie bitte im Metatrader 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 SimplerFractalsEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion gelöscht werden.

 

Und auch die Kommentarzeilen werden entfernt. Wir starten damit, dass wir einen include Befehl nutzen, um die Datei Trade.mqh zu importieren. Das ermöglicht uns, von der Klasse CTrade eine Instanz mit dem Namen trade zu erstellen. Die werden wir gleich nutzen, um Positionen zu eröffnen. In der OnTick Funktion berechnen wir den Ask Preis und den Bid Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen entweder SYMBOL_ASK oder SYMBOL_BID. Und mit NormalizeDouble und _Digits stellen wir sicher, dass automatisch die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar berechnet wird. Außerdem brauchen wir noch eine Variable für das Signal. Die ist vom Typ string, nimmt hier also Textketten auf. Wir weisen aber noch keinen Wert zu, denn den möchten wir gleich berechnen. Dazu brauchen wir ein Preis Array für die Preis Daten. Das erstellen wir mit Hilfe von MqlRates. Mit Hilfe von ArraySetAsSeries sortieren wir unser Preis Array jetzt von der aktuellen Kerze an abwärts.

 

Und mit CopyRates füllen wir es für das aktuelle Währungspaar auf dem Chart und die aktuelle Zeiteinheit auf diesem Chart. Wir sollten das aber immer gleich schreiben. Deswegen verwenden wir hier _Symbol und _Period. Wenn man das aber mal markiert und die F1 Taste drückt, dann sieht man, dass man das auch mit Klammern verwenden kann. Wir benötigen die Kerzen von Kerze null bis Kerze drei. Und speichern die Werte in unserem Preis Array ab. Wir starten mit Kerze null und benötigen die Daten für drei Kerzen, die wir in unserem Preis Array speichern. Jetzt brauchen wir noch zwei Arrays. Eins für das obere und eins für das untere Fractal. Und um die Werte zu ermitteln nutzen wir die Funktion iFractals für das aktuelle Währungspaar auf dem Chart und die aktuell auf dem Chart ausgewählte Zeiteinheit. Auch diese beiden Arrays sortieren wir wieder mit Hilfe von ArraySetAsSeries von der aktuellen Kerze an abwärts. Und jetzt füllen wir sie mit Werten.

 

Das geht mit der Funktion CopyBuffer. Anhand der Fractals Definition die wir hier oben getroffen haben, füllen wir für die obere Linie, angefangen von Kerze eins für drei Kerzen unser Fractal Array. Das gleiche wiederholen wir hier nochmal für das untere Fractal Array. Das ist ziemlich ähnlich, aber diesmal nutzen wir LOWER_LINE. Und auch der Name von unserem Array wird entsprechend angepasst. Das alles ermöglicht und jetzt, den Wert für die letzte Kerze zu ermitteln. Das bedeutet, wir schauen uns den Wert für Kerze eins in unserem UpperFractalsArray an. Um den oberen Wert zu berechnen beziehungsweise den Wert für Kerze eins in unserem LowerFractalsArray für den unteren Wert. Jetzt kommt eine kleine Besonderheit. Und zwar müssen wir unsere ermittelten Werte jetzt daraufhin prüfen, ob sie dem Wert EMPTY-VALUE entsprechen. Wenn das der Fall ist, dann setzen wir die jeweilige Variable hier auf null. Das machen wir hier auch für den unteren Wert. Denn, wenn das das der Fall ist, dann würden Sie auf dem Chart exponentielle Werte sehen. EMPTY-VALUE steht hier für einen leeren Wert im Indikatorpuffer. Jetzt können wir prüfen, ob unsere Einstiegsbedingungen erfüllt sind.

 

Denn wenn der Wert für das untere Fractal ungleich null ist und dieser Wert kleiner ist, als der niedrigste Preis für Kerze eins in unserem Preis Array, dann wäre das für uns ein buy Signal, also weisen wir den Begriff buy unserer Signal Variable zu. Im anderen Fall, falls der obere Fractal Wert ungleich dem Wert null ist und der obere Fractal Wert größer ist, als der höchste Preis für Kerze eins in unserem Preis Array, dann möchten wir verkaufen. Also weisen wir den Begriff sell unserer Signal Variable zu. Und wenn wir ein sell Signal haben und der Rückgabewert für PositionsTotal kleiner ist als eins, dann haben wir ein Verkaufssignal und keine offenen Positionen. Und dann nutzen wir trade.sell, um zehn Mikrolot zu verkaufen. Im umgekehrten Fall, wenn wir ein buy Signal haben und ebenfalls keine Positionen geöffnet sind, dann nutzen wir trade.buy um zehn Mikrolot zu kaufen. Zum Schluss nutzen wir hier noch den Comment Befehl. Der wird uns das Signal, den oberen und den unteren Fractal Wert auf unserem Chart anzeigen. Hier unten ist noch die schließende Klammer. Und das war es auch schon so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen bewirken sollen, dann möchten Sie sich vielleicht zunächst eines der anderen Videos 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 auch einen Link zu Kursen mit diesen Grundlagen Quelltexten. Für den Moment klicken wir mal auf Ansicht, Werkzeugleiste und klicken hier auf Kompilieren oder drücken die F7 Taste. Das hat in meinem Fall ohne Fehler funktioniert. Und wenn das so ist, dann können Sie 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. Bitte wählen Sie hier die neu erstellte Datei SimplerFractalsEA.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test.

 

So sieht das Ganze dann aus. Der Indikator wird auf dem Chart angezeigt. Wir sehen auch, dass hier die entsprechenden Werte ausgegeben werden. Und ein buy oder sell Signal wird auch angezeigt. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie für die Fractale einen Expert Advisor programmieren können. Und Sie haben das selbst getan, mit diesen paar Zeilen hier in MQL5.