¿Cómo programar una Estrategia Rotacional de 3 Factores?

por | Abr 23, 2023 | Amibroker, Premium, Sistemas | 0 Comentarios

En septiembre de 2022 vimos una estrategia rotacional mensual que utilizaba el ”Momentum” para ordenar los ETFs sectoriales USA.

Si no lo leíste lo puedes recuperar por aquí.

Hoy te traemos otra estrategia rotacional. En este caso, la estrategia combina 3 rankings distintos, 2 de ellos de Momentum, y el tercero de Volatilidad. Además, este sistema combina 2 timeframes distintos. Así que, como tenemos mucho de qué hablar, vamos a ello…

La idea original fue publicada por el reconocido trader César Álvarez.

Puedes leerlo en su web pinchando en la imagen:

🔎 Las Reglas del Sistema

▶️ Criterios de compra

  1. Compraremos en apertura el segundo día hábil de cada mes
  2. Calcularemos el ranking combinado para toda la lista de ETFs, y compraremos los 3 con menor puntuación, siempre que el último cierre diario esté por encima de la media de 200 días.

▶️ Criterios de venta

  1. Venderemos los 3 ETFs en la apertura del segundo día de cada mes, tanto si toca rotación como si no (De esta forma rebalanceamos mensualmente la cartera).

🌍 Universo

Vamos a probar este mismo sistema en varios universos distintos, para comprobar qué tal se comporta en activos bastante diferentes entre sí.

  • Principales ETFs sectoriales USA
  • ETFs de Renta Fija, Renta Variable y Materias Primas
  • Lista que incluye todos los activos anteriores, y a la que, además, hemos añadido Bitcoin.

📡 Ranking Compuesto

Aquí viene lo díficil y complicado del sistema: para calcular el Ranking de cada activo, lo haremos en 3 pasos:

Primer Paso

  1. Calculamos el retorno a 3 meses para cada ETF.
  2. Calculamos el retorno a 20 días para cada ETF.
  3. Calculamos la volatilidad histórica a 20 días para cada ETF.

Segundo Paso

  1. Ordenamos los ETFs del paso 1.1 y 1.2 de mayor a menor. Le damos al ETF con mayor ROC el valor de 1. Al segundo el valor de 2, y así hasta el último.
  2. Ordenamos los ETFs del paso 1.3 de menor a mayor, dándole la puntuación de 1 al de menor volatilidad. Al segundo el valor de 2, y así hasta el último.

Tercer Paso

  1. Damos un peso diferente a cada ranking: 40%, 40% y 20%, respectivamente.
  2. Sumamos estos 3 resultados, obteniendo así un valor único para cada ETF que incluye los 3 rankings en uno.

📈 Estadísticas

A continuación se muestran los resultados del backtest tal como lo explica César sobre Supersectores USA con sus parámetros originales:

Con esta prueba inicial, ya obtenemos una buena curva, que supera la rentabilidad del “Buy and Hold”, con menor riesgo.

Ahora vamos a intentar optimizar los parámetros. Para ello, lo primero es dividir los datos históricos en 2 partes, y usar sólo una de ellas para optimizar. En este caso, usaremos como “período de muestra” hasta diciembre de 2009, y a partir de 2010 será “fuera de muestra”.

Tras varias pruebas, hemos ido acotando lo que parece ser “La zona robusta”, y finalmente nos quedamos con los siguientes parámetros:

  • ROC Corto de 90 días
  • ROC Largo de 18 meses

Así que fijamos estos parámetros, y probamos en todo el periodo, obteniendo una pequeña mejoría, mejorando ligeramente el CAR, pero también bajando el MDD, la Volatilidad y el Ulcer Index.

Damos por buenos estos parámetros, por tanto, y pasamos a probarlos en otras listas de activos distintas, para ver si funciona en otros mercados.

Primero hemos querido probarlo en una cesta diversificada, que incluya tanto ETF’s de Renta Variable de distintas partes del mundo: (SPY, QQQ, EEM, IEV), como también alguno de Renta Fija (IYR, TLT, IEF, TIP), y de materias primas (GLD, DBC), así como el IYR como representante del sector Inmobiliario.

Como ves, obtenemos una curva algo más suave al mezclar distintas clases de activos, con una rentabilidad ligeramente inferior a la que obteníamos con los sectores USA únicamente.

A continuación, te mostramos los resultados de probar el mismo sistema en una lista de activos más amplia: en este caso hemos usado los 25 ETFs anteriores, (los 13 Supersectores USA, y los 12 ETFs del ejemplo anterior (Renta Fija, Materias Primas, Inmobiliario e Índices internacionales de Renta Variable), y además hemos añadido como activo número 26 de esta lista, el Bitcoin (BTC).

En este caso, en lugar de mantener sólo 3 posiciones en cartera, hemos optado por mantener 6 posiciones simultáneas. Esto es debido, por una parte, a que la lista de activos es mucho más larga, y por otro lado a que, nos parecía exagerado asignarle un 33% de la cartera a Bitcoin, ya que nos aumentaría demasiado la volatilidad.

Como ves, obtenemos una rentabilidad mayor que en las anteriores pruebas, a costa de una mayor volatilidad y un mayor Drawdown.

👨‍💻 Código AFL de Amibroker

Para probar este sistema, hemos tenido que recoger, mediante variables estáticas, la puntuación de cada uno de los valores en la watchlist, en cada uno de nuestros 3 rankings, para luego poder sumar los resultados y obtener un único ranking compuesto para cada valor, que es el que luego usamos.

Además, hemos tenido que obtener el ROC mensual de cada valor a partir de los cierres diarios del mismo. Por este motivo no podíamos usar el Backtest rotacional de Amibroker, ya que no podíamos usar los datos diarios (para el ROC de 20 días) si le dábamos al sistema una estructura “Rotacional Mensual”. Por eso hemos elegido, alternativamente, usar el modo “BacktestRegular”, y rotar nosotros “a mano” el día del mes que queríamos (hemos elegido rotar el segundo día de cada mes en lugar del primero o el último como viene siendo habitual para añadirle algo más de complejidad).
También hemos usado un “Semáforo MA200”, para elegir solamente valores que están encima de su Media móvil simple de 200 días.
Te dejo a continuación el código de Amibroker que he utilizado para que tú mismo puedas hacer las pruebas que quieras.

Desbloquea todos los contenidos con la Zona Premium

¿Qué crees que nos hemos dejado por probar? ¿En qué otra lista de activos te gustaría que lo probáramos? Puedes dejarnos cualquier pregunta o sugerencia que se te ocurra en comentarios.

Este artículo fue cortesía de Xavi Miralles para MKTSignals.

La newsletter de MKTSignals

Si quieres estar al tanto de todas nuestras novedades, suscríbete a nuestra newsletter. ¡Es gratis!

¡Puntúa este artículo!

Total votos: 6. Promedio: 5

También te puede interesar:

¿Quieres acceder a todo el contenido Premium HOY?

+50 códigos de Amibroker

0 comentarios

Enviar un comentario

Loading...