Discusión sobre el artículo "Optimización móvil continua (Parte 5): Panorámica del proyecto del optimizador automático, creación de la interfaz gráfica"

 

Artículo publicado Optimización móvil continua (Parte 5): Panorámica del proyecto del optimizador automático, creación de la interfaz gráfica:

Continuamos con la descripción de la optimización móvil en el terminal MetaTrader 5. Tras analizar en los artículos anteriores los métodos de formación del informe de optimización y su método de filtrado, hemos procedido a describir la estructura interna de la aplicación encargada del propio proceso de optimización. El optimizador automático, ejecutado como una aplicación en C#, tiene su propia interfaz gráfica. Este artículo está dedicado precisamente a esta interfaz gráfica.

Vamos a analizar la interfaz gráfica. Antes, mostramos un método para crear una adición a la plataforma MetaTrader 5 en el lenguaje C# y encajar su funcionalidad con el experto con la ayuda de una biblioteca DLL y la llamada de retorno OnTimer; en la presente implementación, hemos tomado la decisión de sacar el optimizador automático del terminal. Ahora, supone (a su manera) un gestor de optimización externo que imita el trabajo del tráder en cuanto al inicio de los procesos de optimización y el procesamiento de los resultados. En este caso, además, renunciando a la optimización simultánea en varios terminales en la misma computadora y sacando el optimizador automático a una aplicación aparte, tenemos a nuestra disposición absolutamente todos los terminales instalados en la computadora, e incluso la propia computadora en la que ha sido iniciado el optimizador. En el proyecto anterior, no podíamos implicar el funcionamiento de esta.

Por eso, el proyecto actual no ha sido escrito al completo en una biblioteca DLL, como lo hicimos antes, sino dividido entre una biblioteca DLL y el archivo ejecutable del proyecto del optimizador automático del que hablamos en el presente artículo.


Como podemos ver por la captura de pantalla mostrada, la ventana del proyecto consta de un Encabezado y un Pie de página, además de un TabControl con dos pestañas: Settings y Reports. La parte del encabezado (al igual que sucede con el pie de página) no cambia sea cual sea la pestaña que seleccionemos en la parte central de la ventana, lo que permite acceder en cualquier momento a todos los elementos de control ubicados en ambos.

Autor: Andrey Azatskiy

 
¿Qué hacer? ¿Cómo optimizar?
 
Dzmitry Adzinets:
¿Qué hacer? ¿Cómo optimizar?

En el artículo #4 - instrucciones sobre cómo optimizar

Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
Непрерывная скользящая оптимизация (Часть 4): Программа для управления оптимизацией (автооптимизатор)
  • www.mql5.com
Продолжая цикл статей про непрерывную скользящую оптимизацию, вашему вниманию представляется созданная программа для осуществления запрограммированной автоматической оптимизации. Ранее написанные статьи описывали детали реализации данной программы как на стороне терминала, так и библиотеки, которая используется для работы с созданными отчетами...
 
Andrei, ¿cuál es la forma correcta de rellenar los campos "APPEND_BOT_PARAM"? ¿Se deben introducir todos los parámetros del Asesor Experto, o sólo los que necesitan ser optimizados en este momento? ¿Y por qué tengo que rellenarlos en el código del Asesor Experto, cuando están disponibles en la ventana principal "Metatrader Auto Optimiser "?
 
Good Beer:
Andrei, ¿cuál es la forma correcta de rellenar los campos "APPEND_BOT_PARAM"? ¿Deben introducirse todos los parámetros del Asesor Experto o sólo aquellos que deben optimizarse en ese momento?

Deben introducirse todos los parámetros del Asesor Experto.

Good Beer:
¿Y por qué se deben rellenar en el código del Asesor Experto, cuando están disponibles en la ventana principal del "Metatrader Auto Optimiser"?

La cuestión es que en la ventana principal de Metatrader Auto Optimiser estos parámetros se toman de (*set) archivo generado por el terminal. Pero en los informes de optimización, donde también se guardan los parámetros del robot, los parámetros los escribe el propio robot en el momento de generar el informe. Si no se introducen estos parámetros, en primer lugar, el autooptimizador no podrá ejecutar una prueba sobre las optimizaciones ya realizadas anteriormente, porque para ejecutar pruebas - toma los parámetros de los archivos del informe de optimización, que como he escrito anteriormente - son generados por el propio robot al final del proceso de optimización. En segundo lugar, habrá problemas en el proceso de optimización, porque habiendo seleccionado el pasaje de acuerdo con los criterios seleccionados, no será capaz de ejecutar la prueba porque no encontrará los parámetros del robot con el que la prueba debe ser ejecutada. O mejor dicho, la prueba se lanzará con toda probabilidad, pero no se lanzará con los parámetros esperados.

 
Andrey Azatskiy:

toma los parámetros exactamente de los archivos de informes de optimización

Probablemente sea aconsejable utilizar opciones alternativas de eficacia probada para obtener esta información.

 
fxsaber:

Probablemente sea prudente utilizar opciones alternativas probadas para obtener esta información.

¿Puedes sugerir algunas alternativas? La cuestión es que el propio robot genera el informe, y decidí no utilizar la carga estándar que hace el terminal por la razón de que quería añadir más datos al informe. En principio, esto se hace una vez, no en cada optimización, por lo que no creo que deba ser muy difícil, pero si hay una forma más cómoda, estoy dispuesto a retocar el código.

 
Andrey Azatskiy:

¿Me podéis sugerir variantes? La cuestión es que el propio robot genera el informe, pero decidí no utilizar la carga estándar que hace el terminal por la razón de que quería añadir más datos al informe. En principio, esto se hace una vez, no en cada optimización, por lo que no creo que deba ser muy difícil, pero si hay una forma más cómoda, estoy dispuesto a ajustar el código.

En KB MTTester.mqh, donde se puede obtener toda la configuración de la EA en cualquier momento. Bueno, y tirar de conjuntos de los resultados de optimización - también.

 
fxsaber:

En el MTTester.mqh KB, donde se puede obtener todos los ajustes de EA en cualquier momento. Bueno, y tirar de conjuntos de los resultados de optimización - también.

Bueno, no necesito sacar sets, cuenta todo por sí mismo, pero te agradezco el mecanismo de automatización de recepción de ajustes, lo estudiaré con calma e intentaré implementarlo en la nueva versión.

 
Andrey Azatskiy:
¿Sugerir variantes?

Bueno, y como opción: conectar mínimamente marcos al Asesor Experto y utilizar FrameInputs().

 
Good Beer:

Bueno, y como opción: conecte mínimamente marcos al Asesor Experto y utilice FrameInputs().

No me gustaría utilizar marcos, pero le agradezco su consejo. Usando la variante actual, sólo una clase está conectada al Asesor Experto, mientras que los marcos son todo un mecanismo con un conjunto de métodos para trabajar con ellos. Además, que yo recuerde sólo admiten tipos de datos primitivos, y yo quería guardar estructuras en archivos, así que decidí usar marcado xml.