MQL4 TUTORIAL GRUNDLAGEN – 36 SIMPLER MAUS KLICK EVENT

video

In diesem Video wollen wir uns einmal anschauen, wie man Maus Klicks auf dem Chart für ein Ereignis nutzen kann. Wenn ich auf einem Live Chart hier mit der Maus klicke, passiert überhaupt nichts. Ich ziehe mir mal hier einen Expert Advisor auf das Chart. Der heißt SimplerMausKlick und klicken auf Okay. Dann taucht hier oben das Symbol für den Expert Advisor auf. Zunächst passiert hier auch nichts. Aber wenn ich jetzt hier klicke, dann bekomme ich eine Message Box angezeigt die sagt: Das Chart wurde angeklickt. Und sie gibt mir auch die X und Y Koordinaten aus. Und wir wollen uns in diesem einfachen Beispiel mal anschauen, wie man so etwas in MQL4 programmieren kann. Dazu klicken Sie bitte im Metatrader 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, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerMausKlick, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können wir entfernen. Normalerweise nutzen wir recht häufig diese OnTick Funktion hier. Auch das ist eine Funktion, die über ein Ereignis aufgerufen wird. Das Ereignis wird immer dann ausgelöst, wenn es eine Veränderung des Preises auf dem Chart gibt. Wir möchten aber hier mal das Ereignis OnChartEvent nutzen. Denn wenn ich auf dem Chart mit der Maus klicke, wird ein sogenannter Chart Event ausgelöst. Und der braucht hier noch einige Parameter. Der erste Parameter ist die EventID. Die werden wir später auslesen, um herauszufinden, ob es sich um einen Mausklick handelt. Wir nutzen hier den Begriff const für Konstante. Der erste Wert ist ein interger Wert. Parameter Nummer zwei ist ebenfalls eine Konstante. Hier handelt es sich um einen long Parameter. Der trägt auch den Namen lparam für long Parameter. Und das hier ist kein Versehen, sondern die Art und Weise, wie in MQL4 ein Referenzwert übergeben wird. Der dritte Parameter, ebenfalls eine Konstante, ist eine, als Referenz übergebene double Variable. Darum heißt der auch dparam. Und Parameter Nummer vier trägt den Namen sparam. Hier handelt es sich um einen string, also um eine Textkette. Das war es soweit mit den Parametern. Was können wir jetzt damit machen? Nun, wir möchten abprüfen, ob die EventID, also unser erster Parameter hier, den Rückgabewert CHARTEVENT_CLICK liefert. Und wenn das der Fall ist, dann nutzen wir hier eine sogenannte MessageBox. Die wird uns den Text ausgeben: Chart wurde angeklickt. Der Wert für die X-Koordinate steckt im Parameter lparam. Der Wert für die Y-Koordinate wird mit dem Parameter dparam geliefert. Das hier ist nur die Überschrift von unserer MessageBox. Und im letzten Parameter hier legen wir fest, was wir für einen Button haben wollen. In unserem Fall reicht uns ein einfacher Okay-Button. Das war es soweit. Sie können jetzt hier auf Kompilieren klicken oder die F7 Taste drücken. Das hat bei mir ohne Fehler funktioniert. Und wenn das bei Ihnen auch der Fall, dann jetzt auf dieses kleine Symbol hier klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Machen wir mal ein neues Chart Fenster auf. Wenn wir hier klicken, passiert zunächst überhaupt nichts. Ziehen wir aber unseren Expert Advisor SimplerMausKlick auf das Chart und bestätigen das hier mit Okay, dann erscheint hier oben unser Expert Advisor Symbol. Und wenn wir jetzt hier klicken, dann wird die Message Box angezeigt. Auch beide Parameter wurden korrekt übergeben. Das funktioniert also so wie geplant. Allerdings können Sie Message Boxen nicht im Strategietester verwenden. Im Strategietester müssten Sie den Comment Befehl nutzen. Denn Message Boxen werden vom Strategietester leider komplett ignoriert. Das funktioniert aber auf jedem beliebigen Live Chart. Und in diesem kurzen Video haben Sie gelernt, wie Sie einen Mausklick auf einem Chart dazu nutzen können, um ein Ereignis auszulösen und in diesem Fall hier eine Message Box anzuzeigen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL4.