
De principiante a experto: El viaje esencial a través del trading con MQL5
Secciones clave:
Introducción: Un breve recorrido por mi camino hacia MQL5
Cuando me uní a la comunidad MQL5 en 2019, era un principiante con solo habilidades de trading manual en mi teléfono y un conocimiento limitado de trading algorítmico, a pesar de tener una sólida formación en informática. Ojalá hubiera comprendido antes los conceptos del trading algorítmico. Al principio lo descarté y continué con el trading manual. Sin embargo, tres años después, mientras trabajaba como técnico electrónico, busqué seguir comerciando a pesar de mi exigente trabajo. Este deseo me impulsó a aprender sobre el trading algorítmico para desarrollar sistemas que automatizaran mis operaciones o al menos proporcionaran señales procesables.
Regresar a la comunidad MQL5 fue como encontrar un hogar lleno de posibilidades. Los artículos que encontré me motivaron a leer más, cada uno enriquecido con habilidades valiosas. Muchos artículos guían a los lectores a través de proyectos de algoritmos, evolucionando desde etapas básicas hasta complejas. Durante los últimos dos años, he perfeccionado mis habilidades en MQL5 a través de varios proyectos personalizados. El aprendizaje se ha vuelto más rápido con la rápida mejora de la tecnología y los recursos. Recomiendo leer este artículo detenidamente para no perder ninguna información crucial.
¿A quién va dirigido este artículo?
- Principiantes que inician su camino.
- Desarrolladores medios y avanzados para desbloquear nuevos potenciales.
Te guiaré en la creación de un programa de trabajo personalizado según tus necesidades y te inspiraré para comenzar. El objetivo de este artículo es hacer que la comunidad MQL5 sea fácil de usar simplificando el desarrollo de algoritmos con tecnologías emergentes.
El entorno del trading algorítmico se ha vuelto mucho más amigable en comparación con hace unos años, gracias a recursos educativos accesibles. A continuación se presentan algunas preguntas que guiaron mi enfoque y espero que también te inspiren:
- ¿Cómo pueden los principiantes aprender y dominar de manera eficiente los conceptos básicos de MQL5?
- ¿Qué recursos están disponibles para que los estudiantes de MQL5 superen rápidamente desafíos de codificación específicos?
- ¿Cómo pueden los traders inventar nuevas estrategias, optimizarlas y automatizarlas utilizando MQL5?
Analizaré tres áreas para comenzar tu viaje en MQL5 como principiante o para mejorar tus habilidades como desarrollador senior. Un consejo que quiero darte es: «Enamórate del texto; hay joyas ocultas en la lectura». Muchos pierden oportunidades porque no les gusta leer. Internet, especialmente la comunidad MQL5, ofrece innumerables oportunidades de carrera, autoría, desarrollo y trabajo autónomo. Visito mql5.com al menos tres veces al día, y lo he integrado con el ID de mi terminal móvil, llamado MetaQuotes ID, para recibir notificaciones cruciales en mi dispositivo móvil. Como dijo William Shakespeare, «No es oro todo lo que reluce». La verdadera riqueza reside en la lectura del texto, que puede no ser tan atractiva como las imágenes, pero incluso el algoritmo está compuesto de texto valioso.
- 1er secreto: Comunidad MQL5
- 2o secreto: Plataforma MetaTrader 5 de escritorio
- 3er secreto: Inteligencia Artificial
Estos tres elementos se pueden utilizar juntos para convertirlo en un mejor desarrollador de algoritmos MQL5. Si bien el objetivo de este artículo es motivarte a comenzar, también me aseguraré de que construyamos un programa básico para implementar estos tres secretos.
Descubriendo los secretos para ser un trader exitoso en MQL5
1er secreto: Comunidad MQL5
MQL5 es un recurso integral para todo lo relacionado con el trading algorítmico. Contiene todo lo que necesitas para empezar y continuar desarrollándote como trader. A continuación se muestran algunos componentes clave de la comunidad MQL5 que son esenciales para los desarrolladores:
- Documentación: Recurso completo que proporciona información detallada sobre la programación MQL5, incluidas funciones, clases y pautas de desarrollo.
- Guía de algotrading: Una guía para ayudar a desarrollar tus propios algoritmos.
- >Manual sobre redes neuronales: Manual centrado en redes neuronales y técnicas de aprendizaje automático en trading algorítmico utilizando MQL5.
- CodeBase: Un repositorio de scripts, indicadores y asesores expertos (EAs) MQL5 gratuitos aportados por la comunidad para que los traders puedan descargarlos, utilizarlos y modificarlos.
- Foro: Una plataforma interactiva para debatir estrategias comerciales, problemas de programación y compartir experiencias y soluciones relacionadas con el desarrollo de MQL5.
- Artículos: Una biblioteca de artículos que ofrece tutoriales, estrategias de trading, consejos de programación y perspectivas sobre diversos aspectos del trading algorítmico con MQL5.
- Market: Una tienda online donde los traders pueden comprar y vender aplicaciones de trading MQL5, incluyendo EAs, indicadores y scripts.
- Señales: Un servicio que permite a los operadores suscribirse a señales de negociación proporcionadas por operadores experimentados, permitiendo la copia automática de sus operaciones.
- VPS: Servicio de Servidor Privado Virtual (Virtual Private Server, VPS) proporcionado por MetaTrader, que permite a los operadores ejecutar sus robots comerciales y señales 24/7 sin interrupciones.
- Freelance: Una plataforma en la que los traders pueden contratar a desarrolladores autónomos para crear aplicaciones de trading personalizadas, indicadores o scripts en MQL5.
- Cotizaciones: Cotizaciones en tiempo real de instrumentos financieros, que proporcionan a los operadores los precios de mercado actualizados necesarios para tomar decisiones de negociación con conocimiento de causa.
- Calendario económico: Calendario económico en el que se enumeran los acontecimientos y noticias económicos importantes que pueden afectar a los mercados financieros y a las estrategias de negociación.
- WebTerminal: Versión en línea de la plataforma de negociación MetaTrader, que permite a los operadores acceder a sus cuentas y operar directamente desde un navegador web sin necesidad de instalar ningún software.
- Cuadro de búsqueda: Una herramienta que permite a los usuarios encontrar rápidamente información, recursos o contenido específico dentro de la comunidad MQL5 y su extensa biblioteca de documentación, artículos y debates en foros.
2o secreto: Plataforma MetaTrader 5 de escritorio
Esta plataforma es otro recurso valioso esencial para dominar el trading algorítmico. Incluye muchos de los recursos que se encuentran en la comunidad MQL5 y sirve como punto de partida para escribir algoritmos. A la hora de elaborar estrategias, empiezo por ver gráficos para identificar patrones repetitivos en datos de mercado anteriores y, a continuación, desarrollo la lógica sobre el papel antes de codificar mi algoritmo. MetaTrader 5 viene con el editor (MetaEditor) de lenguaje de MetaQuotes (MetaQuotes Language, MQL) y el Probador de Estrategias, entre otras características, lo que lo convierte en un fantástico conjunto de herramientas para el desarrollo y el estudio.
Permítanme mostrarles brevemente un ejemplo:
Abro el gráfico para analizar lo que ha estado sucediendo. Aquí hay una imagen de GBPUSD antes de aplicar cualquier indicador. Luego, incorporo una Media Móvil Exponencial de 50 períodos y otra de 21 períodos en el gráfico para analizar cómo interactúan con las variaciones en los precios. Observo posibles cruces y los marco con herramientas rectangulares. A partir de esta imagen, puedo comenzar a diseñar estrategias para la automatización.
MetaEditor (Editor del lenguaje MetaQuotes):
Plantillas: MetaEditor incluye plantillas prediseñadas para scripts, Asesores Expertos (EAs) e indicadores, ofreciendo un punto de partida robusto para proyectos. Estas plantillas facilitan a los usuarios comprender la estructura y los componentes esenciales de los programas en MQL5.
Aprender haciendo: El teórico de la educación John Dewey subrayó la importancia de «aprender haciendo» a principios del siglo XX. Empieza por crear proyectos sencillos utilizando estas plantillas. Modifícalos y experimenta con ellos para hacerte una idea de cómo interactúan los distintos elementos. Este enfoque práctico consolida su conocimiento fundamental y se alinea con la filosofía de Dewey de que la participación activa en el aprendizaje mejora la comprensión y la retención.
3er secreto: Inteligencia Artificial
Cada día se inventan muchos modelos de IA, pero hablemos brevemente de ChatGPT. Es un modelo de inteligencia artificial conversacional diseñado para ayudar a los usuarios brindándoles respuestas, inspiración y ayuda para la productividad. Su uso es gratuito y puede ayudar en la escritura, el aprendizaje, la lluvia de ideas y más. ChatGPT fue creado por OpenAI, una empresa fundada en 2015.
Los modelos de IA como ChatGPT se entrenan con grandes cantidades de datos, incluidos lenguajes de programación y documentación. Este proceso de capacitación implica analizar patrones, comprender la sintaxis y aprender las mejores prácticas a partir de numerosos ejemplos de código en varios lenguajes. Como resultado, ChatGPT puede ofrecer orientación a nivel experto, ayudándole a comprender conceptos de programación complejos y resolver problemas de codificación de manera eficiente.
Implementación de Inteligencia Artificial en el desarrollo de algoritmos
Aquí te guiaré a través de cómo la colaboración de herramientas puede simplificar tu aprendizaje y romper las limitaciones causadas por no conocer estos recursos. Para comenzar con ChatGPT, dividiré las actividades en dos:
- Entendiendo las plantillas de MetaEditor con ChatGPT
- Desarrollo de un script con asistencia de IA, llamado "Mi primer programa MQL5"
Entendiendo las plantillas de MetaEditor con ChatGPT
En MetaTrader 5 de escritorio, vaya a Herramientas y seleccione Editor del lenguaje MetaQuotes, o presione F4 en su teclado. Se abrirá una nueva ventana del MetaEditor. Vaya a Archivo y seleccione Nuevo. A continuación se muestra una imagen animada (GIF) que muestra el proceso:
He llamado al archivo "MyFirstIndicator" (Mi primer indicador), pero esto es opcional; puedes nombrarlo como quieras. Al hacer esto, obtendrá una plantilla de código que se muestra a continuación.
//+------------------------------------------------------------------+ //| MyFirstIndicator.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Como principiante, es normal que te preguntes: "¿Qué significa todo esto?" No te preocupes, estoy aquí para guiarte y ayudarte a entenderlo fácilmente mientras trabajamos juntos en alcanzar nuestro objetivo.
- Ir a chat.openai.com e iniciar un chat.
- Copie el código del programa desde MetaEditor.
- Escriba un mensaje en ChatGPT: "Explique este código MQL5 en partes:" (pegue el código que copió) y haga clic en enviar.
ChatGPT responderá con una explicación detallada de lo que está sucediendo. Continúe leyendo para descubrir más.
En respuesta, ChatGPT dividió el programa en fragmentos y lo explicó de una manera más atractiva, facilitando la comprensión de la plantilla. Aquí está el programa explicado por ChatGPT en texto cursiva:
//+------------------------------------------------------------------+ //| MyFirstIndicator.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+
- Esta sección es un comentario de encabezado que incluye el nombre del archivo, la información de derechos de autor y un enlace al sitio web de MetaQuotes. Esto es típico en el código MQL5 para dar contexto y atribución.
#property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window
Estas directivas #property proporcionan metadatos sobre el indicador:
- #property copyright: Indica el titular de los derechos de autor y el año.
- #property link: Proporciona un enlace a un sitio web (normalmente donde se puede encontrar más información).
- #property version: Especifica la versión del indicador.
- #property indicator_chart_window: Indica que el indicador se dibujará en la ventana principal del gráfico (en lugar de en una ventana aparte).
//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); }
Esta sección define la función OnInit, a la que se llama cuando se inicializa el indicador:
- OnInit(): La función se encarga de configurar el indicador, como asignar búferes e inicializar variables.
- return'(INIT_SUCCEEDED);': Indica que la inicialización se ha realizado correctamente. INIT_SUCCEEDED es una constante predefinida en MQL5.
- Actualmente, la función no realiza ninguna acción porque el cuerpo principal entre los comentarios (//---) está vacío.
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Esta sección define la función OnCalculate, que se llama para calcular los valores del indicador en cada tick:
- OnCalculate: Aquí es donde se implementa la lógica principal del indicador. Procesa los datos de precios y calcula los valores de los indicadores.
- Rates_total: Número total de barras del gráfico.
- Prev_calculated: Número de barras calculadas durante la llamada anterior.
- Time[], open[], high[], low[], close[], tick_volume[], volume[], spread[]: Matrices que contienen la hora, los precios de apertura, máximo, mínimo y cierre, el volumen de ticks, el volumen real y el diferencial de cada barra.
Actualmente, la función no realiza ningún cálculo, ya que el cuerpo principal está vacío. Simplemente devuelve rates_total, indicando el número total de barras que se han procesado. Esto es importante para realizar un seguimiento de las barras procesadas en llamadas posteriores. En resumen, este es un código esqueleto para un indicador personalizado en MQL5. Configura la estructura básica y los metadatos, pero todavía no realiza ninguna acción ni cálculo específico.
Desarrollo de un script con asistencia de IA, llamado "Mi primer programa MQL5"
Primero necesitamos saber el propósito del programa que estamos desarrollando. En este caso, sugeriré que me diga si la vela D1 es alcista o bajista. A continuación, vaya a ChatGPT y envíe un mensaje. Esta vez, queremos proporcionar la plantilla del programa de script para almacenarla en la memoria de IA y luego solicitar modificarla según las condiciones.
Primero necesitamos saber el propósito del programa que estamos desarrollando. En este caso, sugeriré que me diga si la vela D1 es alcista o bajista. Luego de presionar “Finalizar”, obtenemos esta plantilla de programa y la copiamos en ChatGPT para llevar a cabo nuestro plan según este contexto:
//+------------------------------------------------------------------+ //| MyFirstMQL5 Program.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- } //+------------------------------------------------------------------+A continuación se muestra un fragmento de código tal como se solicitó en ChatGPT:
Create an MQL5 script from this template that tells day candle status on screen: //+------------------------------------------------------------------+ //| MyFirstMQL5 Program.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- } //+------------------------------------------------------------------+
Respuesta de ChatGPT:
//+------------------------------------------------------------------+ //| MyFirstMQL5 Program.mq5 | //| Copyright 2024, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property strict // Input parameters for customizing the text display input color TextColor = clrRed; // Color of the text input int FontSize = 20; // Font size input ENUM_ANCHOR_POINT AnchorCorner = ANCHOR_LEFT_UPPER; // Text anchor point input int X_Offset = 10; // X offset input int Y_Offset = 10; // Y offset //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { // Get the opening price of the current day double openPrice = iOpen(_Symbol, PERIOD_D1, 0); // Get the closing price of the current day double closePrice = iClose(_Symbol, PERIOD_D1, 0); // Determine the candle status string candleStatus = (closePrice >= openPrice) ? "Bullish" : "Bearish"; // Display the candle status on the screen DisplayCandleStatus(candleStatus); } //+------------------------------------------------------------------+ //| Function to display the candle status on the screen | //+------------------------------------------------------------------+ void DisplayCandleStatus(string status) { string objName = "CandleStatusText"; if(ObjectFind(0, objName) < 0) { // Create the text object if it doesn't exist ObjectCreate(0, objName, OBJ_LABEL, 0, 0, 0); ObjectSetInteger(0, objName, OBJPROP_CORNER, AnchorCorner); ObjectSetInteger(0, objName, OBJPROP_XDISTANCE, X_Offset); ObjectSetInteger(0, objName, OBJPROP_YDISTANCE, Y_Offset); ObjectSetInteger(0, objName, OBJPROP_FONTSIZE, FontSize); ObjectSetInteger(0, objName, OBJPROP_COLOR, TextColor); } // Update the text ObjectSetString(0, objName, OBJPROP_TEXT, "Day Candle: " + status); } //+------------------------------------------------------------------+
Pruebas
Aquí está el procedimiento que seguí durante la prueba.- Copiar el código: Después de recibir el script modificado de ChatGPT, copie el código.
- Abrir MetaEditor: Inicie MetaEditor en su computadora.
- Crear un nuevo script:
- Vaya a Archivo > Nuevo > Script.
- Ingrese un nombre para su script, luego haga clic en Siguiente y Finalizar.
- Pegar el código: Reemplace el código generado automáticamente en el nuevo archivo de script con el código modificado que recibió de ChatGPT.
- Compilar el script:
- Haga clic en el botón Compilar en la barra de herramientas de MetaEditor.
- Si no hay errores, su script se compilará correctamente.
- Compruebe la salida:
- En la pestaña Navegador, busque en la sección Scripts para encontrar el archivo de script compilado.
- Arrastre y suelte el script en un gráfico en MetaTrader 5 para ver los resultados.
- Revise los resultados: Monitoree el gráfico para verificar si el script identifica correctamente si la vela D1 es alcista o bajista.
El programa se compiló exitosamente sin ninguna edición adicional. El script confirmó que la vela D1 era alcista.
Conclusión
Dominar MQL5 es un viaje que combina aprendizaje, experimentación y aprovechamiento de herramientas avanzadas como IA. Dominando los conceptos básicos, aprovechando los recursos de la comunidad, superando desafíos dinámicos con la ayuda de la inteligencia artificial, optimizando estrategias y adoptando la automatización, puedes desbloquear todo tu potencial como trader. Estos tres "secretos" son solo el comienzo; el aprendizaje y la adaptación continuos garantizarán que usted se mantenga a la vanguardia en el dinámico mundo del trading algorítmico. Aproveche las oportunidades que ofrece MQL5 y observe cómo aumenta su éxito en el trading.
Con la inteligencia artificial se puede lograr mucho; el único límite es tu imaginación y tu habilidad para comunicarle tus ideas. No todos los programas creados con inteligencia artificial se ejecutarán de manera eficiente en todo momento; a veces, es necesario dedicar un esfuerzo adicional a depurar, consultar la documentación de la comunidad y explorar los manuales de MQL5 para realizar una investigación más profunda. Hay mucho que compartir, pero dejémoslo para la próxima vez. Al menos ahora tienes un compañero. ¡Éxitos desarrollando!Nombre del archivo | Descripción |
---|---|
MyFirstIndicator.mq5 | Plantilla del indicador MQL5. |
MyFirstMQL5 Program.mq5 | Archivo con el algoritmo (código fuente). |
MyFirstMQL5 Program.ex5 | Archivo compilado y listo para su uso. |
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/15320





- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso