Reimaginando las estrategias clásicas en MQL5 (Parte III): Previsión del FTSE 100
En esta serie de artículos, revisaremos estrategias de negociación muy conocidas para averiguar si podemos mejorarlas utilizando la IA. En el artículo de hoy, exploraremos el FTSE 100 e intentaremos predecir el índice utilizando una parte de los valores individuales que lo componen.
Desarrollo de un sistema de repetición (Parte 68): Ajuste del tiempo (I)
A continuación, continuaremos con el trabajo de lograr que el indicador del mouse nos informe sobre el tiempo restante de la barra en momentos de baja liquidez. Aunque a primera vista parece sencillo, verás que esta tarea es mucho más complicada. Esto se debe a algunos obstáculos que tendremos que superar. Por eso, es importante que sigas esta primera parte para poder comprender las siguientes.
Modificaciones más notables del algoritmo de búsqueda cooperativa artificial (Artificial Cooperative Search, ACSm)
Aquí consideraremos la evolución del algoritmo ACS: tres modificaciones destinadas a mejorar las características de convergencia y la eficiencia del algoritmo. Transformación de uno de los principales algoritmos de optimización. De las modificaciones matriciales a los planteamientos revolucionarios en materia de formación de la población.
Del básico al intermedio: Struct (I)
¿Qué te parece si empezamos a estudiar las estructuras de una forma más simple, práctica y agradable? Y es que las estructuras son uno de los fundamentos de la programación, ya sea estructurada o no. Sé que muchos piensan que las estructuras son solo colecciones de datos, pero te aseguro que son mucho más que eso. Y aquí empezaremos a explorar este nuevo universo de la manera más didáctica posible.
Creación de un Panel de administración de operaciones en MQL5 (Parte IX): Organización del código (IV): Clase sobre el Panel de gestión de operaciones
Esta discusión trata sobre el TradeManagementPanel actualizado en nuestro asesor experto New_Admin_Panel. La actualización mejora el panel mediante el uso de clases integradas para ofrecer una interfaz de gestión de operaciones fácil de usar. Incluye botones para abrir posiciones y controles para gestionar las operaciones existentes y las órdenes pendientes. Una característica clave es la gestión de riesgos integrada, que permite establecer los valores de stop loss y take profit directamente en la interfaz. Esta actualización mejora la organización del código para programas grandes y simplifica el acceso a las herramientas de gestión de pedidos, que a menudo son complejas en la terminal.
Del básico al intermedio: Comando SWITCH
En este artículo aprenderemos a utilizar el comando SWITCH en su forma más simple y básica. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos presentados.
Del básico al intermedio: Plantilla y Typename (II)
En este artículo, mostraremos cómo lidiar con una de las situaciones más molestas y complicadas en términos de programación con las que tú podrías encontrarte: el uso de tipos diferentes en una misma plantilla de función o procedimiento. Aunque nos hemos enfocado casi todo el tiempo solo en funciones, todo lo que se ha visto aquí sirve y puede aplicarse a procedimientos.
Algoritmo de campo eléctrico artificial (AEFA) — Artificial Electric Field Algorithm (AEFA)
Este artículo presenta el algoritmo de campo eléctrico artificial (AEFA) inspirado en la ley de Coulomb de la fuerza electrostática. El algoritmo modela fenómenos eléctricos para resolver problemas de optimización complejos usando partículas cargadas y las interacciones de estas. El AEFA presenta propiedades únicas en el contexto de otros algoritmos relacionados con las leyes de la naturaleza.
Del básico al intermedio: Eventos (I)
Con todo lo que se ha mostrado hasta ahora, creo que ya podemos comenzar a implementar algún tipo de aplicación para ejecutarla directamente en el gráfico de algún símbolo. Aunque, antes de poder hacer esto, necesitamos hablar de algo que resulta bastante confuso para los principiantes: el hecho de que las aplicaciones desarrolladas en MQL5 y destinadas a visualizarse en un gráfico no se crean del mismo modo que hemos visto hasta ahora. En este artículo, empezaremos a entenderlo un poco mejor.
Desarrollo de un sistema de repetición (Parte 57): Diseccionamos el servicio de prueba
Un último detalle: Aunque no se incluye en este artículo, explicaré el código del servicio que se estará utilizando en el próximo, ya que usaremos este mismo código como trampolín para lo que realmente estamos desarrollando. Así que ten un poco de paciencia y espera el próximo artículo, pues las cosas se están poniendo cada día más interesantes.
Desarrollo de un sistema de repetición (Parte 54): El nacimiento del primer módulo
En este artículo, veremos cómo construir el primero de los módulos, realmente funcional, para ser utilizado en el sistema de repetición/simulador. Además de tener como propósito general servir para otras cosas también. El módulo que se construirá aquí será el del indicador de mouse.
Desarrollo de un sistema de repetición (Parte 62): Presionando play en el servicio (III)
En este artículo comenzaremos a abordar el problema del exceso de ticks, que puede afectar a la aplicación cuando usamos datos reales. Este exceso complica muchas veces la correcta temporización necesaria para construir la barra de un minuto dentro de la ventana adecuada.
El método de manejo de datos en grupo: implementación del algoritmo combinatorio en MQL5
En este artículo continuamos nuestra exploración de la familia de algoritmos del método de manejo de datos en grupo, con la implementación del algoritmo combinatorio junto con su encarnación refinada, el algoritmo combinatorio selectivo en MQL5.
Clases de tabla y encabezado basadas en el modelo de tabla de MQL5: Aplicación del concepto MVC
Esta es la segunda parte del artículo dedicado a la implementación del modelo de tabla en MQL5 utilizando el paradigma constructivo MVC (Model-View-Controller). Este artículo trata sobre el desarrollo de clases de tabla y su encabezado a partir de un modelo de tabla previamente creado. Las clases desarrolladas serán la base para la posterior implementación de los componentes Vista (View) y Controlador (Controller), que se tratarán en los siguientes artículos.
Del básico al intermedio: Objetos (II)
En este artículo, veremos cómo controlar, de forma simple, vía código, algunas propiedades de objetos. Veremos cómo podemos colocar más de un objeto en un mismo gráfico, usando, para esto, una aplicación. Y, además, empezaremos a ver la importancia de definir un nombre corto para todo y cualquier indicador que vayamos a implementar.
El componente View para tablas en el paradigma MQL5 MVC: Contenedores
En este artículo, hablaremos sobre cómo crear un control «Contenedor» que permita desplazarse por su contenido. Dentro del proceso, se mejorarán las clases ya implementadas de controles de la biblioteca gráfica.
Desarrollo de un sistema de repetición (Parte 77): Un nuevo Chart Trade (IV)
En este artículo, explicaré algunos detalles y precauciones que debes tener en cuenta al crear un protocolo de comunicación. Son cosas bastante básicas y simples. No voy a profundizar demasiado en este artículo. Pero es necesario que comprendas su contenido para entender lo que sucederá en el receptor.
Desarrollo de un sistema de repetición (Parte 56): Adecuación de los módulos
Aunque los módulos se comunican de manera adecuada, existe un error al intentar utilizar el indicador de mouse en el servicio de repetición. Necesitamos corregir esto ahora, antes de pasar al siguiente paso. Además, se ha corregido una incidencia en el código del indicador de mouse. Esta versión finalmente se ha vuelto estable y está debidamente finalizada.
Desarrollo de un sistema de repetición (Parte 70): Ajuste del tiempo (III)
En este artículo, mostraré cómo utilizar la función CustomBookAdd de manera correcta y funcional. Aunque pueda parecer sencillo, tiene muchas implicaciones. Por ejemplo, permite indicar al indicador de mouse si el símbolo personalizado está en subasta, en negociación o si el mercado está cerrado. El contenido expuesto aquí tiene como único objetivo ser didáctico. En ningún caso debe considerarse una aplicación cuya finalidad sea distinta a la de aprender y estudiar los conceptos mostrados.
Del básico al intermedio: Paso por valor o por referencia
En este artículo entenderás en la práctica la diferencia entre el paso por valor y el paso por referencia. Aunque parece algo aparentemente sencillo y que no suele causar problemas, muchos programadores con una considerable experiencia suelen enfrentarse a verdaderos contratiempos con sus códigos, precisamente por este pequeño detalle. Saber cuándo, cómo y por qué usar un paso por valor o un paso por referencia marcará una gran diferencia en tu vida como programador. El contenido presentado aquí tiene como único objetivo la enseñanza. En ningún caso debe considerarse como una aplicación destinada a otro fin que no sea el aprendizaje y el estudio de los conceptos mostrados.
Kit de herramientas de negociación MQL5 (Parte 6): Ampliación de la libreria EX5 de gestión del historial con las funciones de última orden pendiente completada
Aprenda a crear un módulo EX5 de funciones exportables que consultan y guardan datos de forma fluida para el pedido pendiente completado más recientemente. En esta guía paso a paso, mejoraremos la librería History Management EX5 desarrollando funciones específicas y compartimentadas para recuperar las propiedades esenciales de la última orden pendiente completada. Estas propiedades incluyen el tipo de orden, el tiempo de configuración, el tiempo de ejecución, el tipo de ejecución y otros detalles críticos necesarios para la gestión y el análisis eficaces del historial de operaciones de las órdenes pendientes.
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 5): Reglas de negociación autoadaptativas
Las mejores prácticas, que definen cómo utilizar un indicador de forma segura, no siempre son fáciles de seguir. Las condiciones de mercado tranquilas pueden producir, sorprendentemente, lecturas en el indicador que no califican como señal de negociación, lo que conlleva la pérdida de oportunidades para los operadores algorítmicos. Este artículo propondrá una posible solución a este problema, al analizar cómo construir aplicaciones de negociación capaces de adaptar sus reglas de negociación a los datos de mercado disponibles.
De novato a experto: Noticias animadas utilizando MQL5 (I)
La accesibilidad a las noticias es un factor crítico a la hora de operar en el terminal MetaTrader 5. Aunque existen numerosas API de noticias, muchos operadores tienen dificultades para acceder a ellas e integrarlas de forma eficaz en su entorno de negociación. En este debate, nuestro objetivo es desarrollar una solución optimizada que lleve las noticias directamente al gráfico, donde más se necesitan. Lograremos esto mediante la creación de un asesor experto en titulares de noticias que monitorea y muestra actualizaciones de noticias en tiempo real desde fuentes API.
Algoritmo de optimización de sociedad anárquica (Anarchic Society Optimization, ASO)
En este artículo, nos familiarizaremos con el algoritmo de optimización de sociedad anárquica (Anarchic Society Optimization, ASO) y discutiremos cómo un algoritmo basado en el comportamiento irracional y aventurero de los participantes en una sociedad anárquica (un sistema anómalo de interacción social libre de poder centralizado y varios tipos de jerarquías) es capaz de explorar el espacio de soluciones y evitar las trampas del óptimo local. El artículo presenta una estructura ASO unificada aplicable tanto a problemas continuos como discretos.
Asesor experto basado en un aproximador MLP universal
El artículo presenta una forma sencilla y asequible de usar redes neuronales en un asesor comercial que no requiere conocimientos profundos en aprendizaje automático. El método excluye la normalización de la función objetivo y elimina los problemas de "explosión de pesos" y "estupor de la red", posibilitando un aprendizaje intuitivo y un control visual de los resultados.
Técnicas de remuestreo para la evaluación de predicciones y clasificaciones en MQL5
En este artículo exploraremos e implementaremos métodos para evaluar la calidad de los modelos que utilizan un único conjunto de datos como conjuntos de entrenamiento y validación.
Los componentes de Vista y Controlador para tablas en el paradigma MVC de MQL5: elementos redimensionables
En este artículo, añadiremos la funcionalidad de cambiar el tamaño de los controles arrastrando los bordes y las esquinas del elemento con el ratón.
Del básico al intermedio: Directiva Include
En este artículo, hablaremos de una directiva de compilación ampliamente utilizada en los diversos códigos que puedes encontrar en MQL5. Aunque esta directiva de compilación se explicará aquí de manera bastante básica y superficial, es importante comenzar a entender cómo usarla, ya que pronto será indispensable para avanzar hacia un nivel de programación superior. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos presentados.
Formulación de un Asesor Experto Multipar Dinámico (Parte 4): Ajuste de volatilidad y riesgo
Esta fase permite ajustar con precisión tu EA multipar para adaptar el tamaño de las operaciones y el riesgo en tiempo real utilizando indicadores de volatilidad como el ATR, lo que mejora la consistencia, la protección y el rendimiento en diversas condiciones de mercado.
Desarrollo de un sistema de repetición (Parte 58): Volvemos a trabajar en el servicio
Después de haber tomado un descanso en el desarrollo y perfeccionamiento del servicio usado en la repetición/simulación, retomaremos el trabajo en él. Ahora que no utilizaremos algunos recursos, como las variables globales del terminal, es necesario reestructurar por completo algunas partes de él. No se preocupen, este proceso se explicará adecuadamente para que todos puedan seguir el desarrollo del servicio.
Del básico al intermedio: Recursividad
En este artículo, veremos un concepto de programación muy interesante y bastante divertido, aunque debe ser tratado con extremo respeto, ya que un mal uso o un mal entendimiento del mismo convierte programas relativamente simples en algo innecesariamente complicado. Aunque, el buen uso y la perfecta adecuación en situaciones igualmente adecuadas convierten la recursividad en un gran aliado para resolver cuestiones que, de otra forma, serían mucho más trabajosas y demoradas. El contenido expuesto aquí tiene un propósito puramente didáctico. En ningún caso debe ser considerado como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
Del básico al intermedio: Puntero a función
Probablemente ya hayas oído hablar de los punteros cuando se habla de programación. Pero ¿sabías que podemos hacer uso de este tipo de dato aquí, en MQL5? Esto, claro, de una manera que no nos haga perder el control ni genere comportamientos extraños durante la ejecución del código. Sin embargo, como es un recurso de uso muy específico y orientado a ciertos tipos de actividad, es difícil ver a alguien hablar sobre qué es un puntero y cómo usarlo en MQL5.
Desarrollo de un sistema de repetición (Parte 55): Módulo de control
En este artículo, implementaremos el indicador de control de manera que pueda integrarse en el sistema de mensajes que está en desarrollo. Aunque no es algo muy complejo de hacer, es necesario entender algunos detalles sobre cómo inicializar este módulo. El contenido expuesto aquí tiene como objetivo, pura y simplemente, la didáctica. En ningún caso debe considerarse como una aplicación cuya finalidad no sea el aprendizaje y el estudio de los conceptos mostrados.
Algoritmo de optimización caótica — Chaos optimization algorithm (COA)
Hoy hablaremos de un algoritmo de optimización caótica (COA) mejorado, que combina los efectos del caos con mecanismos de búsqueda adaptativos. El algoritmo usa un conjunto de mapeos caóticos y componentes inerciales para explorar el espacio de búsqueda. El artículo revela los fundamentos teóricos de los métodos caóticos de optimización financiera.
Desarrollo de un sistema de repetición (Parte 53): Esto complica las cosas (V)
En este artículo, presentaré un tema muy importante, que pocos comprenden realmente: Eventos personalizados. Peligros. Ventajas y fallos causados por tales elementos. Este tema es clave para quienes desean convertirse en programadores profesionales en MQL5 o en cualquier otro tipo de lenguaje. Por ello, nos centraremos en MQL5 y MetaTrader 5.
Características del Wizard MQL5 que debe conocer (Parte 18): Búsqueda de arquitectura neural con vectores propios
Búsqueda de arquitectura neuronal, un enfoque automatizado para determinar la configuración ideal de la red neuronal, puede ser una ventaja cuando se enfrentan muchas opciones y grandes conjuntos de datos de prueba. Analizamos cómo, cuando se combinan vectores propios, este proceso puede resultar aún más eficiente.
Del básico al intermedio: Comando WHILE y DO WHILE
En este artículo veremos de manera práctica y bastante didáctica el primer comando de bucle. A pesar de que muchos principiantes sienten temor al enfrentarse a la necesidad de crear bucles, saber cómo hacerlo de manera adecuada y segura, es algo que solo la experiencia y la práctica pueden proporcionar. Pero, ¿quién sabe? Tal vez pueda ayudarte a reducir las dificultades y el sufrimiento, mostrándote los principales problemas y precauciones que debes tener al utilizar bucles en tus códigos. El contenido expuesto aquí tiene como objetivo exclusivamente la enseñanza didáctica. En ningún caso debe considerarse como una aplicación destinada a otro fin que no sea el aprendizaje y estudio de los conceptos presentados.
Desarrollo de un sistema de repetición (Parte 65): Presionando play en el servicio (VI)
En este artículo, mostraré cómo lo implementaremos y resolveremos el problema del indicador del mouse cuando se utiliza junto con la aplicación de repetición/simulación. El contenido expuesto aquí tiene como único propósito la enseñanza. En ningún caso debe considerarse una aplicación cuya finalidad no sea el aprendizaje y estudio de los conceptos presentados.
Desarrollo de un asesor experto para el análisis de eventos de noticias basados en el calendario en MQL5
La volatilidad tiende a alcanzar su punto máximo alrededor de eventos noticiosos de alto impacto, lo que crea oportunidades de ruptura significativas. En este artículo, describiremos el proceso de implementación de una estrategia de ruptura basada en el calendario. Cubriremos todo, desde la creación de una clase para interpretar y almacenar datos del calendario, el desarrollo de backtests realistas utilizando estos datos y, finalmente, la implementación del código de ejecución para operaciones en vivo.
Ingeniería de características con Python y MQL5 (Parte III): El ángulo del precio (2) Coordenadas polares
En este artículo, hacemos nuestro segundo intento de convertir los cambios en los niveles de precios de cualquier mercado en un cambio correspondiente en el ángulo. En esta ocasión, seleccionamos un enfoque matemáticamente más sofisticado que el que elegimos en nuestro primer intento, y los resultados obtenidos sugieren que nuestro cambio de enfoque puede haber sido la decisión correcta. Únase a nosotros hoy para debatir cómo podemos utilizar las coordenadas polares para calcular el ángulo formado por los cambios en los niveles de precios, de una manera significativa, independientemente del mercado que esté analizando.