En un artículo anterior, en el que te presenté el System Quality Number de Van Tharp, vimos un sistema tendencial sobre acciones europeas, y te comentaba que el CAR tan elevado que nos salía podía deberse a un sesgo de supervivencia, al estar operando únicamente las acciones que actualmente forman parte del Euroxtoxx600.
Si no tienes claro lo que es el sesgo de supervivencia, puedes leer este artículo de la zona premium:
En aquel artículo te explicábamos la manera correcta de hacer un backtest evitando que el sesgo de supervivencia afectara a los resultados del backtest. Pero a veces te puedes encontrar con que tu proveedor de datos no te ofrece Deslistadas y Constituyentes para ese mercado concreto. De hecho, ni siquiera un conocido proveedor de datos que cuesta casi 1000$ al año (supongo que ya sabes a cuál me refiero) tiene ese dato para el Eurostoxx 600.
Si quieres que tu backtest sea lo más realista posible, necesitas incluir en él tanto las acciones Deslistadas, como el dato de su pertenencia o no al índice en una fecha determinada (Constituyentes).
Si tienes nuestra Base de Datos Premium podrás hacer que tus backtests sean lo más cercanos posible a la realidad, ya que tendrás acceso a Deslitadas y Constituyentes tanto del SP500 como del Nasdaq100.
Pero para esos índices en los que esto no es posible, hoy te quiero presentar una solución alternativa, consistente en elaborar un índice sintético que contenga sólo los valores que forman parte del universo que hemos usado para nuestro backtest.
En este caso concreto, queremos incluir aquellos valores que están hoy presentes en el Eurostoxx 600, y que además cumplían en cada momento con nuestro filtro de Liquidez. Es decir, que negociaran una media de 1.000.000€ diarios en el último mes, y que cotizaran a más de 5€.
Para ello, primero guardamos en una variable el número de watchlist que tenemos seleccionada en la ventana de “filter settings”.
A continuación, obtenemos una lista de todos los tickers que hay en dicha watchlist.
Para luego recorrer esa lista con un bucle “for”, para ir contando cuántos de ellos cumplen nuestro filtro de liquidez.
Guardamos la suma en una variable estática con “StaticVarAdd”, y luego, ya fuera del bucle, la recuperamos con “Staticvarget” para poder usarla en el cálculo del tamaño de la posición.
Dividimos el total de capital disponible entre el número de acciones que cumplían en aquel momento nuestro filtro de liquidez, para invertir la misma cantidad en todas ellas.
Obteniendo así una especie de índice equiponderado que incluye todos aquellos valores actuales del Eurostoxx600 que habrían sido elegibles por nuestro sistema en cada uno de los meses de nuestro período de backtest.
👨💻 Código AFL de Amibroker
Como siempre, te dejo el código para puedas hacer todas las pruebas que quieras.
La hipótesis de trabajo es que ese índice equiponderado habrá superado al índice Eurostoxx.
Si efectivamente obtenemos este resultado, aunque hay otros factores que pueden haber influído en ello (los valores no son exactamente los mismos, y además la equiponderación en sí misma ya supone un factor a tener en cuenta en el rendimiento de un índice), consideraremos que al menos parte de esa diferencia se debe al sesgo de supervivencia.
Si estás empezando con Amibroker y quieres saber hacer cosas tan impresionantes como esta que te estoy contando hoy, te puede interesar este curso pensado especialmente para ti.
🔎 Las Reglas del Sistema Inicial
Así que vamos a ver qué obtenemos si probamos un sistema con estas reglas:
- Timeframe: Diario.
- Universo: Acciones Líquidas del Eurostoxx600.
- Periodo de prueba: del 1/1/2015 al 31/12/2023
- Capital inicial: 1.000.000€
- Número máximo de operaciones simultáneas: tantas como acciones tenga la watchlist.
- Reinversión de beneficios: Sí
- Apalancamiento: 0%
Vamos ahora a ver las reglas de entrada y de salida
▶️ Criterios de compra parciales
- Compramos a final de mes todos los valores que pasen nuestro filtro de liquidez
▶️ Criterios de venta
- Vendemos a final de mes para rebalancear y volver a comprar los valores que cumplan nuestros criterios.
👀 ¿Probamos el sistema?
Vemos como solamente con mantener una cesta equiponderada de los valores que cumplían nuestro filtro de liquidez y que actualmente están en el Eurostoxx600 ya habríamos superado claramente al índice, llegando a hacerlo prácticamente tan bien como el SP500, que ha superado claramente a los índices europeos en los últimos años.
👨💻 Código AFL de Amibroker
Como siempre, te dejo el código para que puedas hacer todas las pruebas que quieras.
Este artículo fue cortesía de Xavi Miralles para MKTSignals.
0 comentarios