¿Puedes repetirlo con una descripción completa de las condiciones y los registros para reproducirlo?
Esa es la cuestión, hemos reescrito radicalmente los mecanismos de caché de resultados y recuentos. Funcionan muy bien y correctamente.
Yo mismo lo he comprobado especialmente ahora:
Inicié la prueba, esperé a que pasara el 10% de la optimización y pulsé stop. A continuación, comienza - comienza con el último resultado del 10%. Fue perfecto.
Ahora he hecho la prueba más difícil. Presionado Stop en el paso 1 para el 70%. He reiniciado el terminal y he pulsado el botón de inicio; la prueba se ha iniciado al 70%. Perfecto.
Lo más probable es que el Asesor Experto haya sido recompilado o que se hayan realizado otros cambios en el entorno del mercado, lo que inevitablemente lleva a un reinicio de la caché.
Optimización de un simple asesor experto en MA. Interrumpido 2 veces y siempre la optimización viene desde el principio.
¿No sería más lógico hacer un botón de "Actualizar" junto a la tabla? Entonces el usuario controlaría él mismo la actualización de la tabla, y todos los problemas desaparecerían.
Y lo que ha eliminado en absoluto - bueno, eso no es una opción en absoluto. Siempre hay una necesidad de controlar los resultados en el proceso de optimización.
Al fin y al cabo, es el usuario quien debe decidir si mira la tabla o no. Si la pestaña con la tabla está minimizada, no debería ordenarse nada.
No, no lo haremos.
Más arriba expliqué por qué sacar 500.000, 1.000.000, 10.000.000, 50.000.000 en una tabla de filas intermedias inútiles para el ojo humano no tiene sentido. Es muy caro técnicamente y completamente inútil.
La ventana del gráfico de optimización está siempre disponible, es más ahorradora de recursos (no requiere recurrir) y permite observar el proceso de optimización en una vista aceptable para el ojo humano.
He olvidado otro punto importante en lo que se hace:
reducción drástica del consumo de memoria del terminal durante las optimizaciones pesadas
Y por cierto, ¿qué algoritmo de ordenación estás utilizando? ¿Por qué es tan lento? Si se añaden elementos a un array ya ordenado, debería ser muy rápido. No depende mucho del tamaño del array.
Texnolog: Optimización de un EA simple. Lo he interrumpido 2 veces y siempre se optimiza desde el principio.
¿Por qué no dijo desde el principio que iba a llevar la genética?
El propio principio de la búsqueda genética se basa en la aleatoriedad, por lo que no tiene sentido "continuar lo que se empezó". Su trabajo es correr al azar.
E incluso entonces se utiliza el caché. Lo que ocurre es que su probabilidad de acertar los resultados calculados previamente es muy baja (tiene un área de búsqueda de 50 millones de variantes). Así que parece un comienzo desde el principio, ya que el punto de partida es aleatorio.
A juzgar por el gráfico el "algoritmo genético" no funciona((((
¿Por qué no adjunta una descripción para su reproducción?
¿No entiendes que una imagen no es una prueba en ausencia total de una descripción? Estás en un foro técnico en el que se discuten cuestiones técnicas.
Intenté construir según sus condiciones:
su media móvil estándar.set
su conjunto de ajustes para 50 millones de pases
; saved on 2018.04.2816:53:11
; this file contains input parameters for testing/optimizing Moving Average expert advisor
; to use it in the strategy tester, click Load in the context menu of the Inputs tab
;
MaximumRisk=0.02||0.02||0.002000||0.200000||Y
DecreaseFactor=3||3||0.300000||30.000000||Y
MovingPeriod=12||12||1||120||Y
MovingShift=6||6||1||60||Y
Servidor MetaQuotes-Demo, EURUSD H1, último año, modo de precios abiertos con genética
corrió la genética
Aquí está el resultado: todo es normal y razonable, el probador funciona, la genética encuentra los resultados correctos
Se puede ver cómo la genética ha entrado en las zonas verdes de mejores resultados y se ha consolidado allí.
Esto hace que algunas líneas sean más oscuras y otras se desvanezcan.
Las líneas grises sólo muestran el uso de los resultados de la caché de las ejecuciones anteriores.
Esto es lo que muestra tu ejemplo (comentario #18) ya en la segunda ejecución:
2018.04.2817:35:56.021 Tester genetic calculation is over
2018.04.2817:35:56.021 Tester result cache used 4515 times
2018.04.2817:35:56.021 Tester genetic optimization finished on pass 11008 (of 49644595)
2018.04.2817:35:56.032 Statistics optimization done in 0 minutes 48 seconds
2018.04.2817:35:56.032 Statistics local 6493 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
En la segunda tirada hubo 11.008 variaciones, y 4.515 pases estaban en la caché de la tirada anterior. 41% de aciertos
En realidad, el probador sólo tuvo que hacer 6.493 nuevas pruebas de un total de 11.008.
En la tercera repetición de la genética, el porcentaje de aciertos en la caché aumentó y ya se utilizaron 6.979 resultados antiguos: el 50% de los aciertos en la caché
2018.04.2817:42:45.720 Tester genetic calculation is over
2018.04.2817:42:45.720 Tester result cache used 6979 times
2018.04.2817:42:45.720 Tester genetic optimization finished on pass 13824 (of 49644595)
2018.04.2817:42:45.731 Statistics optimization done in 0 minutes 50 seconds
2018.04.2817:42:45.731 Statistics local 6845 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
En el cuarto: los golpes de caché al 54%
2018.04.2817:44:37.820 Tester genetic calculation is over
2018.04.2817:44:37.820 Tester result cache used 6047 times
2018.04.2817:44:37.820 Tester genetic optimization finished on pass 11008 (of 49644595)
2018.04.2817:44:37.831 Statistics optimization done in 0 minutes 36 seconds
2018.04.2817:44:37.831 Statistics local 4961 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Así que el caché de resultados funciona correctamente y según lo previsto.
¿Puedes repetirlo con una descripción completa de las condiciones y los registros para reproducirlo?
Esa es la cuestión, hemos reescrito radicalmente los mecanismos de caché de resultados y recuentos. Funcionan muy bien y correctamente.
Yo mismo lo he comprobado especialmente ahora:
Lo más probable es que el Asesor Experto haya sido recompilado o que se hayan realizado otros cambios en el entorno del mercado, lo que inevitablemente lleva a un reinicio de la caché.
¿No sería más lógico hacer un botón de "Actualizar" junto a la tabla? Entonces el usuario controlaría él mismo la actualización de la tabla, y todos los problemas desaparecerían.
Y lo que ha eliminado en absoluto - bueno, eso no es una opción en absoluto. Siempre hay una necesidad de controlar los resultados en el proceso de optimización.
Al fin y al cabo, es el usuario quien debe decidir si mira la tabla o no. Si la pestaña con la tabla está minimizada, no debería ordenarse nada.
No, no lo haremos.
Más arriba expliqué por qué sacar 500.000, 1.000.000, 10.000.000, 50.000.000 en una tabla de filas intermedias inútiles para el ojo humano no tiene sentido. Es muy caro técnicamente y completamente inútil.
La ventana del gráfico de optimización está siempre disponible, es más ahorradora de recursos (no requiere recurrir) y permite observar el proceso de optimización en una vista aceptable para el ojo humano.
He olvidado otro punto importante en lo que se hace:
Y por cierto, ¿qué algoritmo de ordenación estás utilizando? ¿Por qué es tan lento? Si se añaden elementos a un array ya ordenado, debería ser muy rápido. No depende mucho del tamaño del array.
...
Se ha olvidado otro punto importante de lo que se hace:
Gracias, interesante. Haremos pruebas.
Por favor, considere cualquier idea de este artículo para el desarrollo posterior del probador:Visualización de los resultados de la optimización por criterio seleccionado
Hay más ideas sobre este tema. Ya encontraré tiempo y los publicaré más tarde también.
Optimización de un EA simple. Lo he interrumpido 2 veces y siempre se optimiza desde el principio.
¿Por qué no dijo desde el principio que iba a llevar la genética?
El propio principio de la búsqueda genética se basa en la aleatoriedad, por lo que no tiene sentido "continuar lo que se empezó". Su trabajo es correr al azar.
E incluso entonces se utiliza el caché. Lo que ocurre es que su probabilidad de acertar los resultados calculados previamente es muy baja (tiene un área de búsqueda de 50 millones de variantes). Así que parece un comienzo desde el principio, ya que el punto de partida es aleatorio.
A juzgar por el gráfico el "algoritmo genético" no funciona((((
Esto hace que algunas líneas sean más oscuras y otras se desvanezcan.
A juzgar por el gráfico el "algoritmo genético" no funciona((((
¿Por qué no adjunta una descripción para su reproducción?
¿No entiendes que una imagen no es una prueba en ausencia total de una descripción? Estás en un foro técnico en el que se discuten cuestiones técnicas.
Intenté construir según sus condiciones:
Aquí está el resultado: todo es normal y razonable, el probador funciona, la genética encuentra los resultados correctos
Se puede ver cómo la genética ha entrado en las zonas verdes de mejores resultados y se ha consolidado allí.
Esto hace que algunas líneas sean más oscuras y otras se desvanezcan.
Las líneas grises sólo muestran el uso de los resultados de la caché de las ejecuciones anteriores.
Esto es lo que muestra tu ejemplo (comentario #18) ya en la segunda ejecución:
En la segunda tirada hubo 11.008 variaciones, y 4.515 pases estaban en la caché de la tirada anterior. 41% de aciertos
En realidad, el probador sólo tuvo que hacer 6.493 nuevas pruebas de un total de 11.008.
En la tercera repetición de la genética, el porcentaje de aciertos en la caché aumentó y ya se utilizaron 6.979 resultados antiguos: el 50% de los aciertos en la caché
En el cuarto: los golpes de caché al 54%
Así que el caché de resultados funciona correctamente y según lo previsto.
El programa de optimización no se actualiza.
2500 pases: