Forex trading software y su lenguaje de programacion

Forex también conocido como divisas, FX o trading de divisas, es un mercado mundial descentralizado de todas las divisas que se operan en todo el mundo. Este mercado es el más grande y más líquido del mundo, con un volumen diario de operaciones que supera los 5 billones de dólares. En este apartado, hablaremos sobre como funciona este sistema de divisas a traves de su lenguaje de programacion llamada MetaQuotes.

MetaQuotes Language

MetaQuotes Language 4 (MQL4) es un lenguaje de programación para desarrollar robots comerciales, indicadores técnicos, scripts y bibliotecas de funciones para su uso en la plataforma de comercio MetaTrader 4. Tales aplicaciones mejoran significativamente las habilidades de los comerciantes al realizar operaciones en el mercado Forex.

Forex trading software

Forex trading software

MQL4 es una programación orientada a objetos para el desarrollo de estrategias comerciales
MetaQuotes Language 4 es un lenguaje de programación orientado a objetos de alto nivel basado en los conceptos del popular lenguaje de programación C ++. La flexibilidad del lenguaje MQL4 permite a los usuarios desarrollar programas complejos con gran cantidad de cálculos, mientras que manejan con precisión casi todos los parámetros de los robots y los indicadores de comercio.
MQL4 contiene los indicadores básicos necesarios para analizar cotizaciones actuales e históricas, y tiene funciones integradas para administrar pedidos comerciales. Todas estas características del MetaQuotes Language 4 permiten crear aplicaciones que pueden realizar operaciones en el mercado Forex y por lo tanto pueden reemplazar completamente a un comerciante.

Un robot de negociación (Expert Advisor) es una aplicación, que permite el análisis de mercado automatizado y el comercio de Forex.

Un indicador personalizado es una herramienta para analizar la situación del mercado. Los indicadores no realizan operaciones comerciales. Contrariamente a los indicadores técnicos incorporados, este tipo de instrumentos pueden ser programados para ejecutar cualquier algoritmo analítico.

Un Script es una pequeña aplicación que se ejecuta una vez para realizar una acción sencilla. Por ejemplo, un script puede eliminar todos los objetos del gráfico, cerrar todos los pedidos o colocar una serie de pedidos pendientes para una posición abierta.

Una biblioteca es un conjunto de funciones personalizadas. Está destinado a almacenar y distribuir partes comúnmente utilizadas de aplicaciones personalizadas.
Historia
El 1 de julio de 2005 MetaQuotes Software lanzó MetaTrader 4 – una plataforma para el comercio en los mercados financieros. [1] MQL4 – un lenguaje de programación orientado a objetos, fue escrito específicamente para trabajar en esta plataforma. Inicialmente, su sintaxis estaba basada en C. Otra plataforma, MetaTrader 5, fue lanzada en 2010 junto con MQL5 – un nuevo lenguaje creado para él.
El lanzamiento de MetaTrader 4 600 construir en 2014 fue una actualización importante de la lengua.

Eso lo llevó al nivel del MQL5 más moderno. El entorno de desarrollo MetaEditor se unificó para ambos idiomas.

El MQL4 actualizado presenta nuevos objetos gráficos y nuevas funciones tomadas de MQL5 y usadas para analizar gráficos. El sistema de protección fue completamente modificado para los archivos ejecutables EX4. La biblioteca MQL5 Standard se transfirió casi por completo con la única excepción del subsistema de comercio, que requirió adaptación. Se agregaron nuevos tipos de datos y se expandió el sistema de sustitución micro (compilación condicional #ifdef, #ifndef, #else, #endif), permitiendo el uso de código de otros lenguajes basados ​​en С / C ++. También se agregaron estructuras, clases y punteros de objetos (debe señalarse que los punteros de objetos en MQL4 / MQL5 no son similares en todos los sentidos a los de С ++). El MQL4 actualizado cuenta con el modo de compilación estricta, lo que evita una gran cantidad de posibles errores de programación. En MQL5 este modo es predeterminado y no se puede deshabilitar.

Ambos lenguajes soportan casi todos los estándares de programación orientada a objetos excepto la herencia múltiple: encapsulación y extensibilidad de tipos, herencia, polimorfismo, sobrecarga, funciones virtuales.

Compilador

Para desarrollar programas en MQL4 y MQL5, se creó MetaEditor, un compilador integrado en el entorno de desarrollo. Está integrado en los terminales de comercio MetaTrader 4 / MetaTrader 5. MetaEditor permite la edición conveniente del código fuente del programa, la generación automática de proyectos por una plantilla, el código de perfil y el desarrollo remoto de aplicaciones conjuntas en conjunto con otras personas.

Diferencias entre MQL4 y MQL5

Una de las diferencias fundamentales es la configuración del sistema comercial. MQL4 se utiliza para desarrollar programas comerciales basados ​​en el sistema de pedidos y MQL5 se utiliza para implementar un sistema posicional. En el terminal de MetaTrader 5 existen estrictas delimitaciones entre los conceptos de posición, orden y trato. Una orden es una solicitud para ejecutar una operación de negociación, que puede resultar en un acuerdo de negociación. Una posición es el agregado trata de un determinado instrumento financiero.

MQL5 incluye una lista ampliada de funciones de negociación para trabajos con órdenes abiertas, una lista de posiciones abiertas, historial de pedidos y historial de operaciones. En MQL4, diferentes funciones como OrderSend (), OrderClose (), OrderCloseBy (), OrderModify (), OrderDelete () se incorporaron inicialmente para realizar cada operación comercial. Estas funciones se pueden utilizar para abrir / cerrar y eliminar órdenes pendientes.

En MQL5 todas las operaciones comerciales se llevan a cabo mediante el envío de peticiones comerciales utilizando sólo una función – OrderSend (). Como parámetro, se pasa a la función una solicitud para colocar una orden pendiente, o para abrirla por el mercado, o para cancelar una orden previamente colocada. La introducción de la nueva función OrderSendAsync () a MQL5 permitió operaciones de comercio asíncronas.

Una novedad importante en MQL5 es Profundidad de Mercado y un nuevo tipo de evento de manejo de información de Profundidad de Mercado.

MQL4 / MQL5 tiene como objetivo dirigirse directamente a las necesidades y requerimientos de los comerciantes. Fue desarrollado para la escritura de programas de comercio y se utiliza sólo para ese fin. Las funciones para realizar operaciones comerciales OrderSend (), OrderClose (), OrderCloseBy (), OrderModify (), OrderDelete () se han incorporado inicialmente en el idioma y se utilizan para cambiar el estado de una cuenta comercial.

Hay cuatro tipos de programas que se pueden escribir en MQL4 / MQL5.
Asesores Expertos. Sistemas automáticos de comercio por parámetros especificados y siguiendo un algoritmo codificado. La ocurrencia de un evento previamente especificado, como recibir una nueva marca, una alerta sobre una nueva operación comercial o incluso pulsar un botón o hacer clic en un ratón, activa el Asesor experto para realizar una acción programada.

Indicadores Personalizados. Escrito por los usuarios, se utilizan a lo largo de los indicadores de ready-made integrados en los terminales. Su función es puramente analítica. Los indicadores no realizan operaciones ni realizan operaciones que ralentizan el flujo de la interfaz, como el envío de correos electrónicos o la realización de un retardo aleatorio. La principal tarea de los indicadores es monitorear una situación, reflexionar e interpretarla y luego someterse a un comerciante para su análisis.
Guiones. Un script es un programa destinado a una sola ejecución de una acción. El evento de inicio es el único tipo de evento procesado por el script.

Bibliotecas de funciones personalizadas. Además, existe la oportunidad de crear archivos de inclusión (# include). Los archivos de inclusión le permiten incluir las funciones y clases más utilizadas sin pegar directamente su código fuente en su programa. El uso de funciones y clases simplifica la creación, la depuración y la compilación porque al utilizar bibliotecas dinámicas, las funciones sólo se cargan cuando se las llama directamente.

Tipos de Datos

Main data types used in MQL4/MQL5:
integers (char, short, int, long, uchar, ushort, uint, ulong);
Boolean or logical (bool) ;
literals (ushort);
strings (string);
floating point (double, float);
color (color);
date and time (datetime) ;
enumeration (enum).

Las estructuras y las clases son un tipo de datos complejo (abstracto) que se puede utilizar en MQL4 / MQL5. Las clases difieren de estructuras con las siguientes características:

La palabra clave clase en la declaración;

Todos los miembros de la clase tienen acceso privado por defecto mientras que los miembros de la estructura tienen acceso público;

Los objetos de clase siempre tienen una tabla de funciones virtuales cuando las estructuras no pueden tenerla;

El nuevo operador sólo puede aplicarse a objetos de clase. No puede aplicarse a las estructuras;
Herencia: una clase hereda de una clase solamente y una estructura deriva solamente de una estructura.
Todas las operaciones comunes – aritmética, bool, binario, etc. están presentes en MQL4 / MQL5.

La precedencia de las operaciones corresponde a la adoptada en С ++.

Leave a Reply