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.
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.
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.
Desarrollo de un EA comercial desde cero (Parte 30): ¿¡El CHART TRADE ahora como indicador?!
Vamos a hacer uso del Chart Trade nuevamente... pero ahora será un indicador y podrá o no estar presente en el gráfico.
Trading con spreads en el mercado Fórex utilizando el factor de estacionalidad
El en presente artículo analizaremos las posibilidades de formar y proporcionar datos sobre el uso del factor de estacionalidad al negociar con spreads en el mercado Fórex.
Indicadores múltiplos em um gráfico (Parte 04): Iniciando pelo EA
En artículos anteriores, expliqué cómo crear un indicador con múltiples subventanas, lo que se vuelve interesante cuando usamos un indicador personalizado. Aquí entenderemos cómo añadir múltiples ventanas en un EA.
DoEasy. Elementos de control (Parte 9): Reorganizando los métodos de los objetos WinForms, los controles "RadioButton" y "Button"
En este artículo, ordenaremos los nombres de las clases de objeto WinForms y crearemos los objetos WinForms Button y RadioButton.
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.
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.
Modelos de regresión no lineal en la bolsa de valores
Modelos de regresión no lineal en la bolsa de valores: ¿Es posible predecir los mercados financieros? Consideremos la creación de un modelo para pronosticar precios para EURUSD y crear dos robots basados en él: en Python y MQL5.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 02): Primeros experimentos (II)
Intentemos esta vez un enfoque diferente para lograr el objetivo de 1 minuto. Sin embargo, esta tarea no es tan sencilla como muchos piensan.
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.
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.
Algoritmo de búsqueda por vecindad — Across Neighbourhood Search (ANS)
El artículo revela el potencial del algoritmo ANS como paso importante en el desarrollo de métodos de optimización flexibles e inteligentes capaces de considerar la especificidad del problema y la dinámica del entorno en el espacio de búsqueda.
Introducción a MQL5 (Parte 12): Guía para principiantes sobre cómo crear indicadores personalizados
Aprenda a crear un indicador personalizado en MQL5. Con un enfoque basado en proyectos. Esta guía para principiantes cubre los buffers de indicadores, las propiedades y la visualización de tendencias, permitiéndole aprender paso a paso.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 6): Recolector de señales de reversión a la media
Aunque algunos conceptos pueden parecer sencillos a primera vista, ponerlos en práctica puede resultar bastante complicado. En el siguiente artículo, le guiaremos a través de nuestro innovador enfoque para automatizar un Asesor Experto (Expert Advisor, EA) que analiza hábilmente el mercado utilizando una estrategia de reversión a la media. Acompáñenos mientras desentrañamos las complejidades de este apasionante proceso de automatización.
DoEasy. Elementos de control (Parte 4): Elemento de control "Panel", parámetros Padding y Dock
En este artículo, implementaremos el funcionamiento de los parámetros de panel Padding (rellenado/márgenes internos en todos los lados del elemento) y Dock (la forma en que el objeto se ubica dentro del contenedor).
Aprendizaje automático y Data Science (Parte 31): Uso de los modelos de inteligencia artificial CatBoost
Los modelos de IA CatBoost han ganado popularidad masiva recientemente entre las comunidades de aprendizaje automático debido a su precisión predictiva, eficiencia y robustez ante conjuntos de datos dispersos y difíciles. En este artículo, vamos a discutir en detalle cómo implementar este tipo de modelos en un intento de vencer al mercado de divisas.
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?
Gestión de Riesgo (Parte 4): Finalizando los Métodos Clave de la Clase
Este artículo constituye la cuarta entrega de nuestra serie sobre gestión de riesgo en MQL5, donde continuamos explorando técnicas avanzadas para proteger y optimizar nuestras estrategias de trading. Luego de haber sentado bases importantes en artículos anteriores, ahora nos centraremos en finalizar todos aquellos métodos pendientes que dejamos en la tercera parte, incluyendo funciones para verificar si se han alcanzado ciertos límites de pérdidas o ganancias. Además, presentaremos nuevos eventos clave que permiten una gestión más precisa y ágil.
Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado
En el presente artículo, empezaremos a desarrollar la funcionalidad para trabajar con la Profundidad del mercado. Crearemos la clase del objeto de una orden abstracta de la Profundidad del mercado y sus clases herederas.
Funciones de activación neuronal durante el aprendizaje: ¿la clave de una convergencia rápida?
En este artículo presentamos un estudio de la interacción de distintas funciones de activación con algoritmos de optimización en el contexto del entrenamiento de redes neuronales. Se presta especial atención a la comparación entre el ADAM clásico y su versión poblacional al tratar con una amplia gama de funciones de activación, incluidas las funciones oscilatorias ACON y Snake. Usando una arquitectura MLP minimalista (1-1-1) y un único ejemplo de entrenamiento, la influencia de las funciones de activación en el proceso de optimización se aísla de otros factores. Asimismo, propondremos un enfoque para controlar los pesos de la red mediante los límites de las funciones de activación y un mecanismo de reflexión de pesos que evitará los problemas de saturación y estancamiento en el aprendizaje.
Aprendizaje automático y Data Science (Parte 37): Uso de patrones de velas japonesas e inteligencia artificial para superar al mercado
Los patrones de velas japonesas ayudan a los operadores a comprender la psicología del mercado e identificar tendencias en los mercados financieros, lo que permite tomar decisiones de inversión más informadas que pueden conducir a mejores resultados. En este artículo, exploraremos cómo utilizar los patrones de velas japonesas con modelos de IA para lograr un rendimiento óptimo en las operaciones comerciales.
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.
Algoritmo de optimización del comportamiento social adaptativo — Adaptive Social Behavior Optimization (ASBO): Método de Schwefel, método de Box-Muller
Este artículo presenta una fascinante inmersión en el mundo del comportamiento social de los organismos vivos y su influencia en la creación de un nuevo modelo matemático, el ASBO (Adaptive Social Behavior Optimisation). Hoy exploraremos cómo los principios de liderazgo, vecindad y cooperación observados en las sociedades de seres vivos inspiran el desarrollo de algoritmos de optimización innovadores.
Gráficos en la biblioteca DoEasy (Parte 82): Refactorización de los objetos de la biblioteca y colección de objetos gráficos
En el presente artículo, mejoraremos todos los objetos de la biblioteca: para ello, asignaremos a cada objeto su tipo único y continuaremos desarrollando la clase de colección de objetos gráficos de la biblioteca.
Automatización de estrategias de trading en MQL5 (Parte 11): Desarrollo de un sistema de negociación de cuadrícula multinivel
En este artículo, desarrollamos un sistema EA de trading de cuadrícula multinivel utilizando MQL5, centrándonos en la arquitectura y el diseño del algoritmo que hay detrás de las estrategias de trading de cuadrícula. Exploramos la implementación de una lógica de red multicapa y técnicas de gestión de riesgos para hacer frente a las condiciones variables del mercado. Por último, ofrecemos explicaciones detalladas y consejos prácticos para guiarle en la creación, prueba y perfeccionamiento del sistema de negociación automatizado.
Algoritmo basado en fractales — Fractal-Based Algorithm (FBA)
Hoy veremos un nuevo método metaheurístico basado en un enfoque fractal que permite particionar el espacio de búsqueda para resolver problemas de optimización. El algoritmo identifica y separa secuencialmente las áreas prometedoras, creando una estructura fractal autosimilar que concentra los recursos computacionales en las áreas más prometedoras. El mecanismo de mutación único orientado a las mejores soluciones garantiza un equilibrio óptimo entre la exploración y la explotación del espacio de búsqueda, aumentando significativamente la eficiencia del algoritmo.
Trabajando con los precios en la biblioteca DoEasy (Parte 60): Lista de serie de datos de tick del símbolo
En este artículo, vamos a crear una lista para almacenar los datos de tick del símbolo único, después, verificaremos su creación y obtención de los datos requeridos en el Asesor Experto. Dichas listas —siendo aplicada cada una de ellas para cada símbolo usado— van a componer luego la colección de datos de 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.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 19): Ajustes necesarios
Lo que vamos a hacer aquí es preparar el terreno para que, cuando sea necesario agregar nuevas funciones al código, esto se haga de manera fluida y sencilla. El código actual aún no puede cubrir o manejar algunas cosas que serán necesarias para un progreso significativo. Necesitamos que todo se construya de manera que el esfuerzo de implementar algunas cosas sea lo más mínimo posible. Si esto se hace adecuadamente, tendremos la posibilidad de tener un sistema realmente muy versátil. Capaz de adaptarse muy fácilmente a cualquier situación que deba ser cubierta.
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.
Visualización de transacciones en un gráfico (Parte 1): Seleccionar un periodo para el análisis
Aquí vamos a desarrollar un script desde cero que simplifica la descarga de pantallas de impresión de transacciones para analizar entradas comerciales. Toda la información necesaria sobre una única operación se puede mostrar cómodamente en un gráfico con la posibilidad de dibujar diferentes marcos temporales.
Descifrando las estrategias de trading intradía de ruptura del rango de apertura
Las estrategias de ruptura del rango de apertura (Opening Range Breakout, ORB) se basan en la idea de que el rango de negociación inicial establecido poco después de la apertura del mercado refleja niveles de precios significativos en los que compradores y vendedores acuerdan el valor. Al identificar rupturas por encima o por debajo de un determinado rango, los operadores pueden aprovechar el impulso que suele producirse cuando la dirección del mercado se vuelve más clara. En este artículo, exploraremos tres estrategias ORB adaptadas del Grupo Concretum.
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.
Análisis de sentimientos y aprendizaje profundo para operar con EA y backtesting con Python
En este artículo, presentaremos un análisis de sentimiento y los modelos ONNX con Python para ser utilizados en un asesor experto. Un script ejecuta un modelo ONNX entrenado a partir de TensorFlow para predicciones de aprendizaje profundo, mientras que otro obtiene titulares de noticias y cuantifica el sentimiento utilizando IA.
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.
Desarrollando un EA comercial desde cero (Parte 13): Times And Trade (II)
Hoy vamos a construir la segunda parte del sistema Times & Trade para analizar el mercado. En el artículo anterior Times & Trade ( I ) presenté un sistema alternativo para organizar un gráfico de manera que tengamos un indicador que nos permita interpretar las operaciones que se han ejecutado en el mercado lo más rápido posible.
Desarrollo de un sistema de repetición — Simulación de mercado (Parte 11): Nacimiento del SIMULADOR (I)
Para poder usar datos que forman barras, debemos abandonar la repetición y comenzar a desarrollar un simulador. Utilizaremos las barras de 1 minuto precisamente porque nos ofrecen un nivel de complejidad mínimo.
Reimaginando las estrategias clásicas en MQL5 (Parte 12): Estrategia de ruptura en EURUSD
Únase a nosotros hoy mismo y póngase a prueba para crear una estrategia de trading rentable en MQL5. Seleccionamos el par EURUSD e intentamos operar con rupturas de precios en el marco temporal horario. Nuestro sistema tenía dificultades para distinguir entre falsas rupturas y el inicio de tendencias reales. Hemos equipado nuestro sistema con filtros destinados a minimizar nuestras pérdidas y aumentar nuestras ganancias. Al final, logramos que nuestro sistema fuera rentable y menos propenso a falsas rupturas.