[ Ссылка ]
In diesem Video wollen wir uns einmal anschauen, wie man so einen Expert Advisor hier programmieren kann. Der nutzt den Parabolic SAR als Einstiegs Signal und den Stochastik Oszillator hier unten als Filter. Also lassen Sie uns mal schauen, wie man so etwas mit MQL5 umsetzt. Um das zu tun, klicken Sie im MetaTrader bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4 Taste. Das ruft dann hier den MetaEditor auf und hier haben wir bereits ein vorprogrammiertes Modul. Wir starten mit dem Include Befehl. Damit können wir die Datei Trade.mqh importieren. Die ist Bestandteil von MQL5 und stellt vereinfachte Handels-Funktionen bereit. Danach importieren wir noch zwei selbst programmierte Module, ebenfalls mit dem Include Befehl. Das erste Modul heißt Check Entry Sar und das wird uns das Einstiegs-Signal liefern. Das zweite Modul heißt Check Entry Stochastik und das ist der Filter. Danach berechnen wir den Ask-Preis und den Bid-Preis. Das geht mit Symbol Info Double für das aktuelle Währungspaar auf dem Chart. Wir nutzen entweder Symbol Ask oder Symbol Bid und mit Symbol Info Double und Unterstrich Digits stellen wir sicher, dass wir die richtige Anzahl der NachKommastellen für das jeweilige Währungspaar berechnen.
Danach erstellen wir uns von der Klasse CTrade eine Instanz mit dem Namen Trade und mit MQL Rates erstellen wir uns ein Preis Info Array. Das werden wir hier im Haupt-Modul und auch für den Einstieg nutzen. Darum haben wir das hier global deklariert. Innerhalb der Ontick-Funktion starten wir mit Array set as series und sortieren unser Preis Info Array von der aktuellen Kerze an abwärts. Danach nutzen wir Copy Rates für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit, um von der aktuellen Kerze null für drei Kerzen die Preis-Daten in unser Preis Info Array zu kopieren. Das macht es möglich, den Schlusskurs für Kerze null zu ermitteln. Das ist unser aktueller Preis. Und um unser Trading Signal zu ermitteln, nutzen wir eine Funktion mit dem Namen Check Entry SAR. Die müssen wir uns gleich noch anschauen. Für den Filter nutzen wir eine zweite Funktion, die heißt Check Entry Stochastik und die steckt im zweiten Modul. Und immer wenn unser Trading Signal auf Kaufen steht und der Filter ebenfalls kaufen möchte, dann prüfen wir mit Positions Total, ob wir offene Positionen haben.
Und wenn alle diese Bedingungen zutreffen, dann nutzen wir Trade Buy, um 10 Microlot zu kaufen. Im anderen Fall, wenn das Trading Signal auf Sell steht und der Filter ebenfalls verkaufen will, dann prüfen wir wieder, ob wir keine offenen Positionen haben. Und wenn alles zutrifft, dann nutzen wir Trade Sell, um 10 Microlot zu verkaufen. Zum Schluss nutzen wir noch den Comment Befehl, um uns sowohl das Trading Signal als auch den Filter für den Stochastik Oszillator bei uns auf dem Chart direkt anzeigen zu lassen. Diese Funktion hier ist ausgelagert in eine Datei, die ebenfalls Check Entry SAR heißt, genauso wie auch diese Funktion hier. Die liefert eine String- , also eine Text Variable zurück. Dazu erstellen wir uns hier erst mal eine String Variable mit dem Namen Signal, der wir hier aber noch keinen Wert zuweisen. Außerdem erstellen wir uns hier ein Array für unseren Indikator. Und mit der in MQL5 enthaltenen Funktion ISAR können wir jetzt für das aktuelle Währungspaar auf dem Chart und die ausgewählte Zeiteinheit den Wert für diese beiden Standardwerte hier ermitteln. Die sehen Sie auch, wenn Sie den Parabolic SAR Indikator auf Ihr Chart ziehen.
Mit Array set as series können wir unser Array jetzt von der aktuellen Kerze an abwärts sortieren und mit Copy Buffer füllen wir anschließend das Array anhand der Definition, die wir hier oben getroffen haben, für Buffer null von der aktuellen Kerze null für drei Kerzen mit Daten. Damit können wir jetzt den letzten SAR Wert für Kerze eins ermitteln, indem wir uns den Wert für Kerze eins aus unserem SAR Array holen. Mit Normalize double und dem Wert fünf hier sorgen wir dafür, dass der Rückgabewert auf fünf NachKommastellen begrenzt wird. Diesen Teil hier habe ich auskommentiert. Damit könnten wir noch den Wert der vorletzten Kerze ermitteln, um Überkreuzungen festzustellen. Aber für dieses kurze Video soll das hier so reichen. Und wenn der letzte Wert für unseren SAR Indikator kleiner war als der niedrigste Preis für Kerze eins, dann ist das für uns ein Kaufen Signal und dann weisen wir unserer Signal Variable den Wert Buy zu. Im anderen Fall, wenn der letzte SAR Wert größer war als der höchste Preis für Kerze eins, dann ist das für uns ein Verkaufen Signal und dann weisen wir unserer Signal Variable den Wert Sell zu.
Ещё видео!