MetaQuotes Language MQL4/MQL5
MQL4 (MetaQuotes Language 4) y MQL5 (MetaQuotes Language 5) son lenguajes de programación integrados, diseñados para el desarrollo de robots comerciales, indicadores técnicos de mercado, scripts y bibliotecas funcionales dentro del software de MetaTrader. El principal objetivo de MQL4 y MQL5 es la automatización de transacciones y la facilitación del análisis operativo. MQL4 y MQL5 comprenden una extensa biblioteca de código fuente codebase usada en el desarrollo de robots comerciales. HistoriaEl 1 de julio de 2005 MetaQuotes Software lanzó MetaTrader 4, una plataforma para comerciar en los mercados financieros.[1] MQL4 es un lenguaje de programación orientada a objetos, escrito específicamente para trabajar en esta plataforma. Inicialmente, su sintaxis se basaba en el lenguaje C. La otra plataforma, MetaTrader 5, fue lanzada en 2010 junto con MQL5, un nuevo lenguaje creado para la misma.[2] El lanzamiento de MetaTrader 4 600 build en 2014 constituyó una actualización colosal para el lenguaje.[3] Que la llevó al nivel del más moderno MQL5. El entorno de desarrollo MetaEditor quedó unificado para ambos lenguajes. El MQL4 mejorado cuenta con nuevos objetos gráficos y nuevas funciones tomados de MQL5 y utilizados para el análisis de gráficos. El sistema de protección ha sido completamente modificado para los archivos ejecutables EX4. La biblioteca estándar MQL5 se transfirió casi en su totalidad, con la única excepción del subsistema comercial, que requirió una adaptación. Se añadieron nuevos tipos de datos y el sistema de micro sustitución fue expandido (compilación condicional #ifdef, #ifndef, #else, #endif), permitiendo el uso del código de otros lenguajes basados en С/C++. Las estructuras, las clases y el objeto punteros fueron igualmente añadidos (cabe señalar que los punteros de objeto 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 previene contra una gran cantidad de posibles errores de programación. En MQL5, este es el modo por defecto y no puede ser desactivado.[4] Ambos lenguajes soportan casi todos los estándares de la programación orientada a objetos, excepto la herencia múltiple: el encapsulamiento y la extensibilidad de tipos, la herencia, el polimorfismo, la sobrecarga, las funciones virtuales. CompiladorPara desarrollar programas en MQL4 y MQL5, se creó el MetaEditor - un compilador incorporado en el entorno de desarrollo -. Está integrado en los terminales comerciales MetaTrader 4/MetaTrader 5. El MetaEditor permite editar de forma adecuada el código fuente del programa, generar proyectos automáticamente con una plantilla, perfilar el código de forma remota y desarrollar aplicaciones conjuntas con otras personas. Diferencias entre MQL4 y MQL5Una de las diferencias fundamentales es la configuración del sistema comercial. Mql4 se utiliza para el desarrollo de programas comerciales basados en el sistema de orden y MQL5 se utiliza para implementar un sistema posicional. En el terminal comercial MetaTrader 5 hay delimitaciones estrictas entre los conceptos de posición, orden y transacción. Una orden es una solicitud para ejecutar una operación comercial, que puede resultar en una transacción comercial. Una posición supone el conjunto de ofertas sobre un determinado instrumento financiero. MQL5 comprende una lista ampliada de las funciones comerciales para el trabajo con órdenes abiertas, una lista de las posiciones abiertas, la historia de pedidos y la historia de transacciones. En MQL4, diferentes funciones tales como OrderSend (), OrderClose (), OrderCloseBy (), OrderModify (), OrderDelete () fueron incorporadas 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 solicitudes de negociación utilizando sólo una función - OrderSend (). Como parámetro, a la función se pasa una solicitud ya sea para colocar una orden pendiente, para abrir según el mercado, o para cancelar una orden previamente colocada. La introducción de la nueva función OrderSendAsync () en MQL5 habilitó las operaciones comerciales asíncronicas. Una novedad importante en MQL5 es la profundidad del Mercado y el nuevo tipo de evento para gestionar la información de la Profundidad de Mercado. CapacidadesMQL4/MQL5 pretende abordar directamente las necesidades y exigencias de los operadores. Fue desarrollado para la escritura de programas comerciales y solo se utiliza para ese fin. Las funciones para realizar operaciones comerciales OrderSend(), OrderClose(), OrderCloseBy(), OrderModify(), OrderDelete() se incorporaron inicialmente en el lenguaje y se utilizan para cambiar el estado de una cuenta comercial. Hay cuatro tipos de programas que se pueden escribir en mql4 / MQL5.
La sintaxis de MQL4 y MQL5 y sus diferencias con С++La sintaxis de los lenguajes es similar a la de C++, aunque hay excepciones. MQL4 y MQL5 no cuentan con puntero aritmético. El operador goto también está ausente en los lenguajes MQL, así como la posibilidad de declarar la enumeración anónima y la herencia múltiple.
Tipos de datosMain Los tipos de datos usados en MQL4/MQL5 son:
Las estructuras y clases son un tipo de datos complejo (abstracto) que puede ser operado en MQL4/MQL5. Las clases difieren de las estructuras en las siguientes características:
Operaciones y expresionesTodas las operaciones comunes - aritmética, bool, binaria, etcétera, están presentes en MQL4/MQL5. La precedencia de las operaciones corresponde a la adoptada en C ++. CríticasLa mayor desventaja de los lenguajes de la familia MQL es la imposibilidad de crear aplicaciones independientes, ya que cada lenguaje está vinculado a su plataforma correspondiente (MetaTrader 4/MetaTrader 5), y los programas EX4/EX5 solo funcionan en ellas. Referencias
Bibliografía
Enlaces externos
|