MQL4 TUTORIAL GRUNDLAGEN 104 – SIMPLER SELL STOP LOSS

video

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor erstellen kann, der mit sich überkreuzenden gleitenden Durchschnitten Sell Position eröffnen und bei einer Trendwende wieder schließen kann. Also lassen Sie uns einmal schauen, wie man so etwas in MQL4 programmieren 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 dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerSellCrossoverStop, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden.

 

Und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns zunächst eine Signal Variable erstellen. Die ist vom Typ String, damit sie Textketten aufnehmen kann. Und wir vergeben hier den Namen signal, aber weisen noch keinen Wert zu, denn den möchten wir gleich noch ermitteln. Dazu berechnen wir zunächst der Wert für den SmallMovingAverage für Kerze eins. Das tun wir mit Hilfe der iMA Funktion für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit.

 

Wir möchten das gerne für zwanzig Kerzen ermitteln, nutzen hier keinen Wert für die Verschiebung. Als Parameter verwenden wir MODE_SMA. Das steht für Simple Moving Average. Für einen exponentiellen gleitenden Durchschnitt könnte Sie hier auch MODE_EMA verwenden. Das Ergebnis soll anhand der Schlusskurse der letzten Kerze berechnet werden. Und das ist Kerze eins. Das Ganze wiederholen wir jetzt noch einmal für den BigMovingAverage. Die Ermittlung ist ziemlich identisch, mit dem Unterschied, dass wir das diesmal für fünfzig Kerzen tun. Und natürlich der Name der Variablen etwas anders ist.

 

Und das ermöglicht es uns jetzt zu vergleichen. Wir möchten gerne wissen, ob der BigMovingAverage für Kerze eins größer ist, als der Wert für den SmallMovingAverage für Kerze eins. Für den Fall, dass das zutrifft, setzen wir unser Signal auf sell. Denn dann haben wir ein Verkaufen Signal. Im anderen Fall, wenn der BigMovingAverage kleiner ist, als der SmallMovingAverage für Kerze eins, dann ist das für uns ein Kaufsignal und dann weisen wir den Begriff buy unserer Signal Variable zu. Wenn wir ein Signal haben, das auf sell steht und wir für den Rückgabewert der Funktion OrdersTotal eine null zurückerhalten, dann würde das bedeuten, wir haben ein Verkaufssignal und keine offene Position. Und dann nutzen wir OrderSend, um eine Verkaufsposition für zehn Mikrolot zu eröffnen. Das hier ist eine Testposition. Natürlich würde man das nicht auf einem Echtgeldkonto machen.

 

Aber wir brauchen für unseren Sell Crossover Stop natürlich eine geöffnete Position, um zu überprüfen, ob das funktioniert. Denn wenn unser Signal auf buy steht, wir als ein Kaufsignal erhalten, und der Rückgabewert für OrdersTotal größer ist als null, dann bedeutet das, wir haben geöffnete sell Positionen und die möchten wir dann mit Hilfe eine Funktion schließen. Diese Funktion CloseSellPositionsThisPair existiert noch nicht. Die müssen wir gleich noch programmieren. Damit wir sehen können, wie das aktuelle Signal aussieht, möchten wir noch eine Comment Ausgabe auf dem Chart integrieren. Die wird den Text anzeigen: das aktuelle Signal ist… gefolgt von dem ermittelten Signal. Soweit so gut. Damit wir diese Funktion hier nutzen können, müssen wir die jetzt noch erstellen.

 

Unsere Funktion nutzt void, also keinen Rückgabewert und soll den Namen CloseSellPositionsThisPair tragen. Mit Hilfe einer for Schleife gehen wir alle Positionen der Reihe nach durch. Wir nutzen OrderSelect um jeweils eine Order zu selektieren und zwar für den Wert des aktuellen Schleifenzählers. Danach ermitteln wir das Währungspaar der aktuellen Position. Das übernimmt die Funktion OrderSymbol. Und jetzt können wir prüfen, ob das aktuelle Währungspaar auf dem Chart übereinstimmt mit dem Positionswährungspaar der selektierten Order. Im Anschluss möchten wir noch wissen, ob der Ordertyp den Wert OP_SELL hat. Denn, wenn das wahr ist, dann handelt es sich um eine Verkaufsposition. Und wenn alles diese Bedingungen zutreffen, dann nutzen wir OrderClose für das aktuelle Order-Ticket und die aktuelle OrderLot Größe, um die aktuelle Position zum Ask Preis zu schließen. Zum Schluss müssen wir noch die for Schleife und die Funktion schließen.

 

Und das war es soweit auch. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Code Zeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst ein anderes der Videos aus dieser Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Den finden Sie auf unserer Webseite. Und da finden Sie jetzt auch einen Link, falls Sie Quellcodes aus diesen Grundlagen Videos benötigen. Für den Moment klicken wir hier oben auf Kompilieren oder drücken die F7 Taste. Das sollte ohne Fehler funktionieren. Und wenn das bei Ihnen auch der Fall 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 Strg+R.

 

Das ruft dann hier den Strategietester auf. Bitte wählen Sie hier die neu erstellte Datei SimplerSellCrossoverStop.ex4 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Das Ganze ist etwas langsam. Deswegen beschleunigen wir das mal. Im Moment steht unser Signal auf sell. Aber sobald sich der Trend dreht, dann sollte unsere Position hier geschlossen werden. Wir sehen aber noch keine gleitenden Durchschnitte. Deswegen stoppen wir das Ganze hier einmal. Jetzt tauchen die beiden gleitenden Durchschnitte hier auf unserem Chart auf. Wir klicken mit der rechten Maustaste in das Chart. Wählen Vorlagen, Vorlage speichern. Und speichern das Ganze unter dem Namen tester.tpl.

 

Den aktuellen Wert können Sie überschreiben. Denn tester.tpl ist die Schablone, die uns beim nächsten Strategietest als Standard angezeigt wird. Darum starten wir erneut. Jetzt sehen wir auch die gleitenden Durchschnitte. Und wenn sich gleich hier unser Trend verändert und wir ein buy Signal bekommen, dann sollte diese Position hier in wenigen Sekunden geschlossen werden. Das kann manchmal ein bisschen dauern. Aber jetzt ist das grade passiert. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Expert Advisor erstellen können, der in der Lage ist, bei sich überkreuzende Durchschnitte Sell Positionen entweder zu öffnen oder zu schließen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.