MQL5 Tutorial – Fortgeschrittene Trading Bibliothek

video
play-sharp-fill

Das hier ist ein Expert Advisor, der diese Buy-Stops hier eröffnet, indem er eine selbst geschriebene Bibliothek benutzt.
Und in dieser Bibliothek gibt es eine entsprechende Funktion, um die Trades hier auszulösen.
Wir möchten uns jetzt einmal anschauen, wie man so was im MQL5 programmieren kann.
Dazu klicken wir im MetaTrader hier oben auf diesen kleinen Button oder drücken die F4-Taste. Das ruft dann hier den MetaEditor auf.
Und hier habe ich bereits ein Hauptmodul erstellt. Und in diesem Modul nutze ich eine Datei, die nennt sich MeineBibliothek.ex5.
Eine Bibliothek können Sie sich als eine Sammlung von Funktionen vorstellen, die immer wieder genutzt werden und die man in einer Datei bereitstellt.
Und aus dieser Datei importieren wir uns hier, mit diesen beiden Importbefehlen, eine Funktion um den Profit für unser Währungspaar zu berechnen und eine weitere Funktion, die den Buy-Stop öffnet.
In der OnTick-Funktion prüfen wir dann, ob wir bereits geöffnete Orders haben, und falls nicht, eröffnen wir einen Buy-Stop.
Und hier ermitteln wir uns den Profit, indem wir die Methode GetProfitWährungspaar aufrufen, die wir oben aus unserer Bibliothek importiert haben.
Zu guter Letzt geben wir hier mit dem Comment-Befehl noch unseren Profit aus. Alles das ist nicht weltbewegend, aber es geht in diesem Fall ja auch um die Bibliothek selber.
Wir möchten uns jetzt also diese Bibliothek hier erstellen. Dazu klicken wir auf Datei, Neu, Bibliothek, Weiter.
Ich vergebe hier den Namen Meine Bibliothek und klicke auf Fertigstellen. Und der MetaEditor erstellt mir jetzt hier so ein leeres Gerüst und die property library hier oben muss stehen bleiben, damit wir unsere Bibliothek später kompilieren können.
Der Rest kann gelöscht werden. Und damit wir uns die Buy-Stops öffnen können, benötigen wir zunächst einmal die Funktionen aus der Datei Trade.mqh.
Die importieren wir mittels des Include-Befehls und danach erstellen wir uns eine Instanz von der Klasse CTrade, die erhält den Namen Trade.
Jetzt erstellen wir uns hier unsere Funktion GetProfitWährungspaar. Und der Unterschied zu einer herkömmlichen Funktion ist, dass unsere Bibliotheksfunktion um diesen Begriff Export hier erweitert wird.
Wenn man sich das einmal in der MQL5-Hilfe ansieht, dann sieht man, dass man damit Funktionen aus anderen Programmen aufrufen kann. Ansonsten tickt sie wie jede andere Funktion.
Wir erstellen uns hier eine double-Variable für den Profit, zählen alle Positionen von PositionsTotal aus runter, bis wir bei Null angelangt sind, beschaffen uns über PositionGetSymbol für den aktuellen Zähler i das entsprechende Währungspaar.
Und wenn unser Währungspaar auf dem Chart übereinstimmt mit dem Währungspaar aus der aktuellen Position, dann ermitteln wir hier uns mit PositionGetDouble den Positionsprofit, beziehungsweise den Positions-Swap.
Und als Endergebnis ermitteln wir die Summe aus diesen beiden Werten.
Hier wird der for loop beendet und hier formatieren wir das berechnete Ergebnis, indem wir mit NormalizeDouble für den errechneten Wert die Zahl auf zwei Nachkommastellen begrenzen.
Im letzten Schritt geben wir hier den Profit für das Währungspaar zurück. Damit wir überhaupt einen Profit haben, benötigen wir noch eine weitere Funktion, die heißt OpenBuyStop.
Und hier ermitteln wir den Ask-Wert über SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart, benutzen SYMBOL_ASK, weil wir den Ask-Preis benötigen, und formatieren mit NormalizeDouble die Nachkommastellen, indem wir _Digits benutzen.
Das liefert uns für die entsprechenden Währungspaare entweder drei oder fünf Nachkommastellen zurück.
Mit AccountInfoDouble ACCOUNT_BALANCE holen wir uns das Bruttoguthaben auf unserem Konto.
Entsprechend liefert AccountInfoDouble ACCOUNT_EQUITY uns das Nettoguthaben.
Und wenn Netto- und Bruttoguthaben gleich sind, dann eröffnen wir mit dieser Zeile hier einen Buy-Stop für zehn Micro-Lot einhundert Punkte über dem Ask-Preis für das aktuelle Währungspaar.
Wir haben keinen Stop-Loss definiert und unser Take Profit liegt 300 Punkte über dem derzeitigen Ask-Preis.
Mit ORDER_TIME_GTC stellen wir sicher, dass unser Buy-Stop nicht nach einer bestimmten Zeit ausläuft.
Darum ist hier auch die Zeitangabe Null. Und diese letzte Null hier steht für einen Kommentar, den wir ebenfalls nicht benötigen.
Gut, unsere kleine Bibliothek mit den zwei Funktionen ist fertig. Wir klicken jetzt hier auf Kompilieren.
Und wenn das ohne Fehler abgeht, dann können wir unsere selbsterstellte Bibliothek im Hauptmodul importieren.
Wenn man das Ganze jetzt kompiliert, sieht man, dass wir keine Fehler haben.
Also klicken wir hier um in den MetaTrader zurück zu wechseln oder drücken F4 und im MetaTrader klicken wir auf Ansicht, Strategietester oder drücken Steuerung und R.
Das ruft dann hier unten den Strategietester auf und hier wählen wir SimpleBibliothekHauptmodul.ex5 aus und starten unseren Test.
Und wie man sieht, wird jetzt hier unser Profit ausgegeben und wir haben jede Menge Buy-Stops eröffnet.
Das bedeutet, unsere Bibliothek funktioniert wie gewünscht.
Okay, in diesem Video haben Sie gelernt, wie Sie eine eigene Bibliothek erstellen und in Ihrem MQL5-Programm importieren können.
Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.