Discusión sobre el artículo "Optimización controlable: el método del recocido" - página 2

 
MetaQuotes Software Corp.:

Nuevo artículo Optimización controlada: Simulated annealing ha sido publicado:

Autor: Aleksey Zinovik

Todavía no he empezado a trabajar con mt5 pero supongo que (puede que con algunos cambios y/o compilación condicional) podré usar esto en el probador de estrategias de mt4 también.

La optimización genética de la mt4 tiene un pequeño problema que también puede existir para mt5 también y puede ser también para su enfoque.

Si compruebo en OnInit() el conjunto de parámetros y encuentro que un conjunto actual no merece ser comprobado, regreso de OnInit() con INIT_PARAMETERS_INCORRECT. La optimización no se realiza lo que ahorra tiempo, ok - pero:

  1. el algoritmo genético del mt4 considera esto como una pasada válida
  2. por lo que aumenta el contador de modo que
  3. el algoritmo genético se detiene mucho antes de lo que debería (creo que su criterio para detenerse es una mezcla de número de ejecuciones y el cambio del valor objetivo).

¿Has tenido cuidado de esta situación: ¿Vuelve de OnInit() a pesar de que no hay error (como: archivo no encontrado,..) sólo porque la configuración de parámetros no debe ser probado que en este caso no debería aumentar el número y disminuir la temperatura?

¡De todas formas gracias por este interesante artículo!

Gooly

 
Carl Schreiber:

Todavía no he empezado a trabajar con mt5 pero supongo que (puede ser con algunos cambios y/o compilación condicional) podré usar esto en el probador de estrategias de mt4 también.

La optimización genética de la mt4 tiene un pequeño problema que también puede existir para mt5 también y puede ser así para su enfoque.

Si compruebo en OnInit() el conjunto de parámetros y encuentro que un conjunto actual no merece ser comprobado, regreso de OnInit() con INIT_PARAMETERS_INCORRECT. La optimización no se realiza lo que ahorra tiempo, ok - pero:

  1. el algoritmo genético del mt4 considera esto como una pasada válida
  2. por lo que aumenta el contador de modo que
  3. el algoritmo genético se detiene mucho antes de lo que debería (creo que su criterio para detenerse es una mezcla de número de ejecuciones y el cambio del valor objetivo).

¿Has tenido cuidado de esta situación: ¿Devolver de OnInit() a pesar de que no hay error (como: archivo no encontrado,..) sólo porque la configuración de parámetros no debe ser probado que en este caso no debería aumentar el número y disminuir la temperatura?

¡De todos modos gracias por este interesante artículo!

Gooly

No compruebo la corrección de los parámetros y no interrumpo la función OnInit() si los parámetros no son correctos. En la función OnTesterInit(), los parámetros cuyos valores necesitan ser optimizados usando el Probador de Estrategias son deshabilitados de la optimización. En cada nueva iteración, los parámetros se leen del archivo, en la función OnTester(), los nuevos valores de los parámetros se escriben en el archivo. Esto hace que sea posible no utilizar los valores de los parámetros generados por el probador de Estrategia, para emitir independientemente los parámetros necesarios a la función OnInit().
Lo siento por mi Inglés
 
Aleksey Zinovik:
No compruebo la corrección de los parámetros y no interrumpo la función OnInit() si los parámetros no son correctos. En la función OnTesterInit(), los parámetros cuyos valores necesitan ser optimizados usando el Probador de Estrategias son deshabilitados de la optimización. En cada nueva iteración, los parámetros se leen del archivo, en la función OnTester(), los nuevos valores de los parámetros se escriben en el archivo. Esto hace que sea posible no utilizar los valores de los parámetros generados por el probador de Estrategia, para emitir independientemente los parámetros necesarios a la función OnInit().
Lo siento por mi Inglés

Ahora entiendo - ¡gracias! Sólo tengo que comprobar la plausibilidad de la configuración de parámetros de la siguiente iteración justo antes de esta configuración se escribe en el archivo para la siguiente ejecución. ¡Así que de esta manera "mi problema" se puede evitar!

Gracias por esta idea y por el artículo.

 

Hola ,

Usted ha dicho '' los inconvenientes se pueden eliminar desarrollando un módulo universal, que incluiría varios algoritmos para optimizar los parámetros expertos''.

¿Puede dar más detalles sobre el módulo universal? ¿Cuáles son los otros algoritmos para optimizar los parámetros expertos?

 
nevar:

Hola ,

Dijiste '' los inconvenientes pueden eliminarse desarrollando un módulo universal, que incluiría varios algoritmos para optimizar los parámetros expertos''.

¿Puede dar más detalles sobre el módulo universal? ¿Cuáles son los otros algoritmos para optimizar los parámetros de expertos?

El artículo muestra cómo conectar un nuevo algoritmo de optimización al comprobador de estrategias. Del mismo modo, añadiendo nuevos métodos a una clase AnnealingMethod.mqh o creando una nueva clase, se pueden conectar otros algoritmos, por ejemplo, algoritmos de hormigas (Ant colony optimization). Tengo la intención de probar el trabajo de tales algoritmos y compartir los resultados.