
Integración de modelos ML con el simulador de estrategias (Conclusión): Implementación de un modelo de regresión para la predicción de precios
Este artículo describe la implementación de un modelo de regresión de árboles de decisión para predecir precios de activos financieros. Se realizaron etapas de preparación de datos, entrenamiento y evaluación del modelo, con ajustes y optimizaciones. Sin embargo, es importante destacar que el modelo es solo un estudio y no debe ser usado en operaciones reales.

DoEasy. Elementos de control (Parte 15): Objeto WinForms TabControl - múltiples filas de encabezados de pestañas, métodos de trabajo con pestañas
En este artículo, continuaremos desarrollando el objeto WinForm TabControl: hoy crearemos la clase de objeto de pestaña, haremos posible la disposición de los encabezados de las pestañas en varias filas y añadiremos los métodos para trabajar con las pestañas del objeto.

Pruebas de permutación de Monte Carlo en MetaTrader 5
En este artículo echaremos un vistazo a cómo podemos realizar pruebas de permutación sobre la base de datos de ticks barajados en cualquier asesor experto utilizando solo MetaTrader 5.

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.

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.

Ejemplo de Análisis de Redes de Causalidad (CNA), Control Óptimo de Modelos Estocásticos (SMOC) y la Teoría de Juegos de Nash con Aprendizaje Profundo (Deep Learning)
Agregaremos Deep Learning a esos tres ejemplos que se publicaron en artículos anteriores y compararemos los resultados con los anteriores. El objetivo es aprender cómo agregar DL (Deep Learning) a otro EA.

Obtenga una ventaja sobre cualquier mercado (Parte V): Datos alternativos de FRED (Federal Reserve Economic Data) sobre el EURUSD
En el debate de hoy, utilizamos datos diarios alternativos de la Reserva Federal de St. Louis sobre el índice amplio del dólar estadounidense y una colección de otros indicadores macroeconómicos para predecir el tipo de cambio futuro del EURUSD. Lamentablemente, aunque los datos parecen tener una correlación casi perfecta, no logramos obtener ninguna mejora material en la precisión de nuestro modelo, lo que posiblemente nos sugiere que los inversores podrían estar mejor si utilizan cotizaciones de mercado ordinarias.

Algoritmo de evolución del caparazón de tortuga (Turtle Shell Evolution Algorithm, TSEA)
Hoy hablaremos sobre un algoritmo de optimización único inspirado en la evolución del caparazón de las tortugas. El algoritmo TSEA emula la formación gradual de los sectores de piel queratinizada que representan soluciones óptimas a un problema. Las mejores soluciones se vuelven más "duras" y se encuentran más cerca de la superficie exterior, mientras que las menos exitosas permanecen "blandas" y se hallan en el interior. El algoritmo utiliza la clusterización de soluciones según su calidad y distancia, lo cual permite conservar las opciones menos acertadas y aporta flexibilidad y adaptabilidad.

Ejemplo de toma de beneficios optimizada automáticamente y parámetros de indicadores con SMA y EMA
Este artículo presenta un asesor experto sofisticado para el trading de divisas, que combina el aprendizaje automático con el análisis técnico. Se centra en la negociación de acciones de Apple, presentando optimización adaptativa, gestión de riesgos y múltiples estrategias. Las pruebas retrospectivas muestran resultados prometedores con una alta rentabilidad, pero también caídas significativas, lo que indica potencial para un mayor refinamiento.

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.

Operar con noticias de manera sencilla (Parte 2): Gestión de riesgos
En este artículo, se introducirá la herencia en nuestro código anterior. Se implementará un nuevo diseño de base de datos para brindar eficiencia. Además, se creará una clase de gestión de riesgos para abordar los cálculos de volumen.

Desarrollo de un sistema de repetición — Simulación de mercado (Parte 17): Ticks y más ticks (I)
Aquí vamos a empezar a ver cómo implementar algo realmente interesante y curioso. Pero al mismo tiempo, es extremadamente complicado debido a algunas cuestiones que muchos confunden. Y lo peor que puede pasar es que algunos operadores que se autodenominan profesionales no tienen idea de la importancia de estos conceptos en el mercado de capitales. Sí, a pesar de que el enfoque aquí es la programación, comprender algunas cuestiones relacionadas con las operaciones en los mercados es de suma importancia para lo que vamos a empezar a implementar aquí.

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.

DoEasy. Funciones de servicio (Parte 1): Patrones de precios
En este artículo empezaremos a desarrollar métodos de búsqueda de patrones de precios usando datos de series temporales. Un patrón tiene una serie de parámetros comunes a todas las clases y tipos de patrones. Todos los datos de este tipo se centrarán en la clase de objeto de patrón abstracto básico. Hoy crearemos una clase de patrón abstracto y una clase de patrón Pin-bar.

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.

Búferes de color en indicadores de periodo y símbolo múltiple
En este artículo revisaremos la estructura de los búferes de los indicadores de periodo y símbolo múltiple y organizaremos la muestra de los búferes de color de estos indicadores en el gráfico.

Operaciones angulares para tráders
En este artículo se analizarán las operaciones angulares. Veremos varios métodos para construir ángulos y cómo aplicarlos en el trading.

Algoritmos de optimización de la población: microsistema inmune artificial (Micro Artificial immune system, Micro-AIS)
El artículo habla de un método de optimización basado en los principios del sistema inmune del organismo -Micro Artificial immune system, (Micro-AIS)-, una modificación del AIS. El Micro-AIS usa un modelo más simple del sistema inmunitario y operaciones sencillas de procesamiento de la información inmunitaria. El artículo también analizará las ventajas e inconvenientes del Micro-AIS en comparación con el AIS convencional.

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.

Algoritmos de optimización de la población: Algoritmo Mind Evolutionary Computation (Computación Evolutiva Mental, (MEC)
En este artículo, analizaremos un algoritmo de la familia MEC llamado algoritmo MEC Simple de evolución mental (Simple MEC, SMEC). El algoritmo se caracteriza por la belleza de la idea expuesta y su sencillez de aplicación.

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.

Cómo desarrollar un agente de aprendizaje por refuerzo en MQL5 con Integración RestAPI (Parte 2): Funciones MQL5 para interacción HTTP con API REST del juego de tres en raya
Este artículo detalla cómo MQL5 puede interactuar con Python y FastAPI, utilizando llamadas HTTP en MQL5 para comunicarse con un juego de tres en raya en Python. En él se discute la creación de una API con FastAPI para esta integración e se incluye un script de prueba en MQL5, resaltando la versatilidad del MQL5, la simplicidad del Python y la eficiencia del FastAPI en la conexión de diferentes tecnologías para soluciones innovadoras.

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.


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.

Asesores Expertos Auto-Optimizables con MQL5 y Python (Parte III): Descifrando el algoritmo del Boom 1000
En esta serie de artículos, analizamos cómo podemos construir Asesores Expertos capaces de adaptarse de forma autónoma a las condiciones dinámicas del mercado. En el artículo de hoy, intentaremos sintonizar una red neuronal profunda con los mercados sintéticos de Deriv.

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.

Desarrollo de un sistema de repetición (Parte 39): Pavimentando el terreno (II)
Antes de comenzar la segunda fase del desarrollo, es necesario reforzar algunas ideas. Entonces, ¿sabes cómo forzar al MQL5 a hacer lo que es necesario? ¿Has intentado ir más allá de lo que informa la documentación? Si no, prepárate. Porque empezaré a hacer cosas mucho más allá de lo que la mayoría hace normalmente.

Gráficos del índice del dólar y del índice del euro — ejemplo de servicio en MetaTrader 5
Como ejemplo de programa de servicio, consideraremos la creación y actualización de gráficos del índice del dólar (USDX) y del índice del euro (EURX). Al lanzar el servicio, comprobaremos la disponibilidad del instrumento sintético requerido, lo crearemos en caso de que no exista y lo colocaremos en la ventana de Observación del Mercado. A continuación, se creará la historia del instrumento sintético, de minutos y ticks, y se abrirá el gráfico del instrumento creado.

Regresión neta elástica mediante descenso de coordenadas en MQL5
En este artículo, analizaremos la implementación práctica de la regresión neta elástica para minimizar el sobreajuste y al mismo tiempo separar automáticamente los predictores útiles de aquellos que tienen poco poder de pronóstico.

Cómo ver las transacciones directamente en el gráfico sin tener que perderse en el historial de transacciones
En este artículo, crearemos una herramienta sencilla para visualizar cómodamente posiciones y transacciones directamente en el gráfico con navegación mediante teclas. Esto permitirá a los operadores examinar visualmente las transacciones individuales y recibir toda la información sobre los resultados comerciales directamente en el momento.

DoEasy. Elementos de control (Parte 21): Elemento de control SplitContainer. Separador de paneles
En este artículo, crearemos una clase de objeto auxiliar de separador de paneles para el control SplitContainer.

Desarrollo de un sistema de repetición (Parte 42): Proyecto Chart Trade (I)
Vamos a crear algo más interesante. El código que mostré antes quedará completamente obsoleto. No quiero arruinar la sorpresa. Sigue el artículo para entender mejor. Desde el inicio de esta secuencia sobre cómo desarrollar un sistema de repetición/simulación, he dicho que la idea es usar la plataforma MetaTrader 5 de manera idéntica, tanto en el sistema que estamos desarrollando como en el mercado real. Es importante que esto se haga de manera adecuada. No querrás entrenar y aprender a luchar usando determinadas herramientas y en el momento de la pelea tener que usar otras.

Cómo implementar la optimización automática en los asesores expertos de MQL5
Guía paso a paso para la optimización automática en MQL5 para Asesores Expertos. Cubriremos la lógica de optimización robusta, las mejores prácticas para la selección de parámetros y cómo reconstruir estrategias con pruebas retrospectivas. Además, se discutirán métodos de nivel superior, como la optimización del avance, para mejorar su enfoque comercial.

Desarrollo de un sistema de repetición (Parte 34): Sistema de órdenes (III)
En este artículo concluiremos la primera fase de la construcción. Aunque será algo relativamente rápido, explicaré detalles que quizás no se comentaron anteriormente. Pero aquí explicaré algunas cosas que mucha gente no entiende por qué son como son. Uno de estos casos es el del ratón. ¡¡¡¿Sabes por qué tienes que pulsar la tecla Shift o Ctrl en tu teclado?!!!

Implementación de breakeven en MQL5 (Parte 1): Clase base y breakeven por puntos fijos
En este artículo se estudia el uso del breakeven aplicado a estrategias automáticas en MQL5. Se parte de una explicación sencilla sobre qué es, cómo se implementa y cuáles son sus posibles variantes. Luego, se integra la funcionalidad dentro de un bot de Order Blocks, creado en el último artículo sobre gestión de riesgo. Para evaluar su comportamiento, se ejecutaron dos backtest bajo condiciones específicas: uno sin breakeven y otro con esta función activa.

Gestión de Riesgo (Parte 5): Integrando la Gestión de Riesgo en un Asesor Experto
En este artículo implemento la gestión de riesgo desarrollada en publicaciones anteriores e incorporo el indicador de order blocks presentado en otros artículos. Además, realizaré un backtest para comparar los resultados con la aplicación de la gestión de riesgo y evaluaré el impacto del riesgo dinámico.

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.

DoEasy. Elementos de control (Parte 30): Animando el elemento de control "ScrollBar"
En este artículo, continuaremos desarrollando el control ScrollBar y comenzaremos a crear la funcionalidad de interacción con el ratón. Además, ampliaremos las listas de banderas de estado y eventos de ratón.

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.

Algoritmos de optimización de la población: Evolución de grupos sociales (Evolution of Social Groups, ESG)
En este artículo analizaremos el principio de construcción de algoritmos multipoblacionales y como ejemplo de este tipo de algoritmos consideraremos la evolución de grupos sociales (ESG), un nuevo algoritmo de autor. Así, analizaremos los conceptos básicos, los mecanismos de interacción con la población y las ventajas de este algoritmo, y revisaremos su rendimiento en problemas de optimización.