3 votos

Biblioteca de Python para el backtesting basado en ticks de criptomonedas

He visto y revisado muchas bibliotecas de backtesting en python - pyalgotrade, zipline, catalyst, backtrader, etc.

Parece que ninguno de ellos proporciona una manera directa de realizar "Tick-based o Multi-timeframe backtesting on CRYPTO".

  • Parece que el pyalgotrade sólo se basa en la cercanía.
  • La tirolesa es para las acciones.
  • catalyst (un fork de zipline) puede simular ticks con cierres de 1min, pero su proveedor de datos para la ingestión de datos no funciona.
  • backtrader parece que sólo se basa en el cierre.

Lo que quiero conseguir

Quiero realizar backtests tales que:

  1. Los indicadores se calculan con datos diarios.
  2. Progreso del bucle principal con datos basados en ticks o al menos como la tirolesa (con cierres de un plazo más corto, como 1min).

Y necesito la característica dos para lo siguiente:

  • poder simular stop-losses, es decir, dentro del cuerpo de la vela o de las sombras - no sólo en el cierre de la vela.
  • poder hacer backtest de estrategias intra-barra, para poder simular entradas y salidas dentro del cuerpo de una sola barra.

Gracias de antemano.

1 votos

Si vas a hacerlo bien, realmente deberías construir tu propia plataforma de backtesting. Probablemente tienes un montón de ideas personalizadas que no van a ser backtested en una plataforma preexistente.

1voto

antonm Puntos 1869

La función de repetición de datos de backtrader hace exactamente lo que buscaba. Por lo tanto, todo lo que necesita hacer es lo siguiente:

  1. Cree un archivo de datos CSV con un intervalo de tiempo de 1 minuto.
  2. Cargue los datos en una fuente de datos CSV de backtrader.
  3. Pasar la alimentación de datos a cerebro (motor de backtrader) con replaydata utilidad.
  4. Por último, añade una estrategia y otros pasos.

Un ejemplo de código a utilizar replaydata es como lo siguiente:

cerebro.replaydata(minuteDataFeed,
                   timeframe=TimeFrame.Days,
                   compression=1)

0voto

Hamish Gibson Puntos 11

¿Has probado a utilizar ccxt ? Esta biblioteca está disponible en GitHub y ofrece más de lo que está buscando. Ofrece datos de velas minuciosas de varias docenas de intercambios, así como un marco de backtesting que implementa indicadores realmente bien. No estoy seguro de que ofrezcan estrategias intra-vela, pero sus características apoyan lo que estás buscando de otra manera.

0 votos

No sabía que ccxt es capaz de hacer backtest. Lo comprobaré y responderé aquí más tarde. Gracias.

0 votos

¿Ha respondido esta biblioteca a la pregunta? Si es así, no dude en aceptar la respuesta, pero si no es así, díganos cuáles son sus deficiencias.

0 votos

Como he adivinado antes, ccxt no ofrece NADA de lo que estoy buscando - Es sólo una biblioteca de integración de intercambio, sin embargo una buena, tal vez la mejor.

0voto

Leo Puntos 11

Yo también lo he buscado y no creo que haya nada capaz de hacerlo. Personalmente he reconstruido algún programa de backtrading, y creo que es bastante sencillo de hacer sobre todo con la capacidad de Pandas para remuestrear datos por tiempo y construir velas a partir de ella. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html

Tienes dos conjuntos de datos:

  • Los ticks/operaciones, sobre los cuales usted mira en tiempo real para calcular su balance, stop loss, take profit, etc. Podrían ser velas de 1 minuto también (y usted usa los datos de "cierre" como el tick, o podrían ser ticks en vivo).
  • Las velas sobre las que construyes tus indicadores, etc., que también puedes construir sobre la marcha mientras haces un bucle sobre tus ticks-trades. Personalmente, pre-construyo las velas con pandas para poder "verificar" que los datos construidos en vivo de las operaciones coinciden exactamente. Y también utilizo las velas precalculadas para saber en qué momento debo volver a calcular los indicadores (porque cuando haces un bucle sobre todos los ticks/operaciones, no vas a volver a calcular los indicadores cada vez, tienes que esperar a que la vela esté completamente construida)

En cuanto a la obtención de los datos... Usted puede obtener bastante buenas velas de 1 minuto (200 días) de Binance, o el historial completo de comercio de Kraken de la API. Esos son gratis y fácil de conseguir, tal vez hay otros.

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