Discusión sobre el artículo "Optimización móvil continua (Parte 8): Mejorando el programa y corrigiendo los errores encontrados"

 

Artículo publicado Optimización móvil continua (Parte 8): Mejorando el programa y corrigiendo los errores encontrados:

A petición de los usuarios y lectores del presente ciclo de artículos, el programa ha sido modificado, y ahora podemos decir que el este artículo contiene la nueva versión del autooptimizador. Asimismo, hemos introducido en el autooptimizador tanto las mejoras solicitadas, como algunas nuevas cuya idea surgió durante la corrección del programa.

En la anterior versión del programa solo se podían introducir las fechas por fases para las optimizaciones históricas y futuras, lo cual resultaba inconveniente, y ante solicitudes repetidas, implementamos la funcionalidad para la automatización de la introducción de los intervalos de tiempo necesarios. Podemos describir los detalles de esta idea de la forma siguiente. Necesitamos dividir automáticamente el intervalo temporal seleccionado en las fechas para las optimizaciones históricas y futuras. El salto de ambos tipos de optimización es fijo y se establece antes de comenzar la división en intervalos. Cada nuevo intervalo de fechas hacia el futuro debe comenzar al día siguiente, en relación con el intervalo anterior. El desplazamiento de los intervalos históricos (que se superponen) es igual al salto de las ventanas hacia el futuro. Las optimizaciones en tiempo real, a diferencia de las históricas, no se superponen, sino que forman una historia comercial continua. 

Para llevar la tarea a cabo, hemos decidido mover esta funcionalidad a una ventana gráfica aparte, haciéndola lo más independiente posible y no directamente compatible con la interfaz principal. Como resultado, hemos obtenido la siguiente jerarquía de objetos.

 


Vamos a analiz

Autor: Andrey Azatskiy

 

No esperaba que continuara el desarrollo. La compatibilidad con varias herramientas es genial. Me sorprende que no haya comentarios. Supongo que la culpa es de la complejidad del artículo. He tardado una semana en leerlo. No mucha gente tiene tal nivel de formación en C# y OOP como tú. Aquellos que sean capaces de entender lo que aquí se escribe podrán completar el programa por sí mismos. En cualquier caso, acepte mi agradecimiento por su trabajo. Con semejante mano de obra puedes escribir tu propio tester y sacarlo al mercado. Probablemente lo compraría. Probaré el trabajo del optimizador y compartiré mis impresiones aquí. Muchas gracias.

 
Good Beer:

No esperaba que continuara el desarrollo. La compatibilidad con varias herramientas es genial. Me sorprende que no haya comentarios. Supongo que la culpa es de la complejidad del artículo. He tardado una semana en leerlo. No mucha gente tiene tal nivel de formación en C# y OOP como tú. Aquellos que sean capaces de entender lo que aquí se escribe podrán completar el programa por sí mismos. En cualquier caso, acepte mi agradecimiento por su trabajo. Con semejante mano de obra puedes escribir tu propio tester y sacarlo al mercado. Probablemente lo compraría. Probaré el trabajo del optimizador y compartiré mis impresiones aquí. Muchas gracias.

Gracias por una crítica tan halagadora, pero yo mismo tengo mucho a lo que aspirar en el campo de la programación y el comercio, así que no alabes en exceso) Espero que el programa sea útil.

 

Hola de nuevo! No te estoy alabando en absoluto, sino como insinuando suavemente que tu gran trabajo estaría bien complementado por una versión abreviada en kodobase en forma de un manual limpio y un archivo con una aplicación compilada. Y para los que quieran implicarse en el trabajo: estos artículos. Quien pueda entenderlos podría escribir un programa de este tipo...... Habría una respuesta entre las masas, porque en potencial es el mejor optimizador de avance entre los presentados en MQL5.
Ahora, sobre la realización del potencial: ¡Autoset no funciona! O mejor dicho, no funciona correctamente. En Metatrader, la fecha Hasta no participa en la optimización, y la prueba a plazo debe comenzar directamente a partir de esta fecha del período de prueba. La fecha De del siguiente forward debe coincidir con la fecha Hasta del anterior. Lo mismo ocurre con el periodo de optimización.
Por ejemplo, realizamos la prueba en marzo de 2020. El establecimiento de la fecha de inicio es un tema aparte. En la versión actual, al establecer 4 semanas de marzo y una semana de febrero, esperaba obtener dos periodos hacia adelante con un desglose de 3 semanas (21 días) - periodo histórico y 1 semana (7 días) - periodo hacia adelante. Todo ello de lunes a lunes.

autoset
Resultó: el primero era correcto - de lunes a lunes. Y entonces: ¡aquí vamos!
Forward comenzó el martes 17 de marzo, mientras que debería haber sido el lunes 16! El próximo forwаd - período habría comenzado el miércoles 25 de marzo, si el rango permitido. Y el próximo Nystory comienza el 17 de marzo, aunque el último día en el período anterior fue el 15 de marzo (16 no está involucrado).

periodos

¿No has utilizado tu Autoset?
Y un poco sobre el establecimiento de la fecha de inicio. En futuros, el historial es probablemente limitado, pero en forex hay suficiente historial para hacer pruebas. Por lo tanto, ¿por qué romper el cerebro con la definición de la primera fecha? Tal vez deberíamos establecer el período de cobertura completa por los forwards, y las fechas Histoty se determinaría automáticamente. Por ejemplo, en mi ejemplo obtendríamos 5 periodos forward (si Autoset funciona correctamente) y la primera fecha Histoty sería el 3 de febrero.
Espero con impaciencia el parche. Hasta entonces, introduciré los periodos manualmente, probablemente tendré tiempo.

 

Escribí los periodos manualmente y lo ejecuté. Ha vuelto a fallar. ¿Es correcto teclear los puntos de esta manera o es necesaria una alternancia estricta?

periodos de prueba

No hay nada en la pestaña de resultados del optimizador: ni forward ni history. El Asesor Experto registró tres optimizaciones históricas para cada activo. No había forwards, aunque el optimizador parecía contarlos. Esta ventana aparecía de vez en cuando:

ventana

Después de la optimización, el nombre del conjunto de optimizaciones aparece en la esquina superior izquierda (Ventana de optimización), pero al hacer clic en el botón Load bot params, la ventana aparecía:

ventana 2

Había pausas de unos 30 segundos entre los pasos de optimización. Especialmente cuando la barra de progreso llega al final. Esto consume mucho tiempo en total.

 
A propósito del autocompletado, he caído en la cuenta: ¡ahí está el tiempo! Al principio no me di cuenta. ¿Por qué las 12:00? Debería ser 0-00. Así que la fecha Till está incluida en la prueba. Y no se puede cambiar. ¡Es lo mismo con el llenado manual!
 
Good Beer:
A propósito del autocompletado, he caído en la cuenta: ¡ahí está el tiempo! Al principio no me di cuenta. ¿Por qué las 12:00? Debería ser 0-00. Así que la fecha Till está incluida en la prueba. Y no se puede cambiar. ¡Es lo mismo con el llenado manual!

Así es, ocurre porque las fechas se cuentan de 00:00 a 0:00.
En cuanto al hecho de que el forward no empieza desde el último día del historial, sino que se adelanta un día, es lógico que no retroceda un día para operar el forward, ¿verdad? Todavía no se ha inventado la máquina del tiempo, pero es una pena)
En cuanto al error de que no hay datos para crear - ¿está seguro de que ha conectado la descarga automática y la generación de informes en el Asesor Experto? Aquí hay dos opciones, o no has incluido en el código del EA la funcionalidad de descarga automática y generación de informes, o los resultados de trading del EA no han pasado los filtros de optimización que has establecido.

 
Los periodos se pueden escribir incluso dispersos o en orden, no afecta al proceso, se clasifican por sí mismos en orden. Si usted está interesado en ver la lógica, puedo sugerir métodos responsables de la clasificación de los períodos y para el llenado automático de las fechas de optimización.
 
En cuanto a la configuración de la hora de optimización (es decir, no sólo el año sino también la hora), se trata de una limitación de la plataforma. Mira la descripción de la creación de un archivo de configuración, sección [Tester], los campos "FromDate", "ToDate" - el formato del valor aceptado "YYYYYY.MM.DD".

Y para eliminar la fecha "Desde", ciertamente no voy a ser, ya que es conveniente y necesario para bien para limitar el intervalo.
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 

Hola, su serie de artículos fueron muy útiles, no soy bueno en c # así que estoy tratando de aprender de sus lecciones

He descargado los archivos adjuntos de la Parte 4 a 7, pero no puedo construir el "Metatrade Auto Optimiser" proyecto. tengo error como la imagen:


Archivos adjuntosde la Parte 8 que es mi primera vez viendo la interfaz desu programa, que tuvo éxito en el lanzamiento de mt5 cuando el modo de optimización está desactivado, y wwhen i encenderlo como esta imagen me dio error



por favor ayudenme a solucionarlo gracias

 
Andrey Azatskiy:

Así es, sucede porque las fechas se cuentan de 00:00 a 0:00.
Y en cuanto al hecho de que el forward no empieza desde el último día de la historia, sino que se adelanta un día, entonces todo es lógico, ¿no se va a retroceder un día para operar el forward? Todavía no se ha inventado la máquina del tiempo, pero es una pena).

Usted ha entendido mal. Es su tiempo de optimización de 12-00 a 12-00. Y no puedo encontrar en cualquier lugar para cambiar eso.

periodos

Debido a esto perdemos 12 horas del primer dia de la historia y nos optimizan 12 horas para el periodo forward. Debido a esto, el forward es movido un día hacia adelante, porque este día es tomado por el historial.

Como hay 7 días en una semana, el periodo de optimización debe dividirse en siete días. El periodo histórico termina el lunes 0-00 y el forward empieza el lunes 0-00. Resulta que el lunes no probamos sino que hacemos un forward. No hay máquina del tiempo.