MQL4 Chart Event Types

Overview

  • MQL4 provides 9 predefined chart event types for interaction.
  • A range of 65535 identifiers (CHARTEVENT_CUSTOM to CHARTEVENT_CUSTOM_LAST) is available for custom events.
  • The OnChartEvent() function is the primary handler for all chart events.
  • Custom events can be generated using the EventChartCustom() function.
  • Predefined Event Types and IDs

  • CHARTEVENT_KEYDOWN: Keystrokes.
  • CHARTEVENT_MOUSE_MOVE: Mouse movement and clicks (requires CHART_EVENT_MOUSE_MOVE property set to true).
  • CHARTEVENT_OBJECT_CREATE: Graphical object creation (requires CHART_EVENT_OBJECT_CREATE property set to true).
  • CHARTEVENT_OBJECT_CHANGE: Graphical object property change via its properties dialog.
  • CHARTEVENT_OBJECT_DELETE: Graphical object deletion (requires CHART_EVENT_OBJECT_DELETE property set to true).
  • CHARTEVENT_CLICK: Clicking on the chart area.
  • CHARTEVENT_OBJECT_CLICK: Clicking on a graphical object.
  • CHARTEVENT_OBJECT_DRAG: Dragging and dropping a graphical object.
  • CHARTEVENT_OBJECT_ENDEDIT: End of text editing in a graphical object's edit field.
  • CHARTEVENT_CHART_CHANGE: Chart size change or modification of chart properties through the Properties dialog.
  • CHARTEVENT_CUSTOM: Base ID for custom events.
  • CHARTEVENT_CUSTOM_LAST: Last ID for custom events.
  • OnChartEvent() Function Parameters

    | Event Type | id Parameter Value | lparam Parameter Value | dparam Parameter Value | sparam Parameter Value | |---------------------|----------------------|--------------------------|--------------------------|--------------------------------------------------------------| | Keystroke | CHARTEVENT_KEYDOWN | Key code | Repeat count | Bitmask of keyboard button status | | Mouse Move/Click | CHARTEVENT_MOUSE_MOVE | X coordinate | Y coordinate | Bitmask of mouse/keyboard button status | | Object Create | CHARTEVENT_OBJECT_CREATE | - | - | Name of the created graphical object | | Object Change | CHARTEVENT_OBJECT_CHANGE | - | - | Name of the modified graphical object | | Object Delete | CHARTEVENT_OBJECT_DELETE | - | - | Name of the deleted graphical object | | Chart Click | CHARTEVENT_CLICK | X coordinate | Y coordinate | - | | Object Click | CHARTEVENT_OBJECT_CLICK | X coordinate | Y coordinate | Name of the graphical object clicked | | Object Drag | CHARTEVENT_OBJECT_DRAG | - | - | Name of the moved graphical object | | Object End Edit | CHARTEVENT_OBJECT_ENDEDIT | - | - | Name of the LabelEdit object | | Chart Change | CHARTEVENT_CHART_CHANGE | - | - | - | | Custom Event (N) | CHARTEVENT_CUSTOM+N | Value from EventChartCustom() | Value from EventChartCustom() | Value from EventChartCustom() |

    Mouse/Keyboard State Bitmask (sparam for CHARTEVENT_MOUSE_MOVE)

    | Bit | Description | |-----|-----------------------------| | 1 | Left mouse button state | | 2 | Right mouse button state | | 4 | SHIFT key state | | 8 | CTRL key state | | 16 | Middle mouse button state | | 32 | First extra mouse button | | 64 | Second extra mouse button |

    Configuration

  • To enable CHARTEVENT_MOUSE_MOVE, use ChartSetInteger(ChartID(), CHART_EVENT_MOUSE_MOVE, true);.
  • To enable CHARTEVENT_OBJECT_CREATE, use ChartSetInteger(ChartID(), CHART_EVENT_OBJECT_CREATE, true);.
  • To enable CHARTEVENT_OBJECT_DELETE, use ChartSetInteger(ChartID(), CHART_EVENT_OBJECT_DELETE, true);.
  • Related Functions

  • OnChartEvent()
  • EventChartCustom()
  • ChartSetInteger()
  • Constants

  • CHARTEVENT_KEYDOWN
  • CHARTEVENT_MOUSE_MOVE
  • CHARTEVENT_OBJECT_CREATE
  • CHARTEVENT_OBJECT_CHANGE
  • CHARTEVENT_OBJECT_DELETE
  • CHARTEVENT_CLICK
  • CHARTEVENT_OBJECT_CLICK
  • CHARTEVENT_OBJECT_DRAG
  • CHARTEVENT_OBJECT_ENDEDIT
  • CHARTEVENT_CHART_CHANGE
  • CHARTEVENT_CUSTOM
  • CHARTEVENT_CUSTOM_LAST
  • CHART_EVENT_MOUSE_MOVE
  • CHART_EVENT_OBJECT_CREATE
  • CHART_EVENT_OBJECT_DELETE