- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
Die Funktion wird von Indikatoren und EAs aufgerufen, wenn das Ereignis ChartEvent eintritt. Die Funktion reagiert auf Änderungen im Chart, die vom Nutzer oder einem MQL5-Programm verursacht werden.
void OnChartEvent()
|
Parameter
id
[in] Ereignis-ID aus der Enumeration ENUM_CHART_EVENT.
lparam
[in] long Typ Ereignisparameter
dparam
[in] double Typ Ereignisparameter
sparam
[in] string Typ Ereignisparameter
Rückgabewert
Kein Rückgabewert
Hinweis
Es gibt 11 Typen von Ereignissen, die mit der vordefinierten Funktion OnChartEvent() behandelt werden können. 65535 IDs von CHARTEVENT_CUSTOM bis einschließlich CHARTEVENT_CUSTOM_LAST werden für benutzerdefinierte Ereignisse bereitgestellt. Um ein benutzerdefiniertes Ereignis zu erzeugen, verwenden Sie die Funktion EventChartCustom().
Kurze Ereignisbeschreibung aus der Enumeration ENUM_CHART_EVENT:
- CHARTEVENT_KEYDOWN - Drücken einer Taste auf der Tastatur, wenn ein Chartfenster im Fokus ist;
- CHARTEVENT_MOUSE_MOVE - Bewegen der Maus und der Maustastenklicks (wenn CHART_EVENT_MOUSE_MOVE=true eines Charts);
- CHARTEVENT_OBJECT_CREATE - erzeugt ein graphisches Objekt (wenn CHART_EVENT_OBJECT_CREATE=true eines Charts);
- CHARTEVENT_OBJECT_CHANGE - Objekteigenschaften über den Eigenschaftsdialog ändern;
- CHARTEVENT_OBJECT_DELETE - ein grafisches Objekt löschen (wenn CHART_EVENT_OBJECT_DELETE=true eines Charts);
- CHARTEVENT_CLICK - Klicken auf ein Chart;
- CHARTEVENT_OBJECT_CLICK - Mausklick auf ein grafisches Objekt eines Charts;
- CHARTEVENT_OBJECT_DRAG - Ziehen eines grafischen Objekts mit der Maus;
- CHARTEVENT_OBJECT_ENDEDIT - Beendet die Bearbeitung von Text im Eingabefeld Editieren eines grafischen Objekts (OBJ_EDIT);
- CHARTEVENT_CHART_CHANGE - ändert ein Chart;
- CHARTEVENT_CUSTOM+n - eigene Ereignis-ID, wobei n im Bereich von 0 bis 65535 liegt. CHARTEVENT_CUSTOM_LAST enthält die letzte akzeptable benutzerdefinierte Ereignis-ID (CHARTEVENT_CUSTOM+65535).
Alle MQL5-Programme arbeiten in anderen Threads als dem Haupt-Thread der Anwendung. Der Hauptanwendungs-Thread ist für die Behandlung aller Windows-Systemmeldungen zuständig und generiert daraus wiederum Windows-Meldungen für die eigene Anwendung. Wenn Sie beispielsweise die Maus über ein Diagramm bewegen (Ereignis WM_MOUSE_MOVE), werden mehrere Systemmeldungen für das spätere Rendern des Anwendungsfensters erzeugt und auch interne Meldungen an Experten und Indikatoren gesendet, die auf dem Diagramm gestartet werden. Es kann vorkommen, dass der Hauptanwendungs-Thread die Systemmeldung WM_PAINT noch nicht verarbeitet hat (und somit das modifizierte Diagramm noch nicht gerendert hat), während ein EA oder ein Indikator das Mausbewegungsereignis bereits empfangen hat. In diesem Fall wird die Chart-Eigenschaft CHART_FIRST_VISIBLE_BAR erst nach der Darstellung des Charts geändert.
Für jeden Ereignistyp haben die Eingänge des OnChartEvent() Befehls bestimmte Werte, die für die Behandlung dieses Ereignisses notwendig sind. Die Tabelle listet Ereignisse und Werte auf, die mit den Parametern übergeben werden.
Ereignis |
'id' Parameterwert |
'lparam' Parameterwert |
'dparam' Parameterwert |
'sparam' Parameterwert |
---|---|---|---|---|
Tastendruckereignis |
CHARTEVENT_KEYDOWN |
gedrückter Tastencode |
Die Anzahl der Tastendrücke, die erzeugt wurden, während die Taste im gedrückten Zustand gehalten wurde. |
Wert des Strings der Bitmaske, der den Status der Tastaturtasten beschreibt. |
Mausereignisse (wenn CHART_EVENT_MOUSE_MOVE=wahr eines Charts) |
CHARTEVENT_MOUSE_MOVE |
X Koordinate |
Y Koordinate |
Wert des Strings der Bitmaske, der den Status der Maustasten beschreibt. |
Mausrad-Ereignis (wenn CHART_EVENT_MOUSE_WHEEL=true eines Charts) |
CHARTEVENT_MOUSE_WHEEL |
Zustände der Tasten und Maustasten, X- und Y-Koordinaten des Cursors. Siehe die Beschreibung im Beispiel. |
Der Delta-Wert des Mausrads beim Drehen |
— |
Erstellen von Grafikobjekten (wenn CHART_EVENT_OBJECT_CREATE=true eines Charts) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
Name des erstellten Grafikobjektes |
Änderungen der Objekteigenschaften über den Eigenschaftendialog |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
Name des geänderten Grafikobjekts |
Entfernt ein Grafikobjekt (wenn CHART_EVENT_OBJECT_DELETE=true eines Charts) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
Name eines entfernten Grafikobjekts |
Mausklick auf einem Chart |
CHARTEVENT_CLICK |
X Koordinate |
Y Koordinate |
— |
Mausklick auf einem Grafikobjekt |
CHARTEVENT_OBJECT_CLICK |
X Koordinate |
Y Koordinate |
Name des Grafikobjektes, dessen Ereignis auftrat |
Verschieben eines Grafikobjekts mit der Maus |
CHARTEVENT_OBJECT_DRAG |
— |
— |
Name des verschobenen Grafikobjekts |
Beenden eine Textänderung im Grafikobjekt "Eingabefeld" |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
Name des Grafikobjekts "Eingabefeld", in dem die Bearbeitung beendet wurde |
Ändern der Größe oder der Eigenschaften des Charts über den Eigenschaftendialog |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
Benutzerdefiniertes Ereignis mit der Nummer N |
CHARTEVENT_CUSTOM+N |
Wert, definiert mit der Funktion EventChartCustom() |
Wert, definiert mit der Funktion EventChartCustom() |
Wert, definiert mit der Funktion EventChartCustom() |
Beispielchart des 'listener' von Ereignissen:
//+------------------------------------------------------------------+
|
Siehe auch
EventChartCustom, Typen der Chartereignisse, Ereignisbearbeiter, Durchführung der Programme, Ereignisse des Client-Terminals