Pregunta sobre la optimización genética

 

Decidí empezar a optimizar el TS, pero como hay muchos parámetros que optimizar - 13, y el TS está diseñado para M1 y no hay más de 10 operaciones por mes, decidí usar el algoritmo genético y tomar el historial durante 1 mes.

En la primera ejecución, el tiempo calculado fue de más de 250 horas y el número de combinaciones de más de 83.000 millones. En el artículo "Algoritmos genéticos en MetaTrader 4. A Comparison with the Optimizer's Direct Search" afirma que no debemos centrarnos en el tiempo calculado ya que no se corresponde con la realidad en la optimización genética, pero el artículo fue escrito hace tiempo, ¿quizás las últimas builds de MT4 ya se corresponden con él? ¿Debo esperar? No esperaba problemas de optimización cuando creé el TS, pero resulta que el TS parece ser bueno, pero no puedo configurarlo manualmente, hay demasiados parámetros y pequeños cambios en ellos conducen a la reestructuración significativa del sistema.

¿Puede decirme también qué significan las cifras de la esquina inferior izquierda: la primera es el número de ejecuciones, entre paréntesis - el número de combinaciones, y qué hay entre ellas bajo / ?

 
Angela >> :

Decidí empezar a optimizar el TS, pero como hay muchos parámetros que optimizar - 13, y el TS está diseñado para M1 y no hay más de 10 operaciones por mes, decidí usar el algoritmo genético y tomar el historial durante 1 mes.

En la primera ejecución, el tiempo calculado fue de más de 250 horas y el número de combinaciones de más de 83.000 millones. En el artículo "Algoritmos genéticos en MetaTrader 4. A Comparison with the Optimizer's Direct Search" afirma que no debemos centrarnos en el tiempo calculado; no se corresponde con la realidad en la optimización genética, pero el artículo fue escrito hace tiempo, ¿quizás las últimas builds de MT4 ya se corresponden con él? ¿Debo esperar? No esperaba problemas de optimización cuando creé el TS, pero resulta que el TS parece ser bueno, pero no puedo configurarlo manualmente, hay demasiados parámetros y pequeños cambios en ellos conducen a la reestructuración significativa del sistema.

Por favor, dígame también qué significan los números en la esquina inferior izquierda: el primer número es el número de carreras, entre paréntesis - el número de combinaciones, y qué hay entre ellos bajo / ?

Los números en genética significan el número de combinaciones / combinaciones en genética.

Es una especie de autopromoción para demostrar lo buenos MetaQuotesters que somos y el tiempo que podemos ahorrar gracias a la genética.

\Hay muchos parámetros que optimizar. Aconsejo dividir los parámetros en pares y en tríos,

(aquí tendrás que pensar qué está emparejado con qué) y hacer la selección por pasos.

Es más cómodo ver así un gráfico de optimización bidimensional.

En general, la genética recoge máximos dispersos y sigue siendo mejor hacer una búsqueda simple.

Personalmente uso la genética para encontrar un área local donde ya hago una búsqueda completa.

 
Urain писал(а) >>

En genética, los números se refieren al número de cuotas/cuotas en genética (el número de muestreo directo).

Esta es una especie de autopublicidad para mostrar lo geniales que somos como MetaQuotesters y el tiempo que te ahorramos gracias a la genética.

\Hay muchos parámetros que optimizar. Aconsejo dividir los parámetros en pares y tríos,

(tendrás que pensar qué está emparejado con qué) y hacer la selección por pasos.

Es más cómodo ver así un gráfico de optimización bidimensional.

En general, la genética recoge máximos dispersos y sigue siendo mejor hacer una búsqueda simple.

Personalmente uso la genética para buscar un área local que luego utilizaría para hacer una búsqueda de fuerza bruta.

El problema es que la mayoría de los parámetros de optimización están relacionados entre sí por medio de retroalimentación y el cambio de uno provoca la reestructuración de varios otros y el panorama cambia. La estrategia está diseñada de forma que se busque el óptimo en todo el hiperplano de los parámetros utilizados. Así que probablemente tendré que abandonar esta estrategia, aunque es una pena por supuesto, ejecutándola en el historial desde el 1.01.2007 hasta ahora incluso sin optimización el TS ha mostrado estabilidad, al menos no ha caído a cero, aunque está diseñada para la sobreoptimización semanal. En los últimos dos años ha habido altibajos cíclicos.

Iré a desestresarme, y empezaré a elaborar una nueva estrategia.

 
En la apertura de la barra, intenta optimizar
 
83.000 millones de euros pueden llevarle al lugar equivocado. Según tengo entendido, un probador, si el número total de ejecuciones supera un determinado número (y el suyo ciertamente lo hace) en genética no hace más de 10.000 ejecuciones. Es decir, el probador puede, después de obtener resultados positivos en algún lugar del enorme espacio de variantes, comenzar a cruzar a estos resultados, y puede simplemente no tener tiempo para mirar los resultados realmente buenos... Debería intentar aumentar el paso de los parámetros. Entonces habrá menos opciones. Y luego, tras una primera aproximación, considerar el área de mayor interés con más detalle.
 
Angela >> :

El problema es que la mayoría de los parámetros de optimización están relacionados entre sí por medio de retroalimentación, y el cambio de uno lleva a reordenar algunos de los otros y el panorama cambia.

En general, esto está bien. Así, a través de un gráfico de optimización bidimensional se puede identificar la correlación y deletrearla a través de un coeficiente en el código.

excluir por completo un término de optimización. Por ejemplo, te das cuenta de que los valores máximos de un gráfico 2D son diagonales.

Esto significa que puedes hacer depender un parámetro en el código ( x2 = x1 + 3 )y optimizar sólo x1. Buena suerte.

 

No quería esperar a que terminara la optimización, así que la desactivé. Aunque TS es estable y muestra buenos resultados en las operaciones rentables, pero esperar durante semanas para la optimización es demasiado.

Por ejemplo, este es el intervalo que se muestra en el gráfico anterior, pero en los dos últimos meses.

Además, tengo una optimización separada de Compra y Venta. Además, hay muy pocas ofertas y por culpa de la mala Internet contaba con apagar mi sistema de comercio por la noche, mientras que podía esperar 2-3 semanas esperando a que se hicieran las ofertas.

Así que ayer eliminé el estrés y empecé a desarrollar nuevas TS. Voy a hacer más simple y 390 líneas de código con las condiciones lógicas es demasiado, y los frenos fuertemente, las pruebas por los precios de apertura desde 2007 tomó 4,5 horas. Además, en un mes, yo mismo no voy a entender lo que está en estas condiciones lógicas nakochelya.

 
Angela >> :

Además, dentro de un mes ni siquiera sabré lo que he hecho en estas condiciones lógicas.

Escriba comentarios detallados. ;-). Dado que el TS es descartado, puede ser publicado en codebase como una advertencia, tal vez se puede hacer la refactorización.

 

Hacer una nueva versión del TS. Hice un bloque, y antes de continuar decidí optimizar algunos parámetros, para poder seguir afinando con ajustes iniciales más o menos óptimos. He optimizado 7 parámetros, el tiempo estimado de optimización - 106 horas, aunque después de la ejecución de la optimización aumenta poco a poco, el número de combinaciones - 44.274.384, el número estimado de ejecuciones - 10.496. Inicialmente, he establecido el historial para 1 mes, la optimización comenzó, los resultados de las ejecuciones deoptimización comenzaron a aparecer en la ventana de "resultados de optimización". Conseguí 186 ofertas durante un mes. Decidí reducir el historial a la mitad para acelerar la optimización, después del lanzamiento el tiempo era de 57 horas, pero en las ventanas "resultados de optimización" y "programa de optimización" no aparecía nada, ¿cuál es el problema?

 
Angela >> :

Hacer una nueva versión del TS. Hice un bloque, y antes de continuar decidí optimizar algunos parámetros, para poder seguir afinando con ajustes iniciales más o menos óptimos. He optimizado 7 parámetros, el tiempo estimado de optimización - 106 horas, aunque después de la ejecución de la optimización aumenta poco a poco, el número de combinaciones - 44.274.384, el número estimado de ejecuciones - 10.496. Inicialmente, he establecido el historial para 1 mes, la optimización comenzó, los resultados de las ejecuciones comenzaron a aparecer en la ventana "resultados de la optimización". Conseguí 186 ofertas durante un mes. Decidí reducir el historial a la mitad para acelerar la optimización, después de ejecutar el robot durante 57 horas, pero las ventanas "resultados de optimización" y "programa de optimización" no muestran nada, ¿cuál es el problema?

1 Los parámetros de la ventana de "Optimización" están probablemente fijados en las restricciones, que ninguna ejecución ha superado,

Si no hay un umbral ganador, significa que no hay nada que elegir. Deje una marca de verificación junto a "Beneficio máximo",

Si al menos una carrera supera la barrera y da al menos algún beneficio, se mostrará.


2 Si no puede reducir el número de parámetros optimizados al mismo tiempo, aumente el paso.

Y después de ver el resultado (en el campo de lo que los valores) ejecutar con un paso más pequeño.

Por ejemplo: Per { inicio, paso, fin}

Si x1 {10,10,100}, como resultado, veremos un racimo oscuro en x1 de 60 a 80.

Haga una segunda ejecución con los parámetros x1 {60,1,80} y encuentre el óptimo.

(Cuando hablo de un gráfico, me refiero a uno dimensional).

 
Angela >> :

>> ¿Cuál es el problema?

Quién sabe, los milagros ocurren. Normalmente, antes de ejecutarlo para su optimización, hago ejecuciones visuales con los parámetros previstos, mostrando los datos máximos requeridos en el comentario. Consigo ver muchas cosas interesantes a la vez, así como al revisar el registro. Historial erróneo, errores de los indicadores, errores de los Asesores Expertos, etc. Una vez eliminados, hay más confianza en la precisión de la optimización.

Razón de la queja: