Programación en MQL5 (I)

Trading Meetings  » Tutoriales »  Programación en MQL5 (I)
Programación MQL5 - Introducción a MQL5
0 Comments 18:23

 
 


En MQL5, las variables son contenedores que almacenan datos que pueden ser utilizados en el programa. Antes de usar una variable, es necesario declarar su tipo de dato.

Tipos de Datos Comunes en MQL5:

  • Enteros (int): Números sin decimales.
  • Reales (double): Números con decimales.
  • Cadenas de texto (string): Texto encerrado entre comillas dobles.
  • Booleanos (bool): Pueden tener los valores true o false.

Ejemplo práctico: Declaramos variables de diferentes tipos y mostramos sus valores.

Explicación del Código:

  • Usamos Print() para mostrar los valores de las variables.
  • La función DoubleToString() convierte un número real en una cadena formateada con la precisión adecuada.

Los operadores permiten realizar cálculos y comparaciones en MQL5. Aquí te presentamos algunos de los más comunes:

Realizan operaciones matemáticas básicas:

  • +: Suma
  • -: Resta
  • *: Multiplicación
  • /: División
  • %: Módulo (resto de la división)

Ejemplo práctico: Calculamos el promedio móvil simple de dos precios.


Se usan para comparar valores y devuelven un resultado booleano (true o false):

  • ==: Igual a
  • !=: No igual a
  • <: Menor que
  • >: Mayor que
  • <=: Menor o igual que
  • >=: Mayor o igual que

Ejemplo práctico: Verificamos si el precio actual supera un nivel clave.


Permiten combinar condiciones y tomar decisiones más complejas:

  • &&: Y lógico (ambas condiciones deben ser verdaderas)
  • ||: O lógico (al menos una condición debe ser verdadera)
  • !: Negación lógica (invierte el valor booleano)

Ejemplo práctico: Comprobamos si el mercado está en horas específicas.


Las estructuras de control permiten ejecutar bloques de código bajo ciertas condiciones o repetir acciones múltiples veces.

Se utiliza para tomar decisiones basadas en una condición.

Ejemplo práctico: Decidimos abrir una posición larga o corta según el cruce de medias móviles.


Se usa para iterar un bloque de código un número específico de veces.

Ejemplo práctico: Calculamos el total de volumen negociado en los últimos 10 ticks.


Se emplea para ejecutar un bloque de código mientras se cumpla una condición.

Ejemplo práctico: Esperamos hasta que el precio alcance un objetivo.


Se utiliza para seleccionar una acción entre varias opciones posibles.

Ejemplo práctico: Determinamos el tipo de orden según un parámetro de entrada.


Interactividad: Ejercicios Prácticos

Ejercicio 1: Crea un script que calcule el promedio móvil simple de los últimos 20 precios de cierre del EURUSD y muestre el resultado.

Ver solución:

Explicación del Código

  1. Definición del Número de Períodos:
    • Se define una variable periods con el valor 20, que representa el número de precios de cierre que se utilizarán para calcular el SMA.
  2. Copiar Precios de Cierre:
    • La función CopyClose() se utiliza para copiar los últimos 20 precios de cierre del símbolo "EURUSD" en el array closePrices[].
    • El parámetro PERIOD_CURRENT indica que se usará el período actual del gráfico.
    • Si no se pueden copiar suficientes precios (por ejemplo, si hay menos de 20 velas disponibles), el script muestra un mensaje de error y termina.
  3. Cálculo del SMA:
    • Se inicializa una variable sum en 0 para acumular la suma de los precios de cierre.
    • Un bucle for recorre el array closePrices[] y suma todos los valores.
    • Finalmente, se calcula el SMA dividiendo la suma entre el número de períodos (sum / periods).
  4. Mostrar el Resultado:
    • El resultado del SMA se imprime en la ventana de resultados usando la función Print(). El valor se formatea con _Digits para mostrar la precisión adecuada del símbolo.

Resultado Esperado

Al ejecutar este script en un gráfico de EURUSD, obtendrás un resultado similar al siguiente en la ventana de resultados:


Interpretación del Cambio

Este ejercicio demuestra cómo calcular un Promedio Móvil Simple (SMA) utilizando datos históricos de precios. El SMA es una herramienta básica en el análisis técnico y se utiliza para suavizar fluctuaciones en los precios y detectar tendencias. Este script:

  • Copia los últimos 20 precios de cierre.
  • Calcula el promedio de esos precios.
  • Muestra el resultado en la ventana de resultados.

Casos Prácticos

Este script puede ser utilizado para:

  1. Entender el Funcionamiento del SMA: Aprender cómo se calcula manualmente un indicador básico como el SMA.
  2. Integrar en Estrategias: Usar este cálculo como base para desarrollar EAs o indicadores personalizados.
  3. Practicar Programación Básica: Familiarizarse con funciones como CopyClose() y estructuras de control (for).

Breve Explicación Adicional

El SMA es uno de los indicadores más simples pero útiles en trading. Al calcular el promedio de los últimos N precios de cierre, elimina el ruido a corto plazo y resalta la dirección general del mercado. Este script es un buen punto de partida para aprender a trabajar con datos históricos en MQL5.

¡Espero que esta solución te ayude a entender cómo calcular y usar el SMA en tus proyectos de MQL5! 🚀

Ejercicio 2: Escribe un programa que verifique si el precio actual está dentro de un rango específico (por ejemplo, entre 1.1200 y 1.1300).

Ver solución:

Explicación del Código

  1. Definición del Rango:
    • Se definen dos variables, lowerBound y upperBound, que representan los límites inferior y superior del rango (1.1200 y 1.1300 en este caso).
  2. Obtención del Precio Actual:
    • La función SymbolInfoDouble() se utiliza para obtener el precio actual del símbolo. En este caso, usamos SYMBOL_BID para obtener el precio de venta (Bid).
    • El resultado se almacena en la variable currentPrice.
  3. Verificación del Rango:
    • Se utiliza una estructura condicional (if-else) para verificar si el precio actual está dentro del rango definido.
    • La condición currentPrice >= lowerBound && currentPrice <= upperBound comprueba si el precio está entre los límites.
  4. Mostrar el Resultado:
    • Si el precio está dentro del rango, se imprime un mensaje indicando que el precio está dentro del rango.
    • Si no, se imprime un mensaje indicando que el precio está fuera del rango.
    • Los valores se formatean con _Digits para mostrar la precisión adecuada del símbolo.

Resultado Esperado

Al ejecutar este script en un gráfico de EURUSD, obtendrás resultados similares a los siguientes en la ventana de resultados:

  • Si el precio actual es 1.1250:
  • Si el precio actual es 1.1180:

Interpretación del Cambio

Este ejercicio muestra cómo verificar si el precio actual de un símbolo está dentro de un rango específico. Esto puede ser útil en varias situaciones:

  • Alertas de Precio: Crear alertas cuando el precio entra o sale de un rango determinado.
  • Estrategias de Trading: Implementar estrategias basadas en rangos de precios, como operaciones de rango o breakout.
  • Validación de Condiciones: Asegurarse de que ciertas condiciones se cumplan antes de abrir o cerrar posiciones.

Casos Prácticos

Este script puede ser utilizado para:

  1. Crear Alertas Automáticas: Notificar al trader cuando el precio entre o salga de un rango específico.
  2. Implementar Estrategias de Rango: Desarrollar EAs que operen solo cuando el precio esté dentro de un rango definido.
  3. Practicar Programación Básica: Familiarizarse con funciones como SymbolInfoDouble() y estructuras condicionales (if-else).

Breve Explicación Adicional

El concepto de trabajar con rangos de precios es fundamental en trading. Muchas estrategias se basan en identificar zonas de soporte y resistencia, o en operar dentro de rangos laterales. Este script es un buen punto de partida para aprender a trabajar con precios actuales y validar condiciones específicas en MQL5.

¡Espero que esta solución te ayude a entender cómo verificar rangos de precios en tus proyectos de MQL5! 🚀

Ejercicio 3: Utiliza un bucle for para calcular el total de volumen negociado en los últimos 50 ticks.

Ver solución:

Explicación del Código

  1. Definición del Número de Ticks:
    • Se define una variable numTicks con el valor 50, que representa el número de ticks que se analizarán.
  2. Copiar Volúmenes de Ticks:
    • La función CopyTickVolume() se utiliza para copiar los volúmenes de los últimos 50 ticks del símbolo actual (_Symbol) en el array tickVolumes[].
    • El parámetro PERIOD_CURRENT indica que se usará el período actual del gráfico.
    • Si no se pueden copiar suficientes ticks (por ejemplo, si hay menos de 50 ticks disponibles), el script muestra un mensaje de error y termina.
  3. Calcular el Total de Volumen:
    • Se inicializa una variable totalVolume en 0 para acumular el volumen total.
    • Un bucle for recorre el array tickVolumes[] y suma todos los valores de volumen.
  4. Mostrar el Resultado:
    • El resultado del volumen total se imprime en la ventana de resultados usando la función Print().

Resultado Esperado

Al ejecutar este script en un gráfico activo, obtendrás un resultado similar al siguiente en la ventana de resultados:

El valor exacto dependerá del volumen negociado en los últimos 50 ticks del símbolo en el que se ejecute el script.


Interpretación del Cambio

Este ejercicio demuestra cómo utilizar un bucle for para procesar datos históricos y calcular un valor acumulado, en este caso, el volumen total negociado en los últimos 50 ticks. Esto puede ser útil para:

  • Análisis de Liquidez: Evaluar la actividad del mercado en un período corto de tiempo.
  • Detección de Patrones: Identificar momentos de alta o baja actividad en el mercado.
  • Validación de Condiciones: Usar el volumen como parte de una estrategia de trading automatizada.

Casos Prácticos

Este script puede ser utilizado para:

  1. Monitorear Actividad del Mercado: Detectar cambios significativos en el volumen que puedan indicar eventos importantes.
  2. Desarrollar Estrategias Basadas en Volumen: Implementar EAs que tomen decisiones basadas en el volumen negociado.
  3. Practicar Programación Básica: Familiarizarse con funciones como CopyTickVolume() y estructuras de control (for).

Breve Explicación Adicional

El volumen es un indicador clave en el análisis técnico porque refleja la liquidez y la intensidad del interés del mercado en un activo. Este script es un buen punto de partida para aprender a trabajar con datos de volumen en MQL5 y usarlos en tus proyectos de trading automatizado.

¡Espero que esta solución te ayude a entender cómo calcular y utilizar el volumen negociado en tus proyectos de MQL5! 🚀


En el próximo capítulo, profundizaremos en cómo trabajar con datos del mercado y gestionar órdenes en tiempo real.

¡Sigue practicando y perfeccionando tus habilidades en MQL5!

 
 


Deja una respuesta