Optimizar un EA y obtener el mejor de los optimizados. - página 23

 
+1 Tomó el restante para optimizar
Archivos adjuntos:
 
George Merts:

En cualquier caso, es relevante.

Incluso si se realizan varias optimizaciones al mismo tiempo - esto permitirá una mejor selección del mejor conjunto de parámetros de entrada - simplemente fusionando los archivos XML, y el procesamiento por el script de evaluación. Sólo puede haber problemas si el script encuentra errores, como lo hizo la última vez, cuando no marqué todas las variables en el archivo SET. El script me decía "archivo no válido", pero no podía averiguar qué era lo que estaba mal.

Para que se tenga en cuenta su optimización. Ahora lo procesaré, actualizaré la versión en Yandex, y publicaré los próximos expertos "retirados" de la Liga. Si es interesante, puedo escribir "por lo que me echaron". :)

En general, pensé que la genética seleccionaría los mismos resultados cada vez, ¿no es así?

Se pueden recoger las estadísticas de los descensos, quizás estos datos conduzcan a mejoras en el consejero, si el enfoque cambia...

 
Aleksey Vyazmikin:

Generalmente pensaba que la genética se llevaría siempre los mismos resultados, ¿no es así?

Se pueden recoger las estadísticas de salida, tal vez seguir estos datos para mejorar el EA, si el enfoque cambia...

La genética no puede dar los mismos resultados. Sólo los cercanos. Y eso si la función es lo suficientemente "pareja".

Tenemos un espacio de mil millones de opciones de cobmin. Tenemos que seleccionar a los mejores.

En primer lugar, tomamos 512 variantes al azar. Esta es la primera generación.

Luego formamos la siguiente generación - hacemos cambios aleatorios de parámetros - mutaciones en cada coimbra. Obtenemos 1024 individuos. Seleccionamos los 512 con el valor más alto de la función de aptitud (función de aptitud - esto es sólo la configuración personalizada en la configuración de optimización). Y el ciclo de mutación se repite.

Los ciclos continúan hasta que dejan de aparecer grandes valores de la función de aptitud.

Por lo tanto, aunque el resultado (un valor) puede ser el mismo en diferentes optimizaciones, las propias generaciones, y los "caminos para encontrar" este valor - serán diferentes. Y estas rutas de búsqueda - se muestran en el archivo XML. Mi script de estimación se ejecuta a través de este archivo, y cuenta la varianza de los valores de la función de aptitud para el período anterior y posterior. A continuación, se selecciona un valor de compromiso de la función de aptitud, de modo que sea lo más grande posible, pero la varianza sea lo más pequeña posible (pero en el segundo orden de magnitud).

Si tomamos dos archivos de optimización XML diferentes, el mejor valor en ellos puede ser el mismo. Pero la varianza - será necesariamente diferente. Y esto - afectará a la elección, puede ser más razonable tomar un valor ligeramente menor de la función de aptitud, sin embargo, tal que la varianza alrededor de este valor es mucho menor.

 
Aleksey Vyazmikin:
+1 Tomó el resto para optimizar.

Tienes 24 códigos rojos, voy a procesar GBPCHF_EMAFlatRTS, será 25. Publica el siguiente archivo, será 26. Pero tengo que salir ahora. Volveré en unas cuatro horas, publicaré los próximos foreros.


Alexei, si quieres usar redcodes - será más razonable compilar una versión separada de "liga" - que será inmediatamente "cargada" con tus códigos seleccionados para el tiempo de acción seleccionado. Para que en los ajustes sólo tengas que escribir el riesgo deseado. Todos los sistemas seleccionados - trabajarán de forma independiente, como si fueran múltiples copias de la Liga, cada una en su propio Magic (así es como los EAs trabajan en una cuenta demo común, no hay 270 EAs, sino sólo cinco, pero trabajan con todos los 270 TS).

Para los interesados, la Liga de Sistemas de Comercio de Asesores Expertos - disponible para su descarga en YandexDisk

EALeague
EALeague
  • yadi.sk
View and download from Yandex.Disk
 
GBPJPY_ChnTrendRTS
Archivos adjuntos:
 
George Merts:

En primer lugar, tomamos 512 opciones al azar. Esta es la primera generación.

¿Estamos tomando o el optimizador? Sólo una duda sobre la aleatoriedad, es decir, qué genera esta aleatoriedad, ¿se conoce el algoritmo? ¿Está limitado en el tiempo?


George Merts:

A continuación, formamos la siguiente generación, en la que realizamos cambios aleatorios en los parámetros, es decir, mutaciones. Obtenemos 1024 individuos. Seleccionamos los 512 con el valor más alto de la función de aptitud (la función de aptitud no es más que la configuración personalizada en los ajustes de optimización). Y el ciclo de mutación se repite.

¿Y dónde puedo ver ejemplos de dicha función compilándose a sí misma?

¿O se trata de un único número basado en un cálculo personalizado que debería tender a un valor más alto o más bajo y, en consecuencia, si hay una dinámica, la genética gotea en esa misma dirección?

George Merts:

Tienes 24 códigos de registro, voy a procesar GBPCHF_EMAFlatRTS, será el 25. Si publicas el siguiente archivo, será el 26. Pero ahora tengo que irme. Vuelvo dentro de cuatro horas, publicaré los próximos "outsiders".


Alexei, si quieres usar readcodes - será más razonable compilar una versión separada de "League" - que será inmediatamente "cargada" con tus códigos seleccionados para el tiempo de acción seleccionado. Para que en los ajustes sólo tengas que escribir el riesgo deseado. Todos los sistemas seleccionados - trabajará de forma independiente, como si fueran múltiples copias de la Liga, cada uno en su propia Magia (por lo que el trabajo de los expertos en la cuenta de demostración común, no hay 270 Asesores, pero sólo cinco, pero trabajan todos 270 TS).

Hmmm, ni siquiera sé cómo seleccionarlos... ¿qué hay que optimizar entonces, o sólo un valor de "riesgo"?

 

Sí. Se ajusta. Está bien, todo procesado, incrustado en la Liga.

Tengo una idea para modificar los EAs para su optimización, de modo que pueda ver inmediatamente desde los archivos XML, en qué símbolo se ejecutaron, y en qué período de ida y vuelta. Me ocuparé de esto el fin de semana.

Por ahora tengo que escribir algunas instrucciones más para los novatos.

Aleksey Vyazmikin:

¿Ganamos al batidor o al optimizador? Sólo tengo dudas sobre la aleatoriedad, es decir, ¿qué genera esta aleatoriedad y se conoce el algoritmo? ¿Se basa en el tiempo?

El optimizador, por supuesto. Realiza una optimización genética.

Y por lo que sé y veo - los conjuntos de parámetros iniciales - se generan puramente al azar, muy probablemente utilizando una instrucción del procesador que da números aleatorios. Lo ideal es utilizar una instrucción del procesador RDRAND, que produce un número aleatorio que cumple con muchas normas especiales. Pero, por supuesto, los números aleatorios pueden ser en realidad pseudo-aleatorios - eso no es mucho peor - no necesitamos una criptografía robusta, necesitamos una "semilla" uniforme del campo de valores.

 
Aleksey Vyazmikin:

¿Y dónde puedo ver ejemplos de una función autocompilada como ésta?

¿O se trata de un único número basado en los resultados de un cálculo personalizado, que debería tender a un valor más alto o más bajo, y en consecuencia si hay una dinámica, entonces la genética gotea en esa misma dirección?

Sí, así es, la función de aptitud es el resultado de OnTester(), que caracteriza el pasaje. En el caso más sencillo es simplemente el valor del depósito al final del pase. El optimizador selecciona los cobmins en los que esta función será máxima. Y las nuevas generaciones se forman cada vez más cerca del máximo.

Utilizo una función inteligente de múltiples factores que refleja muy bien la calidad del comercio, una vez conseguí este código por una tarifa, pero ahora no me arrepiento.

Ahí, el algoritmo genético en general tiene bastantes trucos, incluso había un artículo sobre algoritmos genéticos en algún sitio, y se hablaba mucho de ello.

 
Aleksey Vyazmikin:

Hmmm, ni siquiera sé cómo seleccionarlos... ¿qué hay que optimizar después, o sólo hay un valor de "riesgo"?

No necesitas optimizar nada, todo está ya optimizado antes que tú. Lo que estás haciendo ahora es optimizar los sistemas externos para que se conviertan en los favoritos de otros conjuntos de parámetros. Póngalos en la demo y vea cómo operan. Algunos de ellos tendrán la suerte de operar en las posiciones abiertas. Lo veremos dentro de un mes. Para entonces, los antiguos favoritos habrán hecho un disparo de prueba y serán retirados de la negociación, y nuevos sistemas, de los que se están optimizando, ocuparán su lugar.

Tomamos cualquier sistema favorito, fijamos el valor del riesgo en él - y usted puede operar.

Pero "cómo seleccionar"... Esta es mi pregunta principal. Si "solo muele" - entonces visualmente y por el parámetro "calidad". Esos sistemas que he seleccionado - los he puesto en una cuenta real, la contraseña de inversión a la que tiene. Pero, fueron elegidos intuitivamente. Por desgracia, aún no he desarrollado un criterio claro.

Así que - mira los gráficos, elige lo mejor - esa es tu elección por ahora. Está claro que hay muchos para elegir.

 

Sistemas que requieren una sobreoptimización:

Dos mostraban una cola de SL demasiado larga, el resto superaba la holgura permitida.

Razón de la queja: