MQL5 Tutorial - Automatisch traden mit Metatrader5

MQL5 TUTORIAL GRUNDLAGEN – 82 SIMPLER SMA SELL TRAILING STOP


Listen Later

In diesem Video wollen wir uns einmal anschauen, wie man einen Sell Trailing Stop für einen gleitenden Durchschnitt programmieren kann. Wenn wir hier hineinzoomen dann sehen wir, dass wir eine Sell Position haben. Hier ist der gleitende Durchschnitt und der Stop Loss wird hier nachgezogen, also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das zu tun klicken Sie im Metatrader 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 mal den Namen SimplerSMASellTrailingStop, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier entfernt werden und wir löschen auch die beiden Kommentarzeilen. Im ersten Schritt nutzen wir die include-Anweisung, um die Datei Trade.mqh zu importieren. Die ist Bestandteil von MQL5 und stellt uns vereinfachte Handelsfunktionen bereit. Dazu erstellen wir uns zunächst eine Instanz von der Klasse CTrade und geben ihr den Namen trade. In der OnTick-Funktion erstellen wir eine statische Variable vom Typ double. Die bekommt den Namen LastStopMovingAverageValue und wird den jeweils vorhergehenden Wert für unseren StopMovingAverage-Wert aufnehmen. Außerdem benötigen wir die Werte für den Ask Preis und den Bid Preis. Die liefert uns 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 wir die richtige Anzahl von Nachkommastellen für jedes Währungspaar automatisch berechnen. Damit wir einen Stop Loss nachziehen können brauchen wir auch eine Testposition. Wenn also die Funktion PositionsTotal einen Wert kleiner 1 zurückliefert, dann heißt das: wir haben keine geöffnete Position. Und dann nutzen wir trade.Sell, um eine Position für 10 Microlot zu verkaufen. Im nächsten Schritt setzen wir hier den Wert für LastStopMovingAverageValue auf einen unrealistisch hohen Wert von 1.000. Man könnte hier den Wert auch hier auf 0 setzen, dann müssten wir aber eine zusätzliche Überprüfung einbauen, denn in der Regel wird bei einem SellTrailingStop geprüft, ob der aktuelle Stop Loss tiefer ist als der vorhergehende Wert und der wird niemals kleiner als 0. Darum machen wir das in diesem Fall einfach mal so. Für unseren einfachen gleitenden Durchschnitt erstellen wir jetzt ein Array. Das wird im nächsten Schritt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit der in MQL5 enthaltenen Funktion iMA erstellen wir uns jetzt für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit für 500 Kerzen, ohne eine Verschiebung zu nutzen einen SimpleMovingAverage. Darum nutzen wir MODE_SMA. SMA steht für SimpleMovingAverage. Und wir möchten gerne, dass die Ergebnisse anhand der Schlusskurse berechnet werden. Mit CopyBuffer füllen wir jetzt unser MovingAverageArray anhand der Definition, die wir hier oben getroffen haben, und zwar für Buffer 0. Das ist diese Linie hier von dem gleitenden Durchschnitt. Wir starten bei der aktuellen Kerze 0 und füllen unser MovingAverageArray mit Werten für 3 Kerzen. Danach können wir den aktuellen Wert ermitteln indem wir uns einfach den Wert für Kerze 1 aus unserem Array herausholen. Zunächst einmal möchten wir wissen, ob der Wert für den Stop Loss Moving Average größer ist als der aktuelle Ask Preis und außerdem macht es nur dann Sinn, wenn sich der Wert so verändert hat, dass er jetzt niedriger ist als der letzte gemessene Wert, denn bei einem SellTrailingStop macht es keinen Sinn den Stop weiter nach oben zu schieben. Und wenn diese beiden Bedingungen wahr sind, dann möchten wir eine Funktion mit dem Namen CheckSMASellTrailingStop aufrufen. Der übergeben wir dann den aktuellen Bid Preis und den berechneten Wert für den StopMovingAverage-Wert. Anschließend weisen wir den aktuellen Wert der Variable La...
...more
View all episodesView all episodes
Download on the App Store

MQL5 Tutorial - Automatisch traden mit Metatrader5By MQL5 Tutorial - Automatisch traden mit Metatrader5