MQL4 TUTORIAL GRUNDLAGEN – 87 SIMPLES SELL BUTTON OBJEKT

video

In diesem Video wollen wir uns einmal anschauen, wie man mit MQL4 ein Objekt programmieren kann. In diesem Fall ist das hier ein Sell-Button. Also lassen Sie uns einmal schauen, wie man so etwas im Metaeditor programmiert. Um das zu tun, klicken Sie bitte hier oben auf dieses kleine Symbol 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 den Namen SimplerSellButton, 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 damit, dass wir in der Funktion OnTick ein Objekt erstellen. Das übernimmt die Funktion ObjectCreate. Und wenn man die einmal markiert und die F1-Taste drückt, dann sehen wir hier, dass das Objekt eine ganze Menge an Parametern verarbeiten kann. Wenn wir hier einmal klicken, dann werden wir zu dieser Liste hier geführt. Die zeigt uns, dass es jede Menge unterschiedliche Objekte gibt, die wir erstellen könnten. Je nach Objekttyp sind die Eigenschaften ganz unterschiedlich. Wir möchten in diesen Fall einen Button erstellen. Der wird dann in dem Fenster mit den Kerzen dargestellt. Der erste Parameter ist für das aktuelle Währungspaar auf dem Chart. Der zweite Parameter steht für den Objektnamen. In diesem Fall möchten wir das Objekt gerne SellButton nennen. Parameter Nummer 3 steht für den Objekttyp. Wir verwenden hier OBJ_BUTTON. Parameter 4 steht für das Fenster, in dem der Button dargestellt werden soll. Bei uns ist es das Hauptfenster mit den Kerzen. Wenn sie Oszillatoren verwenden, dann kennen Sie das vielleicht, dass unterhalb der Kerzen ein zweites Fenster für den Oszillator angezeigt wird. Der nächste Parameter steht für einen Datumswert und der letzte Parameter für einen Preis. Das macht bei unserem Button keinen Sinn, denn der soll immer an der gleichen Stelle dargestellt werden, aber wenn wir beispielsweise eine Linie für die höchste Kerze auf dem Chart zeichnen, dann müsste man diese Linie ja bewegen und dann würde man diese Parameter hier dafür nutzen. Das Objekt ist so weit schon fertig. Wir möchten aber gerne noch einige Eigenschaften setzen. Dazu nutzen wir hier ObjectSetInteger für das aktuelle Währungspaar auf dem Chart und das Objekt mit dem Namen SellButton. Die Eigenschaft, die ich verändern möchte, heißt hier OBJPROP_XDISTANCE und ich setze sie auf 200 Pixel. Weiter geht es mit der Objektbreite. Auch hier ObjectSetInteger für das aktuelle Währungspaar auf dem Chart und das Objekt mit dem Namen SellButton. Diesmal möchten wir die Eigenschaft OBJPROP_XSIZE verändern. Auch hier setzen wir 200 Pixel ein. Weiter geht es mit dieser Eigenschaft. Die heißt OBJPROP_YDISTANCE. Da handelt es sich dann um die vertikale Distanz und auch hier nutzen wir 200 Pixel. Und für die Objekthöhe sieht das ziemlich ähnlich aus. Hier heißt die Eigenschaft OBJPROP_YSIZE und für die Buttonhöhe reichen uns 50 Pixel. Mit der Eigenschaft OBJPROP_CORNER können wir festlegen, in welcher Ecke unser Objekt dargestellt werden soll. Ich habe mich hier für Ecke 3 entschieden. Und im letzten Schritt nutzen wir diesmal ObjectSetString, um einen Textwert zu ändern. Der heißt OBJPROP_TEXT und wir möchten gerne den Text für unseren Button auf SELL ändern. Soweit ist unser Objekt jetzt fertig. Irgendwo habe ich hier eine Klammer verloren. Die gehört hier nicht hin, sondern ans Ende der Funktion. Unser Objekt könnte jetzt schon angezeigt werden, aber wir hätten noch keine Ereignisbehandlung. Damit das passiert, was wir gerne hätten, müssen wir das noch programmieren. Dazu stellt MQL4 das Ereignis OnChartEvent bereit. Wenn man das markiert und die F1-Taste drückt, dann sieht man hier, dass es eine ordentliche Anzahl von Events gibt. Uns interessiert in diesem Fall nur, ob ein Objekt angeklickt wurde. Das stellt man über den CHARTEVENT_OBJECT_CLICK fest. In MQL4 geht das so: Wir prüfen, ob die ID, also der erste Parameter der Funktion, den Wert CHARTEVENT_OBJECT_CLICK hat. Der erste Parameter dieser Funktion ist immer das Ereignis. Die anderen Parameter können unterschiedliche Werte übergeben. Uns wird dieser Wert jetzt gleich interessieren, denn der enthält den Objektnamen. Darum prüfen wir jetzt hier, ob sparam den Wert SellButton hat, denn das ist der Wert für den Namen unseres Objektes. Und wenn das zutrifft, dann gehen wir hier mit den Comment-Befehl den Namen des Parameters und den Text wurde angeklickt auf dem Chart aus. Im Idealfall sollte dann dastehen: SellButton wurde angeklickt. Und danach nutzen wir den OrderSend-Befehl, um eine Sell-Position für 10 Microlot zu eröffnen. Zum Schluss machen wir hier unten noch die Schleife und die Funktion zu und das wars so weit. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie keine Ahnung haben, was diese ganzen Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst nochmal die anderen Videos aus den Grundlagen anschauen, vielleicht ist aber auch der Premiumkurs auf unserer Webseite interessant für Sie. Das hier war wieder ein Vorschlag von einem Premiumkursmitglied. Und wenn Sie bereits Mitglied im Premiumkurs sind und eine Idee für so ein Video haben, dann schicken Sie mir doch einfach ein E-Mail. Jetzt im Moment klicken wir mal hier auf diesen Kompilieren-Button oder drücken die F7-Taste. Das hat bei mir ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier rechts oben klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader brauchen wir jetzt ein leeres Chart, auf einem Demokonto. Ich nutze hier ein MetaQuotes-Demokonto. Das wird auch direkt mitgeliefert, wenn Sie den Metatrader installieren. Der Hintergrund ist, dass wir im Strategietester die Ereignisbehandlung für einen gedrückten Button nicht richtig prüfen können. Darum müssen wir das jetzt hier auf dem Demokonto machen. Und da da eine Position eröffnet wird, nutze ich deswegen kein Live-Konto. Falls Sie kein Demokonto haben, können Sie hier mit einem rechten Mausklick auch ein Konto eröffnen. Das geht innerhalb vom Metatrader für solche MetaQuotes-Demokonten. Ich navigiere jetzt mal hier zu meiner neu erstellten Datei SimplerSellButton. Hier unten sind keine Positionen eröffnet. Ich ziehe jetzt einfach den Expert Advisor auf das Chart. Bitte achten Sie darauf, dass hier der Haken für Life Trading zulassen gesetzt ist und klicken Sie auf OK, dann sollten Sie jetzt hier den Button auf dem Chart sehen. Falls hier oben kein Smiley erscheint, dann müssen Sie hier vielleicht noch AutoTrading zulassen. Ich klicke jetzt mal auf den SellButton. Hier oben erscheint der Text SellButton wurde angeklickt und hier haben wir unsere erste Sell-Position. Die wurde wunschgemäß eröffnet. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie man ein Objekt vom Typ Button so programmieren kann, dass es auch auf Ereignisse reagiert. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL4.