Backtests para Carteras de acciones: Demasiadas variables

 Backtests para Carteras de acciones: Demasiadas variables. 


¿Qué hay que tener en cuenta a la hora de hacer backtests de carteras de acciones? Parece que más cosas que en otro tipo de sistemas. De hecho parece que todo son problemas. ¿Por qué? Hay demasiadas variables. 

-          ¿Cómo varía tu cartera dependiendo del día que empiezas? 
-          ¿Cada cuánto rotas? 
-          ¿Rotas acciones sueltas en base a señales de salida? ¿O toda la cartera a la vez? 
-          ¿Cómo eliges que acciones entran? ¿Qué ocurre si no queda “hueco”? 
-          ¿Qué haces con el cash de las ventas? ¿y con los dividendos? 

Siento que últimamente solo traigo escepticismo a mis artículos, pero es porque me gusta presentar las preguntas adecuadas, que respuestas buenas hay muchas.

Esta vez vamos a ver los problemas que tiene el hecho de hacer backtests de carteras de acciones. Los backtests, no dejan de ser una representación de qué hubiera ocurrido en el pasado si hubiéramos invertido de una forma concreta.  Pero aplicarlo a carteras de acciones trae más problemática de la que parece. 

Por ejemplo, un sistema de ETFs básico que invierte en el SPY si el momentum de sus últimas 200 sesiones es positivo y si no se queda en cash, tiene dos posiciones posibles: SPY y cash, y una única señal que es la media del SPY, de 12. Es un sistema binario que “sólo” tiene un backtest posible. 

Sin embargo, si estas mismas reglas las aplicamos al universo de acciones del SP500, nos encontramos con que podríamos tener que comprar de 0 a 500 acciones. Como variar de forma salvaje el tamaño de una cartera no parece muy razonable, supongamos que limitamos el número de acciones a 50 acciones a la vez. ¿Cómo seleccionamos que acciones, si más de 50 cumplen el criterio? Ya necesitamos “algo” más que decida qué preferencia tiene cada acción. Un ranking o un sistema de preferencias para cada acción. Supongamos que, por cambiar, elegimos las que mejor EV/EBITDA tengan. 

Mientras que este ejemplo Momentum es una señal binaria (positivo o negativo), el EV/EBITDA es un ranking que ordena las acciones de mayor a menor. De esta forma componemos la cartera. 

Esto te llevaría a que cada día pudieras tener la siguiente casuística: Empiezas un día y compras tus 50 acciones que estaban en momentum positivo y las 50 mejores en EV/EBITDA.  ¿Cuál es la salida de las acciones? ¿Si su momentum es negativo? Entonces podrías tener acciones rankeando mejor en el EV/EBITDA, con momentum positivo, no pudiendo entrar en la cartera, porque no hay hueco. 

Entonces, ¿vendes si hay acciones con mejor ranking? ¿Podrías tener acciones con momentum negativo en la cartera, porque siguen rankeando arriba en EV/EBITDA? Cada vez más preguntas. 

Vale, supongamos que decides que sólo rotas la cartera cada trimestre. ¿Tendrías acciones durante un trimestre entero, aunque tengan momentum negativo y peor EV/EBITDA? 

¿Venderías esas posiciones a mitad de trimestre? ¿Qué haces con el dinero mientras esperas a la siguiente tanda de compras? 

¿Qué haces con los dividendos? 

Y algo fundamental… Si roto cada trimestre ¿Cómo afecta a los resultados el punto en el que inicio las compras? 

Para mí, estos son los problemas de los backtests de las carteras de acciones. Que hay muchas posibilidades, que las reglas de entrada y de salida, y de composición de la cartera afectan a los resultados, y que los puntos de entrada (cuando empiezas), puede llevar a grandes variaciones. Si la composición inicial de la cartera puede variar de un día a otro, también los resultados del backtest. Y una cosa es rotar de un día a otro, una única posición (ejemplo del ETF SPY) y otra que puedan variar de un día a otro, 50 posiciones de una cartera. 

Por tanto, para garantizar la fiabilidad de un backtest, este tiene que ser robusto independientemente del punto inicial. Variará, pero no puede arrojar resultados completamente distintos. Entonces no es un sistema operable.

Un sistema que decide volver a valorar las posiciones y componer la cartera cada trimestre (aprox 13 semanas) se encontraría, con que 12/13 semanas no las opera, y por tanto, hay 12 posibles curvas de un backtest que también hay que analizar! 

 
Esquema de las operaciones
Esquema de las operaciones
 

Si queremos ver los resultados del sistema en su totalidad, tendremos que hacer lo que se conoce como un Rolling backtest al sistema. Un backtest que nos arroje información sobre como habrían sido todas esas “operaciones” que no estamos cogiendo, y hacer un estudio completo, viendo que hubiera ocurrido con esas posiciones. De esta forma, ya podemos sacar un % real de operaciones que hubieran sido positivas, desviaciones estándar, etc. 

La herramienta que utilizo, Portfolio 123, tiene esta capacidad. 

Ejemplo de Portfolio 123
Ejemplo de Portfolio 123
 
En este ejemplo vemos que para un sistema como el propuesto, habría 1132 operaciones posibles de 91 días (3 meses) con una semana de decalaje entre ellas. La herramienta nos permite sacar las estadísticas de todas estas operaciones. 

 

Último pensamiento: 


Haciéndonos las preguntas adecuadas, siendo coherente con las reglas elegidas para que no den lugar a subjetividades, y corriendo el modelo todas las veces que sean necesarias para sacar toda la información posible del sistema, puedes tener un backtest completo y así  ver si realmente el modelo es robusto o no.

Y sin embargo, siempre quedará la duda de que si solo vas a operar una curva (1/13), estás asumiendo un riesgo de coger un pequeño porcentaje de las posibles operaciones, y que este no sea representativo. Por tanto, lo ideal realmente sería operar todas (las que se puedan) combinaciones posibles del sistema, para garantizar que sus resultados  serán los correspondientes a los que arrojaría un backtest. 


 
Si os ha gustado, subscribíos al blog para que os avise cuando haya más publicaciones y artículos recomendados, y dadle a me gusta para que gane visibilidad y pueda llegar a más gente. Os lo agradezco!

Un abrazo.

Ignacio Villalonga

Zona Quant

 
¡Sé el primero en comentar!