EITEN es un conjunto de herramientas de código abierto de Tradytics que implementa varias estrategias de inversión estadística y algorítmica, como las carteras de Eigen , las carteras de varianza mínima , las carteras máximas de relación de afilado y las carteras basadas en algoritmos genéticos . Le permite construir sus propias carteras con su propio conjunto de acciones que pueden vencer al mercado. El marco de prueba riguroso incluido en EITEN le permite tener confianza en sus carteras.
Si está buscando discutir estas herramientas en profundidad y hablar sobre más herramientas en las que estamos trabajando, no dude en unirse a nuestro canal Discord donde también tenemos un montón de más herramientas.
Camino | Descripción |
---|---|
eiten | Carpeta principal. |
└ Figuras | Figuras para estos repositorios de GitHub. |
└ acciones | Carpeta para mantener sus listas de acciones que desea usar para crear sus carteras. |
└ Estrategias | Un montón de estrategias implementadas en Python. |
backtester.py | Backtesting Module que tanto de retroceso como hacia adelante prueba todas las carteras. |
data_loader.py | Módulo para cargar datos de Yahoo Finance. |
portafolio_manager.py | Archivo principal que recibe un montón de argumentos y genera varias carteras para usted. |
simulador.py | Simulador que utiliza retornos históricos y Monte Carlo para simular precios futuros para las carteras. |
estrategia_manager.py | Administra las estrategias implementadas en la carpeta 'Estrategias'. |
Deberá instalar el siguiente paquete para entrenar y probar los modelos.
Puede instalar todos los paquetes usando el siguiente comando. Tenga en cuenta que el script fue escrito con Python3.
pip install -r requirements.txt
Veamos cómo podemos usar todas las estrategias dadas en el conjunto de herramientas para construir nuestras carteras. Lo primero que debe hacer es modificar el archivo de acciones . Se recomienda mantener la lista pequeña, es decir, entre 5 y 50 acciones, deben estar bien. Ya hemos puesto una lista de existencias pequeñas que contienen un montón de acciones tecnológicas como AAPL, MSFT, TSLA, etc. Permítanos construir nuestras carteras ahora. Este es el comando principal que necesita ejecutar.
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
Este comando utilizará los últimos 5 años de datos diarios, excluyendo los últimos 90 días y construirá varias carteras para usted. Según esas carteras, los probará en los datos fuera de la muestra de 90 días y le mostrará el rendimiento de cada cartera. Finalmente, también comparará el rendimiento con su elección del índice de mercado que es QQQ aquí. Vamos a sumergirnos en cada uno de los parámetros en detalle.
Aquí hay algunos ejemplos para construir diferentes tipos de carteras.
python portfolio_manager.py --is_test 1 --future_bars 30 --data_granularity_minutes 3600 --history_to_use 90 --apply_noise_filtering 1 --market_index QQQ --only_long 0 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 0 --future_bars 0 --data_granularity_minutes 60 --history_to_use all --apply_noise_filtering 1 --market_index SPY --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 0 --market_index SQQQ --only_long 1 --eigen_portfolio_number 1 --stocks_file_path stocks/stocks.txt
Actualmente, el kit de herramientas respaldan cuatro estrategias de cartera diferentes.
Cuando ejecuta el comando anterior, nuestra herramienta generará carteras a partir de todas estas estrategias y se los dará. Veamos algunas carteras resultantes.
Para el propósito de estos resultados, utilizaremos las 9 acciones en el archivo de acciones/acciones. Cuando ejecutamos el comando anterior, primero obtenemos los pesos de la cartera para las cuatro estrategias. Para fines de prueba, el comando anterior utilizó los últimos cinco años de datos diarios hasta el 29 de abril. Los datos restantes para este año se utilizaron para realizar pruebas hacia adelante, es decir, las estrategias de cartera no tenían acceso a él al construir las carteras.
¿Qué pasa si mi cartera necesita diferentes acciones? : Todo lo que necesita hacer es cambiar las existencias en el archivo de acciones.txt y ejecutar la herramienta nuevamente. Aquí está el comando final nuevamente que ejecutamos para obtener nuestras carteras:
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
Podemos ver que la cartera de Eigen está dando un gran peso a TSLA, mientras que los otros están dividiendo sus pesos de manera más uniforme. Un fenómeno interesante que ocurre aquí es la cobertura con SQQQ que todas las estrategias han aprendido automáticamente. Cada herramienta está asignando algo de peso positivo a SQQQ al tiempo que asigna pesos positivos a otras acciones, lo que indica que las estrategias están tratando automáticamente de cubrir las carteras del riesgo. Obviamente, esto no es perfecto, pero solo el hecho de que está sucediendo es fascinante. Veamos los resultados de Backtest en los últimos cinco años antes del 29 de abril de 2020.
Las pruebas de retroceso se ven bastante alentadoras. La línea punteada negra es el índice de mercado, es decir, QQQ . Otras líneas son las estrategias. Nuestra implementación de algoritmo genético personalizado parece tener los mejores resultados de prueba de respaldo porque es una versión avanzada de otras estrategias. La cartera de Eigen que más pesaba TSLA tiene la mayor volatilidad, pero sus ganancias también son muy altas. Finalmente, como se esperaba, el MVP tiene la varianza mínima y, en última instancia, la menor ganancia. Sin embargo, dado que la varianza es extremadamente baja, es una buena cartera para aquellos que desean mantenerse a salvo. La parte más interesante viene a continuación, veamos los resultados de las pruebas de futuro o futuros para estas carteras.
Estos resultados son del 29 de abril de 2020 al 4 de septiembre de 2020. La cartera de Eigen funcionó mejor, pero también tenía mucha volatilidad. Además, la mayoría de esos retornos se deben al cohete TSLA en los últimos meses. Después de eso, nuestro algoritmo GA funcionó de manera bastante efectiva, ya que superó el índice del mercado. Una vez más, como se esperaba, el MVP tuvo el riesgo y la recompensa más bajo y lentamente aumentó en 4-5 meses. Esto muestra la efectividad y el poder de estas estrategias de optimización de cartera algorítmica donde hemos desarrollado diferentes carteras para diferentes tipos de perfiles de riesgo y recompensa.
Nos complace compartir este conjunto de herramientas con la comunidad comercial y esperamos que a la gente le guste y contribuyan a ello. Como es el caso de todo en el comercio, estas estrategias no son perfectas, pero se basan en una teoría rigurosa y algunos excelentes resultados empíricos. Tenga cuidado al negociar con estas estrategias y administre siempre su riesgo. Los resultados anteriores no fueron elegidos, pero el mercado ha sido altamente optimista en los últimos meses, lo que ha llevado a los fuertes resultados mostrados anteriormente. Nos encantaría que la comunidad pruebe diferentes estrategias y las comparta con nosotros.
Un agradecimiento especial al blog de Scott Rome. Las carteras de Eigen y los conceptos de cartera de varianza mínima provienen de sus publicaciones de blog. El código para filtrar los valores propios de la matriz de covarianza también se obtuvo principalmente de una de sus publicaciones.
Un producto de Tradytics
Copyright (c) 2020-presente, Tradytics.com