Estoy buscando fuentes de datos de criptomonedas, preferiblemente históricas, que pueda usar para realizar pruebas retrospectivas de mis bots y/o analizar el mercado.
¿Hay una fuente confiable para esto en línea? ¿Los intercambios ofrecen datos históricos por casualidad?
Si no, ¿cómo hago para adquirir estos datos?
Tienes dos opciones aquí:
Discutiré las dos opciones más abajo.
Obviamente, esta opción es la más conveniente, aunque también posiblemente la más costosa, dependiendo de la calidad requerida de los datos. tampoco hay garantía de que el intercambio, par y/o rango de tiempo que está buscando esté presente en la base de datos.
Pro:
Contras:
Con solo un poco de experiencia en programación y una comprensión básica de cómo funciona una API, puede configurar rápidamente su propia herramienta de adquisición de datos. Hay varios grados de dificultad, por supuesto, pero en el fondo, el asunto es bastante simple:
Lo guiaré a través de los pasos necesarios (sin el código; siento que este es un tema para otro StackExchange; sin embargo, lo vincularé a bibliotecas que lo ayudarán a comenzar).
Supongo que ha investigado y, por lo tanto, solo señalará algunas cosas al considerar los intercambios para los que desea obtener datos:
API
Elegir la interfaz de programación de aplicaciones adecuada ( API
) depende de 2 cosas:
y
API
el intercambio tiene para ofrecer (obviamente).REST API
sSi está de acuerdo con, digamos, instantáneas de datos de 1 minuto (es decir, teletipos, libros de pedidos, transacciones, etc.), solicitar datos a través de una API de transferencia de estado representacional (REST) es suficiente. Esto le permite enviar una http
solicitud a una URL específica y recibir una respuesta que contiene los datos solicitados (generalmente en JSON
formato -).
Lo conveniente de las REST
API es que funcionan casi igual en todos los intercambios: se envían solicitudes, se reciben respuestas y usted evalúa los datos. Algunos intercambios requieren que utilice diferentes métodos de solicitud (como ) en lugar de las solicitudes POST
habituales ; GET
sin embargo, esto generalmente solo se requiere para puntos finales privados (privado significa que primero debe autenticarse, antes de recibir datos como el saldo de su cuenta, etc.), por lo que si solo busca datos de mercado, no debería encontrarlos a menudo.
Una limitación de las REST
API es que suelen tener un límite de solicitudes. El límite más común es 60 requests per minute
, pero puede ser más estricto (o más flexible: Bitfinex permite un número ilimitado requests
por minuto). Algunos intercambios también emplean un contador de solicitudes, lo que significa que ciertas solicitudes aumentan su IP
contador conectado en un cierto valor. Dependiendo de su estado con el intercambio, este contador disminuye con el tiempo en un valor predeterminado.
Además de esto (si está pensando 'Bueno, ¡oye! ¿Por qué no obtener datos cada segundo entonces?'), Los datos de mercado a menudo se almacenan en caché. Se almacena una instantánea de un punto final de API durante un intervalo establecido, antes de actualizarse en el lado del servidor. Por lo tanto, puede enviar una solicitud cada segundo y, no obstante, recibir datos idénticos hasta que se actualice la memoria caché del servidor.
WS API
sLas API de WebSocket ( WS
) y WebSocketSecure ( WSS
) son conexiones full-duplex, que permiten al usuario recibir actualizaciones casi en tiempo real de uno o varios API
puntos finales a los que se ha suscrito. Full-duplex simplemente significa que no solo puede recibir, sino también enviar datos a la WebSocket
conexión. Esto es especialmente útil cuando se ejecuta un bot que se supone que comerciará en su nombre, ya que la retroalimentación suele ser más rápida.
En principio, abre una conexión a la WS
API y se suscribe a los puntos finales sobre los que desea obtener datos. Por lo general, esto está separado por punto final y par, pero asegúrese de consultar la API
documentación: algunos intercambios no emplean un channel subscription
modelo y los datos llegan sin configuración adicional.
La implementación de WebSocket
s varía de trivial a compleja, así que espere investigar un poco sobre cómo acceder a algunas de las WS
API de los intercambios. Si bien el sistema principal sigue siendo idéntico en todos ellos, muchos intercambios usan diferentes protocolos y/o servicios para proporcionar sus datos, por ejemplo, el WAMP
protocolo y Pusher, que agregan una capa adicional de complejidad, ya que requieren un cliente específico para conectarse.
Sin embargo, si necesita datos paso a paso, como para la creación de un libro de pedidos en tiempo real, esto es lo que desea.
FIX API
sEl Protocolo Financial Information eXchange
( ) es un estándar que comenzó en 1992 y ahora es comúnmente utilizado por instituciones y corredores en los mercados financieros. Es, con mucho, el menos disponible en los intercambios, y aún menos envían datos de mercado. Se usa más comúnmente para realizar o cancelar pedidos (por ejemplo, en CoinbasePro ). Sin embargo, algunos intercambios ofrecen datos de mercado en tiempo real a través de FIX.FIX
API
Tenga en cuenta que necesitará un amplio conocimiento del protocolo FIX, como configurar un motor FIX y proxies para conectarse al intercambio. Esto puede, en algunos casos , incurrir en cargos mensuales recurrentes.
Según la API que elija, así como el lenguaje de programación que pretenda utilizar, tiene una amplia variedad de opciones.
Muchos intercambios proporcionan bibliotecas de clientes para sus API, algunas desarrolladas por el propio equipo de desarrollo del intercambio, otras son aportadas por los usuarios (que generalmente son revisadas por el equipo de desarrolladores antes de ser citadas en el sitio web del intercambio).
Existen muchas otras bibliotecas, probablemente para cualquier idioma (por ejemplo , BitEx para Python 3.x (para permitirse una autopromoción desvergonzada), que unifica los métodos centrales en una variedad de REST
API
s, así como algunos WebSocket
API
s) .
Siendo yo mismo un desarrollador de Python, solo puedo recomendar su uso. Especialmente si no estás atado a un entorno. Usando la requests
biblioteca, por ejemplo, puede consultar un intercambio con facilidad:
import requests
# Get a list of all asset pairs at Kraken.com
print(requests.get('https://api.kraken.com/0/public/AssetPairs').json())
Una vez que haya configurado sus rastreadores de datos, ¡debe liberarlos! Personalmente ejecuto el rastreador REST a través cron
de trabajos y Websocket
rastreadores como daemons
. Pero esto depende de ti.
Por supuesto, tomará algún tiempo adquirir un conjunto significativo de datos, pero, por desgracia, paga con dinero o con tiempo por los datos que desea.
Referencias de API
Fuentes de datos
¡Siéntase libre de agregar, corregir o actualizar cualquiera de este contenido en los comentarios a continuación! Gracias.
Puede descargar los datos históricos de coinmarketcap.com con mi rastreador desarrollado: https://github.com/roNn23/coinmarketcap-historical-data-crawler . Pero solo obtiene las instantáneas de coinmarketcap.com , tal vez sea demasiado amplio para sus necesidades.
Puede usar mi sitio web www.cryptodatasets.com que proporciona exactamente lo que necesita. tick a tick precios históricos de BTC, ETH y LTC y volumen de Bitfinex y Hitbtc. Es exactamente lo que uso para probar mis estrategias/bots.
Simplemente abra un sitio web cryptoarchive.com.au con los conjuntos de datos que uso para mi propio modelado. Los datos OHLVC de un minuto están disponibles de forma gratuita, a nivel de ticks, a un precio muy razonable. Datos de Binance por ahora.
Para obtener datos históricos sobre los tipos de cambio y los volúmenes de criptografía, puede consultar:
aplicación pirata
Arroyo Profundo
aplicación pirata
Arroyo Profundo
aplicación pirata
Arroyo Profundo
aplicación pirata
Arroyo Profundo