22 votos

¿Qué biblioteca de trading algorítmico recomendarías para operar con Bitcoin?

Estoy empezando a hacer trading algorítmico en criptomonedas usando bibliotecas de Python. La mayoría de los intercambios tienen API RESTful que facilitan escribir tu propio código y comenzar.

Sin embargo, me gustaría beneficiarme de las funciones analíticas de bibliotecas establecidas como zipline y otras. Sin embargo, estas no admiten el trading de criptomonedas (aún).

¿Debería intentar escribir un backend para mi intercambio de criptomonedas favorito, o existen otras opciones disponibles?

12voto

He empezado a hacer lo mismo hace unos meses.

Puedes probar tus estrategias en cualquier plataforma: he probado:

backtrader - www.backtrader.com - basada en python, de código abierto, con una gran documentación y soporte de la comunidad, un autor servicial y algunas características excelentes. Si tienes conocimientos básicos de python, esta sería mi recomendación.

ninjatrader - gratis para descargar y bueno para principiantes con visuales fáciles de usar - también puedes usarlo con backtrader pero necesitarás un poco más de conocimiento en unix/python.

Wealthlab - similar a ninjatrader pero viene con una biblioteca de estrategias para que puedas empezar de inmediato.

Gekko - basada en Java nodejs. una plataforma realmente buena para empezar rápidamente y hasta ahora la única en la que puedes configurar bots en vivo, aunque el usuario de backtrader bartosh parece haber desarrollado una rama utilizando ccxt pero no lo he probado. Dejé esta opción porque quería seguir la ruta de python.

Creo que la parte más complicada para la mayoría de los entusiastas de los bots de criptomonedas es obtener los datos, así que aquí está mi script ccxt que extraerá los datos de poloniex (puedes cambiar esto - por favor consulta: https://github.com/ccxt/ccxt)

este en particular usa el formato de entrada para ninjatrader.

Obteniendo Datos:

El mejor lugar para obtenerlos es ccxt - cada intercambio tiene atributos diferentes pero he encontrado que poloniex me da la duración histórica más larga para la mayoría de las monedas en marcos temporales de 5m, 15m y 1d.

Aquí tienes un script que puedes usar para obtener información sobre poloniex:

import ccxt
import datetime
import time
import math
import pandas as pd

# ALIMENTACIÓN DE DATOS DEL INTERCAMBIO
símbolo = str('ETH/USDT')
marco_temporal = str('1d')
intercambio = str('poloniex')
intercambio_output = str(exchange)
fecha_inicio = str('2014-01-01 00:00:00')
obtener_datos = True

def a_tiempo_unix(timestamp):
    epoch = datetime.datetime.utcfromtimestamp(0)  # inicio del tiempo de la época
    mi_tiempo = datetime.datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S")  # inserte su objeto de tiempo
    delta = mi_tiempo - epoch
    return delta.total_seconds() * 1000

# Nombre del archivo CSV
símbolo_output = symbol.replace("/", "")
nombre_archivo = '{}-{}-{}.csv'.format(exchange_output, símbolo_output, marco_temporal)
nombre_archivo_output = '{}-{}-{}-out.csv'.format(exchange_output, símbolo_output, marco_temporal)

# Obtener nuestro intercambio
intercambio = getattr(ccxt, intercambio)()
intercambio.load_markets()
hist_start_date = int(to_unix_time(start_date))

data = exchange.fetch_ohlcv(symbol, timeframe, since=hist_start_date)
header = ['Timestamp', 'Open', 'High', 'Low', 'Close', 'Volume']
df = pd.DataFrame(data, columns=header)
df['Timestamp'] = pd.to_datetime(df['Timestamp'], unit='ms')
df['Timestamp'] = df['Timestamp'].dt.strftime('%Y%m%d %H%M')

#Precisión

df[['Volume']] = df[['Volume']].astype(int)

# Guardarlo
df.to_csv(filename, index= False,header=False, sep=';')

Backtest rookies es un excelente sitio para empezar, el autor también parece ser una persona realmente agradable: https://backtest-rookies.com.

¡Buena suerte!

EDITAR: 7/3/18: Uno más para agregar - Zorro - https://zorro-project.com/. programable usando c-lite, rápido, buenos tutoriales https://www.financial-hacker.com/ - versión gratuita disponible para volúmenes de operaciones bajos y capaz de descargar datos históricos de varias fuentes.

EDITAR: 12/4/19: Este es un gran enlace Una lista de recursos en línea para modelado cuantitativo, trading, gestión de carteras.

https://github.com/EliteQuant/EliteQuant

11voto

saeed sani Puntos 108

QuantConnect ha tenido usuarios trabajando en la contribución de corredurías REST de bitcoin: es completamente de código abierto y tiene soporte completo para modelado de divisas. También tiene soporte de Python en beta.

https://www.quantconnect.com/forum/discussion/958/bitfinex-brokerage

(Soy el fundador de QuantConnect)

Editar: Ahora admitimos completamente Python y criptomonedas. ¡Hemos puesto en producción la correduría GDAX!

Editar (12/2017): Un usuario de la comunidad ha contribuido con una implementación de Bitfinex. Actualmente está en fase de revisión.

Editar (7/2019): Bitfinex lleva en producción alrededor de 6 meses y es estable. Tenemos datos completos de comilla y operaciones de tick de GDAX y Bitfinex disponibles de forma gratuita para pruebas históricas en el sitio web.

8voto

Steven Huwig Puntos 8029

¡Echa un vistazo a mi biblioteca ccxt en GitHub: https://github.com/ccxt/ccxt

Con ella puedes acceder a datos de mercado y comerciar bitcoins y altcoins con muchas bolsas de criptomonedas. La biblioteca está en Python 2 & 3 (también disponibles versiones en JavaScript y PHP). Puedes implementarla desde PyPI, con npm o clonando el repositorio de GitHub.

La biblioteca ccxt está en desarrollo activo en este momento, pero ya ofrece un inicio rápido para comerciar y análisis técnico con muchos mercados de intercambio de criptomonedas de manera automática.

2voto

K Prime Puntos 4333

Apenas estoy empezando a investigar, pero https://www.enigma.co/ parece tener un marco de cripto basado en la trama en proceso.

ACTUALIZACIÓN mayo 2021: El proyecto parece estar muerto: https://github.com/enigmampc/catalyst/issues/576

0 votos

¿Ya has probado esto, si es así, ¿cuáles son tus pensamientos?

1 votos

Intenté su biblioteca de trading (catalystcrypto.io) hace casi un año en un estado alfa temprano. Parecía prometedor en ese momento. No he vuelto a revisar desde entonces (hice la mía propia basada en ccxt y backtrader).

1 votos

El framework es poderoso y está bien hecho y las notas de instalación/configuración son excelentes. La única crítica que tengo es que el repositorio ha estado bastante inactivo últimamente, parecen estar trabajando en otra iniciativa. Ver detalles en: github.com/enigmampc/catalyst/issues/547

1voto

https://github.com/askmike/gekko parece bastante bueno

probablemente puedas encontrar muchos repositorios similares en github. dependiendo del tipo de algoritmo/estrategia que quieras utilizar, estos podrían ser suficientes o quedar cortos. el lenguaje es otra preocupación. según mi investigación, node.js probablemente es el más común para el trading de criptomonedas, con python en segundo lugar.

finalmente te sugeriría que construyas tu propia infraestructura para el trading y utilices algunas de las bibliotecas de api o wrappers para las conexiones, porque un sistema de trading interno completo es más robusto, transparente y más fácil de depurar. en última instancia, te beneficiarás de ello a largo plazo.

0 votos

¿No es eso node.js?

0 votos

A partir del 16 de febrero, ya no se mantiene github.com/askmike/gekko/commit/…

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