MQL4 TUTORIAL DEUTSCH

MQL4 TUTORIAL GRUNDLAGEN – 56 SIMPLER CLOSE TIMER


Listen Later

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist, Positionen nach einer bestimmten Zeit zu schließen, wenn sie nicht in den Profit gelaufen sind. Wenn wir das hier einmal beschleunigen, dann sehen wir, dass jede Menge Positionen geöffnet und geschlossen worden sind. Die Frage nach einem solchen Timer kam von einem Mitglied des Premium Kurses. Und wir wollen uns einmal anschauen, wie man so etwas in MQL4 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader auf dieses kleine Symbol hier oben oder drücken 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 SimplerCloseTimer, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann hier alles oberhalb der OnTick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen kommen weg. Für unseren Strategietest prüfen wir zunächst, ob die Anzahl der offenen Positionen null ist. Wenn das zutrifft, dann möchten wir hier gerne jeweils eine Buy und eine Sell Testposition eröffnen. Das würde man auf einem Echtgeldkonto natürlich nicht machen. Aber, wir benötigen hier Positionen, damit wir sie schließen können. Im Anschluss rufen wir hier die Funktion CheckCloseTimer auf. Die existiert noch nicht. Also müssten wir die jetzt programmieren. Die Funktion hat den Rückgabetyp void, da wir nichts zurückgeben müssen. Wir nutzen hier eine for Schleife, um alle Orders durchzugehen. Mittels OrderSelect wählen wir die jeweilige Position aus. Und da wir ja zeitbasiert schließen möchten, besorgen wir uns mit Hilfe der Funktion TimeLocal erstmal die aktuelle Zeit im Strategietester. Danach nutzen wir MqlDateTime. Damit kann man eine sogenannte Struktur erstellen. In unserem Fall eine Struktur, die Zeiten und Daten, vor allen Dingen hier die Stunde enthält. Das ist das, was wir brauchen. Dazu nutzen wir TimeToStruct, um aus der Zeit, die wir hier oben ermittelt haben, hier eine Struktur zu machen. Und anschließend ermitteln wir die aktuelle Stunde, indem wir uns aus dieser Struktur den Wert für die Stunde holen. Für die Ausgabe im Journal hätte ich die Zeit gerne nochmal lesbar als String Variable. Jetzt kommen wir zum zweiten Teil. Und das ist die Positionseröffnungszeit. Die erhalten wir mit der Funktion OrderOpenTime. Auch hier nutzen wir MqlDateTime und erstellen uns eine entsprechende Struktur. Jetzt konvertieren wir die DateTime Variable in unsere Zeitstruktur. Und holen uns im Anschluss den Wert für die Stunde, indem wir auf den Wert Hour in unserer Struktur zurückgreifen. Auch die Eröffnungszeit hätte ich gerne nochmal als Textkette in für Menschen lesbarer Form. Und danach berechnen wir die Differenz, indem wir einfach von der aktuellen Stunde, der aktuellen Uhrzeit die ermittelte Eröffnungsstunde abziehen. Bitte bedenken Sie, das funktioniert hier nur innerhalb eines Handelstages. Wenn Sie das datumsübergreifend nutzen möchten, dann müssten Sie zusätzlich auf einen Wechsel des Tagesdatums prüfen. Damit wir auch was sehen, erstellen wir uns hier mit Print noch ein paar Ausgaben. Und jetzt kommt die eigentliche Überprüfung. Denn, wenn so und so viel Stunden vergangen sind, in meinem Fall hier, nach der ersten Stunde, dann möchten wir gerne wissen, ob der Profit negativ ist. Falls das zutrifft prüfen wir, ob der Ordertyp OP_SELL ist. Dann wäre das eine Verkaufsposition. In dem Fall nutzen wir OrderClose für unser ermitteltes OrderTicket in Verbindung mit dem Ask Preis, um die Order zu schließen. Andernfalls, wenn der Ordertyp den Wert OP_BUY hat, dann nutzen wir OrderClose für unser aktuelles Ticket und übergeben den Bid Preis. Zum Schluss müssen wir noch unsere Klammern schließen für die if Abfrage, für den for Loop und für die Funktion. Und das war es soweit. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie nicht verstanden haben, was diese Code Zeilen hier bewirken sollen,
...more
View all episodesView all episodes
Download on the App Store

MQL4 TUTORIAL DEUTSCHBy Raimund Bauer