Redes neuronales: así de sencillo (Parte 45): Entrenando habilidades de exploración de estados
El entrenamiento de habilidades útiles sin una función de recompensa explícita es uno de los principales desafíos del aprendizaje por refuerzo jerárquico. Ya nos hemos familiarizado antes con dos algoritmos para resolver este problema, pero el tema de la exploración del entorno sigue abierto. En este artículo, veremos un enfoque distinto en el entrenamiento de habilidades, cuyo uso dependerá directamente del estado actual del sistema.
Múltiples indicadores en un gráfico (Parte 06): Convirtamos el MetaTrader 5 en un sistema RAD (II)
En el artículo anterior mostré cómo crear un Chart Trade utilizando los objetos de MetaTrader 5, por medio de la conversión de la plataforma en un sistema RAD. El sistema funciona muy bien, y creo que muchos han pensado en crear una librería para tener cada vez más funcionalidades en el sistema propuesto, y así lograr desarrollar un EA que sea más intuitivo a la vez que tenga una interfaz más agradable y sencilla de utilizar.
Aprendizaje automático y Data Science (Parte 12): ¿Es posible tener éxito en el mercado usando redes neuronales de autoaprendizaje?
Probablemente mucha gente esté cansada de intentar predecir el mercado bursátil constantemente. ¿No le gustaría tener una bola de cristal que le ayudara a tomar decisiones de inversión más informadas? Las redes neuronales de autoaprendizaje podrían ser su solución. En este artículo, analizaremos si estos potentes algoritmos pueden ayudarnos a "subirnos a la ola" y ser más astutos que el mercado bursátil. Mediante el análisis de grandes cantidades de datos y la identificación de patrones, las redes neuronales de autoaprendizaje pueden hacer predicciones que a menudo resultan más precisas que las realizadas por los tráders. Veamos si estas tecnologías de vanguardia pueden usarse para tomar decisiones de inversión inteligentes y ganar más.
Añadimos un LLM personalizado a un robot comercial (Parte 3): Entrenando tu propio LLM utilizando la CPU
Con el rápido desarrollo de la inteligencia artificial actual, los modelos de lenguaje (LLM) son una parte importante de la inteligencia artificial, por lo que deberíamos pensar en cómo integrar LLM potentes en nuestro trading algorítmico. Para la mayoría de las personas, es difícil ajustar estos poderosos modelos según sus necesidades, implementarlos localmente y luego aplicarlos al comercio algorítmico. Esta serie de artículos abordará paso a paso cómo lograr este objetivo.
Algoritmo de recompra: simulación del comercio multidivisa
En este artículo crearemos un modelo matemático para simular la formación de precios multidivisa y completaremos el estudio del principio de diversificación en la búsqueda de mecanismos para aumentar la eficiencia del trading que inicié en el artículo anterior con cálculos teóricos.
Criterios de tendencia en el trading
Las tendencias son una parte importante de muchas estrategias comerciales. En este artículo analizaremos algunas de las herramientas utilizadas para identificar tendencias y sus características. Comprender e interpretar correctamente las tendencias puede mejorar sustancialmente los resultados comerciales y minimizar los riesgos.
Redes neuronales: así de sencillo (Parte 24): Mejorando la herramienta para el Transfer Learning
En el último artículo, creamos una herramienta capaz de crear y editar arquitecturas de redes neuronales. Hoy querríamos proponerles continuar con el desarrollo de esta herramienta, para lograr que resulte más fácil de usar. En cierto modo, esto se aleja un poco de nuestro tema, pero estará de acuerdo con que la organización del espacio de trabajo desempeña un papel importante en el resultado final.
Variables y tipos de datos extendidos en MQL5
Las variables y los tipos de datos son temas muy importantes no solo en la programación MQL5, sino también en cualquier lenguaje de programación. Las variables y los tipos de datos de MQL5 pueden dividirse en simples y extendidos. Aquí veremos las variables y los tipos de datos extendidos. Ya analizamos los sencillos en un artículo anterior.
Desarrollamos un asesor experto multidivisas (Parte 21): Preparación para un experimento importante y optimización del código
Para continuar avanzando, sería bueno ver si podemos mejorar los resultados realizando periódicamente optimizaciones automáticas repetidas y generando un nuevo asesor experto. El escollo en muchos argumentos sobre el uso de la optimización de parámetros es la cuestión de cuánto tiempo pueden usarse los parámetros obtenidos para operar en el periodo futuro manteniendo los principales indicadores de rentabilidad y reducción en los niveles dados. ¿Es posible en general lograrlo?
Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD
El presente artículo representa el primer intento de desarrollar un cliente MQTT nativo para MQL5. El MQTT es un protocolo de comunicación "publicación-suscripción". Es ligero, abierto, simple y está diseñado para implementarse con facilidad, lo cual permite su uso en muchas situaciones.
Marcado de datos en el análisis de series temporales (Parte 5): Aplicación y comprobación de asesores usando Socket
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 y prueba de sistemas comerciales basados en el canal de Keltner
En este artículo examinaremos los sistemas comerciales que utilizan un concepto muy importante de los mercados financieros: la volatilidad. Asimismo, estudiaremos un sistema comercial basado en el Canal de Keltner, incluyendo su implementación en código y sus pruebas con varios activos.
Trabajando con los precios en la biblioteca DoEasy (Parte 59): Objeto para almacenar los datos de un tick
A partir de este artículo, procedemos a la creación de la funcionalidad de la biblioteca para trabajar con los datos de precios. Hoy, crearemos una clase del objeto que va a almacenar todos los datos de los precios que llegan con un tick.
Trabajando con los precios en la biblioteca DoEasy (Parte 64): Profundidad del mercado, clases del objeto de instantánea y del objeto de serie de instantáneas del DOM
En este artículo, vamos a crear dos clases: la clase del objeto de instantánea del DOM y la clase del objeto de serie de instantáneas del DOM, además, simularemos la creación de la serie de datos del DOM.
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.
Redes neuronales: así de sencillo (Parte 54): Usamos un codificador aleatorio para una exploración eficiente (RE3)
Siempre que analizamos métodos de aprendizaje por refuerzo, nos enfrentamos al problema de explorar eficientemente el entorno. Con frecuencia, la resolución de este problema hace que el algoritmo se complique, llevándonos al entrenamiento de modelos adicionales. En este artículo veremos un enfoque alternativo para resolver el presente problema.
Redes neuronales: así de sencillo (Parte 87): Segmentación de series temporales
La previsión juega un papel esencial en el análisis de series temporales. En este nuevo artículo, hablaremos de las ventajas de la segmentación de series temporales.
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.
Añadimos un LLM personalizado a un robot comercial (Parte 5): Desarrollar y probar la estrategia de negociación con LLMs (I) Ajuste fino
Con el rápido desarrollo de la inteligencia artificial en la actualidad, los modelos lingüísticos (LLM) son una parte importante de la inteligencia artificial, por lo que deberíamos pensar en cómo integrar potentes LLM en nuestras operaciones algorítmicas. Para la mayoría de la gente, es difícil ajustar estos potentes modelos a sus necesidades, desplegarlos localmente y luego aplicarlos a la negociación algorítmica. Esta serie de artículos abordará paso a paso la consecución de este objetivo.
Escribimos el primer modelo de caja de cristal (Glass Box) en Python y MQL5
Los modelos de aprendizaje automático son difíciles de interpretar, y entender por qué los modelos no se ajustan a nuestras expectativas puede ayudarnos mucho a conseguir, en última instancia, el resultado deseado al utilizar técnicas tan avanzadas. Sin un conocimiento exhaustivo del funcionamiento interno del modelo, podría resultar difícil encontrar fallos que degraden el rendimiento. De este modo, podremos dedicar tiempo a crear funciones que no afecten a la calidad de la previsión. La conclusión es que, por muy bueno que sea un modelo, nos perderemos todas sus grandes ventajas por culpa de nuestros propios errores. Afortunadamente, existe una solución sofisticada y bien diseñada que permite ver con claridad lo que sucede bajo el capó del modelo.
Redes neuronales: así de sencillo (Parte 50): Soft Actor-Critic (optimización de modelos)
En el artículo anterior, implementamos el algoritmo Soft Actor-Critic (SAC), pero no pudimos entrenar un modelo rentable. En esta ocasión, optimizaremos el modelo creado previamente para obtener los resultados deseados en su rendimiento.
Redes neuronales en el trading: Modelos del espacio de estados
Una gran cantidad de los modelos que hemos revisado hasta ahora se basan en la arquitectura del Transformer. No obstante, pueden resultar ineficientes al trabajar con secuencias largas. En este artículo le propongo familiarizarse con una rama alternativa de pronóstico de series temporales basada en modelos del espacio de estados.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 56): Objeto del indicador personalizado, obtención de datos de parte de los objetos de indicador en la colección
En el presente artículo, vamos a considerar la creación de un objeto del indicador personalizado para usarlo en los asesores expertos. Mejoraremos un poco las clases de la biblioteca y escribiremos los métodos para obtener los datos de parte de los objetos de indicador en los expertos.
Características del Wizard MQL5 que debe conocer (Parte 42): Oscilador ADX
El ADX es otro indicador técnico relativamente popular utilizado por algunos traders para medir la fuerza de una tendencia predominante. Actuando como una combinación de otros dos indicadores, se presenta como un oscilador cuyos patrones exploramos en este artículo con la ayuda del asistente de ensamblaje MQL5 y sus clases de soporte.
Experimentos con redes neuronales (Parte 4): Patrones
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.
Aprendizaje automático y Data Science (Parte 27): Redes neuronales convolucionales (CNN) en los robots comerciales de MetaTrader 5: ¿Merecen la pena?
Las redes neuronales convolucionales (CNN) son famosas por su destreza en la detección de patrones en imágenes y vídeos, con aplicaciones que abarcan diversos campos. En este artículo, exploramos el potencial de las CNN para identificar patrones valiosos en los mercados financieros y generar señales comerciales eficaces para los robots comerciales de MetaTrader 5. Descubramos cómo puede aprovecharse esta técnica de aprendizaje automático profundo para tomar decisiones de negociación más inteligentes.
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.
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.
Patrones de diseño en MQL5 (Parte 3): Patrones conductuales 1
En el nuevo artículo de la serie sobre patrones de diseño, nos ocuparemos de los patrones conductuales para comprender cómo crear de forma eficaz métodos de interacción entre los objetos creados. Diseñando estos patrones conductuales, podremos entender cómo construir software reutilizable, extensible y comprobable.
Redes neuronales: así de sencillo (Parte 25): Practicando el Transfer Learning
En los últimos dos artículos, hemos creado una herramienta que nos permite crear y editar modelos de redes neuronales. Ahora es el momento de evaluar el uso potencial de la tecnología de Transfer Learning en ejemplos prácticos.
Creación de una interfaz gráfica de usuario interactiva en MQL5 (Parte 2): Añadir controles y capacidad de respuesta
Mejorar el panel GUI de MQL5 con funciones dinámicas puede mejorar significativamente la experiencia comercial de los usuarios. Al incorporar elementos interactivos, efectos de desplazamiento y actualizaciones de datos en tiempo real, el panel se convierte en una herramienta poderosa para los traders modernos.
Redes neuronales: así de sencillo (Parte 36): Modelos relacionales de aprendizaje por refuerzo (Relational Reinforcement Learning)
En los modelos de aprendizaje por refuerzo analizados anteriormente, usamos varias opciones de redes convolucionales que pueden identificar varios objetos en los datos originales. La principal ventaja de las redes convolucionales es su capacidad de identificar objetos independientemente de la ubicación de estos. Al mismo tiempo, las redes convolucionales no siempre son capaces de hacer frente a diversas deformaciones de los objetos y al ruido. Pero estos problemas pueden resolverse usando el modelo relacional.
Creación de un modelo de restricción de tendencia de velas (Parte 2): Fusionar indicadores nativos
Este artículo se centra en el aprovechamiento de los indicadores MetaTrader 5 incorporados para filtrar las señales fuera de tendencia. Avanzando desde el artículo anterior exploraremos cómo hacerlo utilizando código MQL5 para comunicar nuestra idea al programa final.
Introducción a MQL5 (Parte 9): Comprensión y uso de objetos en MQL5
Aprenda a crear y personalizar objetos gráficos en MQL5 utilizando datos actuales e históricos. Esta guía basada en proyectos le ayuda a visualizar operaciones y aplicar conceptos MQL5 de manera práctica, lo que facilita la creación de herramientas adaptadas a sus necesidades comerciales.
Redes neuronales: así de sencillo (Parte 89): Transformador de descomposición de la frecuencia de señal (FEDformer)
Todos los modelos de los que hemos hablado anteriormente analizan el estado del entorno como una secuencia temporal. Sin embargo, las propias series temporales también pueden representarse como características de frecuencia. En este artículo, presentaremos un algoritmo que utiliza las características de frecuencia de una secuencia temporal para predecir los estados futuros.
Creación de un asesor experto integrado de MQL5 y Telegram (Parte 5): Envío de comandos desde Telegram a MQL5 y recepción de respuestas en tiempo real
En este artículo, creamos varias clases para facilitar la comunicación en tiempo real entre MQL5 y Telegram. Nos centramos en recuperar comandos de Telegram, decodificarlos e interpretarlos y enviar respuestas apropiadas. Al final, nos aseguramos de que estas interacciones se prueben eficazmente y estén operativas dentro del entorno comercial.
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.
Desarrollamos un asesor experto multidivisa (Parte 12): Gestor de riesgos como en las empresas de prop-trading
Ya disponemos de un cierto mecanismo de control de la reducción en el asesor experto que estamos desarrollando. Pero este es de naturaleza probabilística, ya que se basa en resultados de pruebas sobre los datos históricos de los precios. Por lo tanto, las reducciones, aunque con una probabilidad pequeña, pueden superar a veces los valores máximos previstos. Vamos a intentar añadir un mecanismo que garantice el nivel de reducción especificado.
Introducción a MQL5 (Parte 10): Guía de trabajo con indicadores incorporados en MQL5 para principiantes
Este artículo describe cómo trabajar con indicadores incorporados en MQL5, con especial atención en la creación de un asesor experto basado en el indicador RSI utilizando un enfoque de proyecto. Hoy aprenderá a obtener y utilizar los valores RSI, a gestionar las fluctuaciones de liquidez y a mejorar la visualización de las transacciones mediante objetos gráficos. Además, el artículo abordará otros aspectos importantes: el riesgo como porcentaje del depósito, los ratios riesgo/rentabilidad y la modificación del riesgo sobre la marcha para proteger los beneficios.
Redes neuronales: así de sencillo (Parte 43): Dominando las habilidades sin función de recompensa
El problema del aprendizaje por refuerzo reside en la necesidad de definir una función de recompensa, que puede ser compleja o difícil de formalizar. Para resolver esto, se están estudiando enfoques basados en la variedad de acciones y la exploración del entorno que permiten aprender habilidades sin una función de recompensa explícita.