Optimización y pruebas fuera de la muestra. - página 3

 
Integer: Todo será muy útil en casa. No tiene sentido compararlo con MQ, porque este programa no se prueba a sí mismo, sólo ejecuta el probador
Nadie rechaza al probador. El probador es bueno, no hay duda. Me refería al optimizador. Son los optimizadores que podemos comparar. De acuerdo, el tema es eterno, nunca terminará. ...
 
leonid553:

Creo que sería una adición útil al probador de mt4. Es posible, y es probable que alguien lo implemente en algún lugar.


Tiene razón: se ha puesto en práctica. Mira por ejemplo aquí (proyecto MT4NetTester). Pero no pidas que te lo den, es a medida.
 
Integer:
Mak:
Chicos, hace tiempo que tengo todo funcionando.
Cierto bajo TradeStation, y no de forma gratuita ... :))
No veo el sentido de hacerlo bajo MT, no estamos acostumbrados a pagar por el trabajo.


Yo también casi he terminado))) Y no hay necesidad de incrustar nada en el Asesor Experto - el programa se descarga un archivo con un conjunto de parámetros

¡Chicos! ¿Y quién te impide escribir un artículo en este hilo, publicar su desarrollo con una descripción y obtener una comisión?

No estoy buscando un regalo. Tengo suficiente diligencia. No hay suficientes conocimientos especiales. ¿Qué más da quién te pague?

 
leonid553:

Buenas tardes a todos.

Después de optimizar un EA, a menudo tenemos que nerd fuera de la muestra más de una docena de conjuntos de parámetros sugeridos por el optimizador.

Tengo una idea de optimizar los Asesores Expertos fuera de la muestra. Supongamos que "cargamos" al Asesor Experto con la optimización de una serie de parámetros. Por ejemplo, a partir del 1 de enero. 2006 hasta el 1 de enero de 2007.

Hemos recibido varios miles de Asesores Expertos. Después, guardamos la página con los RESULTADOS DE LA OPTIMIZACIÓN como un archivo separado. A continuación, fijamos el siguiente periodo histórico para la optimización, es decir, añadimos un mes o dos, o los que necesitemos.

En nuestro caso, fijamos por ejemplo a partir del 1 de enero. 2007 al 1 de junio de 2007. Y de nuevo habilitamos la optimización. El optimizador no debe tomar los parámetros en PROPIEDADES DE EXPERTOS, sino que debe volver a seleccionarlos uno a uno desde el archivo que hemos guardado después de la primera optimización. Después de esta segunda optimización, sólo nos quedan los vAriens que han dado beneficios fuera de la muestra.

El resultado, en el mejor de los casos, es que obtenemos los "parámetros ideales" para trabajar y probar en línea más adelante.

Creo que esto será una adición útil al probador de mt4. Probablemente, y lo más probable, es que ya esté implementado por alguien en algún lugar. Si alguien lo sabe, por favor, comparta el enlace.

Yo, debido a mis modestos conocimientos, no sé cómo llevar a cabo la aplicación práctica de la idea.

Esto se denomina optimización Walk forward (WFO) o análisis Walk forward (WFA).
Es un tema antiguo y popular en Occidente.
 
Mathemat:
Bien, la idea general está clara. Bien, entonces la última pregunta a todos los que han puesto en marcha este proyecto (es decir, Belford, Mak, Integer): ¿merece la pena? Por supuesto, es bueno tener un "optimizador" que no sólo hace ajuste de curvas (como metaquote) sino que también intenta probar la estrategia en datos fuera de la muestra, pero ¿realmente merece una puntuación más alta que el optimizador MQ (que también es bueno, pero sólo como ajustador de curvas)?
En general, vale la pena, aunque si observamos el proceso de WFO en sí podemos ver que también es una optimización, sólo que más compleja.
Seleccionamos los mejores de la primera serie entre los mejores de la segunda y así sucesivamente. - esto es también la optimización con su propio accesorio.

Mi optimizador es sólo un cuento de hadas :)))

En primer lugar, es genético y muy eficiente: busca muy rápidamente.
En segundo lugar, permite utilizar cualquier criterio de optimización personalizado (esto es un gran poder).
En tercer lugar, la nueva versión implementa la optimización por múltiples criterios a la vez.
 

He publicado un ejemplo de implementación de mi criterio de optimización en el tema'init() durante la optimización'. Y estoy intentando escribir un artículo sobre ello. El método utilizado, creo, permite hacer muchas cosas, desde el WFO hasta el propio algoritmo genético.

 
Mathemat:
leonid553, vas en la dirección correcta, ya que la "optimización" existente sin probar en datos fuera de muestra es puro ajuste de curvas. Pero el algoritmo básico debería ser más complejo, como en los programas de redes neuronales. Toda la "optimización" debería ir simultáneamente en todos los conjuntos de datos a la vez (este es el deseo de los desarrolladores). Por supuesto, se puede trabajar con sólo dos conjuntos de datos, pero es mejor prever tres: de entrenamiento (A), de validación (B) y de prueba (C). Bueno, en las condiciones existentes, tendrá que trabajar más o menos como usted sugiere.


Me parece que probar (entrenar, validar, ejecutar, etc.) fuera de la muestra reduce el conjunto A="Conjuntos de parámetros rentables en la muestra" al conjunto B="Conjuntos de parámetros rentables en la muestra, así como fuera de la muestra". La optimización sobre el muestreo + fuera de la muestra da el conjunto C="Conjuntos de parámetros rentables en el muestreo + fuera de la muestra".

¿El conjunto B está contenido en el conjunto C? En mi opinión, obviamente sí, porque el conjunto B contiene "Conjuntos de parámetros rentables tanto dentro como fuera de la muestra", y por lo tanto son "Conjuntos de parámetros rentables dentro de la muestra + fuera de la muestra".

Entonces, ¿qué es lo que sobra en C en comparación con B?

Obviamente, entre el conjunto C habrá conjuntos de parámetros que no son rentables en la muestra (sólo en la muestra), pero que ganan revancha fuera de la muestra. Es decir, perdemos dinero en la muestra, pero nos compensa con creces fuera de ella.

También entre el conjunto C habrá conjuntos de parámetros rentables en la muestra (sólo en la muestra), pero no rentables fuera de la muestra, es decir, ganamos dinero en la muestra, pero perdemos dinero fuera de la muestra.

Así pues, un pass-through nos da el conjunto C, que recoge el subconjunto D="Conjuntos de parámetros no rentables ni en muestra ni fuera de muestra, pero generalmente rentables en muestra + fuera de muestra", y que no está en el conjunto B. Si esto es un problema para nosotros, es mucho más fácil de resolver que las pruebas fuera de muestra.

Pero, ¿evitamos el ajuste de la curva mediante pruebas fuera de muestra? No. Además, se puede argumentar que el ajuste más severo (la rentabilidad debe respetarse en los gráficos individuales) permanece, y sólo se desecha el subconjunto D (¿tal vez el niño buscado?), lo que apenas puede llamarse un ajuste. Lo único que evitamos al dividir el periodo de pruebas en segmentos es la exclusión de los parámetros que dan resultados no rentables en uno de los segmentos. Lo único que alcanzamos es la rentabilidad en todos los segmentos. La conclusión lógica de este enfoque es la rentabilidad de cada operación por separado. ¿Quién garantizará que esos maravillosos parámetros no se nos presenten por el demonio del ajuste de curvas absoluto?

 

¡Un EA no es lo mismo que un EA! Hay EAs para los que las pruebas que he descrito son las más optimistas.

¿Qué tenemos que perder aquí, por ejemplo? ¡Nada!

 
Vita:
Lo único que evitamos al dividir el periodo de pruebas en segmentos es la exclusión de los parámetros que dan resultados no rentables en uno de los segmentos. Lo único que conseguimos es la rentabilidad en cada intervalo. La conclusión lógica de este enfoque es la rentabilidad de cada operación por separado. ¿Quién garantizará que esos maravillosos parámetros no se nos presenten por el demonio del ajuste de curvas absoluto?

Yo lo formularía así: marcamos algunas vecindades de ciertos extremos mediante la primera optimización y comprobamos su estabilidad mediante la segunda (fuera de muestra). Por supuesto, nadie garantiza que sigan siendo estables en el futuro. Pero la falta de garantías de rendimiento es un rasgo característico de todas las previsiones.

Por supuesto, podemos obtener la misma información habiendo procesado los resultados de la optimización para toda la muestra. Sin embargo, me parece que será un proceso mucho más largo, tanto en términos de implementación de software como en términos de tiempo de conteo.

 
lna01:
Vita:
Lo único que evitamos al dividir el periodo de pruebas en segmentos es la exclusión de los parámetros que dan resultados no rentables en uno de los segmentos. Lo único que conseguimos es la rentabilidad en cada intervalo. El resultado lógico de este enfoque es la rentabilidad de cada operación por separado. ¿Quién garantizará que esos maravillosos parámetros no se nos presenten por el demonio del ajuste de curvas absoluto?

Yo lo formularía así: marcamos algunas vecindades de ciertos extremos mediante la primera optimización y comprobamos su estabilidad mediante la segunda (fuera de muestra). Por supuesto, nadie garantiza que sigan siendo estables en el futuro. Pero la falta de garantías de rendimiento es un rasgo característico de todas las previsiones.

--> ¿Qué añade la división, en comparación con la ejecución de extremo a extremo?

Por supuesto, podemos obtener la misma información procesando los resultados de la optimización en toda la muestra. Sin embargo, me parece que esto sería un proceso mucho más largo, tanto en términos de implementación de software como de tiempo de conteo.

--> Si por "procesar los resultados de la optimización en toda la muestra" te refieres a descartar el conjunto D, entonces no estoy de acuerdo - descartar los resultados que dan pérdidas intermedias (en la muestra o fuera de la muestra) es una tarea elemental, que se resuelve durante la propia optimización en toda la muestra, es decir, no es necesario ningún procesamiento después de la optimización. El resultado es el conjunto B inmediatamente. Y no hay que perder tiempo en comprobaciones adicionales fuera de la muestra.

Razón de la queja: