Discusión sobre el artículo "Gestión de la optimización (Parte I): Creando una interfaz gráfica"

 

Artículo publicado Gestión de la optimización (Parte I): Creando una interfaz gráfica:

Este artículo describe el proceso de la creación de una extensión para el terminal MetaTrader. La solución propuesta ayuda a automatizar el proceso de de la optimización iniciando la optimización en otros terminales. Basándose en el presente artículo, serán escritos algunos artículos más, que conciernen a este tema. La extensión está escrita usando el lenguaje C# y las plantillas de programación, lo que demuestra adicionalmente la capacidad del terminal para expandir las posibilidades diseñadas inicialmente en él a través del desarrollo de sus propios módulos, así como, demuestra la facilidad de crear las interfaces gráficas personalizadas usando el lenguaje con una funcionalidad más conveniente para eso.

Para poder trabajar con el proyecto, primero, es necesario instalar Visual Studio IDE (Integrated Development Environment) en el ordenador. Este proyecto fue creado usando la versión Community de 2019. Durante la instalación de Visual Studio, hay que instalar adicionalmente .Net 4.6.1, que se usaba para escribir esta extensión. Además, para que los lectores sin conocimientos suficientes de C# puedan llegar rápidamente al fondo de la cuestión, intentaré describir en detalle algunos momentos específicos de este lenguaje y las técnicas que utilizaba durante la programación.

Puesto que la manera más conveniente de crear una interfaz gráfica es usar el lenguaje C#, y el terminal MetaTrader soporta el método conveniente para aplicar este lenguaje, merece la pena de aprovechar de esta posibilidad.. Recientemente, unos cuantos artículos relacionados con la creación de una interfaz gráfica usando C# fueron publicados en la web. Estos artículos demuestran bien el método de la creación de interfaces gráficas a base de la tecnología Win Forms y la biblioteca dll de conexión que inicia la gráfica usando los mecanismos de reflexión. La solución usada por el autor de estos artículos eera bastante buena, pero para este artículo decidí usar una versión más moderna para escribir las interfaces gráficas, es decir, usando la tecnología WPF.

Como resultado, conseguí prescindir de la biblioteca de la conexión, colocando todo en la única biblioteca dll. Para solucionar la tarea planteada, necesitamos crear un tipo del proyecto que nos permita almacenar los objetos gráficos descritos con el uso de la tecnología WPF. El proyecto debe compilarse en una biblioteca dinámica (archivo *.dll), que podría ser cargado luego en el terminal. Este tipo del proyecto ya existe: WpfCustomControlLibrary. Este tipo de proyectos fue desarrollado especialmente para crear interfaces gráficas de los objetos. De ejemplo, puede servir la biblioteca que dibuja los gráficos. Nosotros vamos a usarla para nuestros propósitos, a saber, para crear nuestra extensión para el terminal MetaTrader. Para crear este proyecto, es necesario seleccionarlo de la lista de proyectos en IDEVisual Studio, tal como se muestra en la captura de pantalla:

Autor: Andrey Azatskiy

[Eliminado]  

¿Puedo hacerte una pregunta?

¿Qué sentido tiene esto?

¿Qué te impide lanzar sólo dos terminales y ejecutar la optimización en ellos?

Ambos terminales acceden a los mismos agentes. No puedes esperar ninguna ganancia de velocidad.

¿Qué sentido tiene?

 
Сергей Таболин:

¿Puedo hacerle una pregunta?

¿Qué sentido tiene esto?

¿Qué te impide lanzar sólo dos terminales y ejecutar la optimización en ellos?

Ambos terminales acceden a los mismos agentes. No cabe esperar ninguna ganancia de velocidad.

¿Qué sentido tiene?

El punto no está en la velocidad, sino en tener esa posibilidad. Por ejemplo, tengo expertos que en esencia combinan varias lógicas, si haces la búsqueda como de costumbre, entonces algunos de los resultados serán con lógica mixta y por lo tanto no se deben tener en cuenta.
La segunda razón es la gestión de la optimización (rolling optimisation), este será el tema de uno de los próximos artículos.

Además, después de la optimización, los informes de ambas optimizaciones se almacenan en un solo lugar, lo que es conveniente para trabajar con ellos.

 
Estaba tratando de hacer un sistema similar, pero la idea era programar optimizaciones y a medida que se fueran terminando la terminal guardaría la optimización en .csv con un nombre proyectado, por ejemplo: EA_XXX_v01_EURUSD_H1_OHLC_SET01
Y posteriormente pasaría a la siguiente optimización programada, los SETs deberían guardarse en una carpeta, de esta forma optimizaría varios robots durante el día en varios periodos y símbolos diferentes, incluso facilitando un WFA u OOS.
Lamentablemente no pude desarrollarlo debido a mis pocos conocimientos, seguiré tu trabajo. ¡¡¡Enhorabuena!!!
 
Joao Luiz Sa Marchioro:
Estaba tratando de hacer un sistema similar, pero la idea era programar optimizaciones y a medida que se fueran terminando la terminal guardaría la optimización en .csv con un nombre proyectado, por ejemplo: EA_XXX_v01_EURUSD_H1_OHLC_SET01
Y posteriormente se pasaría a la siguiente optimización programada, los SETs deberían guardarse en una carpeta, de esta forma se optimizarían varios robots a lo largo del día en varios periodos y símbolos diferentes, incluso facilitando un WFA u OOS.
Lamentablemente no pude desarrollarlo debido a mis pocos conocimientos, seguiré tu trabajo. ¡¡¡Enhorabuena!!!

Gracias Luiz. Ahora estoy trabajando en el proyecto como se ha descrito y pronto habrá un artículo al respecto.

 

¡Hola!

¿Puedo haceros una pregunta?

Se puede utilizar la versión Community 2015?

 
Irina Dymura:

¡Hola!

¿Puedo hacerte una pregunta?

Se puede utilizar la versión Community 2015?

Hola, creo que sí.

 
Gracias...
 
Resources.resx

El archivo no se encuentra en el paquete zip.

Sin embargo, se puede encontrar aquí

https://www.mql5.com/ru/articles/download/7029.zip


Por lo demás, ¡muy buen artículo!

Una posibilidad de iniciar la MT5 externamente y realizar pruebas

 
Saludos y gracias de nuevo por vuestro útil trabajo. Finalizar el proceso mediante el registro de datos en un archivo dox, xcl o csv sería muy útil, por favor.
Gracias de nuevo.
 
Patrick Johnson:
Saludos y gracias de nuevo por vuestro útil trabajo. Finalizar el proceso mediante el registro de datos en un archivo dox, xcl o csv sería muy útil, por favor.
Gracias de nuevo.

Desafortunadamente este proyecto ya no es compatible. Ahora estoy trabajando en el walk forward auto optimiser (https://www.mql5.com/es/articles/7583)

Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
Continuous Walk-Forward Optimization (Part 5): Auto Optimizer project overview and creation of a GUI
  • www.mql5.com
In the previous articles, we considered the project part directly related to the terminal as well as the part describing the general application of the project. The previous article was ahead of the rest of the series. This was done for two reasons. Firstly, it serves as an instruction for using the application. Secondly, it illustrates the app...