2 votos

Backtesting de estrategias de renta variable fundamental en Python

Estoy tratando de ejecutar un backtest local utilizando Python y Zipline parece ser el paquete más popular por ahí. ¿Alguien tiene alguna idea sobre la ingesta de datos fundamentales para el backtest? La documentación es limitada en el tema.

Alternativamente, si alguien tiene otras sugerencias sobre los datos fundamentales de backtesting que sería bienvenida también.

2voto

smiley Puntos 26

A diferencia de los datos de precios, que se ingieren como un paquete, los datos fundamentales en Zipline se utilizan normalmente a través de Pipeline y, por lo tanto, requieren la escritura de un PipelineLoader que sabe cómo cargar el conjunto de datos fundamental particular que está utilizando. No conozco mucha documentación para escribir un PipelineLoader aparte de profundizando en el código fuente .

Como alternativa, QuantRocket permite extraer un variedad de conjuntos de datos fundamentales y el backtesting con Tirolina o Moonshot . QuantRocket's Biblioteca de códigos contiene algunos ejemplos de estrategias que utilizan datos fundamentales.

0 votos

@nosigma Si esta respuesta aclara lo que buscabas, por favor, márcala como aceptada.

1voto

Mike Puntos 16

Creo que la mejor manera es no usar la libra de Python, ya que puede ser difícil ver el código que hay detrás, incluso si puedes tener acceso al código fuente. La mejor manera es desarrollar su propio BT, utilizando la siguiente estructura :

  1. Un script para cargar datos (tienes dos soluciones, primero hay un montón de API de pago para cargar datos. En mi caso, uso el paquete BeautifulSoup para scrapear datos de Yahoo, google, etc. Puedes tener acceso a datos históricos y de tick). Este script cargará los datos y formateará tus datos (la mejor manera es como series ya que es más rápido). También puedes utilizar la API de MongoDB o DropBox. En mi caso, uso la API gratuita de Dropbox para almacenar mi base de datos y mi script solicitará esta API
  2. Un script para el BT. Por ejemplo una Abstractclass "Backtester". Y luego, crearás "EquityBasket(Backtester)", "MeanReversion(Backtester)" etc para cada estrategia; Estos scripts serán puramente matemáticos script para calcular los pesos, cantidades, rendimientos etc
  3. La misma estructura de script que para Backtester pero para el algoritmo utilizado. De hecho, tendrá la posibilidad, en "MeanReversion(Backtester)" de crear un self._model(XX) y luego en el cálculo de la señal de reversión media por ejemplo : signal : self._model.get_signals() etc.
  4. Por último, una especie de consola para llamar a cada script. Los parámetros deben ser almacenados como un JSON en un archivo txt para hacer en la consola : params = get_params_from_json, bt = MeanReversion(params), y luego res = bt.run.

Espero que quede claro, he trabajado en muchos scripts de BT, no duden si tienen más preguntas

0voto

ADL Puntos 21

Una alternativa en línea que utilicé en el pasado es Quantopian - los autores de Zipline. Basado en Python, el registro es gratuito, acceso a Morningstar Fundamentals, excelente entorno de investigación incorporado usando Jupyter, grandes hojas de corte para backtesting, muy buenos tutoriales + documentación, y una comunidad muy activa.

Puedes presentar tus algoritmos para competir en un concurso y recibir financiación directa.

0voto

K3---rnc Puntos 143

Backtesting.py soporta cualquier tipo de datos OHLC. Si desea alimentar otros datos fundamentales, sólo tiene que añadir columnas adicionales al marco de datos de entrada.

2 votos

En ese enlace, ¿está afirmando que George Soros y Warren Buffett son "usuarios" de su biblioteca python? La verdad es que no me lo creo y me echa para atrás lo que por otra parte parece un buen trabajo de desarrollo.

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