47 votos

¿Hay alguna otra biblioteca de trading algorítmico en Python que pueda elegir, excepto Zipline?

Excepto Zipline, ¿hay alguna otra biblioteca de trading algorítmico Python que pueda elegir? ¿Especialmente para backtesting?

Actualización: Dado que Quantopian cerró, existen algunas ramas de Zipline como:

https://pypi.org/project/zipline-reloaded/

https://www.quantrocket.com/zipline/

https://zipline-trader.readthedocs.io/en/latest/index.html#

1 votos

¿Qué usa actualmente tu empleador?

0 votos

@Terence Ng: Tengo curiosidad, ¿qué es lo que hace que Zipline no sea adecuado para ti?

30voto

MovEaxEsp Puntos 161

Además de Zipline, hay una serie de bibliotecas de trading algorítmico en varios estados de desarrollo para Python.

Desde el lado comercial, RapidQuant parece muy interesante aunque aún no lo he probado. Viene de algunos de los mismos desarrolladores que nos trajeron la excelente biblioteca de análisis de datos Pandas. Creo que Wes McKinney (el autor principal de Pandas) está involucrado.

Desde el lado de código abierto, puedes echar un vistazo a ultra-finance. Su objetivo es ser un sistema de backtesting totalmente funcional basado en eventos.

También echa un vistazo a PyaAlgoTrade. Está codificado para permitir pruebas distribuidas de estrategias en la infraestructura de nube de Google. Incorpora la biblioteca de análisis técnico de código abierto TA-Lib.

Finalmente, echa un vistazo a TradeProgrammer. También utiliza la biblioteca TA-Lib. El paquete es gratuito para utilizarlo en backtesting, pero su versión de trading en vivo es comercial.

Además de eso, creo que muchos traders propietarios construyen sus propios sistemas. Definitivamente hay algo que decir sobre usar una herramienta que entiendes a ese nivel.

0 votos

¿Cuál recomendarías?

1 votos

Zipline es solo un backtester de fondos de inversión. ¿Qué puedo hacer si quiero usarlo para monedas y futuros? ¿Cuál puedo elegir? ¿Tengo que seleccionar una biblioteca y modificar el código yo mismo?

1 votos

Tus enlaces ahora redirigen a sitios de spam.

18voto

NetPlayer Puntos 11

Editar (2016-06-21): Ahora con integración de datos/comercio en vivo con Interactive Brokers. Ha tomado un tiempo, pero finalmente ha llegado.

Editar (2017-09-20): los datos/comercio en vivo incluyen Visual Chart y Oanda (cuentas heredadas), tipos de órdenes, temporizadores y calendarios de mercado, actualización con Python 3.6 y los enlaces de la comunidad y otros enlaces actualizados


Un framework de backtesting en Python (ahora) muy maduro (en mi humilde opinión) es "backtrader":

Algunas características:

  • Puede correr en modo (pseudo)evento (llamado 'next') o en modo (pseudo)vectorizado (llamado 'runonce')

    • En modo "next" también se puede configurar para trabajar en modo "exactbars" que mantendrá el consumo de memoria al mínimo (desactivando la representación gráfica en el camino)
  • Notificación de órdenes/comercios a las estrategias (esto obviamente siempre es un evento)

  • Soporta fuentes CSV (algunas fuentes específicas y un cargador CSV genérico) fuentes binarias (VisualChart, Pandas, Blaze) y en línea (Datos de Yahoo Finance - cuidado con los cambios/problemas introducidos por Yahoo en 2017)

  • Re-muestreo de datos y Reproducción de datos

  • Mezcla datos de diferentes marcos de tiempo (incluyendo un dato y su contraparte "re-muestreada")

  • Capaz de múltiples activos

  • Capaz de múltiples estrategias

  • Una implementación de broker muy buena (en mi humilde opinión) que soporta instrumentos tipo acciones y tipo futuros (con margen) con esquemas de comisión implementables por el usuario si es necesario, incluyendo deslizamiento.

    La parte más bonita es el ajuste de efectivo para instrumentos tipo futuros en cada barra

  • Órdenes: Mercado, Límite, Stop, StopLímite, StopTrail, Bracket, OCO, Compensación Futuro-Spot, Mercado-Al-Cierre

  • Dimensionadores para apuestas automatizadas

  • Modos de tongo-al-cierre y tongo-a-la-apertura para trabajar con precios ya pasados o precios por venir, cuando no se tenga acceso a datos de resolución más baja

  • Tiene una lista comprensiva de indicadores implementados

  • Integración con TA-lib

  • Algunos analizadores (Rendimiento Anual, Sharpe, Analizador de Transacciones)

  • Puede optimizar estrategias y utilizar múltiples núcleos para la tarea

  • Soporte de representación gráfica a través de Matplotlib (>= 1.4.1) con un alto grado de configurabilidad y flexibilidad (los gráficos se ven bien)

  • Un escritor de texto para la salida en la consola de puntos de datos (csv) y resúmenes de datos/estrategias/indicadores/analizadores

  • Soporta calendarios de mercado

  • Temporizadores incluso durante el backtesting

  • Uso intensivo de metaclasses y sobrecarga de operadores para implementar facilidad de uso y un enfoque de expresión declarativa para la lógica e implementación de estrategias/indicadores

  • Funciona con Python 2.7 / 3.2 / 3.3 / 3.4 / 3.5 / 3.6

Divulgación: Soy el autor que trabajó durante 2015 en este proyecto como hobby, pero con el objetivo de hacerlo lo más completo y profesional posible

Por supuesto, queda a discreción del lector decidir si las afirmaciones y metas mencionadas han sido alcanzadas

Como mencionó edouard, cada framework tiene sus peculiaridades y en realidad comencé esto después de jugar un poco con pyAlgoTrade y no me gustó mucho la API, lo cual es, por supuesto, una cuestión de gusto personal.

0 votos

Tu proyecto parece realmente genial, y la buena documentación también se ve muy bien. ¡Voy a aprender muchas cosas de él, gracias!

0 votos

Estaba evaluando tu biblioteca, y creo que es un proyecto muy interesante. Una cosa que eché de menos fue una integración más profunda con Pandas, y, en mi opinión, pandas es actualmente la biblioteca a la que recurrir para cualquier cosa relacionada con datos financieros.

0 votos

Siéntase libre de unirse a la comunidad y explicar qué es "deeper". Uno de los objetivos principales del proyecto es usar solo la biblioteca estándar de Python en el núcleo e incluso en el flujo de datos Pandas, el paquete pandas no se importa. Se deja al usuario final tener pandas disponible si desea usarlo.

8voto

Eric Puntos 130

Posible actualización:

http://pmorissette.github.io/bt/

basado en

http://pmorissette.github.io/ffn/

ambos se instalaron fácilmente y son algo utilizable para un principiante. Me encantaría ver algunos ejemplos que no sean de la documentación de github

0 votos

Se ve muy ordenado. Me gusta el enfoque muy limpio de usar Pandas como la biblioteca básica de análisis de datos.

6voto

Colin Pickard Puntos 801

Hay un módulo llamado visualize-wealth que proporciona:

  • Capacidad de generación automática de documentación con sphinx

  • Metodologías de construcción de cartera de 3 formas (hoja de operaciones, marco de asignación de peso y serie de asignación estática)

  • Todas las medidas estadísticas básicas, incluidas muchas sofisticadas como CVaR, Error absoluto medio de seguimiento, Aproximación de Cornish Fisher (para incorporar asimetría y curtosis), algoritmos que preservan la estructura de correlación, Ratios de evaluación e información, y M^2 (por nombrar algunas)

    NOTA: La documentación de sphinx se convierte en ecuaciones de MathJax con enlaces clicables y documentos sobre conceptos más académicos

  • Archivo de Excel con cálculos manuales para la mayoría de los cálculos analíticos, lo que permite al usuario profundizar en los cálculos manuales si así lo desean (los resultados de este archivo se utilizan realmente como datos para probar los cálculos del módulo)

  • Utilidades para trabajar con la API de Yahoo! así como con HDFStores, para construir carteras a partir de ellas

  • Algoritmos de clasificación para determinar la "clase de activo probable" de una serie temporal, para habilitar la funcionalidad de selección de activos y atribución de asignación táctica.

REVELACIÓN COMPLETA: Soy el desarrollador del módulo visualize-wealth y lo he estado construyendo completamente por mi cuenta durante los últimos 14 meses.

6voto

tony.t Puntos 21

Interactive Brokers organizó un seminario web el 10 de noviembre de 2016 sobre cómo Implementar Algo Trading codificado en Python utilizando la API de Interactive Brokers. El presentador dio una buena explicación sobre la aplicabilidad de IBridgePy, que es un paquete de Python utilizado para conectarse a la API de C++ de Interactive Brokers para la ejecución de códigos en python en mercados en vivo.

El seminario web fue grabado para que puedas escucharlo en cualquier momento que desees. El enlace del seminario web está aquí: https://www.interactivebrokers.com/en/index.php?f=2227 En la página, IB categoriza sus seminarios web en varios temas: TWS, Trading, API, etc. Después de hacer clic en la pestaña "API", verás todos los seminarios web sobre API. IBridgePy funciona como un quantopian independiente y es mucho más fácil que IBpy. Puedes encontrar IBridgePy aquí www.IBridgePy.com

¡Una de las cosas más geniales sobre IBridgePy es que puede ejecutar los códigos de Quantopian sin necesidad de realizar ningún cambio! http://www.ibridgepy.com/tutorials/#Migrating_from_Quantopian_to_IBridgePy Divulgación: Soy el autor de IBridgePy.

0 votos

IBridgePy me parece interesante. ¿Está siendo desarrollado activamente en este momento? Estoy empezando a revisar la documentación. Estoy interesado en backtesting, paper trading y live trading. Ya tengo una cuenta en IB. Gracias.

0 votos

Sí. Por favor, consulta las notas de lanzamiento. ibridgepy.com/release-notes

0 votos

He estado usándolo por un tiempo y me gusta mucho. Gracias.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X