Der "Test_ChartEvent.mq4" Expert Advisor ist ein anschauliches Beispiel, das die verschiedenen Arten von ChartEvents demonstriert: Tastatureingaben, Maus-Klicks und -bewegungen sowie benutzerdefinierte Events. Drücke die 'H'-Taste für Hilfe und die 'M'-Taste, um in den MOUSE_MOVE-Modus zu wechseln.
Der Quellcode funktioniert sowohl in MetaTrader 4 als auch in MetaTrader 5.
Funktionsprototyp
- bool Obj_Create()
- bool Obj_Delete()
- bool Obj_Move(int hSens,int vSens) - verschiebt ein Objekt.
- void Print_Info() - gibt Informationen über die Objekte aus.
- int MouseMove(int aXX,int aYY,string sState) - verarbeitet das Mausbewegungs-Event.
Globale Variablen
- int gChartNo=0
- int gSubWinNo=0
- string gsObj_Name_selected="" - der Name des aktuell ausgewählten Objekts.
Benutzerdefinierte Events
Drei Arten von benutzerdefinierten Events sind definiert:
- #define cMyEvent_1 0
- #define cMyEvent_2 1
- #define cMyEvent_3_broadcast 2
OnTimer() Funktion
Diese Funktion erzeugt regelmäßig das benutzerdefinierte ChartEvent. Dabei werden zufällig diese drei benutzerdefinierten Events (cMyEvent_1, cMyEvent_2 und cMyEvent_3_broadcast) generiert. Insbesondere wird das cMyEvent_3_broadcast Event für alle geöffneten Chartfenster erzeugt.
Beispiel einer Klasse
Die Klasse "CObjectMan" wurde erstellt, um die Funktionalität für Objekte auf einem Chart zu verwalten. Es sind zwei Instanzen (Variablen) der Klasse deklariert: gObjectMan1 und gObjectMan2.
Die Namen der grafischen Objekte, die mit diesen beiden Instanzen verknüpft sind, lauten jeweils: "Grüner Knopf" und "Gelber Knopf".
Eventverarbeitung
void OnChartEvent():
Die "CHARTEVENT_KEYDOWN" Events:
- 4 Richtungstasten (Pfeile) oder die 4 Richtungstasten auf dem digitalen Panel, um das ausgewählte Objekt zu bewegen.
- 'H': Druckt die Hilfsinformationen (im Expertenprotokollfenster).
- 'I': Druckt die Positionsinformationen von zwei Objekten.
- 'M': Aktiviert das MOUSE_MOVE Event.
Benutzerdefinierte Events
Druckt Informationen über diese Events aus. Insbesondere für das MyEvent_3_broadcast Event.
Objekt-Events
- CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - gibt den entsprechenden Objektnamen aus.
- CHARTEVENT_OBJECT_CLICK - gibt den Namen des angeklickten Objekts aus, wähle seinen Namen zum Bewegen mit den Richtungstasten.
Maus-Events
- CHARTEVENT_CLICK - gibt die Informationen der angeklickten Kerze aus: die Preise (Eröffnung, Schluss) und die Zeit der Kerze.
- CHARTEVENT_MOUSE_MOVE (siehe: CHART_EVENT_MOUSE_MOVE) - gibt die Informationen des abgedeckten Intervalls aus: Anzahl der Kerzen, Preisänderung.

Demonstration
Du kannst die folgenden Tests durchführen:
- Klicke auf eines der beiden Objekte (Buttons), um es auszuwählen, und benutze die Pfeiltasten, um das ausgewählte Objekt zu bewegen.
- Klicke auf die grafische Kerze und sehe die Informationen der Kerze im Protokoll-Tab (Nachricht).
- Drücke die 'M'-Taste, um in den MOUSE_MOVE Eventmodus zu wechseln. Drücke Ctrl+F, um das Fadenkreuz anzuzeigen, und führe einen Drag'n'Drop-Vorgang durch. Wenn du die Protokollnachricht nicht siehst, ändere bitte den Eingabeparameter: "iLogLevel".
Verwandte Beiträge
- Handelssignale mit MQL5 Wizard: Bullish und Bearish Harami mit CCI bestätigen
- MQL5 Wizard: Trade Signale auf Basis von Kurs-Crossover mit gleitendem Durchschnitt und ADX Bestätigung
- MQL5 Wizard: Handels-Signale mit 3 Schwarzen Krähen und 3 Weißen Soldaten + MFI
- MQL5 Wizard: Handels-Signale mit 3 schwarzen Krähen / 3 weißen Soldaten + CCI für MetaTrader 5
- MQL5 Wizard: Handelssignale durch 3 Schwarze Krähen/3 Weiße Soldaten + RSI