![Redes neuronales: así de sencillo (Parte 41): Modelos jerárquicos](https://c.mql5.com/2/54/NN_Simple_Part_41_Hierarchical_Models_600x314.jpg)
Redes neuronales: así de sencillo (Parte 41): Modelos jerárquicos
El presente artículo describe modelos de aprendizaje jerárquico que ofrecen un enfoque eficiente para resolver problemas complejos de aprendizaje automático. Los modelos jerárquicos constan de varios niveles; cada uno de ellos es responsable de diferentes aspectos del problema.
![Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables](https://c.mql5.com/2/64/Learning_MQL5_-_from_beginner_to_pro_mPart_II6_600x314.jpg)
Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables
Continuamos la serie para principiantes. Hoy veremos cómo crear constantes y variables, además de registrar la fecha, los colores y otros datos útiles. Asimismo, aprenderemos a crear enumeraciones como días de la semana o estilos de cadena (sólido, punteado, etc.). Las variables y las expresiones son la base de la programación: se encuentran necesariamente en el 99% de los programas, por lo que comprenderlas es fundamental. Y así, si es usted nuevo en el mundo de la programación, este es un buen comienzo. Nivel de conocimientos de programación: muy básico, dentro del ámbito de mi artículo anterior (el enlace está al principio).
![El modelo de movimiento de precios y sus principales disposiciones (Parte 2): Ecuación de evolución del campo de probabilidad del precio y aparición del paseo aleatorio observado](https://c.mql5.com/2/49/The_price_movement_model_and_its_main_provisions_Part_2_600x314.jpg)
El modelo de movimiento de precios y sus principales disposiciones (Parte 2): Ecuación de evolución del campo de probabilidad del precio y aparición del paseo aleatorio observado
En el presente artículo, hemos derivado una ecuación para la evolución del campo probabilístico de precio, hemos encontrado un criterio para acercarnos al salto de precio, y también hemos revelado la esencia de los valores de precio en los gráficos de cotización y el mecanismo para la aparición de un paseo aleatorio de dichos valores .
![DoEasy. Elementos de control (Parte 24): El objeto auxiliar WinForms "Pista"](https://c.mql5.com/2/50/doeasy_024_600x314.jpg)
DoEasy. Elementos de control (Parte 24): El objeto auxiliar WinForms "Pista"
En este artículo, elaboraremos nuevamente la lógica de especificación de los objetos principal y básico para todos los objetos de la biblioteca WinForms; asimismo, desarrollaremos el nuevo objeto básico "Pista" y varias de sus clases derivadas para indicar la posible dirección de movimiento de la línea separadora.
![Plantillas listas para conectar indicadores en asesores (Parte 3): Indicadores de tendencia](https://c.mql5.com/2/58/trend_indicators_600x314.jpg)
Plantillas listas para conectar indicadores en asesores (Parte 3): Indicadores de tendencia
En este artículo de referencia, echaremos un vistazo a los indicadores estándar de la categoría de Indicadores de tendencia. Asimismo, crearemos plantillas listas para usar estos indicadores en asesores expertos: declaración y configuración de parámetros, inicialización y desinicialización de indicadores, y también obtención de datos y señales de los búferes de indicador en asesores.
![Desarrollo de un sistema de repetición (Parte 31): Proyecto Expert Advisor — Clase C_Mouse (V)](https://c.mql5.com/2/59/sistema_de_Replay_up_600x314.jpg)
Desarrollo de un sistema de repetición (Parte 31): Proyecto Expert Advisor — Clase C_Mouse (V)
Desarrollar una manera de poner un cronómetro, de modo que durante una repetición/simulación, éste pueda decirnos cuánto tiempo falta, puede parecer a primera vista una tarea simple y de rápida solución. Muchos simplemente intentarían adaptar y usar el mismo sistema que se utiliza cuando tenemos el servidor comercial a nuestro lado. Pero aquí reside un punto que muchos quizás no consideran al pensar en tal solución. Cuando estás haciendo una repetición, y esto para no hablar del hecho de la simulación, el reloj no funciona de la misma manera. Este tipo de cosa hace complejo construir tal sistema.
![Desarrollo de un sistema de repetición — Simulación de mercado (Parte 18): Ticks y más ticks (II)](https://c.mql5.com/2/56/replay-p18_600x314.jpg)
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 18): Ticks y más ticks (II)
En este caso, es extremadamente claro que las métricas están muy lejos del tiempo ideal para la creación de barras de 1 minuto. Entonces, lo primero que realmente corregiremos es precisamente esto. Corregir la cuestión de la temporización no es algo complicado. Por más increíble que parezca, en realidad es bastante simple de hacer. Sin embargo, no realicé la corrección en el artículo anterior porque allí el objetivo era explicar cómo llevar los datos de los ticks que se estaban utilizando para generar las barras de 1 minuto en el gráfico a la ventana de observación del mercado.
![Redes neuronales: así de sencillo (Parte 58): Transformador de decisión (Decision Transformer-DT)](https://c.mql5.com/2/58/decision-transformer_600x314.jpg)
Redes neuronales: así de sencillo (Parte 58): Transformador de decisión (Decision Transformer-DT)
Continuamos nuestro análisis de los métodos de aprendizaje por refuerzo. Y en el presente artículo, presentaremos un algoritmo ligeramente distinto que considera la política del Agente en un paradigma de construcción de secuencias de acciones.
![DoEasy. Elementos de control (Parte 8): Objetos básicos WinForms por categorías, controles "GroupBox" y "CheckBox](https://c.mql5.com/2/49/doeasy_008_600x314.jpg)
DoEasy. Elementos de control (Parte 8): Objetos básicos WinForms por categorías, controles "GroupBox" y "CheckBox
En este artículo, veremos la creación de los objetos WinForms "GroupBox" y "CheckBox", y crearemos los objetos básicos para las categorías de los objetos WinForms. Todos los objetos que hemos creado hasta ahora son estáticos, es decir, no tienen ninguna funcionalidad para interactuar con el ratón.
![Teoría de categorías en MQL5 (Parte 14): Funtores con orden lineal](https://c.mql5.com/2/57/Category-Theory-p14_600x314__1.jpg)
Teoría de categorías en MQL5 (Parte 14): Funtores con orden lineal
Este artículo de la serie sobre la implementación de la teoría de categorías en MQL5 está dedicado a los funtores. Hoy veremos cómo asignar el orden lineal a un conjunto utilizando funtores al analizar dos conjuntos de datos que parecen no tener relación entre sí.
![Algoritmos de optimización de la población: Algoritmo de búsqueda de sistema cargado (Charged System Search, CSS)](https://c.mql5.com/2/59/Charged_System_Search_CSS___white_600x314.jpg)
Algoritmos de optimización de la población: Algoritmo de búsqueda de sistema cargado (Charged System Search, CSS)
En este artículo, analizaremos otro algoritmo de optimización inspirado en la naturaleza inanimada: el algoritmo de búsqueda de sistema cargado (CSS). El objetivo de este artículo es presentar un nuevo algoritmo de optimización basado en los principios de la física y la mecánica.
![Python, ONNX y MetaTrader 5: Creamos un modelo RandomForest con preprocesamiento de datos RobustScaler y PolynomialFeatures](https://c.mql5.com/2/61/Python_ONNX__MetaTrader_5____RandomForest__600x314.jpg)
Python, ONNX y MetaTrader 5: Creamos un modelo RandomForest con preprocesamiento de datos RobustScaler y PolynomialFeatures
En este artículo, crearemos un modelo de bosque aleatorio en Python, entrenaremos el modelo y lo guardaremos como un pipeline ONNX con preprocesamiento de datos. Además, usaremos el modelo en el terminal MetaTrader 5.
![Desarrollo de un sistema de repetición — Simulación de mercado (Parte 24): FOREX (V)](https://c.mql5.com/2/57/replay_p24_600x314.jpg)
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 24): FOREX (V)
Hoy eliminaremos la restricción que impedía la ejecución de simulaciones basadas en el trazado de LAST e introduciremos un nuevo punto de entrada específico para este tipo de simulación. Ahora, vean que todo el mecanismo operativo se fundamentará en los principios del mercado de divisas. La principal distinción en esta rutina reside en la separación entre las simulaciones BID y LAST. Pero, es importante notar que la metodología empleada en la aleatorización del tiempo y su ajuste para la compatibilidad con la clase C_Replay permanece idéntica en ambos tipos de simulación. Esto es bueno, pues las alteraciones en uno de los modos resultan en mejoras automáticas en el otro, especialmente en lo que concierne al manejo del tiempo entre los ticks.
![Experimentos con redes neuronales (Parte 5): Normalización de parámetros de entrada para su transmisión a una red neuronal](https://c.mql5.com/2/53/neural_network_experiments-p5_600x314.jpg)
Experimentos con redes neuronales (Parte 5): Normalización de parámetros de entrada para su transmisión a una red neuronal
Las redes neuronales lo son todo. Vamos a comprobar en la práctica si esto es así. MetaTrader 5 como herramienta autosuficiente para el uso de redes neuronales en el trading. Una explicación sencilla.
![Redes neuronales: así de sencillo (Parte 52): Exploración con optimismo y corrección de la distribución](https://c.mql5.com/2/57/optimistic-actor-critic_600x314.jpg)
Redes neuronales: así de sencillo (Parte 52): Exploración con optimismo y corrección de la distribución
A medida que el modelo se entrena con el búfer de reproducción de experiencias, la política actual del Actor se aleja cada vez más de los ejemplos almacenados, lo cual reduce la eficacia del entrenamiento del modelo en general. En este artículo, analizaremos un algoritmo para mejorar la eficiencia del uso de las muestras en los algoritmos de aprendizaje por refuerzo.
![DoEasy. Controles (Parte 23): mejorando los objetos WinForms TabControl y SplitContainer](https://c.mql5.com/2/50/Do_Easy_Part_23_600x314.jpg)
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.
![Indicadores basados en la clase CCanvas: Rellenando canales con transparencia](https://c.mql5.com/2/52/filling-channels_600x314.jpg)
Indicadores basados en la clase CCanvas: Rellenando canales con transparencia
En este artículo, analizaremos métodos utilizados para crear indicadores personalizados que se dibujan con la ayuda de la clase CCanvas de la Biblioteca estándar, y también consideraremos las propiedades de los gráficos para transformar coordenadas. Prestaremos especial atención a los indicadores que rellenan de transparencia el área entre las dos líneas.
![Teoría de categorías en MQL5 (Parte 12): Orden](https://c.mql5.com/2/56/Category-Theory-p12_600x314.jpg)
Teoría de categorías en MQL5 (Parte 12): Orden
El artículo forma parte de una serie sobre la implementación de grafos utilizando la teoría de categorías en MQL5 y está dedicado a la relación de orden (Order Theory). Hoy analizaremos dos tipos básicos de orden y exploraremos cómo los conceptos de relación de orden pueden respaldar conjuntos monoides en las decisiones comerciales.
![Teoría de categorías en MQL5 (Parte 4): Intervalos, experimentos y composiciones](https://c.mql5.com/2/52/Category-Theory-p4_600x314.jpg)
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.
![Teoría de Categorías en MQL5 (Parte 10): Grupos monoidales](https://c.mql5.com/2/55/Category_Theory_Part_10_600x314.jpg)
Teoría de Categorías en MQL5 (Parte 10): Grupos monoidales
El presente artículo continúa la serie sobre la implementación de la teoría de categorías en MQL5. Hoy analizaremos los grupos monoidales como un medio que normaliza conjuntos de monoides y los hace más comparables entre una gama más amplia de conjuntos de monoides y tipos de datos.
![Desarrollo de un sistema de repetición (Parte 38): Pavimentando el terreno (II)](https://c.mql5.com/2/61/Replay_Parte_38_Pavimentando_o_Terreno_600x314.jpg)
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.
![Desarrollo de un sistema de repetición — Simulación de mercado (Parte 17): Ticks y más ticks (I)](https://c.mql5.com/2/55/replay-p17_600x314.jpg)
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í.
![Redes neuronales: así de sencillo (Parte 61): El problema del optimismo en el aprendizaje por refuerzo offline](https://c.mql5.com/2/59/NN_easy_61_SPLT_V2__600x314.jpg)
Redes neuronales: así de sencillo (Parte 61): El problema del optimismo en el aprendizaje por refuerzo offline
Durante el aprendizaje offline, optimizamos la política del Agente usando los datos de la muestra de entrenamiento. La estrategia resultante proporciona al Agente confianza en sus acciones. No obstante, dicho optimismo no siempre está justificado y puede acarrear mayores riesgos durante el funcionamiento del modelo. Hoy veremos un método para reducir estos riesgos.
![Marcado de datos en el análisis de series temporales (Parte 3): Ejemplo de uso del marcado de datos](https://c.mql5.com/2/58/Data_label_for_time_series_mining_V4_Impr_600x314.jpg)
Marcado de datos en el análisis de series temporales (Parte 3): Ejemplo de uso del 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.
![DoEasy. Elementos de control (Parte 31): Desplazamiento por el contenido del control "ScrollBar"](https://c.mql5.com/2/51/doeasy_031_600x314.jpg)
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.
![Redes neuronales: así de sencillo (Parte 37): Atención dispersa (Sparse Attention)](https://c.mql5.com/2/53/NN_part_37_Sparse_Attention_600x314.jpg)
Redes neuronales: así de sencillo (Parte 37): Atención dispersa (Sparse Attention)
En el artículo anterior, analizamos los modelos relacionales que utilizan mecanismos de atención en su arquitectura. Una de las características de dichos modelos es su mayor uso de recursos informáticos. Este artículo propondrá uno de los posibles mecanismos para reducir el número de operaciones computacionales dentro del bloque Self-Attention o de auto-atención, lo cual aumentará el rendimiento del modelo en su conjunto.
![Desarrollando un EA comercial desde cero (Parte 14): Volume at Price (II)](https://c.mql5.com/2/49/Developing_a_trading_Expert_Advisor_from_scratch_005_600x314.jpg)
Desarrollando un EA comercial desde cero (Parte 14): Volume at Price (II)
Hoy añadiremos varios recursos a nuestro EA. Este artículo les resultará bastante interesante y puede orientarlos hacia nuevas ideas y métodos para presentar la información y, al mismo tiempo, corregir pequeños fallos en sus proyectos.
![Validación cruzada y fundamentos de la inferencia causal en modelos CatBoost, exportación a formato ONNX](https://c.mql5.com/2/60/CatBoost_export_to_ONNX_format_600x314.jpg)
Validación cruzada y fundamentos de la inferencia causal en modelos CatBoost, exportación a formato ONNX
En este artículo veremos un método de autor para crear bots utilizando el aprendizaje automático.
![Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos](https://c.mql5.com/2/41/MQL5-avatar-doeasy-library__5.png)
![Trabajando con los precios en la biblioteca DoEasy (Parte 61): Colección de series de tick de los símbolos](https://c.mql5.com/i/articles/overlay.png)
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.
![Teoría de Categorías en MQL5 (Parte 5): Ecualizadores](https://c.mql5.com/2/53/Category-Theory-p5_600x314.jpg)
Teoría de Categorías en MQL5 (Parte 5): Ecualizadores
La teoría de categorías es un apartado diverso y en expansión de las matemáticas, que solo recientemente ha comenzado a ser trabajado por la comunidad MQL5. Esta serie de artículos tiene por objetivo repasar algunos de sus conceptos para crear una biblioteca abierta y seguir usando este maravilloso apartado en la creación de estrategias comerciales.
![Desarrollo de un sistema de repetición — Simulación de mercado (Parte 05): Vistas previas](https://c.mql5.com/2/53/replay-p5_600x314.jpg)
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.
![Características del Wizard MQL5 que debe conocer (Parte 6): Transformada de Fourier](https://c.mql5.com/2/54/fourier_transform_600x314.jpg)
Características del Wizard MQL5 que debe conocer (Parte 6): Transformada de Fourier
La transformada de Fourier, introducida por Joseph Fourier, es un medio para descomponer puntos de datos de ondas complejos en componentes de ondas simples. Esta característica puede resultar útil para los tráders, así que hablaremos de ella en este artículo.
![Redes neuronales: así de sencillo (Parte 42): Procrastinación del modelo, causas y métodos de solución](https://c.mql5.com/2/54/NN_Simple_Part_42_procrastination_600x314.jpg)
Redes neuronales: así de sencillo (Parte 42): Procrastinación del modelo, causas y métodos de solución
La procrastinación del modelo en el contexto del aprendizaje por refuerzo puede deberse a varias razones, y para solucionar este problema deberemos tomar las medidas pertinentes. El artículo analiza algunas de las posibles causas de la procrastinación del modelo y los métodos para superarlas.
![Estructuras en MQL5 y métodos para imprimir sus datos](https://c.mql5.com/2/57/formatro_series_mqlformat_600x314.jpg)
Estructuras en MQL5 y métodos para imprimir sus datos
En este artículo veremos las estructuras MqlDateTime, MqlTick, MqlRates, MqlBookInfo y los métodos para imprimir datos desde estas estructuras. Para imprimir todos los campos de una estructura, existe la función estándar ArrayPrint(), que muestra en un cómodo formato tabular los datos contenidos en un array con el tipo de estructura que se está procesando.
![Redes neuronales: así de sencillo (Parte 51): Actor-crítico conductual (BAC)](https://c.mql5.com/2/57/behavior_driven_actor_critic_600x314.jpg)
Redes neuronales: así de sencillo (Parte 51): Actor-crítico conductual (BAC)
Los dos últimos artículos han considerado el algoritmo SAC (Soft Actor-Critic), que incorpora la regularización de la entropía en la función de la recompensa. Este enfoque equilibra la exploración del entorno y la explotación del modelo, pero solo es aplicable a modelos estocásticos. El presente material analizará un enfoque alternativo aplicable tanto a modelos estocásticos como deterministas.
![Trabajamos con matrices: ampliando la funcionalidad de la biblioteca estándar de matrices y vectores.](https://c.mql5.com/2/50/Matrix-Utils_600x314.jpg)
Trabajamos con matrices: ampliando la funcionalidad de la biblioteca estándar de matrices y vectores.
Las matrices sirven de base a los algoritmos de aprendizaje automático y a las computadoras en general por su capacidad para procesar con eficacia grandes operaciones matemáticas. La biblioteca estándar tiene todo lo que necesitamos, pero también podemos ampliarla añadiendo varias funciones al archivo utils.
![Teoría de categorías en MQL5 (Parte 22): Una mirada distinta a las medias móviles](https://c.mql5.com/2/58/Category-Theory-p22_600x314.jpg)
Teoría de categorías en MQL5 (Parte 22): Una mirada distinta a las medias móviles
En el presente artículo intentaremos simplificar los conceptos tratados en esta serie centrándonos en solo un indicador, el más común y probablemente el más fácil de entender: la media móvil. También veremos el significado y las posibles aplicaciones de las transformaciones naturales verticales.
![Algoritmos de optimización de la población: Búsqueda por difusión estocástica (Stochastic Diffusion Search, SDS)](https://c.mql5.com/2/58/Miners_SDS-transformed_600x314.jpg)
Algoritmos de optimización de la población: Búsqueda por difusión estocástica (Stochastic Diffusion Search, SDS)
En este artículo veremos la búsqueda por difusión estocástica, o SDS, que es un algoritmo de optimización muy potente y eficiente basado en los principios del paseo aleatorio. El algoritmo puede encontrar soluciones óptimas en espacios multidimensionales complejos, con una alta tasa de convergencia y la capacidad de evitar extremos locales.
![Desarrollo de un sistema de repetición — Simulación de mercado (Parte 12): Nacimiento del SIMULADOR (II)](https://c.mql5.com/2/54/replay-p12_600x314.jpg)
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 12): Nacimiento del SIMULADOR (II)
Desarrollar un simulador puede resultar mucho más interesante de lo que parece. Así que demos algunos pasos más en esta dirección, porque las cosas están empezando a ponerse interesantes.
![DoEasy. Elementos de control (Parte 15): Objeto WinForms TabControl - múltiples filas de encabezados de pestañas, métodos de trabajo con pestañas](https://c.mql5.com/2/49/doeasy_015_600x314.jpg)
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.