Momentum Time Series Trading con Python

  • Save
  • Save

Principales Temas e Ideas Clave:

  1. Estrategia de Momentum Time-Series:
  • La estrategia se basa en la idea de que las acciones con un buen rendimiento pasado tenderán a seguir teniendo un buen rendimiento en el futuro cercano.
  • Se centra en el rendimiento histórico de una única acción (a diferencia del momentum cross-sectional que compara múltiples acciones).
  • El ejemplo principal utiliza el rendimiento de los últimos 12 meses para tomar una decisión de compra y un período de mantenimiento de un mes.
  • La estrategia es inherentemente escalable, permitiendo modificar fácilmente el horizonte de tiempo para el cálculo del rendimiento pasado y el período de mantenimiento.
  1. «the strategy is just you make a buying decision based on the past return of a stock simple example you take a look at the Apple stock and take a look at the last year’s return you check okay it’s 10% is so you buy the stock and hold it for a certain holding period the absolute standard way is to take a look at the past 12month returns and then hold the stock for one month»
  2. Implementación con Python:
  • Se utilizan las librerías yfinance para obtener datos históricos de precios de acciones y pandas para la manipulación y análisis de datos de series de tiempo.
  • El proceso incluye:
  • Definir el ticker de la acción y el período de tiempo a analizar (ej. 10 años).
  • Descargar los precios de cierre diarios utilizando yfinance.
  • Resamplear los datos a una frecuencia mensual, tomando el último precio de cada mes.
  • Calcular el rendimiento mensual utilizando la función pct_change().
  • Calcular el rendimiento de los últimos 12 meses utilizando pct_change(window=12).
  1. «we need two libraries why Finance to pull stock price data and important yeah import panners uh for data handling purposes that’s already it for libraries and then I’m just going to define a ticker here and we are going to take the Apple stock just as an example […] then we’re going to pull prices for this stock so ju st going to pass the Apple stock here and we are just starting 10 years back […] and I’m just pulling the close price»
  2. Alineación de Datos para la Estrategia:
  • El paso crucial es alinear el rendimiento de los últimos 12 meses con el rendimiento del mes siguiente. Esto se logra utilizando la función join() de pandas, combinando los DataFrames del rendimiento a 12 meses y el rendimiento mensual basado en el índice de fechas.
  • Se introduce un sufijo a los nombres de las columnas para evitar conflictos después de la unión.
  • Se desplaza la columna del rendimiento mensual un período hacia adelante (shift(1)) para que en cada fila se tenga el rendimiento a 12 meses hasta el final de un mes y el rendimiento del mes siguiente.
  1. «the actually the hardest part this video is to bring together the 12month returns with the month monthly returns why is that because you want to have the monthly returns in the same row as the 12-month return and why is that again because you want to see now when Apple was dropping here what was happening in the subsequent month meaning in February 2016 so if you hold it over the February month which is the subsequent month for this lookback period right?»
  2. Formación de la Señal de Trading y Cálculo del Rendimiento de la Estrategia:
  • Se crea una columna de «señal» que indica cuándo comprar, basada en si el rendimiento de los últimos 12 meses fue positivo (1 para comprar, 0 para no comprar).
  • El rendimiento mensual de la estrategia se calcula multiplicando la señal de trading por el rendimiento mensual de la acción. Esto simula mantener la posición solo cuando la señal es de compra.
  • El rendimiento acumulado de la estrategia se obtiene calculando el producto acumulado de (1 + rendimiento mensual de la estrategia).
  1. «we say when this 12- month return is positive we buy and we hold for one month nothing more than that […] First Column is a signal column and this is our buying signal column and that is it doesn’t get easier than this you just take the exactly this expression actually you just take this one so you check where the 12mth return is positive and then you have your signal column»
  2. Comparación con el Rendimiento del Mercado (Buy and Hold):
  • Se calcula el rendimiento acumulado de simplemente comprar y mantener la acción durante el mismo período para comparar el desempeño de la estrategia de momentum. Esto se hace calculando el producto acumulado del rendimiento mensual de la acción.
  • La visualización gráfica del rendimiento acumulado de la estrategia versus el rendimiento acumulado del mercado revela si la estrategia generó alfa (rendimiento superior al mercado).
  1. «if you followed my uh uh my my content you know that this number is not telling you anything if you don’t compare it and if you compare it to the market return you will get a different picture here because it might be that Apple just uh overly outperformed the strategy by simply using Buy and Hold»
  2. Resultados para Apple y 3M:
  • Para Apple, la estrategia de momentum time-series implementada en el ejemplo no logró superar el rendimiento de la estrategia de «buy and hold» durante el período analizado.
  • Sin embargo, al aplicar la misma estrategia a la acción de 3M, se observó que la estrategia de momentum sí superó el rendimiento del «buy and hold». Esto subraya la importancia de probar la estrategia en diferentes activos, ya que su efectividad puede variar significativamente.
  • El ejemplo de 3M sugiere que la estrategia podría ser útil para evitar caídas significativas del mercado al mantenerse fuera del mercado cuando el momentum pasado es negativo.
  1. «here you have the clear picture so a very solid strategy but doesn’t get anywhere near the market […] so wow now you see uh you have the 3M return and you see that the strategy was outperforming the market return and you obviously see why uh because just keeping you out out of the uh uh crazy crazy Market here you see the the strategy return here is flat and um protects your your capital in that case»
  2. Posibles Extensiones y Mejoras:
  • Se menciona la posibilidad de flexibilizar los parámetros clave de la estrategia, como el período de cálculo del rendimiento pasado (ej. probar con 1, 2, 3… meses) y el período de mantenimiento (ej. mantener la posición durante 1, 2, 3… meses).
  • También se sugiere realizar pruebas a gran escala en múltiples activos para evaluar la robustez y consistencia de la estrategia.
  • Se alienta al espectador a implementar el código de manera más estructurada, utilizando funciones o programación orientada a objetos, para facilitar el análisis con diferentes tickers.
  • Se menciona brevemente la importancia del concepto de «rendimiento ajustado por riesgo», aunque no se profundiza en su cálculo en este video.

Conclusiones:

La estrategia de momentum time-series, a pesar de su simplicidad conceptual, puede ser una herramienta interesante en el arsenal de un trader. Su implementación en Python permite un análisis cuantitativo riguroso y la posibilidad de probar diferentes configuraciones y aplicarla a diversos activos. Los resultados del video demuestran que la efectividad de la estrategia puede variar significativamente entre diferentes acciones, lo que enfatiza la necesidad de realizar pruebas exhaustivas antes de su aplicación en un entorno de trading real. La flexibilidad de la implementación en Python abre la puerta a numerosas extensiones y optimizaciones de la estrategia base.convert_to_textConvertir en fuente

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Share via
Copy link