Como saber si hemos sobreoptimizado? InSample OutSample...

El espacio de los traders quant: sistemas de trading, gestión monetaria, automatización de sistemas.
Responder
Xavi
Mensajes: 27
Registrado: 04 May 2006 14:53

Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Xavi »

Buenos dias gente.

Creando y analizando sistemas entiendo que es normal caer en una sobreoptimización.
Es decir una vez tenemos el sistema cogemos un periodo de tiempo, que lo llamariamos In-sample al cual vamos retocando y aplicando cambios y algun que otro filtro.

Ahora bien luego lo probamos en otro periodo de tiempo (Out-Sample) para ver que no estamos sobreoptimizando para ese periodo de tiempo antes descrito.

Si los resultado de Insample a Outsample no difieren mucho es que no hemos sobreoptimizado, en cambio si no tienen nada que ver es que nos pasamos optimizando, estoy en lo cierto?
Podemos hablar de algun % de desviación que determine si puede ser normal o hayamos sobreoptimizado?

Por otra parte una estrategia intradia que actue en TF 15 minutos con dos años de historicos (2016-2015) creeis que estadisticamente sea relevante?

El problema que me encuentro es que para el DAX no tengo mas datos historicos fiables, bajados de Dukascopy con el tickstory solo tienen datos del 2012 hasta ahora, y los años 2012-2013 y hasta el 2014 veo cosas raras en las velas, sobretodo en los inicios de sesión y al finalizar, velas sin movimiento o que simplemente no estan..

Conoceis de algun sitio o base de datos donde bajar historicos del DAX fiables? aunque tenga algun coste...

Saludos y buena semana de trading.
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 14:29, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 14:29, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
Xavi
Mensajes: 27
Registrado: 04 May 2006 14:53

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Xavi »

Buenas.

Si lo del insample outsample lo entendi correctamente, era por confirmar que se hacia de esa forma.

Voy a echarle un ojo a lo de los grados de libertad, que entiendo que va relacionado con el numero de parametros que tiene el sistema, voy a buscar info sobre ello gracias.

Referente a los datos historicos, deberia dar igual sobre datos de Futuro y Contado?
Quiero decir para hacer comprobaciones, se deberia comportar igual el sistema entiendo no?

Lo digo para buscar alguna fuente de datos de futuros fiable y extensa.
Quiza podria bajarlos de Kinetick.

Porque de contado existe alguna alternativa y que tenga bastantes años?

Saludos.
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 14:29, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...

Xavi
Mensajes: 27
Registrado: 04 May 2006 14:53

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Xavi »

Buenos dias.

Rango sino te importa una pregunta sobre las bases de datos de historicos que podemos obtener.

Por ejemplo mirando la de tickdatamarket (aunque supongo que todas ofreceran del mismo estilo).
Veo que la ofrecen en diferentes formatos: Tick,Minute... (luego hay otras pero ya serian diarias, ticks+milisegundos, orderbook...)

Para el caso del testeo desde MT4 con la de minutos vadria?
Porque si no estoy equivocado MT4 no acepta ticks, lo que hace cuando utilizamos el TickStory (el famoso 99.9%) y se baja los datos de Dukas es convertirlo a minutos, no?

O valdria la pena de todas formas escoger el formato ticks y buscar algun script que lo pasara a MT4 y realizara la conversión?

Gracias de antemano.

Saludos.
Rango Starr
Mensajes: 3842
Registrado: 22 Dic 2014 10:49

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Rango Starr »

.
Última edición por Rango Starr el 19 May 2021 14:29, editado 1 vez en total.
un ciclo y otro ciclo, son un biciclo...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....

..y nada mas...
atgr90
Mensajes: 51
Registrado: 23 Feb 2016 15:51

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por atgr90 »

Volviendo al tema de la optimizacion, como yo lo veo, a ver si me explico.

Imagina que en el 2006-2010 tienes un mercado -solo alcista- y diseñas un sistema que opera ese mercado.

Vale ahora vas a hacer la prueba OOS (outofsample) en el periodo 2010-2012. En este periodo el mercado tambien es alcista, ejecutas el sistema y pueden pasar varias cosas:
1) Tienes los mismos resultados que en el periodo IS (insample). Perfecto tu sistema es bueno (para un tipo de mercado concreto)
2) Tienes malos resultados, muy distintos del periodo IS. Entonces para mi, tienes el sistema sobreoptimizado, acoplado a los datos, ese sistema no sirve. Tienes el mismo tipo de mercado y el resultado en OOS es malo.
Pero si resulta que para la prueba en el periodo OOS 2010-2012, el mercado es bajista, tu sistema no va a dar buenos resultados (los resultados seran malos o neutros). PERO en este caso no significaria que tu sistema este mal diseñado, si no que el tipo de mercado en OOS es distinto del IS. Tu sistema puede ser bueno o no, en estas condiciones no lo puedes saber.

Si el sistema esta bien diseñado (caso 1), cuando el tipo de mercado en el futuro vuelva a ser alcista tu sistema volvera a dar beneficios.

A ver, donde quiero llegar, tu sistema puede estar bien diseñado aunque tus resultados en OOS sean distintos de los del IS, porque ha cambiado el mercado. Y que para probar si un sistema esta sobreoptimizado o no, en teoria, en mi opinion tienes que hacer la prueba OOS sobre el mismo de tipo de mercado que lo has optimizado.

Luego, lo que hacemos la mayoria (supongo) es diseñar sistemas que en teoria operan en cualquier tipo de mercado, y esperamos que en el OOS el resultado sea el mismo, pero puede que no lo sea, porque el mercado es inevitablemente distinto. Si el sistema esta bien diseñado, lo que hay que hacer en mi opinion es... esperar a que el mercado vuelva a ser el adecuado para nuestra estrategia. Al menos, si el mercado no es favorable a nuestra estrategia, el resultado del sistema deberia de ser neutro o si no va a palmar un monton de pasta.

Y aparte queda esta cuestion: ¿somos capaces de identificar que tipo de mercado tenemos en cada momento? ¿cuando cambia de un mercado a otro? preguntas dificiles de responder.

Una cosa mas, sobre los grados de libertad. Vale, se dice muchas veces que debes de usar el menor numero de variables o indicadores para no estar acoplado al grafico porque en ese caso construyes un polinomio de grado n (n tendiendo a infinito ;) ) que va a estar acoplado si o si. Estoy de acuerdo, eso por una parte, PERO luego en mi opinion, tienes que usar tantas variables como sean necesarias para capturar una caracteristica de mercado concreta, la que vayas a operar, reduciendo todo lo que puedas la aleatoriedad en seleccionar el momento del mercado en el que quieres operar.
Kosto
Mensajes: 21
Registrado: 20 Nov 2014 17:13

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Kosto »

Hola Xavi,

Creo que un buen método para ver si has sobreoptimizado es pasar un WFA y ver el “ratio de eficiencia” de cada run, según algunos autores este valor debe ser mayor a 50%, pero este valor como otros que encuentres en la literatura, no los tomes a rajatabla, lo tienes que contrastar y definir un valor con el que te sientas seguro.

Sobre los datos históricos, en Visual Chart te puedes bajar datos del futuro del DAX de varios años en minuto (con el volumen incluido), si quieres tick a tick sólo se puede de los últimos meses. Sitios de de pago para datos tick a tick, además de Tickdatamarket, mira en TickData y CQG. Ah, y ten cuidado en la manera cómo ajustan el precio en el cambio de vencimiento (seguro lo tienes en cuenta, pero por si acaso).

Un saludo.
Kosto.
atgr90
Mensajes: 51
Registrado: 23 Feb 2016 15:51

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por atgr90 »

Kosto escribió:Hola Xavi,

Creo que un buen método para ver si has sobreoptimizado es pasar un WFA y ver el “ratio de eficiencia” de cada run, según algunos autores este valor debe ser mayor a 50%, pero este valor como otros que encuentres en la literatura, no los tomes a rajatabla, lo tienes que contrastar y definir un valor con el que te sientas seguro.

Sobre los datos históricos, en Visual Chart te puedes bajar datos del futuro del DAX de varios años en minuto (con el volumen incluido), si quieres tick a tick sólo se puede de los últimos meses. Sitios de de pago para datos tick a tick, además de Tickdatamarket, mira en TickData y CQG. Ah, y ten cuidado en la manera cómo ajustan el precio en el cambio de vencimiento (seguro lo tienes en cuenta, pero por si acaso).

Un saludo.
Kosto.
Bueno yo creo que el WFA te salva de algunos errores pero te enmascara otros. Desde luego es mejor que el sistema pase el WFA a que no lo pase pero tampoco es la respuesta definitiva a esto.

¿La diferencia entre ganar o perder esta en pasar el WFO? yo creo que no.
Guille
Mensajes: 478
Registrado: 29 Ene 2015 14:50

Re: Como saber si hemos sobreoptimizado? InSample OutSample...

Mensaje por Guille »

Hola Xavi,
Optimizamos para encontrar los mejores valores de las variables que hagan que el sistema obtenga el mejor resultado, según lo que vallamos buscando: el mayor beneficio, el mejor ratio riesgo/beneficio, el menor DD, etc.
Yo creo que la clave para no sobreoptimizar es precisamente como hacemos ese proceso de optimización.
Y para ello hay que tener muchas cosas como por ejemplo la cantidad de histórico elegido, que el histórico sea representativo del mercado actual, etc.
Pero lo que es primordial, en mi opinión, es realizar la búsqueda de parámetros de forma genética pues si realizamos la optimización bruta, quizás obtengamos un sistema que en principio satisfaga nuestras expectativas en el insample pero seguramente será una casualidad estadística y el sistema fallará en el futuro, es decir, el sistema se habrá ajustado a la curva (sobeoptimización)
Saludos
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Sistemas de Trading”