Aprendiendo a programar en MQL4

Temas relacionados:
Tiempo de lectura: 7 minute(s)
En esta serie de artículos aprenderemos a programar para MetaTrader4, una de las plataformas más extendidas  y con más posibilidades. Para ello explicaremos de forma sencilla lo secretos del lenguaje de programación MQL4.

 

Cuando leemos un estudio o nos cuentan la bonanza de una estrategia, ¿llegamos a realizar un estudio profundo? o realizamos un acto de fe y nos lanzamos a operar. Es muy importante antes de poner en práctica una estrategia de trading realizar un estudio profundo, sin creernos nada sin antes probarlo. Para el estudio de estrategias o teorías que vemos en los distintos medios uno de los mejores lenguajes por lo extendido, rápido de ejecución y técnico es el mql4 diseñado para la plataforma metatrader.

Cientos de miles de traders usan el terminal MetaTrader 4. Esta plataforma hace uso del  lenguaje de programación MQL4 y gracias a este lenguaje muchos traders pueden acceder a un nuevo nivel de operativa, la automatizada.  Se pueden poner en práctica ideas con un programa, crear un indicador personal, una script para realizar una operación, o crear un Asesor Experto ó robot. Un Asesor Experto (AE) puede trabajar las 24 horas de  todos los días de la semana, sin intervención, hacer un seguimiento del precio, enviar mensajes electrónicos, SMS´s a su teléfono móvil…

Cualquier idea que podamos describir en un lenguaje algorítmico como un cruce medias móviles,  un análisis fractal, una red neuronal, patrones, figuras geométricas… podrá ser codificada en una aplicación, probada con datos históricos  y luego puesta en práctica en el mercado.
En los próximos artículos se intentará ir completando un manual para crear su propios Asesores Expertos, scripts e indicadores. El manual está destinado a un gran número de lectores sin experiencia en programación que deseen desarrollar aplicaciones para la plataforma MetaTrader 4.

Las características técnicas fundamentales para la operativa utilizando la plataforma MetaTrader es que la gestión de todas las acciones se producen en el ordenador del usuario y luego son enviadas al servidor. Ninguno de los programas (EA, script o indicadores) se instala en el servidor. El servidor sólo ejecuta las órdenes enviadas desde el ordenador del usuario.

En la mayoría de los casos, un sistema automático le permite a un trader un trabajo más fácil, eliminando la necesidad de un constante seguimiento de la situación del mercado y tener que estar sentado ante un ordenador durante un largo periodo de tiempo.

También puede ayudar a aliviar la tensión nerviosa y reducir el número de errores que aparecen en períodos de extrema tensión emocional. Pero lo principal es, que el uso de un sistema automático  como método permite desarrollar las propias ideas y probarlas con datos históricos, seleccionando los parámetros óptimos para la aplicación de estas ideas y, por último, permite aplicar y probar las ideas sobre las estrategias comerciales.
Primera Parte.  Fundamentos del lenguaje MQL4

Conceptos básicos. Son descritos términos tales como "tick": un cambio de cotización del  precio, "control" en los algoritmos, "comentarios" que describen los programas. El principal acontecimiento de las cotizaciones en los mercados financieros es el cambio de precio. Esta es la razón por la que el tick es un acontecimiento importante que hace que los mecanismos básicos de los programas de MQL4 se ejecutan. ¿Qué hacer cuando ocurre un nuevo tick? ¿Qué medidas tomar?. La mayoría de los programas realizan toda su ejecución del código cada nuevo tick producido o enviado desde el bróker. Este es el control que mueve la vanguardia aquí. Pero no se olvide de comentar su código, es fundamental para explicar el código y poder seguir la lógica que encierra.

Constantes y Variables. Como el término sugiere, una constante es algo continuo, un valor fijo. A diferencia de la constante, una variable es un objeto del código de programación que puede modificar su contenido. Es imposible escribir un programa sin usar objetos inalterables (constantes) y/o objetos que puedan ser modificados durante la ejecución del programa (variables).

Tipos de datos. Ciertos tipos de datos se utilizan en cualquier lenguaje de programación. El tipo de una variable se elige de acuerdo a su finalidad.

¿Cómo podemos declarar una variable? , ¿cómo podemos inicializarla? Una elección errónea del tipo de una variable puede frenar el programa o incluso dar lugar a un mal funcionamiento.  En metatrader existen los siguientes tipos de datos:
int: para declarar variables de tipo entero.
double: para declarar números reales.
bool: para declarar valores lógicos.
string: valores de tipo cadena de caracteres.
color: valores de tipo color.
datetime: valores de fecha y hora.

Ejemplos declarativos:
int  Max = 125; (declaramos la variable Max a 125)
double  Min =125,45; (declaramos la variable Min a 125,45)
bool  Logico = false; (declaramos la variable a falso)
string texto = "Historial";
color Signal_venta = Red; (declaramos la variable a rojo)
datetime fecha =  D ‘20/04/2011 17:30:40';

La Declaración de Variables es lo primero que se debe hacer con cualquier variable dentro de un programa. En la declaración de una variable siempre ha de especificarse su tipo. La inicialización de Variables significa la asignación de un valor acorde con su tipo y que se efectúa en su declaración.

Todas las variables pueden ser inicializadas. Si no hay valor inicial que se establezca explícitamente, la variable se inicializa a cero (0), o si la variable es de tipo string, esta se inicializa como una cadena de caracteres vacía. En MQL4 se acepta que se especifiquen los tipos de variables explícitamente en su declaración.

El tipo de una variable solo declara en la primera mención del nombre de esta variable. Cuando se menciona el resto de las veces su tipo ya no se vuelve especificar más. En el curso de la ejecución del programa, el valor de la variable puede cambiar , pero su tipo y nombre siguen siendo los mismos. El tipo de una variable puede ser declarada en líneas simples o en los operadores.

Operadores. Los operadores pueden ser simples y complejos. Una acción necesaria no siempre pueden ser ejecutadas por un operador simple. Si es necesario que un grupo de operadores se ejecute como un gran operador, este grupo debe incluirse como un operador compuesto. Serán dados los requerimientos necesarios y ejemplos específicos de utilización de los operadores.
Los operadores simples de MQL4 terminan con el carácter ";" (punto y coma). El uso de este separador, es para que el PC pueda detectar cuando un operador termina y otro comienza. El carácter ";" (punto y coma) es tan necesario en un programa como carácter "." (punto) lo es en un texto normal para separar las frases. Un operador puede tener varias líneas. Se pueden colocar varios operadores en una línea.

El operador compuesto consta de varios operadores simples separados por el carácter ";" y se vinculan entre llaves. Con el fin de poder utilizar varios operadores donde se espera que haya solo uno, los programadores utilizar un operador compuesto (también lo llaman "bloque" o "bloque de código"). El conjunto de operadores simples estan ubicados en un recinto separado por llaves. La presencia de una llave de cierre marca el final de un operador compuesto.

Los operadores se ejecutan en el orden, en el que se aparecen en el programa. La dirección de los operadores de ejecución va de izquierda a derecha y de arriba a abajo. Esto significa que tanto los operadores simples como los compuestos y se ejecutan uno a uno (como en las líneas de los poemas: en primer lugar se lee la línea superior, después la siguiente inferior, después la siguiente y así sucesivamente). Si hay varios operadores en una línea, deben ser ejecutadas consecutivamente, uno después de otro, de izquierda a derecha, a continuación, los agentes se ejecutan en la línea inferior más cercana en el mismo orden.

Operaciones y expresiones. Las operaciones se hacen sobre operandos. ¿Qué tipo de operaciones hay? ¿Cuáles son las características especiales de las operaciones sobre enteros? ¿Por qué es importante recordar los diferentes tipos de datos precedentes? .Sin conocer las características de algunas operaciones, pueden aparecer sutiles errores.

Cualquier operador de asignación da literalmente a la máquina la siguiente orden:

Calcula el valor de la expresión que se encuentra a la derecha de la igualdad y asigna el valor obtenido a la variable situada a la izquierda del signo de igualdad. Es decir, en el lado izquierdo de la igualdad solo puede haber una variable y en el lado derecho una expresión con cualquier grado de complejidad. Por esta razón, solo una variable puede estar situada a la izquierda del signo de igualdad de un operador de asignación.

Tipos de de operaciones.
Aritméticas:   +   (suma),   – (resta),  * (producto) ,  / (división), %  (resto de la     división), ++ incrementa 1 el valor de la variable,  — decrementa 1 el valor de la     variable.
Asignación:   =  (asignamos un valor a una variable)
Relacionales:   == (es cierto si es igual), != (es cierto si no es igual), < (es cierto si     es menor), > (es cierto si es mayor), <= (es cierto si es menor o igual), >= (es     cierto si es mayor o igual).
Lógicas:   ! (Negación lógica), || ( O, disyunción ), && ( Y, conjunción).

El valor de una expresión se calcula de acuerdo a las prioridades de las operaciones aritméticas y de izquierda a derecha, cada resultado intermedio se calculará de acuerdo a las normas de prioridad, por lo que el orden de las operaciones en un programa es similar a la de matemáticas.

Ejemplo:
int A = 3; // Valor de tipo entero
int B = 5; // Valor de tipo entero
int C = 6; // Valor de tipo entero
int Res_1 = A/B*C; // Result 0 (cero)
int Res_2 = A*C/B; // Resultado 3 (tres). 

 

Te informamos de que la plataforma de trading MetaTrader 4 (MT4) ya no está disponible para nuevas cuentas (nuevos Clientes). Sin embargo, seguirá disponible para los Clientes que actualmente están utilizándola. Te animamos a que eches un vistazo a nuestra plataforma xStation5, una plataforma moderna, intuitiva, en continua evolución y multi premiada

 

Este material es una comunicación publicitaria tal y como se entiende en el artículo 24.3 de la Directiva 2014/65/UE (MiFID II). La presente comunicación publicitaria no es una recomendación de inversión o información que recomiende o sugiera una estrategia de inversión en el sentido del Reglamento (EU) Nº 596/2014 sobre el abuso de mercado y el Reglamento Delegado (EU) 2016/958 por el que se completa el Reglamento (EU) nº 596/2014, ni se incluye en el ámbito del asesoramiento en materia de inversión recogido en la Ley de los Mercados de Valores y de los Servicios de Inversión (artículo 125.1 g). La presente comunicación publicitaria se ha preparado con la mayor diligencia, transparencia y objetividad posible, presentando los hechos conocidos por el autor en el momento de su creación y está exento de cualquier elemento de análisis. Esta comunicación publicitaria se ha preparado sin tener en cuenta las necesidades del cliente ni su situación financiera individual, y no representa ninguna estrategia de inversión ni recomendación. En caso de que la comunicación publicitaria contenga información sobre el rendimiento o comportamiento del instrumento financiero al que se refiere, esto no constituye ninguna garantía o previsión de resultados futuros. El rendimiento pasado no es necesariamente indicativo de resultados futuros y cualquier persona que actúe sobre esta información lo hace bajo su propio riesgo. Los CFDs son instrumentos complejos y están asociados a un riesgo elevado de perder dinero rápidamente debido al apalancamiento. El 76% de las cuentas de inversores minoristas pierden dinero en la negociación de CFDs con este proveedor. Debe considerar si comprende el funcionamiento de los CFDs y si puede permitirse asumir un riesgo elevado de perder su dinero.

Xtb logo

Únete a más de 1.000.000 Clientes de todo el mundo

XTB ofrece Acciones, ETFs, Acciones Fraccionadas y Derivados (CFDs). Los CFDs son instrumentos complejos y están asociados a un riesgo elevado de perder dinero rápidamente debido al apalancamiento. El 76% de las cuentas de inversores minoristas pierden dinero en la negociación de CFDs con este proveedor. Debe considerar si comprende el funcionamiento de los CFDs y si puede permitirse asumir un riesgo elevado de perder su dinero.  
XTB ofrece Acciones, ETFs, Acciones Fraccionadas y Derivados (CFDs). Los CFDs son instrumentos complejos y están asociados a un riesgo elevado de perder dinero rápidamente debido al apalancamiento. El 76% de las cuentas de inversores minoristas pierden dinero en la negociación de CFDs con este proveedor. Debe considerar si comprende el funcionamiento de los CFDs y si puede permitirse asumir un riesgo elevado de perder su dinero. 

Utilizamos Cookies

Al hacer clic en "Aceptar todas", aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación en la página web, analizar el uso de la página web, y ayudar en nuestras estrategias de márketing.

Este grupo contiene cookies que son necesarias para que funcione nuestra página web. Forman parte de las funcionalidades como las preferencias de idioma, distribución de tráfico o mantener abierta la sesión del usario. No se pueden deshabilitar.

Nombre de la cookie
Descripción
SERVERID
userBranchSymbol Fecha de caducidad: 2 de marzo de 2024
adobe_unique_id Fecha de caducidad: 1 de marzo de 2025
test_cookie Fecha de caducidad: 1 de febrero de 2023
SESSID Fecha de caducidad: 2 de marzo de 2024
__hssc Fecha de caducidad: 1 de febrero de 2023
__cf_bm Fecha de caducidad: 1 de febrero de 2023
intercom-id-iojaybix Fecha de caducidad: 26 de noviembre de 2024
intercom-session-iojaybix Fecha de caducidad: 8 de marzo de 2024

Utilizamos herramientas que nos dejan analizar el uso de nuestra página web. Estos datos nos permiten mejorar la experiencia del usuario en nuestra página web.

Nombre de la cookie
Descripción
_gid Fecha de caducidad: 2 de febrero de 2023
_gaexp Fecha de caducidad: 4 de mayo de 2023
_gat_UA-16408788-1 Fecha de caducidad: 1 de febrero de 2023
_gat_UA-121192761-1 Fecha de caducidad: 1 de febrero de 2023
_gcl_au Fecha de caducidad: 2 de mayo de 2023
_ga_CBPL72L2EC Fecha de caducidad: 31 de enero de 2025
_ga Fecha de caducidad: 31 de enero de 2025
AnalyticsSyncHistory Fecha de caducidad: 3 de marzo de 2023
__hstc Fecha de caducidad: 31 de julio de 2023
__hssrc

Este grupo de cookies se utiliza para mostrarte anuncios de temas en los que estás interesado. También nos permite monitorizar nuestras actividades de márketing, y nos ayuda a medir la efectividad de nuestros anuncios.

Nombre de la cookie
Descripción
_omappvp Fecha de caducidad: 13 de enero de 2034
_omappvs Fecha de caducidad: 1 de febrero de 2023
_fbp Fecha de caducidad: 2 de mayo de 2023
fr Fecha de caducidad: 7 de diciembre de 2022
lang
_ttp Fecha de caducidad: 26 de febrero de 2024
_tt_enable_cookie Fecha de caducidad: 26 de febrero de 2024
_ttp Fecha de caducidad: 26 de febrero de 2024
hubspotutk Fecha de caducidad: 31 de julio de 2023
omSeen-pyfa0xtqk5j72jwykxzy Fecha de caducidad: 8 de octubre de 2022

Las cookies de este grupo almacenan las preferencias que elijas mientras utilizas la página web, para que ya estén establecidas cuando vuelvas a visitar la página tiempo después.

Nombre de la cookie
Descripción
UserMatchHistory Fecha de caducidad: 3 de marzo de 2023
bcookie Fecha de caducidad: 1 de febrero de 2024
lidc Fecha de caducidad: 2 de febrero de 2023
lang
bscookie Fecha de caducidad: 1 de febrero de 2024
li_gc Fecha de caducidad: 31 de julio de 2023

Esta página utiliza cookies. Las cookies se almacenan en tu navegador y las utilizan la mayoría de las páginas web para ayudarte a personalizar tu experiencia web. Para obtener más información vea nuestra Política de Privacidad. Puedes gestionar las cookies pinchando en "Configuración". Al hacer clic en "Aceptar todas", das tu consentimiento para todas nuestras cookies.

Cambiar región e idioma
País de residencia
Idioma