El método de agrupamiento para el manejo de datos: Implementación del algoritmo iterativo multicapa en MQL5
En este artículo describimos la implementación del algoritmo iterativo multicapa del método de agrupamiento para el manejo de datos en MQL5.
Algoritmo de Tribu Artificial (Artificial Tribe Algorithm, ATA)
Este artículo detalla los componentes clave y las innovaciones del algoritmo de optimización ATA, un método evolutivo con un sistema de comportamiento dual único que se adapta según la situación. Usando el cruce para la exploración en profundidad y la migración para la búsqueda cuando se dan atascos en óptimos locales, el ATA combina el aprendizaje individual y el social.
Simulación de mercado (Parte 04): Creación de la clase C_Orders (I)
En este artículo comenzaremos a construir la clase C_Orders para poder enviar órdenes al servidor de negociación. Lo haremos poco a poco, ya que el objetivo es explicar detalladamente cómo se realizará esto a través del sistema de mensajería.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 15): Introducción a la teoría de los cuartos (I) - Dibujando la teoría de cuartos
Los puntos de soporte y resistencia son niveles críticos que indican posibles reversiones y continuaciones de la tendencia. Aunque identificar estos niveles puede resultar complicado, una vez que los localices, estarás bien preparado para navegar por el mercado. Si necesitas más ayuda, échale un vistazo a la herramienta Quarters Drawer que aparece en este artículo, te ayudará a identificar los niveles de soporte y resistencia principales y secundarios.
Desarrollo de un sistema de repetición (Parte 43): Proyecto Chart Trade (II)
Gran parte de las personas que quieren, o desean aprender a programar, no tienen en realidad idea de lo que están haciendo. Lo que hacen es intentar crear las cosas de una determinada manera. Sin embargo, cuando programamos no estamos realmente intentando crear una solución. Si intentas hacerlo de esta manera, generarás más problemas que soluciones. Aquí haremos algo un poco más avanzado, y por consecuencia diferente.
Formulación Genérica de Optimización (GOF, Generic Optimization Formulation) utilizando el `Criterio máximos del usuario` (Custom Max) con múltiples restricciones en el Probador de Estrategias
En este artículo presentaremos una forma de implementar problemas de optimización con múltiples objetivos y restricciones al seleccionar «Custom Max» en la pestaña Setting del terminal MetaTrader 5. Como ejemplo, el problema de optimización podría ser: Maximizar el Factor de Beneficio, el Beneficio Neto y el Factor de Recuperación, de forma que la reducción sea inferior al 10%, el número de pérdidas consecutivas sea inferior a 5 y el número de operaciones por semana sea superior a 5.
Superando las limitaciones del aprendizaje automático (Parte 1): Falta de métricas interoperables
Existe una fuerza poderosa y omnipresente que corrompe silenciosamente los esfuerzos colectivos de nuestra comunidad por desarrollar estrategias comerciales fiables que empleen la IA en cualquiera de sus formas. Este artículo establece que parte de los problemas a los que nos enfrentamos tienen su origen en la adhesión ciega a las «mejores prácticas». Al proporcionar al lector pruebas sencillas basadas en el mercado real, le explicaremos por qué debemos abstenernos de tal conducta y adoptar, en su lugar, las mejores prácticas específicas del ámbito si nuestra comunidad quiere tener alguna posibilidad de recuperar el potencial latente de la IA.
Desarrollo de un sistema comercial basado en el libro de órdenes (Parte I): el indicador
El libro de órdenes —Depth of Market— es, sin duda, un elemento muy relevante para la ejecución de operaciones rápidas, especialmente en algoritmos de alta frecuencia (HFT). En esta serie de artículos, exploraremos este tipo de evento comercial que podemos obtener a través del bróker en muchos de los símbolos negociados. Empezaremos con un indicador en el que se pueden configurar la paleta de colores, la posición y el tamaño del histograma que se mostrará directamente en el gráfico. También veremos cómo generar eventos BookEvent para probar el indicador en condiciones específicas. Otros posibles temas que trataremos en artículos futuros son el almacenamiento de estas distribuciones de precios y las formas de utilizarlas en el simulador de estrategias.
Observador de Connexus (Parte 8): Cómo agregar un observador de solicitudes
En esta última entrega de nuestra serie de bibliotecas Connexus, exploramos la implementación del patrón Observer, así como refactorizaciones esenciales de rutas de archivos y nombres de métodos. Esta serie cubrió todo el desarrollo de Connexus, diseñado para simplificar la comunicación HTTP en aplicaciones complejas.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 19): ZigZag Analyzer
Todos los traders que se basan en el movimiento de los precios utilizan manualmente las líneas de tendencia para confirmar las tendencias e identificar posibles niveles de cambio de tendencia o de continuación. En esta serie dedicada a la creación de un conjunto de herramientas para el análisis de la acción del precio, presentamos una herramienta diseñada para trazar líneas de tendencia inclinadas que facilitan el análisis del mercado. Esta herramienta simplifica el proceso para los traders al destacar claramente las tendencias y los niveles clave que resultan esenciales para evaluar eficazmente la evolución de los precios.
Del básico al intermedio: Punto flotante
Este artículo es una breve introducción a lo que sería el punto flotante. Como este contenido es muy complicado, te aconsejo leer con calma y atención. No esperes dominar el sistema de punto flotante de manera rápida. El mismo solo se domina con el tiempo y la experiencia de uso. Pero este artículo te ayudará a entender por qué, a veces, tu aplicación reporta un resultado diferente del esperado originalmente. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
Simulación de mercado (Parte 10): Sockets (IV)
En este artículo, te muestro lo que necesitas hacer para empezar a utilizar Excel y controlar MetaTrader 5, pero de una forma muy interesante. Para ello, utilizaremos un complemento de Excel, de modo que no sea necesario utilizar el VBA integrado. Si no sabes de qué complemento se trata, consulta este artículo y aprende a programar en Python directamente en Excel.
Creación de un Panel de administración de operaciones en MQL5 (Parte VI): Interfaz de múltiples funciones (I)
La función del administrador de operaciones va más allá de las comunicaciones por Telegram; también puede participar en diversas actividades de control, como la gestión de órdenes, el seguimiento de posiciones y la personalización de interfaces. En este artículo, compartiremos información práctica sobre cómo ampliar nuestro programa para admitir múltiples funcionalidades en MQL5. Esta actualización tiene como objetivo superar la limitación actual del Panel de administración, que se centra principalmente en la comunicación, permitiéndole gestionar una gama más amplia de tareas.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 08): Bloqueo del indicador
En este artículo te mostraré cómo bloquear un indicador, simplemente utilizando el lenguaje MQL5, de una forma muy interesante y sorprendente.
Reimaginando las estrategias clásicas (Parte VIII): Los mercados de divisas y metales preciosos en el USDCAD
En esta serie de artículos, revisamos estrategias de negociación bien conocidas para ver si podemos mejorarlas utilizando IA. En el artículo de hoy comprobaremos si existe una relación fiable entre los metales preciosos y las divisas.
Desarrollo de un sistema de repetición (Parte 66): Presionando play en el servicio (VII)
En este artículo, implementaremos una primera solución para identificar cuándo puede aparecer una nueva barra en el gráfico. Esta solución es aplicable a diversas situaciones. Sin embargo, comprender su desarrollo puede ayudarte a entender varios aspectos. El contenido expuesto aquí tiene como único propósito la enseñanza. En ningún caso debe considerarse una aplicación cuyo objetivo no sea el aprendizaje y el estudio de los conceptos presentados.
Características del Wizard MQL5 que debe conocer (Parte 17): Negociación con multidivisas
La negociación con varias divisas no está disponible por defecto cuando se crea un asesor experto mediante el asistente. Examinamos dos posibles trucos que los operadores pueden utilizar para poner a prueba sus ideas con más de un símbolo a la vez.
Del básico al intermedio: Precedencia de operadores
Se trata, sin duda, del tema más complicado de explicar únicamente con la parte teórica. Por esta razón, te aconsejo que practiques lo que se mostrará aquí. Aunque al principio todo parezca simple, esta cuestión sobre los operadores solo se comprenderá bien con la práctica aliada a un estudio constante. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea aprender y estudiar los conceptos mostrados.
Integración de las API de los brókers con los Asesores Expertos usando MQL5 y Python
En este artículo, analizaremos la implementación de MQL5 en colaboración con Python para realizar operaciones relacionadas con los brókers. Imagina tener un asesor experto (Expert Advisor, EA) funcionando continuamente alojado en un VPS, ejecutando operaciones en tu nombre. En algún momento, la capacidad de la EA para gestionar fondos se vuelve primordial. Esto incluye operaciones como recargar su cuenta de trading e iniciar retiradas. En este debate, analizaremos las ventajas y la aplicación práctica de estas funciones, garantizando una integración perfecta de la gestión de fondos en su estrategia comercial. ¡Estén atentos!
Creación de un Panel de administración de operaciones en MQL5 (Parte VIII): Panel de análisis
Hoy profundizamos en la incorporación de métricas de trading útiles dentro de una ventana especializada integrada en el EA del Panel de Administración.
Este debate se centra en la implementación de MQL5 para desarrollar un panel de análisis y destaca el valor de los datos que proporciona a los administradores de operaciones bursátiles. El impacto es principalmente educativo, ya que se extraen valiosas lecciones del proceso de desarrollo, lo que beneficia tanto a los desarrolladores noveles como a los experimentados. Esta función demuestra las oportunidades ilimitadas que ofrece esta serie de desarrollo al equipar a los gestores comerciales con herramientas de software avanzadas. Además, exploraremos la implementación de las clases PieChart y ChartCanvas como parte de la continua expansión de las capacidades del panel del administrador de operaciones.
Cómo publicar código en CodeBase: Guía práctica
En este artículo, analizaremos el proceso de publicación de diferentes tipos de programas para el terminal en la biblioteca de código fuente MQL5 usando ejemplos reales.
Introducción a las curvas ROC (Receiver Operating Characteristic)
Las curvas ROC son representaciones gráficas que se utilizan para evaluar el rendimiento de los clasificadores. A pesar de que los gráficos ROC son relativamente sencillos, existen conceptos erróneos y dificultades comunes a la hora de utilizarlos en la práctica. El objetivo de este artículo es ofrecer una introducción a los gráficos ROC como herramienta para los profesionales que desean comprender la evaluación del rendimiento de los clasificadores.
El método de manejo de datos en grupo: implementación del algoritmo combinatorio en MQL5
En este artículo continuamos nuestra exploración de la familia de algoritmos del método de manejo de datos en grupo, con la implementación del algoritmo combinatorio junto con su encarnación refinada, el algoritmo combinatorio selectivo en MQL5.
Optimización de la quimiotaxis bacteriana - Bacterial Chemotaxis Optimisation (BCO)
Este artículo presenta la versión original del algoritmo de optimización de la quimiotaxis bacteriana (BCO) y su versión modificada. Hoy veremos con detalle todas las diferencias, centrándonos en la nueva versión de BCOm, que simplifica el mecanismo de movimiento bacteriano, reduce la dependencia de la historia de cambios de posición y utiliza operaciones matemáticas más sencillas en comparación con la versión original, sobrecargada computacionalmente. También realizaremos pruebas y extraeremos conclusiones.
Desarrollo de un sistema de repetición (Parte 68): Ajuste del tiempo (I)
A continuación, continuaremos con el trabajo de lograr que el indicador del mouse nos informe sobre el tiempo restante de la barra en momentos de baja liquidez. Aunque a primera vista parece sencillo, verás que esta tarea es mucho más complicada. Esto se debe a algunos obstáculos que tendremos que superar. Por eso, es importante que sigas esta primera parte para poder comprender las siguientes.
Visualización de estrategias en MQL5: distribuimos los resultados de la optimización en gráficos de criterios
En este artículo, escribiremos un ejemplo de visualización del proceso de optimización e implementaremos la visualización de las tres mejores pasadas para cuatro criterios de optimización. Asimismo, ofreceremos la posibilidad de seleccionar una de las tres mejores pasadas para mostrar sus datos en tablas y gráficos.
Desarrollo de un sistema de repetición (Parte 56): Adecuación de los módulos
Aunque los módulos se comunican de manera adecuada, existe un error al intentar utilizar el indicador de mouse en el servicio de repetición. Necesitamos corregir esto ahora, antes de pasar al siguiente paso. Además, se ha corregido una incidencia en el código del indicador de mouse. Esta versión finalmente se ha vuelto estable y está debidamente finalizada.
Pruebas de robustez en asesores expertos
En el desarrollo de una estrategia hay muchos detalles complejos a tener en cuenta, muchos de los cuales no se destacan para los traders principiantes. Como resultado, muchos comerciantes, incluido yo mismo, hemos tenido que aprender estas lecciones a las duras penas. Este artículo se basa en mis observaciones de errores comunes que la mayoría de los traders principiantes encuentran al desarrollar estrategias en MQL5. Ofrecerá una variedad de consejos, trucos y ejemplos para ayudar a identificar la descalificación de un EA y probar la solidez de nuestros propios EA de una manera fácil de implementar. El objetivo es educar a los lectores, ayudándolos a evitar futuras estafas al comprar EA, así como a prevenir errores en el desarrollo de su propia estrategia.
Reimaginando las estrategias clásicas en MQL5 (Parte III): Previsión del FTSE 100
En esta serie de artículos, revisaremos estrategias de negociación muy conocidas para averiguar si podemos mejorarlas utilizando la IA. En el artículo de hoy, exploraremos el FTSE 100 e intentaremos predecir el índice utilizando una parte de los valores individuales que lo componen.
Desarrollo de un sistema de repetición (Parte 46): Proyecto Chart Trade (V)
¿Cansado de perder tiempo buscando ese archivo que es necesario para que tu aplicación funcione? ¿Qué tal si incluimos todo en el ejecutable? Así nunca perderás tiempo buscando las cosas. Sé que muchos utilizan exactamente esa forma de distribuir y guardar las cosas. Pero existe una manera mucho más adecuada. Al menos en lo que respecta a la distribución de ejecutables y almacenamiento de los mismos. La forma que explicaré aquí, puede ser de gran ayuda. Ya que puedes usar el propio MetaTrader 5 como un gran ayudante, así como el MQL5. No es algo tan complejo ni difícil de entender.
Desarrollo de un sistema de repetición (Parte 57): Diseccionamos el servicio de prueba
Un último detalle: Aunque no se incluye en este artículo, explicaré el código del servicio que se estará utilizando en el próximo, ya que usaremos este mismo código como trampolín para lo que realmente estamos desarrollando. Así que ten un poco de paciencia y espera el próximo artículo, pues las cosas se están poniendo cada día más interesantes.
Introducción a Connexus (Parte 1): ¿Cómo utilizar la función WebRequest?
Este artículo es el comienzo de una serie de desarrollos para una biblioteca llamada “Connexus” para facilitar las solicitudes HTTP con MQL5. El objetivo de este proyecto es brindarle al usuario final esta oportunidad y mostrarle cómo utilizar esta biblioteca auxiliar. Mi intención era hacerlo lo más sencillo posible para facilitar el estudio y ofrecer la posibilidad de desarrollos futuros.
Del básico al intermedio: Plantilla y Typename (II)
En este artículo, mostraremos cómo lidiar con una de las situaciones más molestas y complicadas en términos de programación con las que tú podrías encontrarte: el uso de tipos diferentes en una misma plantilla de función o procedimiento. Aunque nos hemos enfocado casi todo el tiempo solo en funciones, todo lo que se ha visto aquí sirve y puede aplicarse a procedimientos.
Del básico al intermedio: Plantilla y Typename (V)
En este artículo, veremos un último caso simple de uso de plantillas, pero también veremos cuál es la utilidad y por qué la necesidad de utilizar typename en tus códigos. Aunque este artículo pueda parecer un tanto complicado al principio, es necesario comprenderlo adecuadamente para que futuras aplicaciones que utilicen plantilla y typename, sean, de hecho, comprendidas.
Modificaciones más notables del algoritmo de búsqueda cooperativa artificial (Artificial Cooperative Search, ACSm)
Aquí consideraremos la evolución del algoritmo ACS: tres modificaciones destinadas a mejorar las características de convergencia y la eficiencia del algoritmo. Transformación de uno de los principales algoritmos de optimización. De las modificaciones matriciales a los planteamientos revolucionarios en materia de formación de la población.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 11): EA de señales Heikin Ashi
MQL5 ofrece infinitas oportunidades para desarrollar sistemas de trading automatizados adaptados a sus preferencias. ¿Sabías que incluso puede realizar cálculos matemáticos complejos? En este artículo, presentamos la técnica japonesa Heikin-Ashi como una estrategia de trading automatizada.
Desarrollo de un sistema de repetición (Parte 77): Un nuevo Chart Trade (IV)
En este artículo, explicaré algunos detalles y precauciones que debes tener en cuenta al crear un protocolo de comunicación. Son cosas bastante básicas y simples. No voy a profundizar demasiado en este artículo. Pero es necesario que comprendas su contenido para entender lo que sucederá en el receptor.
Desarrollo de un sistema de repetición (Parte 61): Presionando play en el servicio (II)
En este artículo, analizaremos las modificaciones necesarias para que el sistema de repetición/simulación pueda operar de manera más eficiente y segura. También mostraré algo de interés para quienes deseen aprovechar al máximo el uso de clases. Además, abordaré un problema específico de MQL5 que reduce el rendimiento del código al trabajar con clases y explicaré cómo resolverlo.
Del básico al intermedio: Struct (III)
En este artículo, veremos qué es un código estructurado. Muchas personas confunden el código estructurado con el código organizado. Sin embargo, existe una diferencia entre ambos conceptos. Esto se explicará en este artículo. A pesar de la aparente complejidad que se notará en el primer contacto con este tipo de codificación, he intentado abordar el tema de la mejor manera posible. Pero este artículo es solo el primer paso hacia algo más grande.
Uso conjunto de PSAR, Heiken Ashi y Deep Learning para el trading
Este proyecto explora la fusión del aprendizaje profundo y el análisis técnico para probar estrategias de trading en forex. Se utiliza un script en Python para experimentar rápidamente, empleando un modelo ONNX junto con indicadores tradicionales como PSAR, SMA y RSI para predecir los movimientos del EURUSD. A continuación, un script de MetaTrader 5 lleva esta estrategia a un entorno en vivo, utilizando datos históricos y análisis técnicos para tomar decisiones de negociación informadas. Los resultados de las pruebas retrospectivas indican un planteamiento prudente pero coherente, centrado en la gestión del riesgo y el crecimiento constante más que en la búsqueda agresiva de beneficios.