Lenguaje de programación MQL5
Contenido
Fundamentos del lenguaje de programación MQL5
MetaQuotes Language 5 (MQL5) es un lenguaje de programación para aplicaciones de automatización de operaciones desarrollado por MetaQuotes Software Corp. La sintaxis de MQL5 es similar a la de C++ con algunas excepciones.
Los indicadores técnicos están escritos en MQL5, robots comerciales, asesores y otras aplicaciones para operar en el mercado de divisas. Programas MQL5 en formato de programación orientada a objetos (POO). Para el programa MQL5 se ha creado un entorno especial MetaEditor y MQL5 Storage.
Los componentes básicos del lenguaje son los mismos que en otros lenguajes de programación y hay una serie de características específicas. Los datos en MQL5 pueden ser de diferentes tipos – enteros, booleanos, literales, cadenas, fecha, hora, enumeraciones y otros. Los tipos de datos complejos (tipos de datos abstractos) incluyen estructuras y clases.
En MQL5 son posibles diferentes operaciones y expresiones. Los operadores en MQL5 son algoritmos para resolver problemas, que forman el cuerpo del problema. Las funciones escriben el código del programa.
La biblioteca de funciones personalizadas está diseñada para almacenar y distribuir bloques de programas personalizados. El archivo de inclusión es el código fuente de los archivos de usuario, – EAs, scripts, bibliotecas en tiempo de compilación.
El lenguaje MQL5 cuenta con un subsistema específico del compilador, que realiza la preparación preliminar del código fuente antes de la compilación. Mediante el preprocesador se introducen funciones en los programas MQL5, se declaran constantes, se insertan archivos, etc.
Cómo utilizar el lenguaje MQL5
MQL5 permite crear programas interactivos adaptados a las necesidades individuales de cualquier operador.
Hay tres tipos principales de programas en MQL5: script, indicador y asesor. Un solo script se ejecuta una vez en un gráfico de precios, después de realizar sus tareas se detiene. Un script también puede ejecutarse, realizando una sola operación, en un formato de bucle infinito, hasta que sea detenido por el operador.
Puede haber muchos indicadores en un gráfico y funcionan hasta que se detienen. Los indicadores calculan los valores a partir de los datos de precios contenidos en las memorias intermedias de los indicadores.
Los asesores y los robots están diseñados para automatizar las operaciones comerciales y también pueden utilizarse para analizar la situación actual del mercado y realizar otras tareas.
El lenguaje MQL5 le permite crear sus propios módulos para construir robots de trading a través del Asistente MQL5.
Los programas en MQL5 se crean de acuerdo con el modelo dirigido por eventos. Reaccionan ante un acontecimiento: cambio de precio, ejecución de una orden, cambio de plazo y otros.
Cómo escribir un EA en MQL5
El lenguaje MQL5 contiene todos los elementos necesarios para escribir Asesores Expertos. En general, paso a paso se ve así. Inicie el MetaEditor a través de la interfaz de comercio MT5 (se descarga en su ordenador al mismo tiempo que el servicio de comercio), por ejemplo, haciendo clic en el icono correspondiente o pulsando la tecla F4 del teclado. Aparecerá el editor:
En el MetaEditor, haz clic en el botón «Crear» y aparecerá una ventana con una lista de las aplicaciones que se pueden crear en el editor.
Esta ventana presenta una selección de «EA (plantilla)» y «EA (generar)». Seleccione y haga clic en el botón «Siguiente». En ambos casos aparecerá una ventana en la que primero debe nombrar el EA a crear y puede escribir un enlace a su sitio web, correo electrónico en el campo «Nombre»:
En la variante de la plantilla, haciendo clic en el botón «Añadir», debe seleccionar los parámetros que debe tener su Asesor Experto. Los parámetros seleccionados también se pueden eliminar haciendo clic en el botón correspondiente.
Ya en esta etapa, se requiere que un operador tenga fuertes habilidades tanto en la programación como en la comprensión del comercio.
Una vez seleccionada la opción, haga clic en «Siguiente» y aparecerá una ventana pidiéndole que seleccione manejadores de eventos para el EA.
Continúe con la creación del EA haciendo clic en «Siguiente», seleccione más controladores de eventos de prueba y haga clic en «Hecho», tras lo cual aparecerá una plantilla de código con los parámetros establecidos por el operador.
Los parámetros adicionales se añaden a la plantilla de código según las reglas del manual detallado del lenguaje MQL5.
Si después de llamar al Asistente MQL se selecciona la función «Asesor Experto (Generar)», entonces paso a paso se elige un nombre (los símbolos y el marco temporal ya están especificados en los parámetros), se añaden los parámetros para las señales, los parámetros de trading, los parámetros de gestión monetaria y después de hacer clic en «Hecho» aparecerá la plantilla de código.
También hay servicios de prueba y depuración de EA en el editor, cuyo funcionamiento debe estudiarse en las instrucciones detalladas de MQL5.
Comunidad y foro de comerciantes
Todas las preguntas sobre cómo aprender y utilizar MQL5 se abordan en las páginas de la comunidad. En particular, https://www.mql5.com/ru/forum – un foro para comerciantes en el que podrá encontrar respuestas a la gran mayoría, si no a todas, de sus preguntas.
El problema es que el foro es muy grande y lleva tiempo encontrar la información que necesitas. En esta dirección se atienden las preguntas de quienes se inician en el aprendizaje de la lengua: https://www.mql5.com/ru/forum/6343
También hay una biblioteca de artículos sobre el lenguaje en el sitio web de MQL5 en https://www.mql5.com/ru/articles
Pero lo mejor es empezar con el manual MQL5. https://www.mql5.com/ru/docs
En la comunidad MQL5, usted puede simplemente comprar un EA, solicitar el desarrollo de un robot u ofrecer su propio EA para la venta.
Señales de trading mediante EAs alojados en la web de MQL5
El sitio web de MQL5 tiene una sección de señales para MetaTrader 5 para el comercio automatizado https://www.mql5.com/ru/signals. Lo primero que hay que hacer es familiarizarse con las normas de la sección.
Puede registrarse en el sitio web tanto como suscriptor como vendedor de señales. La suscripción puede ser de pago o gratuita, y permite aplicar señales de trading en su propia cuenta de operaciones. Cada miembro de MQL5.community puede proporcionar su señal de forma gratuita a otros comerciantes.
Un miembro de la comunidad también puede vender señales si acepta los términos del Acuerdo de Difusión de Señales Comerciales y pasa por un procedimiento especial de registro.
El usuario selecciona las señales según criterios de máxima rentabilidad, fiabilidad, calificación, etc. También puede seleccionar una nueva señal.
El sistema también selecciona las señales según los requisitos del usuario para determinadas corredores de divisas o buscar señales por su autor. Vale la pena señalar que el servicio indica una exención de responsabilidad por el rendimiento de las señales – el comerciante se suscribe a las señales sólo bajo su propio riesgo.
Qué asesor elegir
MQL5.community ofrece una amplia gama de Asesores Expertos y robots de trading con códigos fuente: https://www.mql5.com/ru/code/mt5/experts. El sitio tiene dos secciones – EAs diseñados para MetaTrader5 y EAs diseñados para MetaTrader4. También se pueden descargar del servicio indicadores, scripts y bibliotecas.
Los asesores pueden seleccionarse según una clasificación simplificada: a la derecha de la lista de asesores hay dos secciones: último/mejor. Los mejores se eligen según la valoración de los usuarios. Además, a la derecha de cada uno de ellos se indica la calificación de los robots con asteriscos del 1 al 5. Por cierto, los usuarios pueden añadir su propio código a la lista para que los usuarios lo descarguen.
Pero también se puede encargar un asesor que se adapte a sus propias necesidades, para lo que existe un mercado de autónomos: https://www.mql5.com/ru/jobo simplemente comprar (o descargar gratuitamente) en una tienda de robots comerciales: https://www.mql5.com/ru/market. Allí también puedes poner el robot a la venta.
A la hora de comprar un EA es mejor no limitarse a las valoraciones de los usuarios, indicadas por las estrellas debajo de cada robot, sino pedir opiniones y en general no tener pereza de estudiar las características del robot, si vale el dinero por el que se vende (muchos robots son muy caros).
Materiales útiles
Hay mucho material sobre programación en MQL5 en Internet. Esto incluye guías detalladas paso a paso para crear Asesores Expertos y Asesores Expertos por programadores experimentados. La mayor parte del material explicativo y de formación está disponible en la propia página web de MQL5.
Hay una selección bastante amplia de libros sobre el tema, en particular «Tutorial (guía) del lenguaje de programación MQL5» de T. Mashnina (descargar gratis), hay cursos de vídeo gratuitos y numerosas lecciones entusiastas en los foros de operadores. Los materiales no son sólo para los principiantes, sino también para los usuarios que quieren profundizar en sus conocimientos.
Hay que tener en cuenta que cualquier lección se queda anticuada, el propio idioma está en constante evolución y mejora, al igual que la plataforma en la que se utiliza y se busca un mejor material de aprendizaje está al día – y ya hay cierta dificultad en esto, la mayoría de los materiales están en línea durante más de un año.
Por cierto, dado que el lenguaje MQL5 es cercano al lenguaje C++, muchos usuarios experimentados recomiendan leer libros sobre C++, como Bronson G.J., A First Book of C++. A First Book of C++, Stephan R. Davis «C++ for Dummies», S. Lippman «C++ for Beginners», B.N. Pakhomov «C/C++ and MS Visual C++ 2010 for Beginners», etc. Todos estos libros se pueden descargar fácilmente de Internet. Dominar MQL5 no será difícil, – después de dominar C++.
Conclusiones
El lenguaje MQL5 es una herramienta bien probada para escribir programas de trading con grandes posibilidades. Al mismo tiempo, se pueden encontrar declaraciones en Internet que afirman que MQL5 es fácil de aprender y que se puede dominar desde cero en tan solo un mes. Hay dudas muy grandes en tales declaraciones.
Probablemente sea posible aprender la sintaxis en poco tiempo, pero se necesitará mucho tiempo para programar, todas las aplicaciones más complejas. Y se necesita aún más tiempo para aprender a programar aplicaciones realmente valiosas.
También hay que tener en cuenta que la opción más difícil y que requiere más tiempo es la de aprender a programar por tu cuenta a partir de libros y cursos de vídeo, sin contar con un programador experimentado que pueda aconsejarte sobre los puntos importantes.
Otra cuestión más importante es si es necesario aprenderlo. Aprender a programar puede tener sentido si tiene la intención de desarrollar y vender los mismos robots de trading y EAs más adelante.
Pero si sólo se trata de optimizar el comercio, puede ser más eficaz poder evaluar las aplicaciones ya desarrolladas y elegir las que son realmente útiles.
El sitio web de MQL5 es una estafa. Aprovechando el monopolio, están haciendo publicidad agresiva, que ha aparecido recientemente en el terminal de la esquina superior derecha en el fondo rojo de la que inicialmente me llamó la atención y perturbó mi trabajo, porque para trabajar fructíferamente en forex hay que centrarse en El mercado no se distrajo con varios anuncios. Los avisos sobre las operaciones y el cierre de los mercados se dan ahora en inglés, lo que vuelve a distraer del trabajo. Cuando expresé mis dudas en el foro, simplemente se me baneó hasta el 2030 sin molestarse en escribir el motivo del baneo. Por cierto decir que el moderador además de que con una inteligencia no muy elevada por decir algo, también comete errores gramaticales e insultos. Los llamados programadores encontraron personalmente cuando aprendía un lenguaje de programación. Pregunté por qué no podía hacer tal o cual cosa, a lo que me dieron un código ya hecho. Cuando pregunté Me dijeron que explicara por qué el código estaba escrito así y no como yo lo escribí, y la respuesta fue un puñetazo en la mandíbula, y me dijeron que usara el código que me dieron. Es decir El propio programador no entiende nada de programación, sino que se limita a tomar códigos ya hechos y a escribir búhos, pavos y todo lo demás. Naturalmente, después de tal los programadores no trabajan realmente. No hablo por todos los programadores, pero la mayoría son así. Así que la moraleja es ésta. Antes de confiar El escrito, y más aún, la EA comprada necesita evaluar críticamente el producto ofrecido. Adjunto una captura de pantalla para demostrar mi punto de vista