Sistemas "Momentum" para acciones - Primera parte

17 de marzo, 2016 11
Gestor del compartimento Esfera I / Quant USA - Ingeniero Civil - Desarrollador de sistemas de trading - Fundador de bolsaycartera.com
Gestor del compartimento Esfera I / Quant USA -... [+ info]

Algunos lectores me han mandado correos interesados por el desarrollo de sistemas. No se si se trata de un interés puntual de estos lectores, o por el contrario el interés es general , pero no ha llegado a mi. Voy a iniciar una serie de artículos para mostrar cómo afectan a los resultados las distintas partes de un sistema.

Para el desarrollo de estos artículos, he elegido un sistema tipo “Momentum” para acciones. Los motivos son varios:

acciones_en_marcha* Me acabo de leer el libro “Acciones en marcha” y me ha gustado bastante. Lo recomiendo.

* El tema de las acciones suele ser el de mayor interés general.

* Es el más versátil a la hora de explicar filtros, dimensionamientos de la posición, sesgo de supervivencia, etc…

Como el libro me ha gustado bastante, el sistema que he desarrollado lo he basado en él, sobre todo porque me gusta intentar comprobar las cosas que me cuentan.

Así pues, durante el artículo os contaré las reglas del libro y del sistema para ver las diferencias. Comprobaré que efectos tienen en la operación usar o no filtros. Y lo más importante, si se os ocurre algo para mejorar el sistema, podemos probarlo juntos.

Antes de empezar, quiero que sepas que si eres miembro de la zona premium y quieres el código del sistema para Amibroker, mándame un correo a ramon@bolsaycartera.com y te lo enviaré, de esta forma podrás comprobar por ti mismo como afectan los cambios que comentemos.

Los códigos “momentum” para acciones constan de varios bloques:

  • Mercado a operar
  • Criterio de elección de las acciones
  • Número de acciones a operar
  • Dimensionamiento de estas posiciones
  • Reinversión o no de los beneficios
  • Filtros de mercado
  • Filtros de acciones

Todos estos bloques son los que iremos viendo, en otros artículos, cómo afecta al backtest si los utilizamos o no o si los variamos. Hoy nos dedicaremos a contar las que utiliza Clenow en su libro.

Mercado a operar

El mercado elegido es el SP500, pero una forma de valorar la robustez de un sistema es ver si su eficacia en otros mercados no disminuye mucho. Lo veremos.

Otra de las cosas importantes a valorar son los datos que disponemos. Cuando hacemos un backtest de los elementos de un índice, no vale disponer “sólo” de los elementos que componen el índice hoy. Muchas de las acciones que componen el índice hoy no estaban en él hace 10 años, por lo que hace 10 años no podríamos comprarla. Las acciones que estaban hace unos años y ahora no, se llaman acciones deslistadas y hay que tenerlas en cuenta a la hora de hacer el backtest.

Criterio de elección de las acciones

El criterio elegido por Clenow es una de las cosas que más me han gustado. Ordena las acciones en función de la pendiente de regresión exponencial anualizada ajustada por su coeficiente de determinación. Suena muy complicado y lo es si no estas puesto en estadística. Yo no lo estaba, pero tras estudiar un poco el tema, me ha parecido una solución bastante brillante y robusta. La he aplicado en el sistema.

Numero de Acciones y Reinversión de los beneficios

El número de acciones a operar no tiene límite. Empieza a comprar acciones del listado anterior hasta que se queda sin capital. Como el sistema es bueno, cada año tiene más capital (el inicial más los beneficios), por lo que cada año compra más acciones. Es una forma de reinvertir beneficios.

Dimensionamiento de las posiciones

Es otra de las cosas que me ha gustado, pues yo suelo utilizarla habitualmente.

En vez de dividir a partes iguales el capital entre el número de acciones, lo que hace es que todas las acciones que compra tengan la misma volatilidad.

Filtro de mercado

Sólo compra acciones cuando el precio del SP500 está por encima de su media de 200 sesiones.

Filtro de acciones

Solo compra aquellas acciones cuyo precio esté por encima de su media de 100 sesiones y que en las últimas 90 sesiones no hayan tenido un gap superior a un 15%.

Diferencias entre el libro y el código que estudiaremos

Clenow compra y vende acciones una vez a la semana y reequilibra las posiciones una vez cada dos semanas. Yo haré ambas cosas una vez al mes.

Clenow sólo vende una acción si cierra por debajo de su media de 100 sesiones, o si baja de las primeras 100 posiciones del SP500 o si sale del índice (acción deslistada).

Yo venderé todo una vez al mes y volveré a comprar según la clasificación. Esta simulación me facilita mucho la programación y la forma de llevarlo a la realidad es muy simple. Sólo venderemos las que no den compra y el resto quedará reequilibrado. Lo que si venderé inmediatamente serán las acciones deslistadas.

Bueno, pues estas son las bases de trabajo y estas las estadísticas sin aplicar comisiones:

Momentum Clenow 160317

El sistema es muy robusto como se puede apreciar en el análisis de Monte Carlo.

En los próximos artículos veremos como afectan los distintos bloques al backtest.

A ver si entre todos encontramos la forma de mejorarlo.

Saludos.

Usuarios a los que les gusta este artículo:

Este artículo tiene 11 comentarios
Hola Ramón, me alegro que hayas comentado el sistema de Andreas Cleanow, felicidades por el trabajo.

Primero decir que Andreas Cleanow es un gestor de un fondo Quant. Es una autoridad dentro del mundo Quant, sobretodo en Europa. Ha editado dos libros, Following the trend (para mi el mejor) y el de stocks on the move (a mi me toco leerlo en ingles cuando salió :( ). Ambos libros son muy buenos y recomendables.

Respecto al sistema que estudias, es un sistema rotacional basado en momentum y aplicado a un universo de acciones. El sistema me gusta porque utiliza tanto el momentum relativo (compra lo mas fuerte) y el momentum absoluto. En resumen explota una ineficiencia de mercado comprobada por muchos investigadores a lo largo de los años.

Ahora mi crítica negativa, no a tu trabajo sino al sistema de Cleanow. Como dice el mismo Cleanow, él tiene acceso por su posición de gestor de un gran fondo a comisiones prácticamente de cero. Él mismo dice que este sistema , si le incluimos comisiones comerciales al que tiene acceso el inversor común perdería su ventaja. Es por eso que ya haces bien al disminuir la rotación. En las estadísticas veo que no has incluido las comisiones, quizás un primer estudio interesante sería ver como afectan al sistema.

Otro de los puntos que no me gusta del sistema de Cleanow es que pone demasiadas condiciones, muchos filtros. Cuantos más parámetros y filtros se utilizan, mayor probabilidades de entrenar los sistemas para el periodo trabajado.

Te dejo un enlace a un post de Nick Radge, otra autoridad en el mundo Quant donde trabaja y intenta mejorar (simplificandolo) el sistema.

https://www.thechartist.com.au/Articles/momentum-investing.html

Nick también dice que para él el sistema es inoperable por las comisiones y hace el siguiente estudio para simplificarlo.

Nick compara el sistema de Cleanow con los mismos lookbacks pero simplificandolo usando , ROC de 90 para medir el impulso, filtro de las acciones de 100 días y filtro de índice de 200 días. También al igual que tu rebalancea mensualmente en vez de cada dos semanas.

desde 1999-2014 , rendimiento y Drawdown de SP500, Cleanow y Impulso.

SP500: 5.2% y -55%

Cleanow: 12.3% y -24%

Impulso: 12.2% y -23.5%

Podemos comprobar como de una manera más simplificada tenemos prácticamente los mismos resultados.

Luego hace otra prueba pero dando periodos de más largo plazo, lo que comportará menos rebalanceos. Usa un ROC pero de 252 días y ambos filtros tanto el de acciones como el de índice de 252 periodos.

desde 1999-2014, el sistema de impulso mejora al 14,4% de rendimiento con un Drawdown del -23.5%

Finalmente hace una prueba de robustez, incluyendo 5 años fuera de la muestra de diseño del sistema del impulso anterior, desde 1995 hasta 2015, rendimiento aumenta hasta 17.7% con DD de -23.5%. Fuera de muestra el sistema de impulso lo ha hecho incluso mejor!

Con esto quiero demostrar que la evidencia sobre la que está construido el sistema es buena, pero que se puede simplificar para mejorarlo.

Espero haber aportado un granito de arena a tu investigación, a la espera de tus siguientes pasos.

Un saludo!
18/03/2016 09:36
En respuesta a Sergio Molina
Hola Sergio, gracias por tus comentarios y links. Por supuesto que me aportan.

Un par de puntualizaciones antes de contestarte.

Si no tengo mal entendido los conceptos de momentum absoluto y relativo, el sistema de clenow sólo contempla el momentum absoluto.

Segundo, lo que hace Nick Radge respecto de clasificar las acciones con el ROC, también lo hace Clenow en el capitulo "Análisís de la estrategia".

Una vez comentado lo anterior, te diré, que el objetivo de este artículo no es ensalzar ni desmerecer el sistema, sino analizar de qué está compuesto el código (que es parecido al del libro, pero no el mismo) y como influyen sus modificaciones o anulaciones en los backtest.

Una vez hecho esto sacaremos las conclusiones correspondientes que podrán coincidir con las tuyas... o no.

Saludos.
18/03/2016 10:49
En respuesta a Sergio Molina
Esas conclusiones más o menos las tengo, pero no quiero adelantarlas.

Es precisamente lo que quiero ir viendo en los artículos.

Gracias de nuevo, Sergio.
18/03/2016 10:58
Hola Ramón, yo entiendo que si úsa el momentum relativo, te explico.

El sistema clasifica el sistema por su fuerza relativa utilizando la regresión lineal. O sea que en la posición numero uno será el que tenga mas fuerza (es indiferente el indicador que usemos en este caso)

Una vez clasificados los activos compra desde el numero 1 y siguientes hasta que se queda sin capital. ¿Por que empieza a comprar por la mas fuerte o la número 1 y no por la ultima? Pues porque compra las mas fuertes en la clasificación. En definitiva ha usado el momentum relativo o transversal.


Ya nos contarás tus estudios! Saludos.
18/03/2016 11:10
En respuesta a Sergio Molina
Pues ese momentum que explicas, es el que yo tenía entendido como absoluto... estaré equivocado.

Si es como dices, el que no utiliza es el relativo, no?

Saludos.
18/03/2016 20:39
Utiliza las dos. Momentum absoluto es como un filtro de tendencia, por ejemplo una media móvil. En el sistema utiliza el momentum absoluto cogiendo acciones por encima de su media móvil de 100 periodos.

En cambio el momentum relativo es el que compara la fuerza entre las acciones. Es el que determina cuales están más fuertes.

Saludos
18/03/2016 22:04
En respuesta a Sergio Molina
Entendido Sergio.

Si tu definición de momentum absoluto es el filtro de acciones que utiliza, estamos de acuerdo. Cuestión de semántica.

Saludos.
19/03/2016 07:14
antiguo usuario
Menudos 2 cracks de Amibroker se han juntado!

Una duda, habéis tenido en cuenta el sesgo de supervivencia en el estudio¿? Si es así, estoy intentando encontrar como hacer para que Amibroker corra el sistema sobre el universo al que pertenece en CADA momento al índice (pe Apple no ha pertenecido siempre al Nasdaq100). Sabéis donde puedo encontrar información al respecto¿? Gracias!
21/03/2016 15:43
Hola Marc.

El sistema tiene en cuenta el sesgo de supervivencia.

Si tienes las herramientas y datos adecuados, es muy simple de hacer. Pero si no dispones de ellas, puede llegar a ser un mundo su análisis.

Yo dispongo de amibroker y los datos los tengo contratados con Norgate con la opción de acciones deslistadas.

Entre esos datos y funciones de amibroker tipo IsIndexConstituent("$SPX"), el tema está resuelto.

En las ayudas de amibroker puedes encontrar esas funciones.

Saludos.
23/03/2016 16:56
antiguo usuario
Hola Ramón,

correcto, ya tenía compradas acciones deslistadas y precisamente hoy he dado de alta una cuenta como alpha tester para acceder a la función y pluggin IsIndexConstituent("$SPX") en Norgate.

El tema, está en la fiabilidad que le podemos dar, estando aún en fase alpha de testing... los resultados te están convenciendo¿?

Saludos
23/03/2016 17:04
Escriba un nuevo comentario

Identifíquese ó regístrese para comentar el artículo.

Síguenos en:

Únete a inBestia para seguir a tus autores favoritos