MQL4 TUTORIAL GRUNDLAGEN – 86 SIMPLER BUY BUTTON

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man mit MQL4 einen solchen Button hier erstellen kann. Es handelt sich um ein Objekt und es ist ein BuyButton, mit dem man einen Kauf auslösen kann, wenn er angeklickt wird. Also schauen wir uns doch einmal an, wie man das für den Metatrader 4 programmiert. Um das zu tun, klicken Sie bitte hier oben auf diesen kleinen Button 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 SimplerBuyButton, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. In der OnTick-Funktion nutzen wir ObjectCreate, um unseren Button zu erstellen. Dazu müssen wir einige Parameter übergeben. Der erste Parameter hier steht für das aktuelle Chart. Der zweite Parameter ist der Name. In unserem Fall kriegt der Button den Namen BuyButton. Parameter Nummer 3 steht für den Objekttyp. Wir nutzen hier OBJ_BUTTON. Wenn man das einmal markiert und die F1-Taste drückt, dann sehen wir, dass es hier noch diverse andere Objekttypen gibt. Je nach Objekttyp sind die Eigenschaften und Parameter ganz unterschiedlich. Uns interessiert der Button den man auf einem Chart anzeigen lassen kann. Und das ist dieser Objekttyp. Im nächsten Parameter geben wir die Nummer für das Fenster an. 0 steht für das Hauptfenster und wenn Sie hier auf Einfügen, Indikatoren, Oszillatoren, MACD klicken, dann hätten Sie hier noch ein zweites Fenster für Oszillatoren. Wir möchten aber gerne Fenster 0, damit der Button im Hauptfenster mit den Kerzen zusammen angezeigt wird. Die letzten beiden Parameter stehen hier auf 0, denn wir brauchen keinen Wert für ein Datum und auch nicht für einen Preis anzugeben. Und damit ist der Button soweit erstellt. Jetzt möchten wir noch einige Eigenschaften setzen. Das geht mit ObjectSetInteger für das aktuelle Währungspaar auf dem Chart, für das Objekt mit dem Namen BuyButton. Zunächst verändern wir den Eigenschaftswert für OBJPROP_XDISTANCE. Das ist die Objektdistanz vom Rand und wir setzen die hier auf 200 Pixel. Danach machen wir weiter mit der Objektbreite. Auch da nutzen wir ObjectSetInteger, für das aktuelle Währungspaar auf dem Chart und das Objekt mit dem Namen BuyButton. Diesmal verändern wir die Eigenschaft OBJPROP_XSIZE und setzen die ebenfalls auf 200 Pixel. Das X steht hier für die X-Achse, aber natürlich müssen wir auch noch die Höhe für unseren Button setzen und auch die Eigenschaft für den Abstand von oben. Und um die Objektdistanz vom Rand in Vertikaler Richtung zu setzen, verändern wir hier die Eigenschaft OBJPROP_YDISTANCE. Die wird ebenfalls auf 200 Pixel gesetzt. Für die Objekthöhe nutzen wir OBJPROP_YSIZE. Hier werden wir nur 50 Pixel verwenden. Dann wird unser Button nicht so hoch wie er breit ist. Etwas ungewöhnlich ist die Eigenschaft zum Setzen der Ecke. Wir können für jedes Objekt auf dem Chart eine Ecke auswählen. Ich habe hier mit OBJPROP_CORNER die dritte Ecke gewählt. Und als letzte Eigenschaft hätte ich gerne noch einen entsprechenden Text. Das übernimmt OBJPROP_TEXT. Diesmal aber bitte mit ObjectSetString. Ich hätte gerne den Text Buy auf dem BuyButton. Diese Klammer hier oben gehört da nicht hin, denn die beendet hier die Funktion und man könnte das Ganze jetzt auch schon kompilieren. Das macht aber jetzt noch keinen Sinn, denn wir haben zwar einen Button aber noch keine Ereignisbehandlung. Die müssen wir also noch programmieren. Und das geht mit der Funktion OnChartEvent. Die fasst ziemlich viele Ereignisse zusammen. OnChartEvent nutzt hier 4 Parameter. Der erste Parameter ist immer die Ereignis-ID. Die anderen Parameter werden mit so einem &-Zeichen hier verwendet. Die übergeben uns Werte und diese Werte können je nach Objekttyp völlig unterschiedlich ausfallen. Uns interessiert in diesem Fall der dritte Wert, der ist eine Textkette und diese Textkette übernimmt den Objektnamen. Zunächst wollen wir erst einmal wissen, ob wir das richtige Ereignis haben. Das wäre der Fall, wenn die ID den Wert CHARTEVENT_OBJECTCLICK hat. Da gibt es durchaus noch viele andere Ereignisse, dann wenn man das mal markiert und die F1-Taste drückt, dann sehen wir hier eine ganze Liste von Ereignissen, z.B. wenn eine Taste heruntergedrückt wird, die Maus bewegt wird. Es gibt auch hier dieses Ereignis, das wäre, wenn wir direkt auf das Chart klicken und nicht auf ein Objekt. Uns interessiert aber in diesem Fall, ob das Objekt angeklickt wurde und da wir auch mehrere Buttons auf dem Chart haben könnten, müssten wir jetzt noch herauskriegen, welches Objekt das ist. Und dazu prüfen wir, ob der Wert für sparam den Namen von unserem Button entspricht. In unserem Fall ist das BuyButton. Und sofern das zutrifft, dann möchte ich gerne eine Ausgabe auf dem Chart, die uns sagt, sparam, also im besten Fall BuyButton, wurde angeklickt. Danach nutzen wir den OrderSend-Befehl, um für das aktuelle Währungspaar auf dem Chart eine Kaufposition für 10 Microlot zu eröffnen. Zum Schluss machen wir hier noch die Klammern zu und das wars so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst die anderen Videos aus unserer Grundlagenserie noch einmal anschauen oder vielleicht ist auch der Premiumkurs auf unserer Webseite interessant für Sie. Das hier war übrigens wieder ein Wunsch von einem Premiumkurs Mitglied. Und wenn Sie bereits Premiumkurs Mitglied sind und eine Idee für so ein Video haben, dann schicken Sie mir doch einfach E-Mail. Jetzt klicken wir erstmal hier auf kompilieren oder drücken die F7-Taste. Das hat bei mir ohne Fehler funktioniert 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. Zurück im Metatrader klicken wir auf eine Währung und lassen uns ein neues Chartfenster anzeigen. Und hier oben in dieser Navigatoransicht suchen wir uns jetzt unseren neuen Expert Advisor heraus. Diesmal können wir das nicht im Strategietester machen, denn die Funktion für die Events wird da nicht unterstützt. Darum stellen Sie bitte sicher, dass Sie hier ein Demokonto benutzen. So ein Metaquotes Demokonto kann man sich auch direkt im Metatrader erstellen lassen. Wir haben ein entsprechendes Video dazu bereits erstellt. Ich hab hier ein Demokonto und jetzt ziehe ich meinen Expert Advisor einfach auf das Chart. Bitte achten Sie darauf, dass Sie unter der Reiterkarte Allgemein hier unten das Life Trading zulassen, klicken Sie dann auf OK. Dann sollte bei der nächsten Preisänderung hier unser BuyButton erscheinen. Das ist jetzt passiert. Wie man sieht, habe ich hier unten keine geöffneten Positionen, aber wenn ich jetzt hier auf den Button klicke, dann erscheint unser Text, der BuyButton wurde angeklickt. Hier wurde auch schon unsere Kaufposition eröffnet. Der Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen BuyButton Objekt in MQL4 programmieren können und wie die Ereignisbehandlung funktioniert. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.