Hola,
He hecho algunas pruebas más, básicamente Walk Forwards, donde he optimizado 6 años (empezando del 2003 al 2008 y aplicado al año siguiente), hasta el presente. He comparado los resultados de los 6 años out sample ( 2009 a 2014)con los resultados de los parámetros aplicados anteriormente, donde había optimizado el periodo de 8 años (del 2004 al 2011) y aplicado los parámetros al periodo 2002/presente.
Las diferencias no son abismales, si bien son notables en el sentido de que el resultado final de los 6 años es prácticamente igual pero con el walk forward es más irregular. También acusa más la diferencia con el sistema que utiliza un solo contrato, el que entra con un segundo contrato cuando va perdiendo X, se comporta mucho mejor, aquí los resultados:
Comparativa Parametros Fijos-WalkForward 6x1 años con 1 contrato
Comparativa Parametros Fijos-WalkForward 6x1 años con un 2º contrato
Quizás haga también walk forward optimizando 9 años (2003/11) y aplicándolo a los 6 meses siguientes, a ver cómo va…
Sobre los cometarios recibidos:
Muchas gracias agmageton por tus respuestas:
amagaron escribió:Este tipo de sistemas suelen tener el edge en dos factores, por un lado el riesgo adverse y la significancia que los índices históricamente han presentado tendencialidad. Desde ese punto de vista es correcta la aproximación, lo que no me seduce mucho es el adverse que se va a producir en circunstancia de mercado con volatilidad ( si coges activos como el Nasdaq o el Dax verás que los adverses en futuros son muy complicados de llevar). Para una operativa tendencial tipo diaria, el muy complicada de llevar.
Ahora viene el tema, la exposición en mercado no es mala si la posición esta fuera de riesgo, me explico si el precio llega a un nivel que la posición de riesgo (stop) avanza para dejar fuera de riesgo la posición, lo que si es malo es tener una exposición continua a mercado, porque el mercado en todas sus fases no se va mostrar tendencial, por lo que hay que evitar situaciones de baja probabilidad de retorno. El problema esta en este caso de la toma de posición, si lo haces de la manera que lo hace este sistema (creo entender) lo que haces es definir un nivel de rotura con su adverse en bruto teniendo como edge el riesgo del adverse que suele ser muy grande en comparación de otras aproximaciones, por la propia naturaleza tendencial del sistema. El tener 4 parámetros en un sistema hace pensar que la optimización corre a cargo de poner niveles de confort en el riesgo, digamos que se cuadra haciendo más grandes los parámetros. con lo que en niveles de máxima volatilidad jugaras en el filo de la navaja y con niveles de baja volatilidad funcionara muy satisfactoriamente. en este caso si cuentas los adverses el ratio de sharpe será terrible.
*Creo entender lo que dices, aunque desde mi poca experiencia, lo que voy viendo es que en este oficio casi siempre lo que ganas por un lado lo pierdes por otro… Si cuando entras en una posición quieres limitar muy bien el riesgo, seguramente será a cambio de perder rentabilidad o fiabilidad, si no quieres soportar un adverse, ( intuyo que es lo que sería el MAE, no..?) porqué no quieres pasar un tiempo perdiendo, saldrás en el stop predeterminado, renunciando a la posibilidad de que la posición se dé la vuelta y acabe siendo ganadora, con lo que iremos perdiendo fiabilidad. Si pones un stop tipo trailing, igualmente, si es muy ajustado cerrará en positivo algunas veces, pero con menos ganancias que si es más amplio. Es posible que si aseguramos tanto, también hagamos más frágil el sistema?
Lo de que vaya peor o mejor con más o menos volatilidad, igualmente depende, si los parámetros le permiten trabajar aceptablemente en ambas condiciones, en el caso de este sistema por ejemplo, funciona con bastante regularidad desde 2002 a 2014.
Creo que se trata como en la mayoría de las cosas, de encontrar el equilibrio, que además no es igual para todos, uno se encontrará más cómodo en unas situaciones que en otras, supongo que es complicado, y solo se llega a eso con mucha experiencia y con una visión global de la situación, lo cual no es fácil.
Para mí lo principal es que el grafico de rentabilidad sea lo más regular y lineal posible, la fiabilidad tirando a alta, la ganancia media suficientemente amplia para soportar irregularidades, que todo esto se consiga sin sobre optimizar, y que si los parámetros varían un poco no se desmonte enseguida el tinglado…*
Ideas,
1º para corregir el riesgo de los adverses, se puede consolidar otro sistema de protección con opciones o posiciones en contra sobre la propia posición, de manera que donde pones el stop para que no se te vaya el adverse, lo que haces es abrir una posición contraria de cobertura. Asi puedes definir un riesgo máximo, esto debe ser un propio sistema de protección. Porque esto? pues porque te vas a ahorrar de cuadrar el riesgo a lo bruto en un sistema de este tipo y por otro lado si vas a tener un riesgo objetivo.
*Esto no lo acabo de entender, perdona mi ignorancia, si es con futuros, sería desde otra cuenta no? al menos en IB creo que no se puede estar corto y largo a la vez, y con Opciones, no las conozco suficiente, pero no evolucionan igual que el futuro no? Quiero decir, que no sé si se puede neutralizar completamente un futuro con una opción… No le veo muy bien la ventaja, pues si llegada una perdida X abrimos una posición contraria, ok, neutralizamos esa posición, pero la perdida ya la llevamos encima, y tarde o temprano, cuando cerremos ambos contratos, la tendremos que asumir, no? y si bien no aumentaremos el MAE, tendremos que aportar las garantías del 2º contrato, no sé, no lo acabo de ver… *
2º Creo que esta no la vas a poder llevar a cabo, y es centrar la posición de entrada a timing intradiario, buscando la mejor rotura tiempo, aunque luego el stop sea de sistema diario, pero buscando el mejor punto de rotura, eso te lo va a permitir estar en timing intradiario no diario.
*Y en Respuesta a Oni dijiste:*
Totalmente de acuerdo, de hecho le recomiendo entre otras cosas, bajar a intradiario la posición de entrada, para evitar las entradas poco eficientes y subordinadas a los reverses, o hacer un buen sistema de coberturas especialmente para la poca eficiencia de las entradas, dados los reverses.
*Con centrar la posición a intradia, te refieres a entrar mejor de precio? Se podría hacer, poniendo una orden limitada a X puntos mejor que la señal, pero como se “evitarían” así las entradas poco eficientes, si no sabes si va a ser poco eficiente hasta pasadoun tiempo? Algunas veces le favorecería y otras le perjudicaría porqué se le escaparía la operación, es decir, no entraría porque el precio no llegaría a ese nivel mejor, habría que probarlo en backtest a ver, pero intuyo que sería eso lo que pasaría…*
3º El tema de los parámetros a mi me parece que se podría cambiar para ser más eficientes, y pongo mi propia experiencia, yo ahora mismo estoy desarrollando un sistema swing y long con multiples parámetros, que significación tiene los parámetros para mí, pues que a cada momento de mercado la configuración se adapte a ese momento, por ejemplo si tengo una volatilidad en un nivel de 5% una tendencia de precio bajista, una tendencia de volatilidad al alza, una velocidad de tendencia muy superior a la media, y tengo definidos 5 niveles de volatilidad en el histórico por las variables de tipo de mercado pongamos 5 por nivel, serían 25 variables que han de configurar temas como la posición, el stop, el objetivo, esto nos daría como resultado 75 variables de parámetros, aunque los niveles de volatilidad muestren cierta correlación lógica sobre las variables a configurar se muestra mucho más eficiente estadísticamente en multi activos, ya que vamos a optimizar con la información de las mediciones que nos dé el precio.
*Eso es muy afinado, una exquisitez de sistema, creo es como si tuvieras 5 sistemas en uno, y el mismo sistema va eligiendo que “subsistema” aplica en cada momento o mercado, pero ¿no tiene el riesgo de que queriéndonos ajustar tanto al momento, nos ciñamos tanto a esas características que cuando las hayamos detectado, (tendrán que pasar unas cuantas barras para ello) y hayamos aplicado los cambios en nuestro sistema, el mercado ya esté cambiando otra vez? ¿No sería lo mismo de antes, cuando ajustamos el riesgo para no sufrir pero ahogamos el sistema, puede ser que aquí queramos seguir tan de cerca al mercado que se nos pueda escapar…? Supongo que si lo estás haciendo será porque ves que funciona, como antes también, el que sabe sabe, y el que no, o a aprender o a sufrir…! *
Luego para refutar si se muestra más eficiente es coger activos con horquillas de volatilidad similares, pongamos índices y ver que la lógica funciona, por ejemplo tiene que funcionar igual para un sp500 que para un Nasdaq 100 aunque el Nasdaq 100 sea mucho más volátil que el sp500 o el Ibex o dax que también en el caso del Ibex es muy volátil en comparación de otros. Si los resultados son satisfactorios en todos los índices, el sistema es robusto, por los extremos que estarás tocando.
Si funciona bien en el Eurostoxx o en el dow jones pero no en el Ibex, es que hay peligro que un día el Eurostoxx muestre un nivel de volatilidad parecido al Ibex y te reviente el sistema.
*Cuando se dice que la lógica tiene que funcionar en otros activos, hasta que punto ha de hacerlo? Me refiero hasta que punto de optimización, walk forwards, etc… No sé si me explico, hasta cuanto hay que estrujar el sistema intentando que funcione en otros activos? Bueno, creo que escribiendo la pregunta ya me doy cuenta de que cuanto más fácilmente funcione en otros activos, más fiable es, lógicamente, pero cómo de frecuente o fácil, es encontrar sistemas que funcionen fácilmente en varios activos, los que no tenemos experiencia, que referencia podemos tener?*
Por eso es tan importante definir la forma de optimizar como la forma de salir del sistema una vez los parámetros dejen de funcionar.
*tema fundamental, y sobre el que agradecería saber cómo lo determináis, hay quien dice que cuando se supere el mayor DD histórico, o aplicar algún sistema de control estadístico, cuando las operaciones empiecen a salirse de los rangos que tenía mientras funcionaba, etc… Para mí la grafica de resultados es lo que aporta una información más visual, directa e intuitiva del funcionamiento del sistema, pero igualmente, es difícil establecer el momento en que dejaremos de operarla… Cómo lo hacéis vosotros…?*
oni escribió:El adverse, tiene una solución bastante sencilla.
Lo importante es saber si le afecta realmente, ya que no conozco su metodología.
Lo ideal para poder tener una buena base, al tener tan pocas operaciones en ese backtest, es que trasladaras la operativa a un espacio temporal más corto. como mucho a 60 minutos, preferiblemente menos.
Obtendrías más operaciones y se podría ver donde te cojea , si es que lo hace , la operativa.
Desde ese punto se puede hacer una crítica constructiva por mi parte y poner mi granito de arena, me refiero a ejemplos y soluciones prácticas. algo tangible....
*Si con adverse os referíais a los MAEs, no sé a qué solución sencilla te refieres, supongo que algún stop o forma de cortar las perdidas, pero como comento, si hago eso se desmonta el sistema, funciona mucho peor, en time frames más pequeños pasa lo mismo… Supongo que hay que asumir ese riesgo si quiero operar esa estrategia, lo principal es que siga funcionando como lo ha hecho desde 2002 en backtest *
Gratphil escribió:
También observo antes de pasar a hacer walk forward que las optimizaciones de un activo son aplicables a otros (aparte de los 4 que opero) y esto lo hago con cada activo sobre el resto (lo hago particularmente con 11 activos).
Particularmente mi base es que sean solidos, previamente a probarlo en walk forward, cruzo su optimización completa con otros 10 activos y exijo que al menos me funcione en 9. Y esto lo hago activo a activo, con el resto.
*Te refieres a que exactamente los mismos parámetros obtenidos en una optimización, funcionen aceptablemente en otros activos?
Se puede optimizar una estrategia en varios activos a la vez? Sé que NT permite optimizar sobre varios time frames de una sola vez, pero no sé si se puede con varios activos… *
En cuanto al método de Walk Forward, lo que hago es un Anchored Walk Forward, desde el inicio fiable de mi histórico que aproximadamente es del año 98. Es decir para el año 2004 fuera de muestra optimice desde el 98 hasta el 31 de diciembre de 2003 y así sucesivamente hasta hoy.
*Entiendo que optimizas siempre desde el 98, así cada vez usas más histórico para obtener los parámetros del siguiente periodo. Me parece muy interesante ese método, ¿lo haces a mano o tu plataforma puede hacerlo? NT no tiene esa opción, ni VCH tampoco, no…?*
También creo que hay que hacerles seguimiento continuo a los sistemas y definir a priori cuando dejarlos o meterlos en cuarentena.
*tema fundamental, y sobre el que agradecería saber cómo lo determináis, hay quien dice que cuando se supere el mayor DD histórico, o aplicar algún sistema de control estadístico, cuando las operaciones empiecen a salirse de los rangos que tenía mientras funcionaba, etc… Para mí la grafica de resultados es lo que aporta una información más visual, directa e intuitiva del funcionamiento del sistema, pero igualmente, es difícil establecer el momento en que dejaremos de operarla… Cómo lo hacéis vosotros…?*
Espero haberte ayudado. Saludos
*Por supuesto, todos los comentarios y reflexiones ayudan…!*
ROBOCO escribió:No voy a aportar mucho. Simplemente animar a Gratphil y agmageton a continuar con el debate. Creo que la gente con menos experiencia se puede beneficiar bastante de los conocimientos que estáis mostrando.
Efectivamente, muchísimo nos aportan todos estos comentarios, ideas y conceptos. Después cada uno asimilará y aprovechará lo que pueda...
Sobre lo que comentáis algunos de intentar estrategias que se adapten lo mejor posible a las variaciones o distintas situaciones del activo, sin llegar a la sofistificación con la que trabaja agmageton, siempre he pensado que los sitsemas funcionarían mejor “desdoblandoslos” en un sistema para largos y otro para cortos, si bien con la misma lógica, timeframes y parámetros similares, pues parece claro cómo comentáis, que los precios evolucionan diferente en tendencias alcistas que en bajistas, por lo que nos podríamos adaptar mejor separando ambas operativas, con la ventaja de poder estar largo y corto a la vez, sin coste añadido, (de hecho en ese momento no tendríamos ningún contrato) y aprovecharíamos muchas señales que en ocasiones se pierden por estar posicionado al contrario, dependiendo del sistema utilizado. Que pensa9is al respecto…?
Muchísimas gracias a todos de nuevo por vuestras aportaciones…!
Un saludo
