- Pasivo
- Greedy (codicioso)
- Extreme greedy (extremadamente codicioso)
- Neutral
- Contrarian
- Extremadamente contrarian
- Experimento#1
- Experimento#2
Esta es mi primera aportación seria al foro, por lo que he intentado trabajármela un poco, pero mis conocimientos sobre la materia son limitados y probablemente alguien haya hecho esto antes y mejor. Espero que como mínimo les sirva de entretenimiento.
Aprovechando que está de moda citar a Warren Buffet, creo que todos hemos leído una de sus famosas frases:
Be fearful when others are greedy and greedy when others are fearful.
O, en castellano, “Sé temeroso cuando los demás sean codiciosos y codicioso cuando los demás sean temerosos”
Andaba yo pensando si se puede batir al mercado haciendo exactamente lo que dice esa frase: comprar teniendo en cuenta el estado de ánimo general del mercado. Quería intentar usar mis conocimientos de automatización/scraping/python en general para hacer una simulación de diferentes estrategias utilizando el ánimo del mercado para hacer market timing.
Para ello necesitamos algún tipo de indicador que cuantifique el estado de ánimo del mercado. He visto a mucha gente utilizar de vez en cuando el índice Fear & Greed de CNN que, por lo que cuentan en su web, utiliza una combinación de 7 indicadores para calcularlo. Para este ejercicio he supuesto que este índice captura realmente este estado de ánimo (que quizá es mucho asumir, pero evaluarlo o crear un índice similar está fuera de mi competencia)
Problema: la web de CNN nos da el valor actual, el de la última apertura, la semana pasada, el mes pasado y el año pasado, pero no he encontrado en ningún lado un histórico de este valor de X años atrás (quizá con alguna suscripción de pago está disponible, pero tampoco he encontrado info de esto) Tendría que apuntar estos valores durante un año para tener el histórico de dos años (ya que nos da el valor de hace un año). Lo más que dan es la gráfica al final de la página que abarca unos 3 años, pero es una imagen y no de mucha calidad.
Soluciones:
-
Se me ocurrió mirar si la máquina del tiempo tenía “fotos” antiguas de esta web que me sirvieran para hacer un histórico. ¡Bingo! Scrapeando estas capturas con la ayuda de alguna librería Python logré sacar un histórico más o menos suficiente desde 2011 pero con algunos agujeros. Ayuda bastante que cada “captura” te de el valor del índice en 5 días distintos, aunque… ¿A qué día se refiere “1 Month Ago” el 31 de Marzo? Hay que tener cuidado con esos temas y con los festivos. Para esto he usado un API abierto que devuelve los festivos en el mercado estadounidense desde 2013, para años anteriores he usado listados publicados en diversas webs.
-
Hay otra web parecida pero con muchos menos resultados, que rellenó unos pocos días más
-
Encontré imágenes de distintos años de la gráfica que hay al final de la web, con lo que “tenía” los valores históricos desde 2011. Pensando en cómo programarme algo que sacara los valores de forma aceptablemente precisa, mi novia, que es más lista que yo, encontró rápidamente una utilidad que me permitió sacar los valores de la gráfica y, comparando con los resultados reales de las capturas que ya tenía, la precisión es muy aceptable, siendo la diferencia comparable al cambio que puede experimentar el índice a lo largo de un día.
Teniendo ya un histórico de este indicador (aun no siendo exacto por los valores extraidos de la gráfica y no estando todas las capturas hechas el mismo momento del día), tocaba pensar en cómo hacer las simulaciones de las distintas estrategias. Nunca he hecho un backtesting ni nada parecido, por lo que el parecido con algo “profesional” puede ser nulo.
Primero definí un rango de tiempo para la simulación, que irá del 1/1/2011 al 31/12/2019. Me hubiera gustado que fuera de 10 años pero no ha podido ser por disponibilidad de datos.
Definí también varios perfiles bastante básicos. Todos los “inversores” ahorran 1000 euros al mes, teniéndolos disponibles para invertir desde el día 1 y todos miran el mercado a diario, esperando a invertir el dinero que tienen ahorrado siguiendo su estrategia en relación con el índice Fear & Greed. El activo en el que invierten son participaciones en el fondo Amundi Index MSCI World LU0996182563 (del cual he podido obtener valores liquidativos desde 2010 via Morningstar)
- El que he llamado “passive”: Pasa del índice, del mercado, de la frase de Warren Buffet y de todo en general. Según tiene dinero, lo mete todo de golpe sin acumular liquidez en ningún momento.
- El “greedy” o “codicioso”: Invierte todo lo que tenga ahorrado hasta el momento en cuanto el índice refleje “codicia” general (un valor > 56, valor que usa CNN para poner la etiqueta “greed”)
- El “extreme greedy” o “extremadamente codicioso”: Invierte todo lo que tenga ahorrado hasta el momento en cuanto el índice refleje “codicia extrema” general (un valor > 74, valor que usa CNN para poner la etiqueta “extreme greed”)
- El neutral: Invierte lo que tenga ahorrado en caso de que la situación de mercado sea neutral (valores entre 44 y 56)
- El “contrarian”: Invierte sólo si el índice marca “fear” (un valor menor de 45)
- El “extreme contrarian”: Invierte sólo si el índice marca “extreme fear” (un valor menor de 26)
- Dos experimentos (que quizá no tienen mucho sentido, pero eran fáciles de programar)
- Uno que he llamado “market” y que cada día invierte un porcentaje de los ahorros que le queden igual al valor del índice de ese día
- Otro que he llamado “inverse market” y que invierte un porcentaje igual a la resta de 100 - el valor del índice ese día
Llegados a este punto, me gustaría que votaran qué estrategia creen que habrá obtenido más valor al final del periodo. Actualizaré el hilo con los resultados esta semana. Pueden sugerir alguna otra estrategia y la añadiré cuando ponga los resultados o más adelante en caso de que el algoritmo esté dentro de mi habilidad como programador.