¿Optimización exhaustiva o genetica?

El foro dedicado a un clásico de la programación de sistemas de trading
Guille
Mensajes: 478
Registrado: 29 Ene 2015 14:50

¿Optimización exhaustiva o genetica?

Mensaje por Guille »

Hola a todos,
Estoy haciendo las pruebas de walk forward a un sistema y me ha surgido la siguiente cuestión sobre la forma de optimizar:
El sistema tiene cinco parámetros a optimizar. El rango de optimización elegido para cada parámetro no es muy amplio pues ya los deduje como zonas estables. Las acotaciones también son estrechas. Por tanto, al realizar la optimización de forma exhaustiva , me salieron más de veinte mil test (debido a las acotaciones estrechas) , y el Walk forward tardó toda una noche en completarse.
Una vez se completó este WF , el sistema no superó de la prueba de robustez WFO, aunque por poco (17 casillas FAILED y 13 casillas PASS).
Por otra parte, al probar la misma optimización pero realizada por algoritmos genéticos, además de tardar solo una hora y media, en esta ocasión y para esta optimización, el sistema si superó la prueba WFO.
Entonces la duda que planteo está clara, ¿cual de las dos optimizaciones es más fiable? o ¿cual es más aconsejable?
Para optimizaciones cuyo número total de test es muy elevado, creo que es mejor emplear la forma genética. La forma de optimizar lineal se dejaría para optimizaciones con menos números de test y que iría en función del número de parámetros y de las acotaciones realizadas (acotaciones que deberían ser mas amplias conforme mas parámetros hayan para que el número total de test no salga muy elevado)
Pero este es un punto que no tengo muy claro pues no entiendo porque un mismo sistema no supera la prueba WFO basándose en un WF realizado de forma exhaustiva y si supera la prueba WFO basándose en un WF realizado de por algoritmos genéticos
Agradeceria cualquier opinión o comentario sobre esto.
Gracias y un saludo.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12781
Registrado: 06 Sep 2004 10:18
Contactar:

Re: ¿Optimización exhaustiva o genetica?

Mensaje por X-Trader »

Hola Guille, la verdad es que lo comentas es algo extraño, el resultado debería ser el mismo ya sea haciendo todas las combinaciones o cogiendo atajos. ¿Has revisado que hayas puesto bien los rangos de variación de los parámetros en ambos casos? La lógica indica que los resultados obtenidos mediante algoritmos genéticos deberían ser un subconjunto de la optimización lineal.

En todo caso coincido contigo: para un caso como el que comentas, la optimización lineal es lo más fiable, no tiene sentido recurrir a los algoritmos genéticos.

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Guille
Mensajes: 478
Registrado: 29 Ene 2015 14:50

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Guille »

Hola X-Trader y gracias por contestar,
Estoy seguro que puse los mismos rangos y acotaciones en ambas optimizaciones.
Lo único que ahora, con tu explicación , ya le veo sentido a que con la optimización genética haya pasado la prueba de robustez y con la optimización exhaustiva no, ya que , al ser la genética un subconjunto de la exhaustiva , como dices, se supone que ese subconjunto optimizado es el mejor (o de lo mejor) de una optimización más amplia , que sería la exhaustiva, por lo que ahora me explico que el subconjunto pasara la prueba de robustez y que sin embargo la optimización exhaustiva, al ser más amplia e incluir zonas buenas y no tan buenas , no pasara la prueba.
De todas formas, no me gusta, porque el rango considerado para los cinco parámetros es relativamente estrecho y aunque las acotaciones las he puesto con incrementos pequeños, al ser los rangos estrechos, creo que el sistema debería haber pasado la prueba de estrés aplicada a cualquiera de los dos tipos de optimización.

Gracias y un saludo
Avatar de Usuario
Rafa7
Mensajes: 4919
Registrado: 17 Dic 2009 21:36
Contactar:

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Rafa7 »

Sres. foristas,



¿En cual de los dos tipos de optimización, lineal y genética, es más fácil caer en la sobreoptimización?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4919
Registrado: 17 Dic 2009 21:36
Contactar:

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Rafa7 »

Guille escribió: El sistema tiene cinco parámetros a optimizar.
Guille,


Dos parámetros permiten representación de sus rendimientos en 3D, y así poder ver concavidad/convexidad. Con más de dos parámetros su representación se complica.

Ojo con el número de parámetros de optimización. Cuántos más sean, más se cae en la sobreoptimización.
Los sistemas más robustos son aquellos con pocos parámetros.

Lo mejor es el "divide y vencerás". Por ejemplo, si el sistema tiene señal de entrada y de salida, optimizar el sistema sin stop loss (y sin trailing stop). El objetivo es optimizar los parámetros que dan sentido a la estrategia. Luego, fijados esos parámetros, añadir stop loss y trailing stop (si es que consideras que el sistema lo requiere) y optimizar sus parámetros (sin tocar los antes fijados).
Pero si optimizas todo a la vez, el peligro de sobreoptimizar es grande.

Caso diferente es el de aquellos sistemas en los que no hay señal de salida sino que se sale únicamente por trailing stop. Entonces hay diversas posibles estrategias de optimización aplicando "divide y vencerás":
1.- O fijar parámetros del trailing stop, optimizar solo los parámetros de la señal de entrada, y luego optimizar los parámetros del traili stop.
2.- O fijar los parámetros de la señal de entrada, optimizar los parámetros del trailing stop y luego optimizar los parámetros de la señal de entrada.
3.- O optimizar el sistema sin stop loss (solo señal de entrada y trailing stop), y luego añadir stop loss, optimizándolo.

Olvídémosnos que hay una posible combinación mágica de parámetros. No la hay. Y si creemos que la hemos encontrado, no va a funcionar tan bien como esperamos porque el mercado es mutante.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
agmageton
Mensajes: 3578
Registrado: 30 Ene 2008 11:32

Re: ¿Optimización exhaustiva o genetica?

Mensaje por agmageton »

Una herramienta que se utiliza mucho para las salidas, es la tendencia de las mismas sobre un mapa de posibles salidas y un algoritmo de decisión. De modo que las salidas se vayan adaptando a la mejor curva de equity que produce el mapa de salidas. (el tema de entradas, también puede susceptible de aplicación, pero en este caso es mejor tener bien claro el edge de timing y de entrada, esto bajo mi punto de vista es más potente, ya que estamos hablando de un análisis anticipado bien estudiado estadísticamente, diferente a las salidas, porque no sabemos nunca donde va a llegar el precio una vez tomada una posición, donde se produce un paseo más aleatorio, hay épocas que produce unas salidas por ejemplo al 2% otras épocas al 3% y con la misma volatilidad y velocidad, la profundidad del desvío es imposible de determinar por la información del precio, obedece a la sintonía del momento y este nos da cierta ventaja que suele durar el tiempo suficiente para aplicar esta herramienta).
Adjuntos
MANDA SALIDA NARANAJA
MANDA SALIDA NARANAJA
MANDA SALIDA BLANCA
MANDA SALIDA BLANCA
La entrada te da la probabilidad y la salida la rentabilidad...
Avatar de Usuario
Rafa7
Mensajes: 4919
Registrado: 17 Dic 2009 21:36
Contactar:

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Rafa7 »

agmageton,



¿Qué representan las abcisas y ordenadas?



Gracias.
Última edición por Rafa7 el 23 Nov 2015 12:48, editado 1 vez en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Gratphil
Mensajes: 473
Registrado: 08 Jun 2013 12:24

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Gratphil »

Buenos días,

En una optimización exhaustiva con 5 parámetros y suponiendo que cada parámetro puede tomar 10 valores, estamos hablando de 100.000 posibles combinaciones. Como nos podremos imaginar con 100.000 posibles combinaciones, de mucho histórico debemos disponer para no ajustarnos a la curva de precios histórica.

Más que en optimización exhaustiva o genética debemos pensar en el número de iteracciones que vamos a probar. Si pruebo 100.000 seguro que voy a sobreoptimizar, si pruebo 1000 combinaciones depende del histórico, pero, al menos, tengo menos riesgo que con 100.000.

Por otro lado, Guille, dices que acotas los parámetros en sus zonas más robustas, supongo que ésto lo habrás visto para todo el histórico. Por tanto, parece, tal como lo has hecho que tiene todas las papeletas para estar sobreoptimizado, por mucho walk-forward que le hayas hecho con optimización exhaustiva o genética. Esta acotación no la vería mal si los datos los dividieses, obtuvieses la zona robusta en los datos que consideres in-sample y sobre la zona out-sample ejecutes el walkforward. Es decir en la parte de datos out-sample no habría que hacer ningún trabajo previo.

En el caso que comentas, realizar un walk forward con 5 parámetros y optimización exhaustiva es casi seguro que se sobreoptimize de ahí que no te haya pasado la prueba. Con la optimización genética hay menos iteracciones y al menos el riesgo es menor.

Saludos
Avatar de Usuario
agmageton
Mensajes: 3578
Registrado: 30 Ene 2008 11:32

Re: ¿Optimización exhaustiva o genetica?

Mensaje por agmageton »

Rafa, las ordenadas representa la rentabilidad que va obteniendo las operaciones, y las abscisa el tiempo.

Pero vamos, que siempre digo lo mismo, bajo este punto de inflexión a la hora de optimizar una operativa, lo más importante es "algo que subyazca" esto evita una más que segura sobre optimización, hagas las pruebas que hagas, siempre al final irás optimizando hasta que las pruebas tengan un sentido, es muy raro coger 2 ó 3 parámetros y que le des a las pruebas y te salga perfecto, al final siempre se acaba sobre optimizando, sino los sistemas no durarían tan poco en el tiempo. ( y si estos duran es por una desproporción, como falta de stops o algún tipo de sesgo predominante en el histórico, o cosas similares que igual en el futuro no se les representa.)

Como el edge esta en la inmensa mayoría de operativas clásicas en la entrada, (salvando las operativas de riesgo), nos hemos de procurar muy mucho que nuestras entradas representen un edge que pueda ser extraído y transporlar a varias momentos temporales o activos, aunque presenten diferencias, siempre que estas no sean totalmente equidistantes. Para de este modo entender que estamos sobre un cimiento potente...esto es lo más difícil, luego la optimización de ese edge, ya se pueden utilizar herramientas como la expuesta o otros tipos como por ejemplo en este caso genéticas, etc etc....

Es sólo mi opinión....


saludos.
Última edición por agmageton el 23 Nov 2015 17:59, editado 1 vez en total.
La entrada te da la probabilidad y la salida la rentabilidad...
Gratphil
Mensajes: 473
Registrado: 08 Jun 2013 12:24

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Gratphil »

Agma,

De acuerdo completamente contigo en que lo más importante es "algo que subyazca".

Sin lugar a dudas si el sistema está sobreoptimizado no va a durar nada en el tiempo. Pero no puedo estar de acuerdo contigo en que siempre se termine sobreopimizando ¿Por qué?

Todos los sistemas terminan rompiéndose, quizás, yo no lo sé. Lo que sí creo es que si se ha hecho correctamente, sin caer en sesgos, pueden durar mucho tiempo.

Saludos
Avatar de Usuario
agmageton
Mensajes: 3578
Registrado: 30 Ene 2008 11:32

Re: ¿Optimización exhaustiva o genetica?

Mensaje por agmageton »

Si el "algo que subyazce" es potente, puede durar mucho tiempo y lo que variara será la entrega, esta puede deteriorarse o potenciarse, dependiendo el estado temporal que sea cómplice de tu edge o la optimación que hagas de la misma constante.

Pero hay una excepción en este caso y es un fenómeno no observado en el histórico, por ejemplo un año de mercado totalmente que choque frontalmente con tu edge o tus edges, la historia dice que esto es más común de lo que desearíamos.

Por otro lado, la ausencia de "algo que subyazce" nos puede llevar con una probabilidad alta, a estar en una dinámica de sobre optimiacion en la curva del precio, porque a parte que nuestra naturaleza nos llevará a ello, la potencia de tu edge quizás este sometida a esa curva por ruido más que factores de mayor fortaleza de señal.
La entrada te da la probabilidad y la salida la rentabilidad...
Gratphil
Mensajes: 473
Registrado: 08 Jun 2013 12:24

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Gratphil »

agmageton escribió:Si el "algo que subyazce" es potente, puede durar mucho tiempo y lo que variara será la entrega, esta puede deteriorarse o potenciarse, dependiendo el estado temporal que sea cómplice de tu edge o la optimación que hagas de la misma constante.
De acuerdo
agmageton escribió:Pero hay una excepción en este caso y es un fenómeno no observado en el histórico, por ejemplo un año de mercado totalmente que choque frontalmente con tu edge o tus edges, la historia dice que esto es más común de lo que desearíamos.
Por supuesto y está claro que lo único que tenemos es el histórico para comprobar la bondad de un sistema. Lo que está a la derecha no lo sabemos. Que el edge choque por como se comporte el mercado, por supuesto. Es realmente dificil, para mi imposible, construir un sistema que de resultados positivos todos los años fuera de muestra y si diese todos los años resultados positivos sería a base de tantas pruebas e intentos que sería una sobreoptimización encubierta.

Sí estoy de acuerdo en que tendemos a sobreoptimizar, a todos nos gusta ver una curva de equity con una pendiente sostenida y constante. En definitiva se trata de una lucha, al incorporar un sistema, no incoroporarle tantos parámetros o hacer una optimización de grano fino.

Saludos
Guille
Mensajes: 478
Registrado: 29 Ene 2015 14:50

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Guille »

Rafa7 escribió:
Guille escribió: El sistema tiene cinco parámetros a optimizar.
Guille,


Dos parámetros permiten representación de sus rendimientos en 3D, y así poder ver concavidad/convexidad. Con más de dos parámetros su representación se complica.

Ojo con el número de parámetros de optimización. Cuántos más sean, más se cae en la sobreoptimización.
Los sistemas más robustos son aquellos con pocos parámetros.

Lo mejor es el "divide y vencerás". Por ejemplo, si el sistema tiene señal de entrada y de salida, optimizar el sistema sin stop loss (y sin trailing stop). El objetivo es optimizar los parámetros que dan sentido a la estrategia. Luego, fijados esos parámetros, añadir stop loss y trailing stop (si es que consideras que el sistema lo requiere) y optimizar sus parámetros (sin tocar los antes fijados).
Pero si optimizas todo a la vez, el peligro de sobreoptimizar es grande.

Caso diferente es el de aquellos sistemas en los que no hay señal de salida sino que se sale únicamente por trailing stop. Entonces hay diversas posibles estrategias de optimización aplicando "divide y vencerás":
1.- O fijar parámetros del trailing stop, optimizar solo los parámetros de la señal de entrada, y luego optimizar los parámetros del traili stop.
2.- O fijar los parámetros de la señal de entrada, optimizar los parámetros del trailing stop y luego optimizar los parámetros de la señal de entrada.
3.- O optimizar el sistema sin stop loss (solo señal de entrada y trailing stop), y luego añadir stop loss, optimizándolo.

Olvídémosnos que hay una posible combinación mágica de parámetros. No la hay. Y si creemos que la hemos encontrado, no va a funcionar tan bien como esperamos porque el mercado es mutante.



Saludos.
Hola Rafa7 y gracias por contestar,

Ya se que cuantos más parámetros más riesgo de sobreoptimización pero este es un punto que intento corregir añadiendo bastante histórico a la muestra y que ésta sea representativa de todas las condiciones que se puedan dar del mercado.
Lo de " divide y vencerás" que comentas en tu post es justamente lo que suelo hacer aunque en este caso con algunas variaciones. He optimizado por separado los parámetros propios del sistema de los parámetros del trailing y del stop loss, pero primero para ello y antes de nada, hago una selección de parámetros a ojímetro (subiendo-bajando el stop loss, el trailing asi como los parámetros propios del sistema) . Una vez tenga unos parámetros que medio vayan bien, entonces paso a optimizar por partes como tu comentas. La única diferencia es que he empezado por los parámetros del trailing y stop loss. No se por qué, la verdad...
De todas formas, el sistema tengo que revisarlo y simplificarlo porque los cinco parámetros a los me refería eran precisamente solo los propios del sistema ya que los del trailing y los del stop ya los optimicé aparte.

Muchas gracias y un saludo
Guille
Mensajes: 478
Registrado: 29 Ene 2015 14:50

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Guille »

Gratphil escribió:Buenos días,

En una optimización exhaustiva con 5 parámetros y suponiendo que cada parámetro puede tomar 10 valores, estamos hablando de 100.000 posibles combinaciones. Como nos podremos imaginar con 100.000 posibles combinaciones, de mucho histórico debemos disponer para no ajustarnos a la curva de precios histórica.

Más que en optimización exhaustiva o genética debemos pensar en el número de iteracciones que vamos a probar. Si pruebo 100.000 seguro que voy a sobreoptimizar, si pruebo 1000 combinaciones depende del histórico, pero, al menos, tengo menos riesgo que con 100.000.

Por otro lado, Guille, dices que acotas los parámetros en sus zonas más robustas, supongo que ésto lo habrás visto para todo el histórico. Por tanto, parece, tal como lo has hecho que tiene todas las papeletas para estar sobreoptimizado, por mucho walk-forward que le hayas hecho con optimización exhaustiva o genética. Esta acotación no la vería mal si los datos los dividieses, obtuvieses la zona robusta en los datos que consideres in-sample y sobre la zona out-sample ejecutes el walkforward. Es decir en la parte de datos out-sample no habría que hacer ningún trabajo previo.

En el caso que comentas, realizar un walk forward con 5 parámetros y optimización exhaustiva es casi seguro que se sobreoptimize de ahí que no te haya pasado la prueba. Con la optimización genética hay menos iteracciones y al menos el riesgo es menor.

Saludos
Hola Gratphil y gracias,

Le he puesto bastante histórico a la muestra para evitar que se ajuste mucho a la curva de precios.
Lo que dices respecto al número de Test, de ahí era la pregunta , pues para un mismo histórico con la exhaustiva salían unos 21000 test y con la genética salían 10000 . Con la primera el sistema no me pasaba la prueba de robustez pero con la segunda que tiene muchos menos test, si.
Cuando hablo de parámetros en zonas robustas es porque estos parámetros ya vienen de una anterior optimización genética realizada con los rangos bastante amplios para sacar las zonas más estables. De esas zonas estables, para cada input , selecciono un parámetro , y sobre esos parámetros ya realizo la optimización definitiva que es la que planteé en mi primer post.
Lo que no entiendo es lo que dices que a mayor número de iteraciones hay mayor riesgo de sobreoptimizar pues pensaba que era al contrario , de hecho, pensaba que la optimización exhaustiva es más fina que la genética.
Avatar de Usuario
Rafa7
Mensajes: 4919
Registrado: 17 Dic 2009 21:36
Contactar:

Re: ¿Optimización exhaustiva o genetica?

Mensaje por Rafa7 »

Guille escribió:La única diferencia es que he empezado por los parámetros del trailing y stop loss. No se por qué, la verdad...
Guille,



Esta bien como lo haces. No importa demasiado por donde empieces (es difícil establecer una buena norma de por donde comenzar). Lo importante es aplicar un "divide y vencerás" para intentar no caer en la sobreoptimización.
Guille escribió:..
De todas formas, el sistema tengo que revisarlo y simplificarlo porque los cinco parámetros a los me refería eran precisamente solo los propios del sistema ya que los del trailing y los del stop ya los optimicé aparte.
Podrías aplicar un divide y vencerás a esos 5 parámetros (manteniendo fijos los parámetros del SL y TS, que ya has optimizado) en lugar de hacer una optimización de fuerza bruta sobre los 5 parámetros.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “TradeStation”