Interfaz gráfica: consejos y recomendaciones para crear una biblioteca gráfica en MQL
Hoy abarcaremos los conceptos básicos de las bibliotecas GUI para comprender cómo funcionan estas o incluso comenzar a crear bibliotecas propias.
DoEasy. Controles (Parte 23): mejorando los objetos WinForms TabControl y SplitContainer
En este artículo, añadiremos los nuevos eventos de ratón respecto a los límites de los espacios de trabajo WinForms, y también corregiremos algunos errores en los controles TabControl y SplitContainer.
ADAM poblacional (Estimación Adaptativa de Momentos)
Este artículo presenta la transformación del conocido y popular método de optimización ADAM basado en gradientes en un algoritmo basado en poblaciones y su modificación con la introducción de individuos híbridos. El nuevo enfoque permite crear agentes que combinen elementos de soluciones exitosas mediante una distribución de probabilidades. Una innovación clave es la generación de poblaciones híbridas que acumulan de forma adaptativa la información de las soluciones más prometedoras, mejorando la eficacia de la búsqueda en espacios multidimensionales complejos.
De novato a experto: Depuración colaborativa en MQL5
La resolución de problemas puede establecer una rutina concisa para dominar habilidades complejas, como la programación en MQL5. Este enfoque le permite concentrarse en la resolución de problemas al tiempo que desarrolla sus capacidades. Cuantos más problemas abordes, más conocimientos avanzados se transferirán a tu cerebro. Personalmente, creo que la depuración es la forma más efectiva de dominar la programación. Hoy repasaremos el proceso de limpieza de código y analizaremos las mejores técnicas para transformar un programa desordenado en uno limpio y funcional. Lea este artículo y descubra información valiosa.
Creación de un Panel de administración de operaciones en MQL5 (Parte III): Mejora de la interfaz gráfica de usuario con estilización visual (I)
En este artículo, nos centraremos en el estilo visual de la interfaz gráfica de usuario (GUI) de nuestro Panel de Administrador de Trading utilizando MQL5. Exploraremos diversas técnicas y funciones disponibles en MQL5 que permiten personalizar y optimizar la interfaz, garantizando que satisfaga las necesidades de los operadores al tiempo que mantiene una estética atractiva.
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.
Marcado de datos en el análisis de series temporales (Parte 4): Descomposición de la interpretabilidad usando el marcado de datos
En esta serie de artículos, presentaremos varias técnicas de marcado de series temporales que pueden producir datos que se ajusten a la mayoría de los modelos de inteligencia artificial (IA). El marcado dirigido de datos puede hacer que un modelo de IA entrenado resulte más relevante para las metas y objetivos del usuario, mejorando la precisión del modelo y ayudando a este a dar un salto de calidad.
Desarrollo de un sistema de repetición (Parte 38): Pavimentando el terreno (II)
Muchas personas que se hacen llamar programadores de MQL5 no tienen los conocimientos básicos que presentaré en este artículo. Muchos consideran que MQL5 es limitado; sin embargo, todo se debe a la falta de conocimientos. Así que no te avergüences de no saber. Avergüénzate, en cambio, de no preguntar. El simple hecho de obligar a MetaTrader 5 a no permitir que un indicador se duplique, en ningún caso nos da los medios para realizar una comunicación bidireccional entre el indicador y el Expert Advisor. Todavía estamos muy lejos de esto. No obstante, el hecho de que el indicador no se duplique en el gráfico nos da cierta tranquilidad.
De lo básico a intermedio: Indicador (III)
En este artículo, veremos cómo declarar diversos indicadores de representación gráfica, como DRAW_COLOR_LINE y DRAW_FILLING. Además, por supuesto, aprenderemos a trazar múltiples indicadores de forma sencilla, práctica y rápida. Esto puede cambiar realmente tu forma de ver MetaTrader 5 y el mercado en general.
Reconocimiento de patrones mediante deformación dinámica del tiempo (Dynamic Time Warping, DTW) en MQL5
En este artículo, analizamos el concepto de deformación dinámica del tiempo como medio para identificar patrones predictivos en series de tiempo financieras. Veremos cómo funciona y presentaremos su implementación en MQL5.
Creación de un modelo de restricción de tendencia de velas (Parte 10): Estrategia de Cruce Dorado y Cruce de la Muerte (EA)
¿Sabías que el Cruce Dorado y el Cruce de la Muerte están entre las estrategias más fiables para detectar tendencias de mercado a largo plazo? Un Cruce Dorado señala una tendencia alcista cuando una media móvil corta cruza por encima de una más larga, mientras que un Cruce de la Muerte indica una tendencia bajista cuando la media corta cruza por debajo.
A pesar de su sencillez y eficacia, aplicar estas estrategias manualmente suele llevar a perder oportunidades o a ejecutar operaciones con retraso.
Monitoreo de transacciones usando notificaciones push: ejemplo de un servicio en MetaTrader 5
En este artículo veremos cómo crear un programa de servicio para enviar notificaciones a un smartphone sobre los resultados comerciales. Asimismo, aprenderemos cómo trabajar con listas de objetos de la biblioteca estándar para organizar una muestra de objetos según las propiedades requeridas.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 5): Volatility Navigator EA
Determinar la dirección del mercado puede ser sencillo, pero saber cuándo entrar puede resultar complicado. Como parte de la serie titulada «Desarrollo de un kit de herramientas para el análisis de la acción del precio», me complace presentar otra herramienta que proporciona puntos de entrada, niveles de toma de ganancias y colocación de órdenes stop loss. Para lograrlo, hemos utilizado el lenguaje de programación MQL5. Profundicemos en cada paso de este artículo.
Desarrollamos un asesor experto para controlar los puntos de entrada en las operaciones swing
A medida que el año se acerca a su fin, los tráders a largo plazo suelen hacer balance del año, analizando la historia, el comportamiento y las tendencias del mercado para evaluar el potencial de los movimientos futuros. En este artículo, analizaremos el desarrollo de un asesor experto para el seguimiento de operaciones a largo plazo utilizando MQL5. El objetivo será hacer frente a problemas como la pérdida de oportunidades comerciales debido al trading manual y a la falta de sistemas de supervisión automatizados. Como ejemplo de definición eficaz de una estrategia para nuestra solución y también para desarrollar la misma, utilizaremos uno de los pares comerciales más destacados.
Combinación de estrategias de análisis técnico y fundamental en MQL5 para principiantes
En este artículo, analizaremos cómo integrar sin problemas el seguimiento de tendencias y los principios fundamentales en un Asesor Experto para crear una estrategia más sólida. Este artículo demostrará lo fácil que es para cualquiera comenzar a desarrollar algoritmos comerciales personalizados utilizando MQL5.
DoEasy. Elementos de control (Parte 2): Continuamos trabajando con la clase CPanel
En este artículo, eliminaremos algunos errores que surgen al trabajar con los elementos gráficos y continuaremos desarrollando el control CPanel. Estos métodos servirán para establecer por defecto los parámetros de fuente usados para todos los objetos de texto en el panel, que a su vez podrán ser colocados en él en el futuro.
Capacidades de SQLite en MQL5: Ejemplo de panel interactivo con estadísticas comerciales por símbolos y números mágicos
En este artículo, analizaremos la creación de un indicador que mostrará en un panel interactivo las estadísticas comerciales según la cuenta, y también según los símbolos y estrategias comerciales. Asimismo, escribiremos un código basándonos en los ejemplos de la Documentación y el artículo sobre el trabajo con bases de datos.
Hibridación de algoritmos basados en poblaciones. Esquema secuencial y paralelo
En este artículo, nos sumergiremos en el mundo de la hibridación de algoritmos de optimización analizando tres tipos clave: la mezcla de estrategias y la hibridación secuencial y paralela. Asimismo, realizaremos una serie de experimentos combinando y probando los algoritmos de optimización correspondientes.
DoEasy. Elementos de control (Parte 31): Desplazamiento por el contenido del control "ScrollBar"
En este artículo, crearemos la funcionalidad necesaria para desplazar el contenido del contenedor usando los botones de la barra de desplazamiento horizontal.
Teoría de categorías en MQL5 (Parte 4): Intervalos, experimentos y composiciones
La teoría de categorías es una rama de las matemáticas diversa y en expansión, relativamente inexplorada aún en la comunidad MQL5. Esta serie de artículos tiene como objetivo describir algunos de sus conceptos para crear una biblioteca abierta y seguir utilizando esta maravillosa sección para crear estrategias comerciales.
Implementación en MQL5 de la prueba de Augmented Dickey-Fuller (ADF)
En este artículo demostramos la implementación de la prueba Dickey-Fuller aumentada (ADF, por sus siglas en inglés), y la aplicamos para realizar pruebas de cointegración utilizando el método Engle-Granger.
Evaluación visual y ajuste comercial en MetaTrader 5
En el simulador de estrategias no solo es posible optimizar los parámetros de un robot comercial. Hoy le mostraremos cómo evaluar post-facto la historia comercial de su cuenta y realizar ajustes en el trading en el simulador cambiando el tamaño de las órdenes stop para las posiciones abiertas.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 05): Vistas previas
Hemos logrado desarrollar una forma de ejecutar la repetición de mercado de manera bastante realista y aceptable. Ahora, vamos a continuar con nuestro proyecto y agregar datos para mejorar el comportamiento de la repetición.
Algoritmo de optimización Brain Storm - Brain Storm Optimization (Parte I): Clusterización
En este artículo analizaremos un innovador método de optimización denominado BSO (Brain Storm Optimization), inspirado en el fenómeno natural de la tormenta de ideas. También discutiremos un nuevo enfoque de resolución de tareas de optimización multimodales que utiliza el método BSO y nos permite encontrar múltiples soluciones óptimas sin tener que determinar de antemano el número de subpoblaciones. En este artículo, también analizaremos los métodos de clusterización K-Means y K-Means++.
Operar con noticias de manera sencilla (Parte 1): Creando una base de datos
Operar con noticias puede ser complicado y abrumador, en este artículo repasaremos los pasos para obtener datos de noticias. Además, conoceremos el calendario económico de MQL5 y lo que ofrece.
Ingeniería de características con Python y MQL5 (Parte I): Predicción de medias móviles para modelos de IA de largo plazo
Las medias móviles son, con diferencia, los mejores indicadores para que nuestros modelos de IA realicen predicciones. Sin embargo, podemos mejorar aún más nuestra precisión transformando cuidadosamente nuestros datos. Este artículo le mostrará cómo puede crear modelos de IA capaces de realizar previsiones a más largo plazo que las que realiza actualmente sin que ello suponga una disminución significativa de su nivel de precisión. Es realmente sorprendente lo útiles que son las medias móviles.
Desarrollo de un sistema de repetición (Parte 33): Sistema de órdenes (II)
Vamos a continuar el desarrollo del sistema de órdenes, pero verás que haremos una reutilización masiva de cosas ya vistas en otros artículos. Aun así, tendremos una pequeña recompensa en este artículo. Desarrollaremos, en primer lugar, un sistema que pueda ser operado junto al servidor de negociación real, ya sea usando una cuenta demo o una cuenta real. Haremos uso masivo y extensivo de la plataforma MetaTrader 5 para proporcionarnos todo el soporte que necesitaremos en este inicio de viaje.
Del básico al intermedio: Operadores
En este artículo, exploraremos los operadores básicos. Aunque es un tema fácil de comprender, existen pequeños detalles que marcan una gran diferencia a la hora de incorporar expresiones matemáticas en formato de código. Sin comprender adecuadamente estos detalles, muchos programadores con poca o ninguna experiencia terminan abandonando su intento de crear sus propias soluciones.
Algoritmo de optimización de reacciones químicas (CRO) (Parte II): Ensamblaje y resultados
En la segunda parte, reuniremos los operadores químicos en un único algoritmo y presentaremos un análisis detallado de sus resultados. Descubramos cómo el método de optimización de reacciones químicas (CRO) aborda la solución de problemas complejos en funciones de prueba.
HTTP y Connexus (Parte 2): Comprensión de la arquitectura HTTP y el diseño de bibliotecas
Este artículo explora los fundamentos del protocolo HTTP, cubriendo los métodos principales (GET, POST, PUT, DELETE), los códigos de estado y la estructura de las URL. Además, presenta el inicio de la construcción de la librería Conexus con las clases CQueryParam y CURL, que facilitan la manipulación de URLs y parámetros de consulta en peticiones HTTP.
Del básico al intermedio: Comandos BREAK y CONTINUE
En este artículo veremos cómo usar los comandos RETURN, BREAK y CONTINUE dentro de un bucle. Entender lo que cada uno de estos comandos hace en el flujo de ejecución de un bucle es algo muy importante para que puedas trabajar con aplicaciones más elaboradas. 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 presentados.
Del básico al intermedio: Sobrecarga
Este tal vez será el artículo más confuso para ti, principiante. Ya que aquí mostraré que no siempre tendremos, en un mismo código, todas las funciones y procedimientos con nombres exclusivos. Podemos, sí, tener funciones y procedimientos con un mismo nombre, y esto se conoce como sobrecarga. 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.
Obtenga una ventaja sobre cualquier mercado (Parte IV): Índices CBOE de volatilidad del euro y el oro
Analizaremos datos alternativos curados por el 'Chicago Board Of Options Exchange' (CBOE) para mejorar la precisión de nuestras redes neuronales profundas al pronosticar el símbolo XAUEUR (oro).
Del básico al intermedio: Variables (II)
En este artículo vamos a ver cómo trabajar con variables del tipo estática. Este tema suele confundir a muchos programadores, tanto principiantes como aquellos con algo de experiencia. Esto se debe a que existen algunos cuidados y trucos que deben observarse al usar este mecanismo. El contenido expuesto aquí tiene como objetivo, pura y simplemente, la enseñanza didáctica. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y estudio de los conceptos presentados.
Kit de herramientas de negociación MQL5 (Parte 3): Desarrollo de una biblioteca EX5 para la gestión de órdenes pendientes
Aprenda a desarrollar e implementar una biblioteca EX5 integral de órdenes pendientes en su código o proyectos MQL5. Este artículo le mostrará cómo crear una extensa biblioteca EX5 de gestión de órdenes pendientes y lo guiará en el proceso de importarla e implementarla mediante la creación de un panel de negociación o una interfaz gráfica de usuario (GUI). El panel de órdenes del asesor experto permitirá a los usuarios abrir, monitorear y eliminar órdenes pendientes asociadas con un número mágico específico directamente desde la interfaz gráfica en la ventana del gráfico.
DoEasy. Elementos de control (Parte 32): "ScrollBar" horizontal, desplazamiento con la rueda del ratón
En este artículo completaremos el desarrollo de la funcionalidad del objeto de barra de desplazamiento horizontal. Asimismo, haremos posible el desplazamiento del contenido del contenedor moviendo el control deslizante de la barra de desplazamiento y girando la rueda del ratón. También introduciremos ciertas adiciones a la biblioteca considerando la nueva política de ejecución de órdenes aparecida en el terminal y los nuevos códigos de error de ejecución en MQL5.
Desarrollo de un sistema de repetición (Parte 40): Inicio de la segunda fase (I)
Esta es la nueva fase del sistema de repetición/simulación. En esta etapa, la conversación será realmente una conversación, y el contenido se volverá bastante denso. Les insto a leer el artículo con atención y a utilizar siempre las referencias que se proporcionen. Esto les ayudará a comprender mejor lo que se les está explicando.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 10): Sólo datos reales para la repetición
Aquí veremos cómo se pueden utilizar datos más fiables (ticks negociados) en el sistema de repetición, sin tener que preocuparnos necesariamente de si están ajustados o no.
Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte IV): Apilamiento de modelos
Hoy demostraremos cómo se pueden crear aplicaciones comerciales impulsadas por IA capaces de aprender de sus propios errores. Demostraremos una técnica conocida como apilamiento, mediante la cual usamos 2 modelos para hacer 1 predicción. El primer modelo suele ser un alumno más débil, y el segundo modelo suele ser un modelo más potente que aprende los residuos de nuestro alumno más débil. Nuestro objetivo es crear un conjunto de modelos, para lograr, con suerte, una mayor precisión.
Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos
Dado que el programa puede utilizar varios símbolos, entonces, es necesario crear su propia lista para cada uno de estos símbolos. En este artículo, vamos a combinar estas listas en una colección de datos de tick. En realidad, se trata de una lista común a base de la clase de la matriz dinámica de punteros a las instancias de la clase CObject y sus herederos de la Biblioteca estándar.