Desde la oficina de Planificación Estratégica de OpenSistemas, y bajo el paraguas de la marca neuroons, recientemente hemos decidido apoyar proyectos de nuestros empleados que puedan implicar nuevos negocios. En esta línea, hoy queremos daros a conocer una biblioteca de análisis técnico desarrollada por nuestro compañero Darío López Padial.
TA es una biblioteca con un año y medio de vida, cuyo principal función es permitir realizar análisis técnico para series de tiempo financieras usando Python.
Está desarrollada haciendo uso intensivo de Numpy y Pandas, dos bibliotecas estándar en Python para hacer cálculos matemáticos y/o tratamiento de datos, respectivamente de un modo eficiente, gracias al uso de los cálculos vectorizados.
Además, la biblioteca ha obtenido una muy buena acogida entre la comunidad pythonera que se dedica a resolver problemas relacionados con finanzas o trading. Algunas estadísticas:
- +950 estrellas on GitHub
- 15 contributors
- Aproximadamente 7K descargas semanales desde Pypi
La biblioteca trata de seguir la mayoría de las buenas prácticas aceptadas en la comunidad de desarrollo de software en general y de python en particular:
- Compatibilidad con las versiones de Python 3.6 | 3.7 | 3.8
- Uso de las bibliotecas Pandas y Numpy como base
- 33 indicadores técnicos
- Código orientado a objetos
- Código liberado en GitHub
- Distribución de paquetes usando Pypi: https://pypi.org/project/ta/
- Uso de herramientas para mantener un estilo de código limpio: isort, pycodestyle
- Seguimiento de la guía de estilo de código propuesta por Google y del libro Clean – Code in Python
- Documentación autogenerada y online usando Sphinx, Readthedocs: https://technical-analysis-library-in-python.readthedocs.io/en/latest/
- Integración Continua usando CircleCI: https://circleci.com/gh/bukosabino/ta
- Test unitarios de cada indicador técnico usando Unittest
- Uso de los reportes de testeo con coverage: https://coveralls.io/github/bukosabino/ta
Próximos pasos
A continuación, se señalan algunas de las líneas de trabajo planificadas para los siguientes meses:
- Desarrollo de tests para todos los indicadores existentes.
- Inclusión de más indicadores.
- Inclusión de un wrapper para la descarga datos de mercado históricos.
- Uso de multi-índices de Pandas para calcular los indicadores vectorizadamente en varios activos a la vez.
- Inclusión de más herramientas para mantener un código más limpio: mypy, pylint, black.
Además, durante los próximos meses trataremos de participar activamente con la comunidad en forma de ponencias.
Algunos links de utilidad:
- Repositorio de código: https://github.com/bukosabino/ta
- Documentación online autogenerada: https://technical-analysis-library-in-python.readthedocs.io/en/latest/
- Publicación de un post de presentación en la prestigiosa revista de divulgación sobre ciencia de datos Towards Data Science: https://towardsdatascience.com/technical-analysis-library-to-financial-datasets-with-pandas-python-4b2b390d3543