Artículos sobre simulación de estrategias en el lenguaje MQL5

icon

¿Cómo podemos desarrollar, escribir y probar una estrategia comercial, cómo podemos encontrar los parámetros óptimos del sistema y cómo podemos analizar los resultados obtenidos? La plataforma MetaTrader ofrece a los desarrolladores de robots comerciales un abanico de posibilidades para una comprobación rápida y precisa de las ideas comerciales.  Lea estos artículos para llegar a saber cómo probar los robots multidivisas y usar las posibilidades de MQL5 Cloud Network para la optimización.

A los desarrolladores de los sistemas automáticos de trading les recomendamos empezar a estudiar a partir de los fundamentos de la simulación y los algoritmos de generación de ticks en el Probador de Estrategias.

Nuevo artículo
últimas | mejores
preview
Simulación de mercado: Position View (III)

Simulación de mercado: Position View (III)

En estos últimos artículos, he mencionado que, en algunos momentos, necesitamos definir un valor para la propiedad ZOrder. ¿Pero por qué?!?! El motivo es que muchos de los códigos que agregan objetos al gráfico simplemente no usan, o mejor dicho, no definen un valor para esa propiedad. Bien, no estoy aquí para decir qué debe o no debe hacer cada programador, ni cómo debe o no debe escribir su código. Estoy aquí para mostrarte, estimado lector e interesado en comprender realmente cómo funcionan las cosas, lo que ocurre entre bastidores.
preview
Simulación de mercado: Position View (II)

Simulación de mercado: Position View (II)

En este artículo, mostraré, de la forma más simple y práctica posible, cómo podrás usar un indicador como forma de observar posiciones abiertas en el servidor de trading. Lo hago así, y poco a poco, precisamente para mostrar que no necesitas incorporar necesariamente todo esto en un Asesor Experto. Muchos de ustedes ya deben de estar bastante acostumbrados a hacer esto, por un motivo u otro. La verdad es que eso es una tontería, ya que, a medida que avancemos en esta implementación, quedará claro que podrás crear o implementar diversos tipos de indicadores para este propósito.
preview
Simulación de mercado: Position View (I)

Simulación de mercado: Position View (I)

El contenido que veremos a partir de ahora es mucho más complicado en términos de teorías y conceptos. Intentaré dejar el contenido lo más simple posible. La parte referente a la programación en sí es incluso bastante simple y directa. Pero, si no comprendes toda la teoría que hay detrás, te quedarás completamente sin recursos para poder mejorar o incluso adaptar el sistema de repetición/simulador a algo diferente de lo que voy a mostrar. Mi intención no es que simplemente compiles y uses el código que estoy mostrando. Quiero que aprendas, entiendas y, si es posible, puedas crear algo todavía mejor.
preview
Simulación de mercado: Iniciando SQL en MQL5 (V)

Simulación de mercado: Iniciando SQL en MQL5 (V)

En el artículo anterior mostré cómo debías proceder para poder añadir el mecanismo de consulta. Esto para que, dentro del código MQL5, pudieras usar SQL plenamente y obtener los resultados al usar el comando SELECT FROM de SQL. Pero faltó hablar de la última función que necesitamos implementar. Esta es la función DatabaseReadBind. Y, como para entenderla adecuadamente hace falta una explicación un poco más amplia, se decidió hacerlo no en aquel artículo anterior, sino en este. Entonces, como el tema será relativamente largo, vayamos directamente al siguiente apartado.
preview
Simulación de mercado: Iniciando SQL en MQL5 (IV)

Simulación de mercado: Iniciando SQL en MQL5 (IV)

Muchos suelen infrautilizar SQL, o incluso no utilizarlo, porque no comprenden bien cómo funciona en realidad. Al consultar una base de datos SQL, no siempre buscamos una respuesta genérica; en algunos casos queremos una respuesta muy concreta y práctica. Si tú creas una base de datos con cierta estructuración y modelado, podrás introducir prácticamente cualquier tipo de información en ella.
preview
Simulación de mercado: Iniciando SQL en MQL5 (III)

Simulación de mercado: Iniciando SQL en MQL5 (III)

En el artículo anterior vimos cómo podríamos desarrollar una clase en MQL5 capaz de darnos cierto soporte. Su finalidad es precisamente permitirnos colocar el código SQL dentro de un archivo de script. De este modo, no necesitaríamos escribir ese mismo código SQL como un string dentro del código MQL5. Aunque esa solución es funcional, contiene algunos detalles que podemos y debemos mejorar.
preview
Simulación de mercado (Parte 23): Iniciando SQL (VI)

Simulación de mercado (Parte 23): Iniciando SQL (VI)

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.
preview
Simulación de mercado: iniciando SQL en MQL5 (II)

Simulación de mercado: iniciando SQL en MQL5 (II)

Aunque muchos creen que podemos incluir sin problemas código SQL dentro de otro código, por lo general esto no es así. El motivo es que el código SQL siempre se incorpora al ejecutable como un string. Y este hecho de colocar el código SQL como string, si bien no genera inconvenientes en fragmentos pequeños, puede terminar provocándonos bastantes dolores de cabeza.
preview
Simulación de mercado: Iniciando SQL en MQL5 (I)

Simulación de mercado: Iniciando SQL en MQL5 (I)

En este artículo, comenzaremos a explorar el uso de SQL dentro de un código MQL5. Veremos cómo podemos crear una base de datos. O, mejor dicho, cómo podemos crear un archivo de base de datos en SQLite, utilizando, para ello, recursos o procedimientos incluidos en el lenguaje MQL5. Veremos también cómo crear una tabla y, después, cómo crear una relación entre tablas mediante una clave primaria y una clave foránea. Todo esto usando, nuevamente, MQL5. Veremos lo sencillo que es crear un código que, en el futuro, podrá portarse a otras implementaciones de SQL, usando una clase que nos ayude a ocultar la implementación creada. Y, lo más importante de todo, veremos que, en diversos momentos, podemos correr el riesgo de que algo no salga bien al usar SQL. Esto se debe a que, dentro del código MQL5, un código SQL siempre se colocará dentro de una STRING.
preview
Simulación de mercado (Parte 24): Iniciando SQL (VII)

Simulación de mercado (Parte 24): Iniciando SQL (VII)

En el artículo anterior terminamos de hacer las debidas presentaciones sobre SQL. Así, lo que me había propuesto mostrar y explicar sobre SQL, a mi juicio, quedó debidamente explicado. Esto, para que todos los que vengan a ver el sistema de repetición/simulador en construcción consigan, como mínimo, tener alguna noción de lo que puede estar ocurriendo allí. Esto se debe a que no tiene sentido programar diversas cosas que SQL puede cubrir perfectamente.
preview
Desarrollamos un asesor experto multidivisas (Parte 27): Componente para mostrar textos de varias líneas

Desarrollamos un asesor experto multidivisas (Parte 27): Componente para mostrar textos de varias líneas

Si es necesario mostrar información textual en un gráfico, podemos utilizar la función Comment(), pero sus capacidades son bastante limitadas. Por ello, en este artículo, crearemos nuestro propio componente: un cuadro de diálogo de pantalla completa capaz de mostrar texto de varias líneas con configuraciones de fuente flexibles y soporte de desplazamiento.
preview
Operando con el Calendario Económico MQL5 (Parte 7): Preparación para la prueba de estrategias con análisis de eventos noticiosos basado en recursos

Operando con el Calendario Económico MQL5 (Parte 7): Preparación para la prueba de estrategias con análisis de eventos noticiosos basado en recursos

En este artículo, preparamos nuestro sistema de trading en MQL5 para la prueba de estrategias utilizando datos del Calendario económico almacenados como recurso, lo que permite analizarlos fuera del entorno en vivo. Implementamos la carga y el filtrado de eventos por tiempo, moneda e impacto, y luego lo validamos en el Probador de Estrategias. Esto permite realizar pruebas retrospectivas efectivas de estrategias basadas en noticias.
preview
Optimización y ajuste de código sin procesar para mejorar los resultados de las pruebas retrospectivas

Optimización y ajuste de código sin procesar para mejorar los resultados de las pruebas retrospectivas

Mejore su código MQL5 optimizando la lógica, refinando los cálculos y reduciendo el tiempo de ejecución para mejorar la precisión de las pruebas retrospectivas. Ajuste los parámetros, optimice los bucles y elimine ineficiencias para obtener un mejor rendimiento.
preview
Simulación de mercado (Parte 22): Iniciando el SQL (V)

Simulación de mercado (Parte 22): Iniciando el SQL (V)

Antes de que tires la toalla y decidas abandonar el estudio sobre cómo usar SQL, déjame recordarte, mi querido lector, que aquí todavía estamos usando solo lo más básico de lo básico. Aún no hemos explorado algunas cosas que es posible hacer en SQL. En cuanto las exploremos, verás que SQL es mucho más práctico de lo que parece. Aunque, muy probablemente, yo termine cambiando la dirección de lo que estamos creando. Esto se debe a que el proceso de creación es dinámico. Voy a mostrar un poco más sobre cómo hacer las cosas en SQL. Esto se debe a que, de hecho, es algo que necesitas entender y conocer. Simplemente pensar que eres más capaz que toda una comunidad de programadores y desarrolladores solo te hará perder tiempo y oportunidades. Ten calma, porque esto se va a volver aún más interesante.
preview
Algoritmo de optimización caótica — Chaos optimization algorithm (COA): Continuación

Algoritmo de optimización caótica — Chaos optimization algorithm (COA): Continuación

Continuamos el estudio del algoritmo de optimización caótica. La segunda parte del artículo está dedicada a los aspectos prácticos de la implementación del algoritmo, sus pruebas y conclusiones.
preview
Simulación de mercado (Parte 21): Iniciando SQL (IV)

Simulación de mercado (Parte 21): Iniciando SQL (IV)

Muchos de ustedes, queridos lectores, pueden tener un nivel de experiencia muy superior al mío en lo que respecta a trabajar con bases de datos y, así, por esta razón, tener una visión diferente de la mía. Pero, como era necesario definir y desarrollar alguna forma de explicar el motivo por el cual las bases de datos se crean como se crean, explicar por qué SQL tiene el formato que tiene y, sobre todo, por qué surgieron las claves primarias y las claves foráneas, fue necesario dejar las cosas un poco abstractas.
preview
Simulación de mercado (Parte 20): Iniciando el SQL (III)

Simulación de mercado (Parte 20): Iniciando el SQL (III)

Aunque podemos hacer cosas con una base de datos de unas 10 entradas, esto se asimila mucho mejor cuando trabajamos con un archivo que tenga más de 15 mil registros. Es decir, si tú intentaras crear eso manualmente, sería una tarea enorme. Sin embargo, es difícil encontrar una base de datos, incluso con fines didácticos, disponible para descargar. Pero, en realidad, no necesitamos recurrir a eso. Podemos usar MetaTrader 5 para crear una base de datos para nosotros. En este artículo, veremos cómo hacerlo.
preview
Simulación de mercado (Parte 19): Iniciando SQL (II)

Simulación de mercado (Parte 19): Iniciando SQL (II)

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.
preview
Simulación de mercado (Parte 18): Iniciando SQL (I)

Simulación de mercado (Parte 18): Iniciando SQL (I)

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.
preview
Simulación de mercado (Parte 17): Sockets (XI)

Simulación de mercado (Parte 17): Sockets (XI)

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.
preview
Desarrollamos un asesor experto multidivisas (Parte 26): Informador para instrumentos comerciales

Desarrollamos un asesor experto multidivisas (Parte 26): Informador para instrumentos comerciales

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.
preview
De principiante a experto: programando velas japonesas

De principiante a experto: programando velas japonesas

En este artículo damos el primer paso en la programación MQL5, incluso para principiantes. Le mostraremos cómo transformar patrones de velas familiares en un indicador personalizado completamente funcional. Los patrones de velas son valiosos porque reflejan la acción real del precio y señalan cambios en el mercado. En lugar de escanear gráficos manualmente (un enfoque propenso a errores e ineficiencias), analizaremos cómo automatizar el proceso con un indicador que identifica y etiqueta patrones para usted. A lo largo del camino, exploraremos conceptos clave como indexación, series de tiempo, rango verdadero promedio (para mayor precisión en la volatilidad variable del mercado) y el desarrollo de una biblioteca de patrones de velas reutilizables personalizada para usar en proyectos futuros.
preview
Formulación de un Asesor Experto Multipar Dinámico (Parte 2): Diversificación y optimización de carteras

Formulación de un Asesor Experto Multipar Dinámico (Parte 2): Diversificación y optimización de carteras

La diversificación y optimización de la cartera distribuye estratégicamente las inversiones entre múltiples activos para minimizar el riesgo, al tiempo que selecciona la combinación ideal de activos para maximizar la rentabilidad basándose en métricas de rendimiento ajustadas al riesgo.
preview
Pruebas retrospectivas manuales simplificadas: herramientas personalizadas en MQL5 para el Probador de Estrategias

Pruebas retrospectivas manuales simplificadas: herramientas personalizadas en MQL5 para el Probador de Estrategias

En este artículo diseñamos un conjunto de herramientas MQL5 personalizadas para facilitar las pruebas retrospectivas manuales en el Probador de Estrategias. Explicamos su diseño e implementación, centrándonos en los controles comerciales interactivos. A continuación mostramos cómo utilizarlo para probar estrategias de forma eficaz.
preview
Optimización de Battle Royale — Battle Royale Optimizer (BRO)

Optimización de Battle Royale — Battle Royale Optimizer (BRO)

El artículo describe un innovador enfoque de optimización que combina la competición espacial de soluciones con el estrechamiento adaptativo del espacio de búsqueda, lo cual convierte al Battle Royale Optimizer en una prometedora herramienta para el análisis financiero.
preview
Técnicas avanzadas de gestión y optimización de la memoria en MQL5

Técnicas avanzadas de gestión y optimización de la memoria en MQL5

Descubra técnicas prácticas para optimizar el uso de la memoria en los sistemas de trading MQL5. Aprenda a crear asesores expertos e indicadores eficientes, estables y de rápido rendimiento. Exploraremos cómo funciona realmente la memoria en MQL5, las trampas comunes que ralentizan sus sistemas o provocan fallos y, lo más importante, cómo solucionarlos.
preview
Asesor experto de scalping Ilan 3.0 Ai con aprendizaje automático

Asesor experto de scalping Ilan 3.0 Ai con aprendizaje automático

¿Recuerda el asesor experto Ilan 1.6 Dymanic? Hoy intentaremos mejorarlo usando el aprendizaje automático. Así, en el presente artículo reanimaremos el antiguo desarrollo y añadiremos aprendizaje automático con una tabla Q. Paso a paso.
preview
Algoritmo de optimización de neuroboides 2 — Neuroboids Optimization Algorithm 2 (NOA2)

Algoritmo de optimización de neuroboides 2 — Neuroboids Optimization Algorithm 2 (NOA2)

El nuevo algoritmo de optimización de autor, NOA2 (Neuroboids Optimisation Algorithm 2), combina los principios de la inteligencia de enjambre con el control neuronal. El NOA2 combina la mecánica del comportamiento de los enjambres de neuroboids con un sistema neuronal adaptativo que permite a los agentes ajustar de forma autónoma su comportamiento a medida que buscan un óptimo. El algoritmo se está desarrollando activamente y muestra potencial para resolver problemas complejos de optimización.
preview
Desarrollamos un asesor experto multidivisas (Parte 25): Conectamos una nueva estrategia (II)

Desarrollamos un asesor experto multidivisas (Parte 25): Conectamos una nueva estrategia (II)

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.
preview
Un nuevo enfoque para los criterios personalizados en las optimizaciones (Parte 1): Ejemplos de funciones de activación

Un nuevo enfoque para los criterios personalizados en las optimizaciones (Parte 1): Ejemplos de funciones de activación

El primero de una serie de artículos que analizan las matemáticas de los criterios personalizados, con especial atención a las funciones no lineales utilizadas en las redes neuronales, el código MQL5 para su implementación y el uso de compensaciones específicas y correccionales.
preview
Desarrollamos un asesor experto multidivisas (Parte 24): Añadimos una nueva estrategia (I)

Desarrollamos un asesor experto multidivisas (Parte 24): Añadimos una nueva estrategia (I)

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.
preview
Algoritmo de optimización de neuroboides — Neuroboids Optimization Algorithm (NOA)

Algoritmo de optimización de neuroboides — Neuroboids Optimization Algorithm (NOA)

Hoy hablaremos de una nueva metaheurística de optimización inspirada en la naturaleza: el NOA (Neuroboids Optimisation Algorithm), que combina principios de inteligencia colectiva y redes neuronales. A diferencia de los métodos clásicos, el algoritmo usa una población de "neuroboides" autodidactas, cada uno con su propia red neuronal que adapta la estrategia de búsqueda en tiempo real. En el artículo se revela la arquitectura del algoritmo, los mecanismos de autoaprendizaje de los agentes y las perspectivas de aplicación de este enfoque híbrido a problemas complejos de optimización.
preview
Visualización de estrategias en MQL5: distribuimos los resultados de la optimización en gráficos de criterios

Visualización de estrategias en MQL5: distribuimos los resultados de la optimización en gráficos de criterios

En este artículo, escribiremos un ejemplo de visualización del proceso de optimización e implementaremos la visualización de las tres mejores pasadas para cuatro criterios de optimización. Asimismo, ofreceremos la posibilidad de seleccionar una de las tres mejores pasadas para mostrar sus datos en tablas y gráficos.
preview
Algoritmo del restaurador de éxito —  Successful Restaurateur Algorithm (SRA)

Algoritmo del restaurador de éxito — Successful Restaurateur Algorithm (SRA)

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.
preview
Algoritmo de optimización del billar — Billiards Optimization Algorithm (BOA)

Algoritmo de optimización del billar — Billiards Optimization Algorithm (BOA)

El método BOA, inspirado en el clásico juego del billar, modela el proceso de búsqueda de soluciones óptimas como un juego de bolas que intentan acertar en las troneras que representan los mejores resultados. En este artículo revisaremos los fundamentos del BOA, su modelo matemático y su eficacia para resolver diversos problemas de optimización.
preview
Pruebas de robustez en asesores expertos

Pruebas de robustez en asesores expertos

En el desarrollo de una estrategia hay muchos detalles complejos a tener en cuenta, muchos de los cuales no se destacan para los traders principiantes. Como resultado, muchos comerciantes, incluido yo mismo, hemos tenido que aprender estas lecciones a las duras penas. Este artículo se basa en mis observaciones de errores comunes que la mayoría de los traders principiantes encuentran al desarrollar estrategias en MQL5. Ofrecerá una variedad de consejos, trucos y ejemplos para ayudar a identificar la descalificación de un EA y probar la solidez de nuestros propios EA de una manera fácil de implementar. El objetivo es educar a los lectores, ayudándolos a evitar futuras estafas al comprar EA, así como a prevenir errores en el desarrollo de su propia estrategia.
preview
Optimización con el juego del caos — Game Optimization (CGO)

Optimización con el juego del caos — Game Optimization (CGO)

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.
preview
Simulación de mercado (Parte 16): Sockets (X)

Simulación de mercado (Parte 16): Sockets (X)

Estamos a punto de concluir este desafío. Sin embargo, antes de pasar al siguiente, quiero que tú, querido lector, procures comprender estos dos artículos, tanto este como el anterior. Así podrás entender realmente el próximo artículo, en el que abordaré exclusivamente la parte referente a la programación en MQL5. Aunque en él también procuraré que sea fácil de entender. Si no comprendes estos dos últimos artículos, con toda seguridad tendrás grandes dificultades para entender el siguiente. El motivo es simple: los contenidos se van acumulando. Cuantas más cosas haya que hacer, más cosas será necesario crear y comprender para alcanzar el objetivo.
preview
Desarrollamos un asesor experto multidivisas (Parte 23): Ordenando la cadena de etapas de optimización automática de proyectos (II)

Desarrollamos un asesor experto multidivisas (Parte 23): Ordenando la cadena de etapas de optimización automática de proyectos (II)

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.
preview
Simulación de mercado (Parte 15): Sockets (IX)

Simulación de mercado (Parte 15): Sockets (IX)

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.