English Русский 中文 Deutsch 日本語 Português
preview
Aproximación por fuerza bruta a la búsqueda de patrones (Parte V): Una mirada desde el otro lado

Aproximación por fuerza bruta a la búsqueda de patrones (Parte V): Una mirada desde el otro lado

MetaTrader 5Trading | 30 diciembre 2023, 15:01
709 0
Evgeniy Ilin
Evgeniy Ilin

Contenido


Introducción

Ha pasado bastante tiempo desde que publiqué el último artículo sobre este tema, y desde entonces he tenido que replantearme a fondo lo que hacía antes. Esto me ha permitido mirar la cuestión del trading algorítmico rentable desde un ángulo completamente distinto, pero considerando todas las pequeñas cosas que antes no había podido tener en cuenta. En lugar de usar códigos y matemáticas estándar y de mal gusto, propongo al lector abordar este tema desde un ángulo completamente diferente. Si el lector lo percibe correctamente, este artículo podría ser tanto el comienzo de algo nuevo como un reinicio de algo antiguo. Ya hace tiempo que estoy cansado de hacerme el listo y tirar fórmulas y códigos innecesarios al basurero de la historia, por lo que este artículo será lo más simple y comprensible posible para cualquier lector.


Caminos para lograr el objetivo

No hace mucho, empecé a reflexionar en la variedad de caminos que llevan a las personas al éxito (o al contrario, a callejones sin salida) cuando intentan ganar dinero con el comercio algorítmico, y de una forma puramente teórica resulta que existen varios caminos:

  1. El enfoque directo.
  2. Una imagen atractiva.
  3. Sistemas comerciales listos para usar.
  4. Modernización e hibridación de algoritmos públicos.
  5. Enfoque de equipo.

El primer enfoque es el más extendido entre personas testarudas. De hecho, resulta útil para personas como yo, en cuanto a dejar de lado ambiciones y falsas esperanzas. No parece gran cosa, pero en realidad resulta muy beneficioso para el futuro. Lo que pasa es que este enfoque requiere mucho tiempo y esfuerzo, y si no nos detenemos en algún momento, podemos convertirnos en un «doctor en ciencias» del foro con todas sus consecuencias: no vale la pena enumerarlas, todos entienden perfectamente mi sarcasmo. Sin embargo, este enfoque nos permite aprender la información teórica que asimilé en mi época, y esta no tiene precio. Lo principal es detenerse a tiempo, y, obviamente, si sopesamos el tiempo invertido y los resultados obtenidos, digan lo que digan, no habrá mucho de lo que alegrarse.

El segundo enfoque es mucho más simple y, de hecho, mucho más eficiente en cuanto al tiempo invertido, porque implica mucho menos esfuerzo y todo lo que tenemos que hacer es convencer a la gente de que tenemos éxito. Todo está en nuestras cabezas y en algún momento me di cuenta de que esto funciona muy bien: la gente tiende a confiar en los envoltorios bonitos. Aquí no hay sitio para la moralidad ni nada más, lo principal es el resultado. Sonará cínico, pero el mundo entero vive así. Todo lo que necesitamos es crear una imagen determinada. Por ejemplo, el uso de martingale, promedios u otras técnicas comerciales bastan para crear tal imagen. Ya se imagina el resto.

El tercer enfoque, en mi opinión, es sensato, porque en este caso el esfuerzo invertido será mínimo, pero nuestra imagen será real. Con la implementación adecuada de este enfoque, no tendremos aspectos negativos, aunque habrá algunas desventajas. Lo más importante que necesitamos para implementar este enfoque es el conocimiento. Si ahora no tuviera la experiencia que tengo, entonces no podría aprovecharla, incluso considerando que habría tenido la actitud correcta inicialmente y un enfoque racional y equilibrado para lograr mis propios objetivos. Pero en teoría, esto es posible y, en la práctica, estoy seguro de que podemos encontrar personas así si las buscamos.

En cuanto al cuarto enfoque, no sé si alguien practica algo similar, aunque en teoría debería llevar menos tiempo, pero no puedo afirmar nada sobre la efectividad de este enfoque. En general, todo es posible, pero no creo que este enfoque sea el más eficaz (por decirlo suavemente), más bien, será mejor usarlo en combinación con el anterior, ya que esto aumentará la variabilidad de nuestras operaciones y aumentará las posibilidades de obtener señales comerciales más consistentes.

El quinto enfoque solo puede ser eficaz si tenemos muchas ideas y trabajamos constantemente en ellas; sin embargo, resulta mucho mejor que el primero, incluso si cada miembro del equipo utiliza un enfoque frontal. Sin embargo, da la casualidad de que los desarrolladores de sistemas comerciales son casi todos narcisistas solitarios, y solo unos pocos pueden formar un equipo así y, lo más importante, organizar su trabajo conjunto. Sé que existen equipos así y, de hecho, tienen bastante éxito. Estará bien si el lector encuentra en un equipo así y trabaja hombro con hombro para desarrollar algoritmos rentables. La ventaja es que al final la calidad y cantidad total de los desarrollos pueden jugar un papel decisivo y permitirnos crear un producto competitivo.

El problema es que inicialmente nadie piensa en ello, pero debería hacerlo. Obviamente, estos son escenarios bastante idealizados, y el camino de cada uno es un poco único, pero a pesar de ello, definitivamente puedo decir que no importa el camino que elijamos, el resultado siempre irá precedido de la adquisición de algún tipo de conocimiento; no necesariamente técnico o filosófico, aunque en mi caso son ambas cosas. Me parece que así debe ser, porque un problema siempre debe mirarse desde todos los lados y solo así podrá resolverse con éxito.


Proceso de obtención de ingresos estables basado en sistemas de comercio automático

Antes de encontrar un enfoque armonioso para el trading automatizado, primero deberemos estructurar todo el proceso de principio a fin, desde el momento en que se concibe la idea hasta su implementación:

  1. Idea.
  2. Desarrollo de un plan de implementación
  3. Proceso de desarrollo
  4. Corrección de errores
  5. Mejoras y modernización
  6. Pruebas exhaustivas
  7. Optimización y definición de los límites de aplicabilidad
  8. Preparación para el trading (recursos, cuenta demo)
  9. Comercio en una cuenta real

Pronto entenderá por qué hablo de todo esto. Si el lector está todavía muy verde, se mostrará seguro casi al cien por cien de que su sistema debería funcionar, y todo porque lo ha leído en alguna parte o lo inventado usted mismo y se ha convencido de que funcionará. La realidad es que el lector no tiene un modelo matemático del mercado, y este resulta tan complejo que, incluso suponiendo que lo tenga, no podrá utilizarlo debido a su increíble complejidad y a la irracionalidad de utilizarlo en un asesor. ¿Y qué debemos hacer entonces? La respuesta no es tan sencilla como parece, pero la hay. Es exactamente por eso que pensé en mi propio algoritmo de fuerza bruta.

Obviamente, si asumimos la tarea de crear un súper asesor, pasaremos por muchas de estas etapas antes de llegar al resultado deseado, lo cual, en realidad, es algo de dudosa eficacia, por decirlo suavemente. Créame, lo sé por experiencia propia. Tras otro intento fallido de desarrollar un asesor, lo más molesto es que deberemos desecharlo, lo cual significa que, a pesar de toda la utilidad de la experiencia adquirida, esto no reducirá la decepción por el tiempo invertido. Cuando desarrollamos asesores por nosotros mismos, esto resulta inevitable. Si hablamos de un encargo en Freelance, entonces todo se antoja aún más triste: sí, nos harán un asesor, pero lo más probable es que no tenga utilidad alguna.

En este sentido, quiero dejar claro que estamos hablando principalmente de nuestro tiempo. Las personas exitosas tienen la capacidad de evaluar correctamente el valor de tal o cual momento. Si el tiempo invertido no produce el resultado deseado, no merece la pena continuar con el mismo espíritu. Más abajo verá un esquema del enfoque estándar que he creado para usted:

Esquema 1.

enfoque estándar

Cada acción en el esquema lleva su propio tiempo y el resultado general dependerá directamente de los conocimientos y recursos que tengamos. Los recursos no implicarán necesariamente los fondos disponibles para realizar inversiones, sino más bien la disponibilidad de computadoras para probar constantemente los sistemas comerciales, o los fondos para comprar dicho equipo. Un papel no menos importante será nuestro deseo de hacer esto y la disponibilidad de tiempo libre. El caso es que encontrar o crear un buen sistema comercial es solo la mitad de la batalla, la segunda mitad implica la correcta administración de dicho sistema, considerando lo limitado de nuestro tiempo libre.

Si tiene al menos una mínima comprensión del problema, podrá ver cómo cambia el esquema si utilizamos sistemas comerciales ya preparados del mercado MQL5 u otras fuentes. No dibujaremos todo nuevamente, solo indicaremos las sustituciones correspondientes:

Esquema 2.

sustituimos el desarrollo por la búsqueda

El significado del esquema no cambiará después de realizar la sustitución, pero buscar y elegir algo que ya esté listo para usar resultará mucho más fácil y, diría, mucho más agradable que escribir toneladas de código. Afortunadamente, puedo hacer ambas cosas. Obviamente, esto requiere conocimiento y experiencia, pero sin ellos resulta imposible hacer nada. Pero, entre otras cosas, la idea de la que parte este plan es que los asesores pueden perder su relevancia con el tiempo y la mayoría seguramente terminará en el cubo de la basura. Después de descartar el asesor de turno, ¿a que no sospecha que podrá volver a usarlo después de un tiempo? Lo único, claro está, es que hurgar en este montón de basura y sacar a relucir algoritmos olvidados hace mucho tiempo, y volver a pensar en cómo aplicarlos, también llevará mucho tiempo.

No obstante, sería bueno acumular una determinada base de datos de asesores y, tras modificarlos sabiamente, continuar operando con éxito después de un tiempo. En este caso, nuestro proceso se simplificará aún más, porque no deberemos buscar nuevos asesores. ¿Acaso esto es posible? Buena pregunta, y sí, le diré que es posible. Lo ideal sería que este conjunto de asesores tenga las siguientes cualidades:

  • Flexibilidad del algoritmo.
  • Posibilidad de invertir la señal.
  • Rendimiento rápido (consumo de recursos mínimo).
  • Número mágico de las órdenes.

Partiendo de estos datos, podremos incluso introducir una definición matemática de las perspectivas de un grupo seleccionado de asesores. Incluso podremos tratar de componer este tipo de expresiones para que quede más claro cómo y en qué influyen las características de estos asesores y su cantidad. No obstante, en lugar de esto, podemos simplemente hacer una lista sencilla y comprensible:

  1. Cuantos más asesores tengamos, mejor será nuestra colección (simplemente porque cuantos más asesores haya, mejor cumplirán los criterios comerciales requeridos en el área comercial seleccionada).
  2. Cuantos más parámetros de entrada tenga un asesor, más eficazmente podremos optimizarlo.
  3. Resultan mejores los asesores que operan por barras (resultan más fáciles de usar, probar y optimizar, y no tenemos que preocuparnos por el ping, el deslizamiento y otros problemas).
  4. Si es posible invertir la señal comercial, entonces el peso del asesor se duplicará.

Le recomiendo no pensar en la sobre-optimización y el ajuste a la historia, porque este es un tema aparte que merece su propio análisis. Supongamos que sabemos cómo hacer todo esto correctamente. Si todo se hace correctamente, nuestro esquema se transformará en un diseño muy simple:

Esquema 3.

comercio utilizando una base de datos de asesores

Obviamente, cuantos más asesores tengamos, mejor podremos filtrar los robots. Pero aquí surgen varios momentos desagradables al mismo tiempo. Todos ellos se relacionan con el hecho de que, de una manera u otra, cuanto mejor queramos realizar una selección, más tiempo nos ocupará. Además, deberemos realizarla muchas veces y no bastará con hacer este punto: deberemos lograrlo con regularidad y, en lugar de tomar un cóctel en la playa, todo se convertirá en un trabajo más, a menos que otra persona se haga cargo de ello por nosotros. En este sentido nos surge una pregunta totalmente legítima: "¿Para qué necesito esto cuando ya existen esquemas probados para el comercio regular sin ningún riesgo?"

Además, cuanto más éxito queramos tener en nuestras actividades comerciales, más terminales necesitaremos operar simultáneamente. Y esto significa que deberemos monitorear constantemente cada terminal, añadiendo y quitando nuevos asesores, además de configurar y controlar su funcionamiento. Como comprenderá, todo esto supone un montón de trabajo que no se realizará por sí solo. A pesar de que hemos evitado desarrollar constantemente nuevos asesores, todavía no nos hemos deshecho de la rutina principal. Vamos a enumerar los principales puntos que requieren un trabajo considerable:

  • Selección de asesores usando la optimización.
  • Pruebas preliminares en las cuentas demo.
  • Selección de las señales comerciales más resistentes.
  • Comercio real usando las combinaciones más resistentes (usando una cuenta real).
  • Control constante (apagado, pausa, sustitución por otros robots, etc.) (trabajo con los terminales).

Todo esto es posible, pero solo si nos ceñimos a un proceso de trabajo correctamente construido. Eso sí, mi experiencia me dice que existe un límite, sobre todo si trabajamos solos, lo cual casi siempre el caso. No podemos hacer milagros, todo lleva tiempo.

Al principio, mi algoritmo de fuerza bruta se desarrolló como simple investigación, para comprender si era posible lograr operaciones rentables utilizando algoritmos simples. Entonces me di cuenta de que esto se puede hacer. Pero, dadas las capacidades que tenía entonces, solo podía proporcionar asesores adicionales para ampliar el número total de asesores. Para comprender mejor cómo pueden ayudar los asesores simples y cómo usarlos correctamente, debemos comprender un poco más cómo un algoritmo en particular es capaz de resolver el problema del comercio rentable y cómo tratar adecuadamente a ciertos asesores.


Asesores y patrones

No basta con tener una colección de algoritmos y optimizarlos constantemente, porque la optimización es una habilidad aparte cuyo dominio determina el resultado del uso del asesor en una cuenta comercial. Cada asesor es único a su manera y tiene sus propias peculiaridades tanto en la optimización como en el uso. Una opción importante que creo que debería incluirse en cualquier asesor es la capacidad de invertir el comercio. Esto significa que cualquier acción comercial se reemplazará por la opuesta, es decir, la compra se reemplazará por la venta y viceversa. De entrada, esta opción parece completamente innecesaria, y todo porque existe la falsa creencia de que todo debería funcionar según lo previsto.

Para comprender este hecho, primero deberemos entender qué es un patrón. En el sentido popular, un patrón supone la diferencia entre algunas características estadísticas y una distribución aleatoria. Si analizamos superficialmente esta cuestión, siempre nos surge la idea de la inercia de los patrones. Pero este es solo uno de los posibles escenarios futuros para dicho patrón. Apenas una pequeña parte de los patrones encontrados tienen inercia. Vamos a analizar el patrón encontrado como un backtest o una señal comercial.

Imaginemos que tenemos una base de datos de robots muy grande, a partir de la cual podemos crear grupos separados de robots, agrupados según algunas características similares que, por una razón u otra, consideremos apropiadas. Al mismo tiempo, los signos en sí no son tan importantes como el hecho del agrupación:

Esquema 4.

grupo de robots

Aquí, por primera vez, mi programa de fuerza bruta aparece como un elemento del esquema, que, de hecho, realiza esta agrupación gracias a las distintas configuraciones de cada una de sus copias. En esencia, cada copia del programa, configurada de forma distinta, supone un grupo de robots completamente independiente entre los que se puede realizar la selección. Los robots generados se pueden usar para el comercio, cosa que mostramos en la parte inferior del esquema. Lo más importante aquí es que todos estos grupos de robots posteriormente, al cabo de un tiempo, se dividen en tres grupos:

  • Rentables con señal directa (cálculo sobre la inercia del patrón).
  • Rentables con señal invertida (calculada para un cambio inmediato de patrón).
  • Caóticos (simple adaptación a la historia).

Resulta imposible saber de antemano qué conjunto dará qué grupo de señales, pero tras un tiempo se puede filtrar por exclusión. En este sentido, está claro que cuantos más grupos y señales independientes haya, mejor. Para cada grupo de asesores lo mejor será hacer al menos dos señales:

  1. Señal directa.
  2. Señal invertida.

Además, podemos añadir señales mixtas de diferentes grupos. Todo esto maximizará las posibilidades de encontrar efectivamente grupos de asesores compuestos de forma armoniosa que puedan trabajar durante mucho tiempo. Dos hechos pueden llevarnos a encontrar buenos portafolios lo más rápido posible:

  1. La agrupación mejor y más efectiva de los asesores disponibles (tantos grupos independientes como sea posible).
  2. Señal directa e invertida para cada grupo + mixtas.

Todos estos factores, en última instancia, ofrecen las señales más numerosas y variadas, que en última instancia nos ofrecerán la mejor muestra posible para su uso posterior en el comercio real. El factor más importante que influye en la capacidad de realizar tales agrupaciones es la amplitud y diversidad de la colección de asesores y, en el caso de mi programa, la consideración de su configuración y la variedad de algoritmos internos, tales como métodos de análisis, clusterización y otros. Uno de los métodos universales para aumentar la variabilidad es la clusterización:

Esquema 5.

restricciones en el trabajo

La clusterización en este caso está representada por la posibilidad de dividir subgrupos de robots por días de la semana y ventanas de tiempo dentro del día, lo cual, en sí mismo, ya ofrece las más amplias oportunidades para agrupar a los asesores en portafolios. Obviamente, podemos encontrar muchas opciones de clusterización, pero en mi opinión esta es la más simple y efectiva. Además, este esquema se puede usar para configurar el propio programa para que funcione en determinados días y horas. Esto puede ayudarnos a garantizar la mejor optimización posible del consumo de recursos informáticos y establecer los pesos correctos para cada copia del programa. Cada configuración posee una complejidad de cálculo propia, por lo que esta técnica será necesaria.

Además, me gustaría añadir algunas palabras sobre asesores simples y complejos. En teoría, podemos crear un asesor que sea lo más flexible y variable posible para casi cualquier patrón, pero creo que resulta obvio para todos que cuanto más complejo sea el sistema, más fácil será romperlo. Obviamente, también es posible que el sistema resulte muy exitoso y sea resistente a posibles fallos, pero debemos mirar las cosas de forma realista. Digamos que solo unos pocos tienen un sistema de este tipo y definitivamente nunca lo compartirán con otros, pero ¿qué deberían hacer aquellos que, por diversas razones, no poseen tales supersistemas (cuya existencia, por decirlo suavemente, me parece para una utopía)? Tenemos que arreglárnoslas de alguna manera.

Cualquier tráder algorítmico exitoso debe comprender las verdades simples que presentamos hoy, pues, en gran medida, el beneficio de esas personas se basa en esta comprensión. El comercio rentable es, ante todo, la capacidad de usar correctamente las herramientas que tenemos a nuestra disposición. Esperar durante años estrategias mágicas y milagrosas no es la mejor solución. Acompañada por el conjunto adecuado de soluciones, cualquier idea es factible. Esto es lo que trato de mostrar en este artículo, sin centrarme en algoritmos específicos. 


Máxima automatización de la cadena de trabajo

Desde una simple investigación hasta una herramienta para automatizar completamente el trabajo de detección de señales comerciales estables, la idea se ha desarrollado gradualmente, pero ha llegado exactamente a lo donde debería. Actualmente, mi sistema realiza una amplia gama de tareas que van desde la simple generación de asesores comerciales hasta el comercio en los terminales MetaTrader 4, 5. Así es aproximadamente como se ve la versión actual de lo que estoy haciendo ahora con mi programa:

Esquema 6.

esquema actual de uso de fuerza bruta

Este esquema me ahorra por completo la realización de operaciones rutinarias, tales como:

  • Selección y agrupación de asesores.
  • Desconexión y vinculación de asesores a gráficos y su posterior configuración.
  • Optimización y selección de ajustes.
  • Búsqueda de nuevos asesores.
  • Creación de nuevos asesores.

Uno de los trucos de este esquema es que además de generar asesores simples que terminan en mi canal de Telegram, al mismo tiempo existe un asesor universal dentro de los terminales. No deberemos eliminarlo constantemente de los gráficos e instalarlo cada vez que el programa encuentre un nuevo asesor que funcione. En su lugar, el sistema creará el propio asesor y un archivo de texto aparte que será el equivalente del asesor. El archivo termina en la carpeta compartida del terminal, en la que existe el directorio correspondiente desde donde el asesor universal lee la configuración. Todo esto sucede automáticamente sobre la marcha y no requiere de nuestro control, y el propio asesor llega al canal de Telegram.

Resulta que el esquema al completo automatiza tanto el proceso de creación de los asesores como el de publicación automática en mi canal. Todo lo que tengo que hacer es escalar el sistema, comprar el equipo necesario y monitorear las señales comerciales. Ahora, obviamente, todo esto funciona al 1% de sus capacidades, pero como opción de demostración me parece bastante adecuado.

Por el momento solo tengo a mi disposición un ordenador libre, bastante antiguo, pero suficientemente potente para asegurar el funcionamiento alternativo de dos trabajadores independientes (programas de fuerza bruta). Basándome en estas dos configuraciones, crearé dos señales, directa e invertida para cada una, y además señales mixtas directas e invertidas. Según los resultados de las pruebas durante dos meses, podemos ver lo que he dicho anteriormente:

Foto 1.

Rentabilidad directa y rentabilidad invertida

Según los resultados de las pruebas, durante dos meses de negociación continua a capacidad mínima, solo han quedado dos señales positivas claramente destacadas. Hay otra, mixta, pero resulta casi idéntica a la que se muestra aquí invertida. Estas se refieren a dos algoritmos comerciales completamente diferentes y a sus configuraciones. Usando su ejemplo, podemos ver que se pueden obtener operaciones positivas tanto con una señal directa como con una invertida. Si así lo desea, encontrará los asesores generados durante todo el proceso de prueba en mi canal de Telegram. El enlace se encuentra en mi perfil, así como al final del artículo.


Asesores universales - receptores

Obviamente, los asesores de mayor calidad y mejor pensados resultan mucho más eficaces. Es posible utilizarlos para el comercio automático, pero he llegado a la conclusión de que podemos reutilizar repetidamente la mayoría de los asesores. Cualquier algoritmo tiene límites de aplicabilidad y muchos asesores que aparentemente no han cumplido con las expectativas del desarrollador o del cliente tienen su propio recurso sin utilizar. Si estimamos la proporción aproximada de sistemas comerciales que nunca llegan a la etapa de prueba, al menos en una cuenta demo, veremos que simplemente hay toneladas de ellos.

La verdad es que si no sabemos optimizar adecuadamente un asesor, siempre pasará esto. Incluso puedo compartir con usted que yo solía descartar a muchos asesores interesantes por esto. Simplemente no me daba cuenta de que se podían usar de manera un poco distinta. Desafortunadamente, esto requiere algo de experiencia: sin ella no hay manera. Yo solo la he adquirido ahora. En este artículo no tocaremos este tema, pero un poco más tarde me comprometo a escribir un texto aparte sobre optimización ampliada.

Decidirse a una aventura así no resulta sencillo, porque a nivel instintivo siempre queremos conseguir un superasesor, meterlo en el terminal, pulsar un botón y olvidarnos de él durante al menos unas semanas. Sin embargo, aún nos falta encontrarlo y confirmar que realmente tiene las características que necesitamos. Pero piense en esto: mientras lo buscamos, podemos tomar todo lo que tenemos y ejecutar tantas configuraciones diferentes como sea posible.

Obviamente, para controlar de forma competente el proceso comercial de dichos asesores, deberemos dedicar mucho tiempo y esfuerzo. En mi sistema, he evitado estos problemas usando un asesor universal, que supone un cómodo complemento opcional para el asesor (configuración) generado. La primera versión, la más sencilla, de dicho asesor contiene las siguientes variables de control importantes:

input int DaysToFuture=50;//Days to future
input LOT_VARIATION LotMethod=SIMPLE_LOT;//Lot Style
input bool bInitLotControl=false;//Auto lot bruteforce
input double MinLotE=0.01;//Min Lot
input double LotDE=0.01;//Lot (without variation)
input double MaxLotE=1.0;//Max Lot
input bool CommonE=true;//Common Folder
input string SubfolderE="T_TEYLOR_DIRECT";
input int MinutesAwaitE=2;//Minutes To Check New Settings
input bool bBruteforceInvertTrade=false;//Invert Bruteforce Trade

Obviamente, estas no son todas las variables existentes, pero sí las necesarias para posibilitar la automatización de las siguientes acciones importantes:

  • Desactivar el comercio después de que haya expirado el plazo permitido especificado para el mismo (si no se ha generado uno nuevo durante la configuración actual, el anterior perderá su relevancia).
  • Estilo de negociación (lote simple / aumento gradual del lote del mínimo al máximo dentro de una ventana comercial determinada / disminución gradual del lote del máximo al mínimo dentro de una ventana comercial determinada).
  • Lectura de los ajustes de la carpeta del terminal actual/carpeta compartida del terminal.
  • Posibilidad de seleccionar un subdirectorio.
  • Intervalo para actualizar los ajustes.
  • Inversión de la señal.

Todo esto permite configurar de forma flexible la interacción entre los terminales y el programa de fuerza bruta, y también iniciará un número arbitrariamente grande de terminales y máquinas de fuerza bruta simultáneamente en una máquina, en la medida en que sus capacidades lo permitan. Lo único que ahora debo hacer es asignar a cada gráfico su propio asesor, porque todavía no he creado un receptor universal múltiple, pero eso se encuentra entre nuestros planes. Lo necesitaremos para implementar un comercio mejor y más reflexivo. El lector podrá consultar cómodamente todas las ventajas y desventajas en el esquema siguiente:

Esquema 8.

pros y contras

Como podemos ver, tanto en el asesor-receptor simple como en el avanzado se recomiendan dos sistemas para su implementación:

  • Sistema de sincronización de comercio paralelo.
  • Sistema de optimización del comercio paralelo.

Estos son complementos muy importantes para cualquier algoritmo, ya que pueden mejorar la calidad del comercio paralelo y reducir los costes comerciales. Por ahora estoy pensando en su implementación y planeo ponerlos en funcionamiento un poco más tarde, pero por ahora no tengo los recursos necesarios para ello.

Si hablamos de operar con un solo asesor, entonces todas estas cosas resultarán redundantes, pero si hablamos del funcionamiento paralelo de muchos asesores, inevitablemente surgirá la cuestión de tal complemento. La ventaja de mi enfoque reside en que podemos implementar estos complementos de manera más eficiente, basándonos en la uniformidad de todos los asesores. Esto se aplica tanto a los sistemas externos como a los internos.

Por otra parte, querría decir que el receptor múltiple está diseñado para funcionar en un gráfico sin necesidad de conectarlo a cada instrumento. La única desventaja de un asesor de este tipo es que resulta más difícil de personalizar para cada instrumento específico, pero aún así tiene muchas más ventajas que desventajas. Quizás en uno de los siguientes artículos me detenga más en estos sistemas, al describir los detalles técnicos de las innovaciones que he podido introducir durante el tiempo que no escribía artículos.


Asesor para la recopilación dinámica de cotizaciones.

Antes, tenía un asesor simple que creaba archivos de texto que debían abrirse manualmente en el programa. Obviamente, después de un tiempo, estos datos pierden su relevancia y, para garantizar el funcionamiento de todos los esquemas mencionados anteriormente, necesitaremos tener acceso a cotizaciones nuevas. Para lograr esto, todo lo que hice fue crear un asesor que escriba constantemente los datos en la carpeta compartida del terminal. Y para compilar los conjuntos de instrumentos y periodos comerciados, decidí añadir las listas correspondientes a la configuración del propio programa:

Esquema 9.

actualizando las cotizaciones nuevas

Con esta técnica, podemos configurar cada navegador para que tenga su propio conjunto único de herramientas-periodos sin la necesidad de duplicar los datos en varias carpetas. En este caso, para comerciar con cualquier número de terminales comerciales, solo necesitaremos un terminal, que será la fuente de cotizaciones. Si establecemos intervalos de análisis de años, las posibles pausas y retrasos en la actualización de los datos resultarán insignificantes. Además, el sistema al completo se basa en el paradigma por barras, así que todo esto resulta extremadamente fiable y resistente a casi cualquier situación de emergencia. El presente bot tiene solo algunos ajustes:

input bool CommonE=true;//Common Folder/Terminal Folder
input double YearsE=10.0;//Years Of History Data
input int MinutesForNew=2;//Rewrite Timeout In Minutes

Este asesor escribe en la carpeta común de todos los terminales o en la propia carpeta del terminal actual. Concretamente, escribe los últimos años de la historia, que indicaremos partiendo del tiempo actual del terminal y retrocediendo en la historia. El asesor escribe después de un tiempo de espera específico, indicado en minutos. Este ha sido el último elemento de toda lógica. La parte más difícil ya ha quedado atrás, solo nos queda implementar un asesor-receptor que funcione en el mismo gráfico. Ya hemos creado algunas de las funciones para su implementación, por ahora, solo la mitad.


Conclusión

En este artículo, he querido alejarme de la parte técnica habitual y he tratado de enfocar el problema del trading rentable desde un ángulo ligeramente diferente, utilizando mi propia experiencia. Como podemos ver, además de los propios asesores, que suponen solo una pequeña parte del proceso de obtención de beneficios, existen muchas sutilezas y matices que pueden ayudarnos o dificultarnos la obtención de beneficios. Al final ha resultado muy curioso que los resultados disten tanto de lo que pretendíamos al principio.

Por el camino hemos tenido que ir adaptando poco a poco la idea original a la realidad, lo cual ha supuesto un proceso completamente incontrolable, pero más bien espontáneo e inevitable. Como resultado, hemos encontrado la manera correcta de salir del laberinto teórico, que inevitablemente solo se puede encontrar en el plano práctico. Y eso implica la aparición de más robots, más señales, más computadoras y más automatización. Me gustaría que este artículo sirviera al menos como una especie de impulso para muchos teóricos y buscadores del Grial: siempre es posible encontrar una salida alternativa. En el próximo artículo, veremos con detalle qué complementos ha adquirido mi sistema. Sin embargo, todavía queda mucho trabajo por hacer.

Podrá ver todas las señales disponibles actualmente aquí. No hemos mostrado todas en el artículo, solo las más importantes. Veremos más y de mejor calidad a medida que obtengamos herramientas y recursos adicionales. Como resultado, comprobaremos si podemos desarrollar un grupo de señales estables y resistentes. En cuanto a los asesores generados automáticamente, todos han sido publicados en mi canal público de Telegram. Por ahora, su calidad coincide con la capacidad mínima a mi disposición, pero más adelante, a medida que las capacidades se amplíen, veremos un aumento tanto en variedad como en calidad.

Enlaces

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/12446

Redes neuronales: así de sencillo (Parte 50): Soft Actor-Critic (optimización de modelos) Redes neuronales: así de sencillo (Parte 50): Soft Actor-Critic (optimización de modelos)
En el artículo anterior, implementamos el algoritmo Soft Actor-Critic (SAC), pero no pudimos entrenar un modelo rentable. En esta ocasión, optimizaremos el modelo creado previamente para obtener los resultados deseados en su rendimiento.
El modelo de movimiento de precios y sus principales disposiciones (Parte 3): Cálculo de parámetros óptimos en el juego bursátil El modelo de movimiento de precios y sus principales disposiciones (Parte 3): Cálculo de parámetros óptimos en el juego bursátil
En el marco del presente enfoque de ingeniería desarrollado por el autor, basado en la teoría de la probabilidad, se encuentran las condiciones para abrir una posición rentable, y también se calculan los valores óptimos (que maximizan las ganancias) para el stop loss y el take profit.
Estructuras en MQL5 y métodos para imprimir sus datos Estructuras en MQL5 y métodos para imprimir sus datos
En este artículo veremos las estructuras MqlDateTime, MqlTick, MqlRates, MqlBookInfo y los métodos para imprimir datos desde estas estructuras. Para imprimir todos los campos de una estructura, existe la función estándar ArrayPrint(), que muestra en un cómodo formato tabular los datos contenidos en un array con el tipo de estructura que se está procesando.
Transformada discreta de Hartley Transformada discreta de Hartley
En este artículo nos familiarizaremos con uno de los métodos de análisis espectral y de procesamiento de señales: la transformada discreta de Hartley. Con ella podremos filtrar señales, analizar su espectro y mucho más. Las capacidades de la DHT no son inferiores a las de la transformada discreta de Fourier. Sin embargo, a diferencia de este, la DHT utiliza solo números reales, lo cual la hace más cómoda de implementar en la práctica y los resultados de su aplicación resultan más visuales.