Como saber si hemos sobreoptimizado? InSample OutSample...
Como saber si hemos sobreoptimizado? InSample OutSample...
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.
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.
-
- Mensajes: 3842
- Registrado: 22 Dic 2014 10:49
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
.
Ú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...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....
..y nada mas...
-
- Mensajes: 3842
- Registrado: 22 Dic 2014 10:49
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
.
Ú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...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....
..y nada mas...
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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.
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.
-
- Mensajes: 3842
- Registrado: 22 Dic 2014 10:49
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
.
Ú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...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....
..y nada mas...
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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 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.
-
- Mensajes: 3842
- Registrado: 22 Dic 2014 10:49
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
.
Ú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...
si añadimos otro ciclo, entonces tendremos "un triciclo"... famoso trio catalan de humor de los 90....
..y nada mas...
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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.
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

Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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.
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.
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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.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.
¿La diferencia entre ganar o perder esta en pasar el WFO? yo creo que no.
Re: Como saber si hemos sobreoptimizado? InSample OutSample...
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
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!