Gráficos en la biblioteca DoEasy (Parte 94): Objetos gráficos compuestos, desplazamiento y eliminación
En este artículo, comenzaremos a desarrollar varios eventos de los objetos gráficos compuestos. Vamos a analizar parcialmente el desplazamiento y la eliminación de los objetos gráficos compuestos. En general, hoy vamos a mejorar lo que ya creamos en el último artículo.
Tablero de cotizaciones: Versión básica
Aquí te mostraré cómo crear esas pantallas en forma de banda, normalmente usadas para mostrar cotizaciones como en la bolsa, pero pura y simplemente usando MQL5, sin recurrir a programación externa complicada e innecesariamente sofisticada.
Cómo construir un EA que opere automáticamente (Parte 13): Automatización (V)
¿Sabes lo que es un diagrama de flujo? ¿Sabes cómo utilizarlo? ¿Cree que los diagramas de flujo son sólo cosas de aprendiz de programador? Pues echa un vistazo a este artículo y aprende a trabajar con diagramas de flujo.
Redes neuronales: así de sencillo (Parte 35): Módulo de curiosidad intrínseca (Intrinsic Curiosity Module)
Seguimos analizando los algoritmos de aprendizaje por refuerzo. Todos los algoritmos que hemos estudiado hasta ahora requerían la creación de una política de recompensas tal que el agente pudiera evaluar cada una de sus acciones en cada transición de un estado del sistema a otro, pero este enfoque resulta bastante artificial. En la práctica, existe cierto tiempo de retraso entre la acción y la recompensa. En este artículo, le sugerimos que se familiarice con un algoritmo de entrenamiento de modelos que puede funcionar con varios retrasos de tiempo desde la acción hasta la recompensa.
Algoritmos de optimización de la población: Algoritmo de salto de rana aleatorio (Shuffled Frog-Leaping, SFL)
El artículo presenta una descripción detallada del algoritmo de salto de rana aleatorio (SFL) y sus capacidades para resolver problemas de optimización. El algoritmo SFL se inspira en el comportamiento de las ranas en su entorno natural y ofrece un enfoque innovador para la optimización de características. El algoritmo SFL supone una herramienta eficaz y flexible que puede gestionar una gran variedad de tipos de datos y alcanzar soluciones óptimas.
Análisis cuantitativo en MQL5: implementamos un algoritmo prometedor
Hoy veremos qué es el análisis cuantitativo, cómo lo utilizan los grandes jugadores y crearemos uno de los algoritmos de análisis cuantitativo en MQL5.
Mejore sus gráficos comerciales con una GUI interactiva basada en MQL5 (Parte I): Interfaz móvil (I)
Libere el poder de la presentación dinámica de datos en sus estrategias o utilidades comerciales con nuestra guía detallada para desarrollar una GUI móvil en MQL5. Sumérjase en los eventos del gráfico y aprenda a diseñar e implementar una GUI simple y con capacidad de movimiento múltiple en un solo gráfico. El artículo también analizará la adición de elementos a una interfaz gráfica, aumentando su funcionalidad y atractivo estético.
Aprendizaje automático y Data Science (Parte 13): Analizamos el mercado financiero usando el análisis de componentes principales (ACP)
Hoy intentaremos mejorar cualitativamente el análisis de los mercados financieros utilizando el Análisis de Componentes Principales (ACP). Asimismo, aprenderemos cómo este método puede ayudarnos a identificar patrones ocultos en los datos, detectar tendencias ocultas del mercado y optimizar las estrategias de inversión. En este artículo veremos cómo el método de ACP aporta una nueva perspectiva al análisis de datos financieros complejos, ayudándonos a ver ideas que hemos pasado por alto con los enfoques tradicionales. ¿La aplicación del método ACP en estos mercados financieros ofrece una ventaja competitiva y ayuda a ir un paso por delante?
Operaciones con grupos de archivos
Algunas veces es necesario realizar las mismas operaciones con un grupo de archivos. Si tenemos una lista de archivos en un grupo, esto no es un problema. Sin embargo, si necesitamos hacer esta lista nosotros mismos, surge la pregunta: "¿Cómo podemos hacerlo?" El artículo propone hacerlo mediante las funciones FindFirstFile() y FindNextFile() incluidas en kernel32.dll.
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.
Indicadores alternativos de riesgo y rentabilidad en MQL5
En este artículo, presentaremos una aplicación de varias medidas de rentabilidad y riesgo consideradas alternativas al ratio de Sharpe e investigaremos diferentes curvas de capital hipotéticas para analizar sus características.
Cómo construir y optimizar un sistema de trading basado en la volatilidad (Chaikin Volatility - CHV)
En este artículo, proporcionaremos otro indicador basado en la volatilidad llamado Chaikin Volatility. Entenderemos cómo construir un indicador personalizado después de identificar cómo se puede utilizar y construir. Compartiremos algunas estrategias sencillas que se pueden utilizar y luego las pondremos a prueba para entender cuál puede ser mejor.
Trading bursátil con cuadrícula usando un asesor con órdenes stop pendientes en la Bolsa de Moscú (MOEX)
Hoy utilizaremos un enfoque comercial de cuadrícula con órdenes stop pendientes en un asesor experto en el lenguaje de estrategias comerciales MQL5 para MetaTrader 5 en la Bolsa de Moscú (MOEX). Al comerciar en el mercado, una de las estrategias más simples consiste en colocar una cuadrícula de órdenes diseñada para "atrapar" el precio del mercado.
Desarrollo de un robot en Python y MQL5 (Parte 2): Selección, creación y entrenamiento de modelos, simulador personalizado en Python
Hoy vamos a continuar con la serie de artículos sobre la creación de un robot comercial en Python y MQL5. En el presente artículo, resolveremos el problema de la selección y el entrenamiento de modelos, la prueba de los mismos, la aplicación de la validación cruzada, la búsqueda en cuadrícula y el problema del ensamblaje de modelos.
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 2): Estrategia de scalping en el USDJPY
Únase a nosotros hoy mientras nos desafiamos a nosotros mismos a crear una estrategia comercial en torno al par USDJPY. Operaremos con patrones de velas japonesas que se forman en el marco temporal diario, ya que potencialmente tienen más fuerza detrás. Nuestra estrategia inicial resultó rentable, lo que nos animó a seguir perfeccionándola y añadiendo capas adicionales de seguridad para proteger el capital obtenido.
Desarrollo y prueba de los sistemas comerciales Aroon
En este artículo, aprenderemos a construir un sistema comercial Aroon, aprendiendo asimilando los fundamentos de los indicadores y los pasos necesarios para crear un sistema comercial basado en el indicador Aroon. Una vez creado este sistema comercial, comprobaremos si puede ser rentable o necesita una mayor optimización.
Creación de un asesor experto MQL5 basado en la estrategia de ruptura del rango diario (Daily Range Breakout)
En este artículo, creamos un Asesor Experto MQL5 basado en la estrategia de ruptura del rango diario (Daily Range Breakout). Cubrimos los conceptos clave de la estrategia, diseñamos el plano del EA e implementamos la lógica de ruptura en MQL5. Al final, exploramos técnicas para realizar pruebas retrospectivas y optimizar el EA con el fin de maximizar su eficacia.
El filtro de Kalman para estrategias de reversión a la media en Forex
El filtro de Kalman es un algoritmo recursivo utilizado en el trading algorítmico para estimar el estado real de una serie temporal financiera filtrando el ruido de los movimientos de precios. Actualiza dinámicamente las predicciones basándose en nuevos datos del mercado, lo que lo hace valioso para estrategias adaptativas como la reversión a la media. Este artículo presenta primero el filtro de Kalman, cubriendo su cálculo e implementación. A continuación, aplicamos el filtro a una estrategia clásica de reversión a la media en el mercado de divisas como ejemplo. Por último, realizamos diversos análisis estadísticos comparando el filtro con una media móvil en diferentes pares de divisas.
Desarrollo de un sistema de repetición (Parte 32): Sistema de órdenes (I)
De todas las cosas desarrolladas hasta ahora, esta, como seguramente también notarás y con el tiempo estarás de acuerdo, es la más desafiante de todas. Lo que tenemos que hacer es algo simple: hacer que nuestro sistema simule lo que hace un servidor comercial en la práctica. Esto de tener que implementar una forma de simular exactamente lo que haría el servidor comercial parece simple. Al menos en palabras. Pero necesitamos hacer esto de manera que, para el usuario del sistema de repetición/simulación, todo suceda de la manera más invisible o transparente posible.
Aprendiendo de las compañías de Prop-Trading (Parte 1) - Introducción
En este artículo introductorio, compartiremos algunas de las lecciones que se pueden aprender de las pruebas realizadas en las empresas de prop-trading. Esto resulta especialmente actual para los principiantes y aquellos que luchan por encontrar su lugar en el mundo del trading. El siguiente artículo se centrará en la implementación del código.
Cómo conectar MetaTrader 5 a PostgreSQL
Este artículo describiremos cuatro métodos para conectar el código MQL5 a una base de datos de Postgres y ofreceremos una guía paso a paso para configurar un entorno de desarrollo para uno de ellos, la API REST, utilizando el Subsistema de Windows para Linux (WSL). Asimismo, mostraremos una aplicación demostrativa de la API con el código MQL5 correspondiente para insertar datos y consultas a las tablas correspondientes, así como un asesor demo para usar estos datos.
Algoritmos de optimización de la población
Artículo de introducción a los algoritmos de optimización (AO). Clasificación. En el artículo, intentaremos crear un banco de pruebas (un conjunto de funciones) que servirá en el futuro para comparar los AO entre sí, e incluso, quizás, para identificar el algoritmo más universal de todos los ampliamente conocidos.
Aplicación de la teoría de juegos de Nash con filtrado HMM en el trading
Este artículo profundiza en la aplicación de la teoría de juegos de John Nash, específicamente el Equilibrio de Nash, en el trading. Se analiza cómo los traders pueden utilizar scripts de Python y MetaTrader 5 para identificar y explotar las ineficiencias del mercado utilizando los principios de Nash. El artículo proporciona una guía paso a paso sobre la implementación de estas estrategias, incluido el uso de modelos ocultos de Markov (HMM) y análisis estadístico, para mejorar el rendimiento comercial.
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.
Redes neuronales: así de sencillo (Parte 15): Clusterización de datos usando MQL5
Continuamos analizando el método de clusterización. En este artículo, crearemos una nueva clase CKmeans para implementar uno de los métodos de clusterización de k-medias más extendidos. Según los resultados de la prueba, el modelo ha podido identificar alrededor de 500 patrones.
Redes neuronales: así de sencillo (Parte 85): Predicción multidimensional de series temporales
En este artículo presentaremos un nuevo método complejo de previsión de series temporales que combina armoniosamente las ventajas de los modelos lineales y los transformadores.
Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad
Seguimos analizando modelos de inteligencia artificial, y en particular, los algoritmos de aprendizaje no supervisado. Ya nos hemos encontrado con uno de los algoritmos de clusterización. Y en este artículo queremos compartir con ustedes una posible solución a los problemas de la reducción de la dimensionalidad.
Añadimos un LLM personalizado a un robot comercial (Parte 2): Ejemplo de despliegue del entorno
Los modelos lingüísticos (LLM) son una parte importante de la inteligencia artificial que evoluciona rápidamente, por lo que debemos plantearnos cómo integrar unos LLM potentes en nuestro comercio algorítmico. A la mayoría de la gente le resulta difícil adaptar estos modelos a sus necesidades, implantarlos de forma local y luego aplicarlos al trading algorítmico. En esta serie de artículos abordaremos un enfoque paso a paso para lograr este objetivo.
Preparación de indicadores de símbolo/periodo múltiple
En este artículo analizaremos los principios de la creación de los indicadores de símbolo/periodo múltiple y la obtención de datos de ellos en asesores e indicadores. Asimismo, veremos los principales matices de uso de los indicadores múltiples en asesores e indicadores, y su representación a través de los búferes del indicador personalizado.
Aprendiendo MQL5 de principiante a profesional (Parte III): Tipos de datos complejos y archivos de inclusión
Este artículo es el tercero de una serie de materiales sobre los principales aspectos de la programación en MQL5. Aquí nos encargaremos de tipos de datos complejos que no describimos en el artículo anterior, como estructuras, uniones, clases y el tipo de datos "función". También veremos cómo añadir modularidad a nuestro programa utilizando la directiva #include del preprocesador.
Procesos no estacionarios y regresión espuria
El presente artículo pretende demostrar la aparición de regresiones espurias cuando se intenta aplicar el análisis de regresión a procesos no estacionarios utilizando la simulación de Montecarlo.
Kit de herramientas de negociación MQL5 (Parte 2): Ampliación e implantación de la biblioteca EX5 de gestión de posiciones
Aprenda a importar y utilizar bibliotecas EX5 en su código o proyectos MQL5. En este artículo de continuación, ampliaremos la biblioteca EX5 agregando más funciones de gestión de posiciones a la biblioteca existente y creando dos Asesores Expertos. El primer ejemplo utilizará el indicador técnico de promedio dinámico de índice variable para desarrollar un asesor experto en estrategia comercial de trailing stop, mientras que el segundo ejemplo utilizará un panel comercial para monitorear, abrir, cerrar y modificar posiciones. Estos dos ejemplos demostrarán cómo utilizar e implementar la biblioteca de gestión de posiciones EX5 actualizada.
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 10): Flujo externo (II) VWAP
¡Domina el poder del VWAP con nuestra guía completa! Aprenda a integrar el análisis VWAP en su estrategia de trading utilizando MQL5 y Python. Maximice su conocimiento del mercado y mejore sus decisiones comerciales hoy mismo.
Construya Asesores Expertos Auto-Optimizables con MQL5 y Python
En este artículo, vamos a discutir cómo podemos construir Asesores Expertos capaces de seleccionar de forma autónoma y cambiar las estrategias de negociación en función de las condiciones imperantes en el mercado. Aprenderemos sobre las cadenas de Markov y cómo pueden sernos útiles como operadores algorítmicos.
Desarrollo de un robot de trading en Python (Parte 3): Implementamos un algoritmo comercial basado en el modelo
Hoy vamos a continuar con la serie de artículos sobre la creación de un robot comercial en Python y MQL5. En esta ocasión, resolveremos el problema relacionado con la creación de un algoritmo comercial en Python.
Desarrollando una DLL experimental con soporte multihilo en C++ para MetaTrader 5 en Linux
En este artículo, describiremos el proceso de desarrollo de la plataforma MetaTrader 5 exclusivamente en Linux. El producto final funcionará a la perfección tanto en Windows como en Linux. Asimismo, aprenderemos sobre Wine y Mingw, herramientas importantes para el desarrollo multiplataforma. Mingw ofrece transmisión de flujo (POSIX y Win32), lo que debe tenerse en cuenta a la hora de elegir la herramienta adecuada. A continuación crearemos una DLL para probar el concepto; luego la usaremos en el código MQL5 y compararemos el rendimiento de ambas implementaciones de los hilos. Este artículo pretende ser un punto de partida para experimentos propios. Después de leer este artículo, el lector será capaz de crear herramientas para MetaTrader en Linux.
Mejore sus gráficos comerciales con una GUI interactiva basada en MQL5 (Parte III): Interfaz comercial simple y móvil
En esta serie de artículos analizamos la integración de interfaces gráficas interactivas en paneles comerciales móviles en MQL5. En la tercera parte, utilizaremos los desarrollos de las partes anteriores para convertir paneles comerciales estáticos en dinámicos.
Ejemplo de nuevo Indicador y LSTM condicional
Este artículo explora el desarrollo de un Asesor Experto (Expert Advisor, EA) para trading automatizado que combina el análisis técnico con predicciones de aprendizaje profundo.
Red neuronal en la práctica: Recta secante
Como se explicó en la parte teórica, necesitamos usar regresiones lineales y derivadas cuando trabajamos con redes neuronales. ¿Pero por qué? La razón es que la regresión lineal es una de las fórmulas más simples que existen. Básicamente, una regresión lineal es solo una función afín. Sin embargo, cuando hablamos de redes neuronales, no nos interesan los efectos de la recta de regresión lineal. Lo que nos interesa es la ecuación que genera dicha recta. La recta generada poco importa. ¿Pero sabes cuál es la ecuación principal que hay que comprender? Si no, lee este artículo para empezar a comprenderlo.
Trabajando con las series temporales en la biblioteca DoEasy (Parte 48): Indicadores de periodo y símbolo múltiples en un búfer en una subventana
En el presente artículo, analizaremos la creación de indicadores estándar de periodo y símbolo múltiples que utilizan un búfer de indicador para sus construcciones, y que funcionan en una subventana del gráfico. Asimismo, prepararemos las clases de la biblioteca para trabajar con los indicadores estándar que funcionan en la ventana principal del programa, o que tienen más de un búfer para mostrar sus datos.