Inicio Trading Sistemático Publicación

Ejemplo de Test de ChartEvent en MetaTrader 4: Mejora tu Trading

Archivos adjuntos
17875.zip (4.97 KB, Descargar 2 veces)

El Asesor Experto "Test_ChartEvent.mq4" es un ejemplo que muestra los diferentes tipos de eventos de ChartEvent: eventos de teclas del teclado, clics y movimientos del ratón, y eventos personalizados. Puedes presionar la tecla 'H' para obtener ayuda y la tecla 'M' para entrar en el modo de evento MOUSE_MOVE.

El código fuente funciona tanto en MetaTrader 4 como en MetaTrader 5.


Prototipo de Función

  • bool Obj_Create()
  • bool Obj_Delete()
  • bool Obj_Move(int hSens,int vSens) - mueve un objeto.
  • void Print_Info() - imprime información sobre los objetos.
  • int MouseMove(int aXX,int aYY,string sState) - maneja el evento de movimiento del ratón.


Variables Globales

  • int gChartNo=0
  • int gSubWinNo=0
  • string gsObj_Name_selected="" - el nombre del objeto seleccionado actualmente.


Eventos Personalizados

Se definen tres tipos de eventos personalizados:

  • #define cMyEvent_1 0
  • #define cMyEvent_2 1
  • #define cMyEvent_3_broadcast 2


Función OnTimer()

Esta función crea el evento ChartEvent personalizado de forma periódica y genera aleatoriamente estos tres eventos personalizados (cMyEvent_1, cMyEvent_2 y cMyEvent_3_broadcast). En particular, el evento cMyEvent_3_broadcast se genera para todas las ventanas de gráficos abiertas.


Ejemplo de Clase

Se crea la clase "CObjectMan" para gestionar la funcionalidad de los objetos en un gráfico. Se declaran dos instancias (variables) de la clase: gObjectMan1 y gObjectMan2.

Los nombres de los Objetos Gráficos vinculados a estas dos instancias son respectivamente: "Botón Verde" y "Botón Amarillo".


Procesamiento de Eventos

void OnChartEvent():

Los eventos "CHARTEVENT_KEYDOWN":

  1. 4 teclas de dirección (flechas) o las 4 teclas de dirección en el panel digital para mover el objeto seleccionado.
  2. 'H': imprime la información de ayuda (en la ventana de registro del experto).
  3. 'I': imprime la información de las posiciones de dos Objetos.
  4. 'M': activa el evento MOUSE_MOVE.


Eventos Personalizados

Imprime información sobre estos eventos, especialmente para el evento MyEvent_3_broadcast.


Eventos de Objetos

  • CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - imprime el nombre del objeto correspondiente.
  • CHARTEVENT_OBJECT_CLICK - imprime el nombre del objeto que se está haciendo clic, selecciona su nombre para moverlo con las teclas de dirección.


Eventos de Ratón

  • CHARTEVENT_CLICK - imprime la información de la barra clicada: los precios (apertura, cierre) y el tiempo de la barra.
  • CHARTEVENT_MOUSE_MOVE (ver: CHART_EVENT_MOUSE_MOVE) - imprime la información del intervalo cubierto: número de barras, variación de precio.

Ejemplo de Test de ChartEvent


Demostración

Puedes realizar las siguientes pruebas:

  • Haz clic en uno de los dos objetos (Botones) para seleccionar y usa las teclas de flecha para mover el objeto seleccionado.
  • Haz clic en la barra gráfica y observa la información de la barra en la pestaña de registro (mensaje).
  • Presiona la tecla 'M' para entrar en el modo de evento MOUSE_MOVE. Presiona Ctrl+F para mostrar la cruz, luego realiza una operación de arrastrar y soltar. Si no ves el mensaje en el registro, por favor cambia el parámetro de entrada: "iLogLevel".

Publicaciones relacionadas

Comentarios (0)