MQL5 TUTORIAL GRUNDLAGEN – 85 SIMPLER TAKE PROFIT POINT TEST

video
play-sharp-fill

In diesem Video wollen wir einmal testen, wie man Profit Punkte optimieren kann. Wir haben hier einen benutzerdefinierten Wert, den wir verändern können. 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 einmal den Namen SimplerProfitPointTest, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include-Befehl. Der wird uns die Datei trade.mqh importieren. Die ist Bestandteil von MQL5 und sie enthält eine Klasse mi dem Namen CTrade. Davon erstellen wir uns hier eine Instanz, die wir trade nennen. In der OnTick-Funktion möchten wir gerne den Aks- und den Bid-Preis berechnen. Das übernimmt die Funktion SymbolInfoDouble, für das aktuelle Währungspaar auf dem Chart. Der zweite Parameter ist entweder SYMBOL_ASK oder SYMBOL_BID, je nach dem ob wir den Ask- oder den Bid-Preis berechnen möchten und mit NormalizeDouble und _Digits stellen wir sicher, dass die richtige Anzahl von Nachkommastellen berechnet wird. Das kann nämlich je nach Währungspaar unterschiedlich sein. Im nächsten Schritt nutzen wir MqlRates, um uns ein Array mit Preisdaten zu erstellen. Das wird jetzt mit Hilfe der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert und mit der Funktion CopyRates füllen wir unser Array jetzt mit Preisdaten für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir starten bei Kerze 0 und kopieren die Werte für die nächsten drei Kerzen und speichern sie unserem PriceInfo Array. Danach möchten wir eine Signalvariable erstellen. Die ist vom Typ string damit sie Text aufnehmen kann und bekommt hier noch keinen Wert zugewiesen, denn wir möchten unser Signal anhand von einem Simple Moving Average, für 50 Kerzen, ermitteln. Dazu erstellen wir uns hier erst einmal ein passendes Array. Im nächsten Schritt nutzen wir die in MQL5 eingebaute Funktion IMA für das aktuelle Währungspaar auf dem Chart und die aktuelle Zeiteinheit auf diesem Chart, um für 50 Kerzen ohne eine Verschiebung einen Wert für einen Simple Moving Average zu berechnen. Deswegen nutzen wir hier MODE_SMA. Und der letzte Parameter PRICE_CLOSE sorgt dafür, dass die Ergebnisse anhand der Schlusskurse ermittelt werden. Auch hier nutzen wir wieder ArraySetAsSeries, um unser Array von der aktuellen Kerze an abwärts zu sortieren. Und mit CopyBuffer füllen wir unser Array mit Daten, und zwar anhand der SMA50-Definition, die wir hier oben getroffen haben. Wir tun das für Buffer 0, von der aktuellen Kerze 0 und speichern die Daten von 10 Kerzen in unserem Array. Uns interessiert im Moment nur der aktuelle Wert. Den erhalten wir, wenn wir auf den Wert von Kerze 0 in unserem Array zugreifen. Und das Ergebnis weisen wir hier dieser Variable zu. Und wenn dieser Wert größer ist als der aktuelle Ask-Preis, dann möchten wir gerne kaufen und dann weisen wir den Begriff buy unserer Signalvariable zu. Im anderen Fall, wenn der Wert kleiner ist als der aktuelle Bid Preis, dann möchten wir gerne verkaufen und dann weisen wir den Begriff sell unserer Signalvariable zu. Und jetzt kommt der eigentlich interessante Teil: Denn wenn unser Signal auf sell steht und PositionsTotal uns einen Wert kleiner 1 zurückliefert, dann haben wir keine geöffneten Positionen, aber ein Sell-Signal. Und dann nutzen wir trade.Sell, um 10 Microlot zu verkaufen. Und hier kommt jetzt unsere UserProfitPointValue-Variable zum Einsatz. Denn hier legen wir jetzt unseren Take Profit fest. Der wird hier noch mit dem Punktewert für die aktuelle Währung multipliziert. Die kann je nach ausgewähltem Währungspaar unterschiedlich sein. Im anderen Fall, wenn das Signal auf kaufen steht und wir ebenfalls keine geöffneten Positionen haben, dann nutzen wir hier trade.Buy, um 10 Microlot zu kaufen. Und auch hier multiplizieren wir unsere benutzerdefinierte Punktevariable mit dem Punktewert für die Währung. Zum Schluss nutzen wir noch den Comment-Befehl, um eine Ausgabe auf dem Chart für das aktuelle Signal und den aktuellen Wert der benutzerdefinierten Punktevariable auszugeben. Und das wars auch so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht die anderen Videos in dieser Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs auf unserer Webseite interessant für Sie. Das hier war übrigens wieder ein Vorschlag von einem Premiummitglied und falls Sie schon Premiummitglied sind und eine Idee für so ein Video haben, dann schicken Sie mir einfach ein passendes E-Mail. Für den Moment klicken wir mal auf Ansicht und blenden die Werkzeugleiste ein. Hier klicken wir jetzt auf Kompilieren. Sie können auch die F7-Taste drücken. Und offensichtlich habe ich einen Fehler gemacht. Ich habe nämlich hier die Deklaration vergessen. Holen wir das noch nach und deklarieren hier eine sogenannte input-Variable. Es handelt sich hierbei um eine Eingabevariable, die vom Benutzer verändert werden kann, über die Eigenschaften des Expert Advisors, ohne dass man den Quellcode neu kompilieren muss. Unsere Variable ist vom Typ integer, heißt UserProftPointValue und hat den Standardwert 300. Wiederholen wir das mit dem Kompilieren nochmal, dann sollte das jetzt ohne Fehler funktionieren und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken Sie die F4-Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken Sie bitte auf Ansicht, Strategietester oder drücken Sie die Tastenkombination Steuerung und R. Hier wählen wir die neu erstellte Datei SimplerProfitPointTest.ex5 aus. Und jetzt klicken wir mal hier unten auf Eingaben und verändern den aktuellen Wert. Ich nehm mal 290 Punkte, drücke auf Enter und starte meinen Test. Jetzt sehen wir hier oben den Wert für die Profitpunkte auftauchen. Wenn man das Ganze beschleunigt, dann kriegt man relativ schnell ein Ergebnis für ein ganzes Jahr. Und im nächsten Schritt können Sie dann den Wert für die Profitpunkte verändern und für sich selbst herausfinden, was der optimal Wert für Sie ist. Denn in diesem kurzen Video haben Sie gelernt, wie Sie einen Expert Advisor programmieren können, der in der Lage ist, mit unterschiedlichen Profitpunkten automatisch zu traden. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.