2 votos

Pruebas retrospectivas de estrategias de renta variable fundamentales en Python

Estoy intentando ejecutar una prueba local utilizando Python y Zipline parece ser el paquete más popular disponible. ¿Alguien tiene información sobre cómo incluir datos fundamentales para la prueba? La documentación es limitada en este tema.

Alternativamente, si alguien tiene otras sugerencias sobre cómo realizar pruebas con datos fundamentales, serían bienvenidas también.

2voto

smiley Puntos 26

A diferencia de los datos de precio que se ingieren como un paquete, los datos fundamentales en Zipline generalmente se utilizan a través de Pipeline y, por lo tanto, requieren escribir un PipelineLoader personalizado que sepa cómo cargar el conjunto de datos fundamentales particulares que estás utilizando. No tengo conocimiento de mucha documentación para escribir un PipelineLoader personalizado aparte de investigar en el código fuente.

Como alternativa, QuantRocket admite extraer una variedad de conjuntos de datos fundamentales y realizar backtesting con Zipline o Moonshot. La Biblioteca de Código de QuantRocket contiene algunas estrategias de ejemplo que utilizan datos fundamentales.

0 votos

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

1voto

Mike Puntos 16

Creo que la mejor manera no es utilizar la librería de Python ya que puede ser difícil ver qué código hay detrás, incluso si tienes acceso al código fuente. La mejor manera es desarrollar tu 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 extraer datos de Yahoo, Google, etc. Puedes tener acceso a datos históricos y de ticks). Este script cargará 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 principal para el BT. Por ejemplo, una clase abstracta "Backtester". Y, luego, crearás "EquityBasket(Backtester)", "MeanReversion(Backtester)" etc. para cada estrategia; Estos scripts serán scripts puramente matemáticos para calcular los pesos, cantidades, retornos, etc
  3. La misma estructura de script que para Backtester pero para el algoritmo utilizado. De hecho, tendrás la posibilidad, en "MeanReversion(Backtester)", de crear un self._model(XX) y luego en el cálculo de la señal de reversión a la media por ejemplo: señal: self._model.get_signals() etc
  4. Finalmente, una especie de consola para llamar a cada script. Los parámetros deben almacenarse como un JSON en un archivo de texto para hacer en la consola: params = get_params_from_json, bt = MeanReversion(params), y luego res = bt.run.

Espero que esté claro, he trabajado en muchos scripts de BT, no dudes en preguntar si tienes más preguntas

0voto

ADL Puntos 21

Una alternativa en línea que usé en el pasado es Quantopian - los autores de Zipline. Basado en Python, el registro es gratuito, acceso a Fundamentos de Morningstar, excelente entorno de investigación integrado utilizando Jupyter, excelentes hojas informativas para backtesting, muy buenos tutoriales + documentación, y una comunidad muy activa.

Puedes enviar tus algoritmos para competir en un concurso y recibir financiamiento directo.

0voto

K3---rnc Puntos 143

Backtesting.py admite cualquier tipo de datos OHLC. Si desea alimentarlo con otros datos fundamentales, simplemente agregue columnas adicionales al marco de datos de entrada.

2 votos

En ese enlace, ¿estás afirmando que George Soros y Warren Buffett son "Usuarios" de tu biblioteca de Python?? Para ser honesto, no lo creo y me aleja de lo que parece ser 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