Este artículo continúa la presentación a los lectores del motor comercial CStrategy. A petición de multitud de usuarios, se han añadido funciones de trabajo con órdenes pendientes al motor comercial. Asimismo, las últimas versiones de MetaTrader 5 han comenzado a dar soporte a cuentas con cobertura. Ahora CStrategy también da soporte a las mismas. En el artículo se da una descripción detallada de un algoritmo para trabajar con órdenes pendientes, así como de los principios de funcionamiento de CStrategy con las cuentas con cobertura.
En la parte definitiva de esta serie de artículos sobre el motor comercial CStrategy, estudiaremos el funcionamiento simultáneo de múltiples algoritmos comerciales, la descarga de estrategias desde archivos XML, así como la presentación de un sencillo panel para la selección de expertos, que se encuentra dentro de un módulo ejecutable único, y veremos la gestión de los modos comerciales de los mismos.
Este artículo continúa con la serie de comentarios dedicados al modelo universal de expertos. En esta parte se describe un modelo original de eventos basado en el procesamiento centralizado de datos, y también se estudia la estructura de la clase básica del motor CStrategy.
Cada escritor de expertos, independientemente de su nivel de preparación, se encuentra todos los días con las mismas tareas comerciales y problemas algorítmicos, que debe resolver de una forma u otra para organizar un proceso comercial fiable. Este artículo describe las capacidades del motor comercial CStrategy, capaz de ocuparse de la resolución de estas tareas y de proporcionar al usuario mecanismos cómodos para describir sus ideas sobre trading.
Este artículo explica un método alternativo de creación de GUIs basado en layouts y contenedores por medio de un gestor de layouts: la clase CGrid. La clase CGrid es un control auxiliar que actúa como contenedor de contenedores y controles, utilizando un diseño de rejilla o cuadrícula (grid layout).
Ocultar los detalles de la implementación de las clases/funciones en un archivo .ex5 le permitirá compartir sus algoritmos propios con otros desarrolladores, iniciar proyectos y promocionarlos en la Web. Y mientras el equipo de MetaQuotes no escatima esfuerzos para tener la posibilidad de heredar directamente las clases de las librerías ex5, vamos a implementarlas ahora.
Además de la creación de las redes neuronales, el paquete del software de NeuroSolutions permite su exportación como archivos DLL. En este artículo se describe el proceso de creación de una red neuronal, la generación de un archivo DLL y su conexión a un Expert Advisor para el trading en MetaTrader 5.
MetaEditor 5 dispone de la opción de depuración. Sin embargo, cuando escribe sus programas en MQL5, por lo general quiere mostrar no solo los valores individuales, sino todos los mensajes que van apareciendo durante la prueba y el trabajo en línea. Si el archivo de registro tiene un tamaño muy grande, es evidente que hay que automatizar la recuperación rápida y sencilla del mensaje necesario. En este artículo vamos examinar las formas de búsqueda de errores en programas MQL5 y los métodos de registro. Además, vamos a simplificar el registro en archivos y le haré descubrir un programa sencillo, LogMon, para una visualización cómoda de los registros.
Este artículo describe el método de intercambio de información entre el Asesor Experto y usuarios de ICQ, y presenta varios ejemplos. El material facilitado resultará interesante para aquellos que deseen recibir información de trading remotamente de un terminal de cliente, a través de un ICQ client en su teléfono móvil o PDA.
¿Quiere organizar la exportación de cotización desde MetaTrader 5 a su propia aplicación? ¡La compatibilidad entre MQL5 y DLL permite crear este tipo de soluciones! Este artículo le mostrará una de las formas de exportar cotizaciones desde MetaTrader 5 a aplicaciones escritas en .NET. Para mí, la exportación de cotizaciones usando esta plataforma fue más interesante, racional y fácil de implementar. Por desgracia, la versión 5 todavía no soporta .NET, por lo que, como en los viejos tiempos, usaremos win32 dell con .NET como capa intermedia.
Hoy nos familiarizaremos con el Algoritmo Dialéctico (DA), un nuevo método de optimización global inspirado en el concepto filosófico de la dialéctica. El algoritmo explota la singular división de la población en pensadores especulativos y prácticos. Las pruebas demuestran un impresionante rendimiento de hasta el 98% en tareas pequeñas y una eficiencia global del 57,95%. El artículo explica estas métricas y presenta una descripción detallada del algoritmo y resultados experimentales con distintos tipos de características.
El algoritmo Royal Flush Optimization del autor ofrece una nueva perspectiva en la resolución de problemas de optimización sustituyendo la clásica codificación binaria de los algoritmos genéticos por un enfoque basado en sectores e inspirado en los principios del póquer. El RFO demuestra cómo la simplificación de los principios básicos puede dar lugar a un método de optimización eficaz y práctico. El artículo presenta un análisis detallado del algoritmo y los resultados de las pruebas.
Seguimos intentando descifrar los movimientos de los precios.... ¿Qué tal un análisis lingüístico del "diccionario de mercado" que obtendríamos convirtiendo el código binario de precios en BIP39? En el presente artículo, nos adentramos en un enfoque innovador del análisis de los datos bursátiles y exploramos cómo pueden aplicarse las modernas técnicas de procesamiento del lenguaje natural al lenguaje del mercado.
Este trabajo presenta un nuevo algoritmo metaheurístico de optimización CSA (Circle Search Algorithm) basado en las propiedades geométricas del círculo. El algoritmo usa el principio de desplazamiento de puntos por tangentes para encontrar la solución óptima combinando fases de exploración global y explotación local.
Si hemos empezado a automatizar la optimización periódica, también deberíamos ocuparnos de la actualización automática de los ajustes de los asesores expertos que ya están trabajando en la cuenta comercial. También deberíamos permitirle ejecutar un asesor experto en el simulador de estrategias y cambiar su configuración en una sola pasada.
Vamos a empezar a implementar la comunicación entre Excel y MetaTrader 5, pero antes es necesario entender algunas cosas importantes. Así no te quedarás rascándote la cabeza tratando de comprender por qué las cosas funcionan o no. Y antes de que frunzas el ceño ante la integración entre Python y Excel, veamos cómo podemos usar xlwings para controlar, en cierta medida, MetaTrader 5 a través de Excel. Lo que voy a mostrar aquí se centrará principalmente en la didáctica. No pienses que solo podemos hacer lo que mostraré.
Hoy utilizaremos un computadora cuántica de IBM para descubrir todas las variantes del movimiento de los precios. ¿Le suena a ciencia ficción? ¡Bienvenido al mundo de la informática cuántica para el trading!
Les presento mi nuevo algoritmo basado en la población, el BIO (Blood Inheritance Optimization), inspirado en el sistema de herencia del grupo sanguíneo humano. En este algoritmo, cada solución tiene un "grupo sanguíneo" distinto que determina su forma de evolucionar. Al igual que en la naturaleza, el grupo sanguíneo de un niño se hereda según reglas específicas, en el BIO las nuevas soluciones obtienen sus características mediante un sistema de herencia y mutaciones.
En este artículo, explicaré una de las posibles soluciones a lo que he estado intentando mostrar. Es decir, cómo permitir que un usuario de Excel realice una acción en MetaTrader 5 sin enviar órdenes ni abrir o cerrar una posición. La idea es que el usuario utilice Excel para realizar un análisis fundamental de algún símbolo. Y que, usando únicamente Excel, pueda indicar a un Asesor Experto que se esté ejecutando en MetaTrader 5 que debe abrir o cerrar una posición determinada.
Hoy nuestro objetivo consiste en crear un sistema de optimización periódica automática de las estrategias comerciales utilizadas en un asesor experto final. El sistema se vuelve más complejo a medida que se desarrolla, por lo que de vez en cuando debemos examinarlo en su conjunto para detectar cuellos de botella y soluciones subóptimas.
Hoy presentamos el nuevo algoritmo metaheurístico de Chaos Game Optimisation (CGO), que demuestra una capacidad única para mantener una alta eficiencia al trabajar con problemas de alta dimensionalidad. A diferencia de la mayoría de los algoritmos de optimización, el CGO no solo no pierde rendimiento, sino que a veces incluso lo aumenta cuando se escala el problema, lo cual supone su característica clave.
En este artículo se estudia el uso del breakeven aplicado a estrategias automáticas en MQL5. Se parte de una explicación sencilla sobre qué es, cómo se implementa y cuáles son sus posibles variantes. Luego, se integra la funcionalidad dentro de un bot de Order Blocks, creado en el último artículo sobre gestión de riesgo. Para evaluar su comportamiento, se ejecutaron dos backtest bajo condiciones específicas: uno sin breakeven y otro con esta función activa.
En este artículo, veremos cómo conectar una nueva estrategia al sistema de optimización automática que hemos creado. Veamos qué tipo de EA necesitamos crear y si será posible hacerlo sin cambiar los archivos de la librería o minimizando los cambios necesarios.
El algoritmo del restaurador de éxito (SRA) es un innovador método de optimización inspirado en los principios de la gestión de restaurantes. A diferencia de los enfoques tradicionales, el SRA no descarta las soluciones débiles, sino que las mejora combinándolas con elementos de las que han tenido éxito. El algoritmo muestra resultados competitivos y ofrece una nueva perspectiva sobre el equilibrio entre investigación y explotación en los problemas de optimización.
¿Cómo se desplaza el mercado por una relación basada en los números de Fibonacci? Esta secuencia, en la que cada número sucesivo es igual a la suma de los dos anteriores (1, 1, 2, 3, 3, 5, 8, 13, 21...), no solo describe el crecimiento de la población de conejos. Hoy vamos a analizar la hipótesis de Pitágoras de que todo en el mundo obedece a ciertas relaciones de números....
En este artículo, intentaremos analizar los movimientos de divisas sintéticas utilizando Python + MQL5 y comprender cómo es el arbitraje de divisas real hoy en día. Asimismo, presentaremos cierto código Python listo para analizar divisas sintéticas y más información sobre qué son las divisas sintéticas en Forex.
En este artículo seguiremos conectando la nueva estrategia con el sistema de optimización automática que hemos creado. Asimismo, veremos qué cambios habrá que introducir en el EA de creación del proyecto de optimización y en los EAs de la segunda y tercera fase.
Este artículo presenta un algoritmo de optimización de la fuerza central (CFO) inspirado en las leyes de la gravedad. Hoy investigaremos cómo los principios de atracción física pueden resolver problemas de optimización en los que las soluciones "más difíciles" atraen a sus homólogas menos exitosas.
En este artículo daremos inicio a la creación de la clase principal de gestión de riesgo, la cual será fundamental para administrar el riesgo en el sistema. Nos enfocaremos en construir las bases, definiendo estructuras, variables y funciones esenciales. Además, implementaremos los métodos necesarios para asignar valores a las pérdidas y ganancias máximas, estableciendo así los cimientos de esta gestión.
En este artículo, analizamos el proceso de desarrollo de un modelo de tabla en MQL5 utilizando el patrón arquitectónico MVC (Modelo-Vista-Controlador) para separar la lógica de datos, la presentación y el control, lo que permite obtener un código estructurado, flexible y escalable. Consideramos la implementación de clases para construir un modelo de tabla, incluyendo el uso de listas enlazadas para almacenar datos.
Como expliqué en el primer artículo sobre SQL, no tiene sentido que pierdas el tiempo programando rutinas para conseguir hacer algo que SQL ya incluye. Sin embargo, si no sabes lo más básico, no lograrás hacer nada con SQL para aprovechar lo que esta herramienta tiene para ofrecernos. Por ello, en este artículo veremos cómo ejecutar tareas fundamentales en bases de datos.
Da igual si vamos a usar uno u otro programa de SQL, ya sea MySQL, SQL Server, SQLite, OpenSQL o cualquier otro. Todos tienen algo en común. Ese algo en común es el lenguaje SQL. Aunque no vayas a usar una WorkBench, podrás manipular o trabajar con una base de datos directamente en MetaEditor o a través de MQL5 para hacer cosas en MetaTrader 5, pero necesitarás tener conocimientos de SQL. Así que aquí aprenderemos, al menos, lo básico.
Implementar la parte que se ejecutará aquí en MetaTrader 5 no es complicado. Pero hay diversos aspectos a los que hay que prestar atención. Esto es para que tú, querido lector, consigas hacer que el sistema funcione de verdad. Recuerda una cosa: no se ejecutará un único programa. En realidad, estarás ejecutando tres programas a la vez. Es importante que cada uno se implemente y se construya de forma que trabajen y se comuniquen entre sí. Es crucial que cada uno sepa qué está intentando o deseando hacer el otro.
La media móvil y el oscilador estocástico son indicadores muy comunes cuyos patrones colectivos analizamos en el artículo anterior, mediante una red de aprendizaje supervisado, para ver qué «patrones se mantendrían». Partiendo de los análisis de ese artículo, vamos un paso más allá y analizamos los efectos que tendría en el rendimiento el aprendizaje por refuerzo, cuando se utiliza con esta red entrenada. Los lectores deben tener en cuenta que nuestras pruebas se han realizado en un periodo de tiempo muy limitado. No obstante, seguimos aprovechando los requisitos mínimos de programación que ofrece el Asistente de MQL5 (MQL5 Wizard) para mostrar esto.
El algoritmo de búsqueda oscilatoria determinista (DOS) es un método de optimización global innovador que combina las ventajas de los algoritmos de gradiente y enjambre sin usar números aleatorios. El mecanismo de oscilaciones e inclinaciones de aptitud permite a DOS explorar espacios de búsqueda complejos de manera determinista.
En este artículo se desarrolla una clase para gestionar cierres parciales en MQL5 y se integra dentro de un EA de order blocks. Además, se presentan pruebas de backtest comparando la estrategia con y sin parciales, analizando en qué condiciones su uso puede maximizar y asegurar beneficios. Concluimos que especialmente en estilos de trading orientados a movimientos más amplios, el uso de parciales podría ser beneficioso.
Este artículo presenta un análisis exhaustivo del algoritmo de optimización de arrecifes de coral (CRO), un método metaheurístico inspirado en los procesos biológicos de formación y desarrollo de los arrecifes de coral. El algoritmo modela aspectos clave de la evolución de los corales: la reproducción externa e interna, el asentamiento de larvas, la reproducción asexual y la competencia por un espacio limitado en el arrecife. El artículo se centra en una versión mejorada del algoritmo.
La optimización basada en biogeografía (BBO) supone un elegante método de optimización global inspirado en los procesos naturales de migración de especies entre islas de archipiélagos. El algoritmo se basa en una idea simple pero poderosa: las soluciones de alta calidad comparten activamente sus características, mientras que las soluciones de baja calidad adoptan activamente nuevas características, creando un flujo natural de información desde las mejores soluciones hacia las peores. El BBO, un operador de mutación adaptativa único que ofrece un excelente equilibrio entre exploración y explotación, demuestra una alta eficiencia en una variedad de tareas.
Antes de continuar con el desarrollo de asesores expertos multidivisas, vamos a intentar crear un nuevo proyecto utilizando la biblioteca desarrollada. Usando este ejemplo, descubriremos cómo organizar mejor el almacenamiento del código fuente y cómo puede ayudarnos el uso del nuevo repositorio de código de MetaQuotes.
En este artículo, exploraremos cómo realizar la visualización y, en consecuencia, entender cómo está estructurada una base de datos. Esto se hizo al observar el diagrama interno de la base de datos. Aunque este tipo de cosa parezca algo innecesario, puede ser bastante válido si tú pretendes, de hecho, convertirte en un administrador de bases de datos. Y sí, hay personas que viven de hacer mantenimiento y creación de bases de datos.