- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
Se llama en los indicadores y expertos al suceder el eventoChartEvent. La función ha sido diseñada para el procesamiento de los cambios del gráfico provocados por las acciones del usario o el funcionamiento de los programas MQL5.
void OnChartEvent()
|
Parámetros
id
[in] Identificador de evento de la enumeración ENUM_CHART_EVENT.
lparam
[in] Parámetro de evento del tipo long
dparam
[in] Parámetro de evento del tipo double
sparam
[in] Parámetro de evento del tipo string
Valor retornado
No hay valor retornado
Observación
Existen 11 tipos de eventos que pueden ser procesados con la ayuda de la función predeterminada OnChartEvent(). Para los eventos personalizados se ha previsto 65535 identificadores en el rango que va desde CHARTEVENT_CUSTOM hasta CHARTEVENT_CUSTOM_LAST, incluido. Para generar un evento personalizado es imprescindible usar la función EventChartCustom().
Breve descripción de los eventos de la lista ENUM_CHART_EVENT:
- CHARTEVENT_KEYDOWN pulsar el teclado cuando la ventana del gráfico se encuentra en el foco;
- CHARTEVENT_MOUSE_MOVE desplazar el ratón y pulsar los botones del ratón (si para el gráfico se ha establecido la propiedad CHART_EVENT_MOUSE_MOVE=true);
- CHARTEVENT_OBJECT_CREATE crear un objeto gráfico (si para el gráfico se ha establecido la propiedad CHART_EVENT_OBJECT_CREATE=true);
- CHARTEVENT_OBJECT_CHANGE cambiar las propiedades del objeto a través de la venta de diálogo de propiedades;
- CHARTEVENT_OBJECT_DELETE eliminar objeto gráfico (si para el gráfico se ha establecido la propiedad CHART_EVENT_OBJECT_DELETE=true);
- CHARTEVENT_CLICK clic del ratón en el gráfico;
- CHARTEVENT_OBJECT_CLICK clic del ratón en un objeto gráfico que pertenezca al gráfico;
- CHARTEVENT_OBJECT_DRAG desplazar el objeto gráfico con la ayuda del ratón;
- CHARTEVENT_OBJECT_ENDEDIT finalizar la edición del texto en el campo de edición del objeto gráfico Edit (OBJ_EDIT);
- CHARTEVENT_CHART_CHANGE cambios del gráfico;
- CHARTEVENT_CUSTOM+n identificador de evento personalizado, donde n se encuentra en el rango de 0 a 65535. CHARTEVENT_CUSTOM_LAST contiene el último identificador permitido del evento personalizado (CHARTEVENT_CUSTOM+65535).
Todos los programas MQL5 funcionan en flujos distintos al flujo principal de la aplicación. El flujo principal del terminal es responsable de procesar todos los mensajes de sistema de Windows, y como resultado de este procesamiento, a su vez genera mensajes de Windows para su aplicación. Por ejemplo, el desplazamiento del ratón en el gráfico (evento WM_MOUSE_MOVE) genera varios mensajes de sistema para el posterior dibujado de la ventana de la aplicación; asimismo, envía mensajes internos a los expertos e indicadores iniciados en este gráfico. En este caso, además, puede darse la situación de que el flujo de la aplicación aún no haya tenido tiempo de procesar el mensaje de sistema WM_PAINT (y por eso no haya dibujado aún el gráfico), y el experto o indicador ya hayan recibido el evento sobre el desplazamiento del cursor del ratón. Entonces, en esta situación, la propiedad del gráfico CHART_FIRST_VISIBLE_BAR se cambiará solo después de dibujar el gráfico.
Para cada tipo de evento, los parámetros de entrada de la función OnChartEvent() tienen valores determinados, que son necesarios para el procesamiento de este evento. En el recuadro se enumeran los eventos transmitidos a través de los parámetros.
Evento |
Valor del parámetro id |
Valor del parámetro lparam |
Valor del parámetro dparam |
Valor del parámetro sparam |
---|---|---|---|---|
Evento de pulsación del teclado |
CHARTEVENT_KEYDOWN |
código de la tecla pulsada |
Número de pulsaciones de la tecla generadas mientras se mantenía en estado de pulsada |
Valor de línea de la máscara de bits que describe el estado de los botones del teclado |
Evento de ratón (si para el gráfico se ha establecido la propiedad CHART_EVENT_MOUSE_MOVE=true) |
CHARTEVENT_MOUSE_MOVE |
coordenada X |
coordenada Y |
Valor de línea de la máscara de bits que describe el estado de los botones del ratón |
Evento de ruleta del ratón (si para el gráfico se ha establecido la propiedad CHART_EVENT_MOUSE_WHEEL=true) |
CHARTEVENT_MOUSE_WHEEL |
Banderas de los estados de las teclas del ratón, coordenadas X e Y del cursor. La descripción se ofrece en el ejemplo |
Valor Delta del giro de la ruleta del ratón |
|
Evento de creación de un objeto gráfico (si para el gráfico se ha establecido la propiedad CHART_EVENT_OBJECT_CREATE=true) |
CHARTEVENT_OBJECT_CREATE |
|
|
Nombre del objeto gráfico creado |
Evento de cambio de las propiedades del objeto a través de la ventana de diálogo de propiedades |
CHARTEVENT_OBJECT_CHANGE |
|
|
Nombre del objeto gráfico cambiado |
Evento de eliminación de un objeto gráfico (si para el gráfico se ha establecido la propiedad CHART_EVENT_OBJECT_DELETE=true) |
CHARTEVENT_OBJECT_DELETE |
|
|
Nombre del objeto gráfico eliminado |
Evento de clic del ratón en el gráfico |
CHARTEVENT_CLICK |
coordenada X |
coordenada Y |
|
Evento de clic del ratón en el objeto gráfico |
CHARTEVENT_OBJECT_CLICK |
coordenada X |
coordenada Y |
Nombre del objeto gráfico en el que ha tenido lugar el evento |
Evento de desplazamiento del objeto gráfico con la ayuda del ratón |
CHARTEVENT_OBJECT_DRAG |
|
|
Nombre del objeto gráfico desplazado |
Evento de finalización de la edición del texto en el campo de edición del objeto gráfico "Campo de edición" |
CHARTEVENT_OBJECT_ENDEDIT |
|
|
Nombre del objeto gráfico "Campo de edición" en el que se ha editado el texto |
Evento de cambio de tamaño del gráfico o cambio de las propiedades del gráfico a través de la ventana de diálogo de propiedades |
CHARTEVENT_CHART_CHANGE |
|
|
|
Evento personalizado con el número N |
CHARTEVENT_CUSTOM+N |
Valor establecido por la función EventChartCustom() |
Valor establecido por la función EventChartCustom() |
Valor establecido por la función EventChartCustom() |
Ejemplo de oyente de eventos del gráfico:
//+------------------------------------------------------------------+
|
Ver también
EventChartCustom, Tipos de eventos del gráfico, funciones de procesamiento de eventos, Ejecución de programas, Eventos del terminal de cliente