En el criptoarbitraje, la diferencia de precios entre dos intercambios suele durar entre unos pocos cientos de milisegundos y unos segundos. Tu estrategia puede ser inteligente, tu capital estará disponible y podrás negociar para reducir los cargos. Si tu conexión a los intercambios es lenta, desactualizada o sigue teniendo problemas de velocidad de conexión, la diferencia desaparecerá antes de que tu orden llegue a buen puerto. Para un bot que opera entre varios intercambios, La conexión API es la estrategia. Todo lo demás se sitúa encima de ello.
Esta guía cubre los aspectos de la instalación de tuberías que la mayoría de los tutoriales de arbitraje omite: cómo conectar correctamente a las APIs de los intercambios de criptomonedas. Esto significa qué interfaz usar para qué, cómo mantener una lista de órdenes locales que coincida con la del intercambio, cómo mantener dentro de los límites de tarifas, cómo bloquear las claves API y cómo mantener la conexión las 24 horas del día, los 7 días de la semana. Está escrita para operadores que administran o tienen previsto administrar un bot de arbitraje en varios intercambios. Si aún no ha elegido una estrategia, comience con la nuestra Guía del bot de arbitraje criptográfico entre intercambios y vuelvan aquí cuando llegue el momento de conectar las cosas.
La anatomía de una conexión API de arbitraje
Una configuración de intercambio cruzada funcional no es una sola conexión, sino varias, cada una con su propio trabajo. Para cada intercambio en el que negocie, normalmente mantiene:
- Un flujo de datos del mercado público (WebSocket) que transmite las actualizaciones del libro de órdenes y las operaciones en el momento en que ocurren.
- Un canal de entrada de pedidos (REST, o una API de pedidos WebSocket/FIX donde el intercambio ofrece una) para colocar y cancelar pedidos.
- Un flujo de datos privados de un usuario (WebSocket) que te informa sobre llenados, cambios en el estado de la orden y actualizaciones del saldo sin que tengas que preguntar.
- Conocidas llamadas REST para cosas que no necesitan ser rápidas: instantáneas del libro de pedidos, información sobre el intercambio (tamaños de los tick, pasos de lote), niveles de comisiones y saldos para la conciliación.
Los principiantes suelen cometer dos errores aquí. El primero es consultar los precios en tiempo real en lugar de suscribirse a un flujo de datos. El segundo es comprobar el estado de la orden mediante consultas en tiempo real en lugar de escuchar el flujo de datos privado. Ambos desperdician el presupuesto de la tarifa de conexión y añaden cientos de milisegundos de retraso que nunca se recuperan.
REST vs WebSocket vs FIX: ¿Qué interfaz para qué tarea?
La mayoría de los principales intercambios ofrecen una API REST y flujos WebSocket. Un grupo más pequeño de grandes entidades también ofrece FIX o una API específica de entrada de órdenes con baja latencia, generalmente para niveles de tarifas más altos o cuentas institucionales. Cada una de ellas es buena en cosas diferentes:
| Interfaz | Mejor para | Debilidad | Utilízalo en arbitraje para |
|---|---|---|---|
| REST | Tareas de solicitud/respuesta, instantáneas y datos de la cuenta | Un viaje ida y vuelta por solicitud; cada llamada cuesta el peso máximo permitido por la tarifa. | Recopila instantáneas del libro de pedidos, información sobre cambios, saldos y entrada de pedidos cuando no existe nada más rápido. |
| WebSocket público | Precios de transmisión sin encuestas | Debes gestionar los números de secuencia, las reconexiones y las reinicializaciones tú mismo. | Libros de órdenes y operaciones en vivo: la información necesaria para cada señal |
| WebSocket privado | Envía actualizaciones de tus propias órdenes y saldos | Necesita una tecla de acceso o una conexión de inicio de sesión autenticada, y caduca si no la mantienes activa. | Reemplazo de la cuenta y estado de la orden; el desencadenante para la cobertura de la segunda operación |
| API de ordenación de WebSocket | Realizar pedidos mediante una conexión abierta | No en todas las bolsas de valores; sigue estando sujeto a límites de tarifas | Introducción de pedidos con menor latencia: sin nuevas solicitudes HTTPS por pedido |
| ARREGLAR | Introducción y copia de la orden institucional | Disponibilidad limitada, onboarding y niveles mínimos | Un volumen significativo en los lugares que lo apoyan |
Una regla sencilla: Los datos se reciben a través de streams, las decisiones se toman localmente y los pedidos se envían a través del canal más rápido que ofrece el intercambio. REST está diseñado para la configuración y la conciliación, no para nada relacionado con el camino de entrada. Si procedes de la industria de los divisas, los compromisos que implica son muy similares a los que se dan en Puentes entre FIX API y MT4El protocolo establece el umbral de latencia.
Mantener un libro de pedidos local que sea realmente correcto
Aquí es donde la mayoría de los bots construidos por el usuario fallan silenciosamente. Una exchange no te envía el libro completo de órdenes en cada actualización. Solo te envía Cambios: “El nivel de precios de 64.210,5 en la parte de compra ahora es de 0,82 BTC”. Usted se queda con el libro completo. Si se produce un cambio único, su libro se aleja de la realidad. Luego, su bot “ve” un spread que no existe y emite órdenes a precios que nunca existieron.
El patrón estándar, documentado en diferentes formas por la mayoría de los grandes intercambios, se ve así:
- Suscríbete primero al flujo de diferencias y proteger las comunicaciones entrantes.
- Recopila una instantánea REST de la lista de órdenes. Lleva un identificador de secuencia o actualización.
- Eliminar actualizaciones guardadas en memoria más antiguas que la instantánea, Luego aplique el resto en orden.
- Compruebe la continuidad de cada mensaje. El primer número de secuencia de cada actualización debe seguir al último que aplicaste.
- En cualquier caso de fallo, deseche el libro y vuelva a sincronizar Desde el primer paso. Nunca “arregle” un libro con un espacio conocido.
Se merecen añadir dos más comprobaciones de la normalidad. En primer lugar, un temporizador de permanencia: si un par de líquidos no ha enviado nada durante, digamos, dos segundos, considere el libro como no confiable, porque el flujo puede estar medio muerto sin haber cerrado. En segundo lugar, Verificación de libros cruzadosUna mejor oferta que la mejor oferta solicitada en un sitio web casi siempre significa que el libro está defectuoso; no que hayas conseguido dinero gratis. Algunos sitios web también publican un comprobador de integridad de los niveles superiores. Si el tuyo lo hace, compáralo con él.
Limitaciones de tarifas: el presupuesto que se encuentra detrás de cada pedido
Cada plataforma de intercambio limita el nivel de ataque que puedes realizar contra su API. Los detalles varían, pero la mayoría combina varias capas:
- Solicitar peso por minuto, Se suelen contar por IP. Los endpoints más pesados, como una instantánea profunda del libro de pedidos, tienen más peso que los de menor importancia.
- Limitaciones de número de pedidos por segundo y por día, normalmente se calcula por cuenta en lugar de por IP.
- Limitaciones de WebSocket: mensajes por segundo que puede enviar, conexiones por IP y flujos por conexión.
Exceder el límite no es solo un mensaje de error. Las infracciones repetidas pueden provocar sanciones temporales cada vez más severas, que suelen ser de unos minutos en el primer caso y más en el caso de los reincidentes. Esto puede dejar tu bot fuera de servicio en pleno funcionamiento. Así que debes tratar los límites como una presupuesto Tienes que planear con anticipación, no como con un muro que descubres al golpearlo.
Reglas prácticas que te mantienen dentro del presupuesto:
- Lee los encabezados de límite. Muchas plataformas de intercambio incluyen la información sobre el peso de los envíos usados en cada encabezado de respuesta. Manténgalo en cuenta y reduce la velocidad antes de llegar al límite, en lugar de después.
- Mantenga una reserva para los cancelados. El momento más difícil para limitar la velocidad de pago es cuando necesitas cancelar una orden antigua o cubrir una operación abierta. Mantén al menos el 20-30% del presupuesto para ese caso.
- Utiliza el canal privado para mostrar el estado. Nunca se repita la pregunta “¿Se ha llenado mi pedido?” en un loop.
- No exceda los límites con la rotación de IP o con cuentas adicionales. Esto suele violar los términos de uso del intercambio y puede resultar en la prohibición de todos los usuarios. Solicitar a la plataforma que proporcione límites más altos o un nivel superior es la forma legítima de hacerlo.
Autenticación, sincronización de reloj y seguridad de la clave API
Los endpoints privados suelen ser firmados con HMAC (algunas plataformas también admiten claves Ed25519 o RSA). La firma incluye una hora de inicio y la plataforma rechaza las solicitudes cuyo tiempo de inicio esté fuera de un intervalo corto, que suele ser de unos pocos segundos. Esto hace que Sincronización de los relojes parte de su infraestructura de trading: ejecute NTP o chrony en su servidor y observe el desplazamiento. Un reloj que se desvíe producirá una serie de rechazos con el mensaje “timestamp outside recvWindow”, justo cuando el mercado está activo y su servidor está sobrecargado.
Las claves API son las claves de tu capital, así que asegúrate de mantenerlas seguras:
- Solo trading, sin retiros. Un bot de arbitraje nunca necesita autorización para retirar fondos desde sus claves de trading. Mueva los fondos entre las bolsas manualmente o mediante un proceso separado y estrictamente controlado.
- Listas de permisos IP. Conecte cada clave a la IP estática de su servidor. Una clave filtrada que solo funcione desde su VPS es mucho menos peligrosa.
- Un clave por bot, por intercambio, idealmente por subcuenta. Si algo sale mal, puedes revocar una clave sin dejar de hacer todo lo demás.
- Secretos fuera del código y los registros. Utilice variables de entorno o un gestor de secretos y asegúrese de que los registros de errores nunca impriman la clave o la firma completas.
- Girar según un horario y de inmediato después de cualquier cambio de personal o presunta filtración de información.
Latencia: dónde se gastan realmente los milisegundos
En dos intercambios, el tiempo total de reacción es aproximadamente: la entrega de datos del mercado desde el intercambio A + su procesamiento + el desplazamiento de la orden hasta el intercambio B + la correspondencia. En una conexión a Internet doméstica, un viaje de ida y vuelta a través de un continente puede ser fácilmente de 150 a 250 ms. En un VPS en la misma región de nube que el motor de correspondencia del intercambio, la parte de red puede reducirse a unos pocos milisegundos.
Por eso la ubicación del servidor es más importante que los trucos de código. Muchas grandes plataformas de criptomonedas ejecutan sus motores de comparación en grandes regiones de nube (Tokio es una de ellas), y algunas publican su región de alojamiento. Otras se pueden encontrar mediante pruebas de ping desde centros de datos candidatos. Elija una ubicación cercana ambos Los lugares donde se encuentran los eventos de tu pareja principal. Si se celebran en continentes diferentes, tendrás que pagar la diferencia en una de las piernas, de cualquier manera, y tu estrategia debería permitirlo. Guía de configuración de VPS de baja latencia aborda la medición de la latencia y la elección de un centro de datos en detalle. El mismo método funciona para los lugares donde se realizan transacciones con criptomonedas.
Dentro de tu propio proceso, los principales beneficios se obtienen al analizar los mensajes sin realizar asignaciones pesadas, actualizando solo los niveles de precios que han cambiado y manteniendo los claves de firma de pedidos y las conexiones en buen estado. Un truco como TCP_NODELAY vale la pena tenerlo. Un buen libro y un camino de red corto valen mucho más.
Mantener la conexión 24/7
El cripto nunca se cierra, pero las conexiones sí. Planifique para estos eventos normales, no para las excepciones raras:
- Desconexiones programadas. Algunas plataformas de intercambio cierran cada conexión WebSocket después de un período de tiempo fijo, normalmente 24 horas. Abra una nueva conexión antes de que la anterior expire y realice la transición de forma fluida.
- Búhos cardíacos. Responda a los pings de respuesta y envíe sus propios pings cuando el intercambio los requiera. Las claves de escucha de stream privado a menudo requieren una llamada de keep-alive cada cierto tiempo.
- Períodos de mantenimiento y actualizaciones de API. Suscríbase a los anuncios de API de cada exchange. Los puntos de acceso se desactualizan, los pesos cambian y las nuevas versiones reemplazan a las antiguas.
- Interrupciones parciales. Una operación de intercambio puede seguir registrando precios mientras se produce un fallo en la entrada de la orden. Si la orden se queda sin procesar, no se debe concluir que haya sido rechazada. Verifique el estado de la operación en el flujo privado o mediante una consulta de estado antes de intentar otra vez, ya que podría terminar con una posición duplicada.
El diseño más seguro es un Máquina de estado de interruptor de asesinato. Cualquier flujo perdido, libro antiguo o reloj que no esté sincronizado hace que el bot pase a estar en “sin nuevas posiciones”. Aplanará o protegerá cualquier posición abierta, y luego la reconstruirá de forma limpia.
Normalizar varios intercambios en una sola vista
Cada plataforma describe el mismo mercado de manera diferente. Una escribe BTCUSDT, otra BTC-USDT, otra XBT/USDT. Los tamaños de tick, los valores nominales mínimos, los pasos de lote y los plazos de cobro también difieren. Antes de que su bot pueda comparar precios entre las diferentes plataformas, necesita una capa de normalización que:
- mapa los símbolos de cada intercambio a un ID interno del instrumento;
- reduce los precios a la escala de ticks de cada lugar y a la escala de lotes correspondiente, en la dirección que te mantendrá conservador;
- verifica los tamaños mínimos de la orden, por lo que la segunda parte de un arbitraje nunca se rechaza porque es demasiado pequeña;
- aplicable tu las tarifas efectivas de creador/receptor por lugar. La diferencia que importa es la que se aplica después de las tarifas, como se explica en nuestro análisis. Los principales tipos de criptoarbitraje.
Al iniciar sesión, cargue estos datos de referencia desde el punto de entrada de información de cada bolsa y actualícelos cada pocas horas. Los precios de las órdenes, los tamaños de tick y los límites cambian con mayor frecuencia de lo que podría parecer.
Pas a paso: conectar un nuevo intercambio a tu setup de arbitraje
- Cree un sub-cuentas y una clave API dedicada con permiso de trading solo, las retiradas están desactivadas y tu IP del servidor está en la lista de permisos.
- Medir la latencia de su candidato VPS a los puntos finales REST y WebSocket de la plataforma de intercambio, y coloque el servidor cerca del motor de coincidencia.
- Sincronizar el reloj (NTP/chrony) y confirma que el desplazamiento permanece dentro de la ventana de validación de la transacción.
- Carregar información de intercambio: símbolos, tamaños de puntos, pasos de lote, no-línea mínima y el nivel de su comisión. Mapela en tu capa de normalización.
- Construya el libro de pedidos local con el método snapshot + diff, con detección de espacios, un temporizador de permanencia y comprobaciones de libros cruzados.
- Conecte el flujo de datos privados de usuario Para cargas y saldos, con mantenimiento de la conexión y reconexión automática.
- Defina su presupuesto máximo de tarifas, con una participación reservada para cancelaciones y coberturas, y rastrea los encabezados de peso.
- Prueba con tamaño mínimo, Compare su libro local con la interfaz de intercambio y solo entonces aumente el tamaño de la posición.
Si prefieres no tener que construir y mantener todo esto tú mismo, una plataforma ya preparada se encarga de las sesiones de intercambio, los libros y la gestión de los pedidos. Guía para añadir una sesión de intercambio de criptomonedas muestra cómo se ve en la plataforma de arbitraje HFT, donde ingresas la clave API y la plataforma se encarga del resto.
Preguntas frecuentes
¿Necesito WebSockets para el criptoarbitraje, o es suficiente el REST?
Para cualquier tipo de arbitraje que dependa de la velocidad, se necesita WebSockets para obtener datos del mercado. Pollar los precios a través de REST es más lento, consume mucho presupuesto y no permite detectar cambios entre las encuestas. REST sigue siendo útil para obtener instantáneas, datos de cuentas y, en algunos intercambios, para realizar pedidos.
¿Qué permisos de API debería tener un bot de arbitraje?
Solo lea y negocie. Desactive las retiras en cada botón que use el bot, vincule el botón a la dirección IP de su servidor y use una clave separada, idealmente una cuenta secundaria independiente, para cada bot y exchange.
¿Por qué mi bot ve oportunidades de arbitraje que no son reales?
Por lo general, porque el libro de pedidos local no está sincronizado: una actualización perdida, un flujo que se quedó en silencio o una actualización aplicada en el orden incorrecto. Aumenta la detección de brechas de secuencia, un temporizador de permanencia y un control de libros cruzados y vuelve a sincronizar cuando uno de ellos falle. También confirma que la distribución sigue siendo válida después de tus tarifas reales.
¿Qué sucede si excedo el límite de velocidad de la API de un intercambio?
Primero se rechazan las solicitudes, normalmente con un código de error HTTP 429 o similar. Si sigues excediendo el límite, muchas plataformas aumentan la sanción hasta prohibir temporalmente la IP del usuario. Esto es peligroso cuando tienes una posición abierta para cubrir la pérdida, así que debes tener un presupuesto de reserva para cancelaciones y coberturas.
¿Dónde debería estar mi servidor para el arbitraje de cripto-cambio?
Lo más cerca posible de los motores de intercambio con los que usted comercia; normalmente en la misma región de nube. Medir el ping desde ubicaciones candidatas en lugar de adivinarlo. Cuando los dos lugares estén muy distantes, ubique el servidor cerca del lugar donde la velocidad es más importante para su estrategia.
¿Se permite usar varias claves API o IPs para obtener más solicitudes?
Las plataformas establecen límites de velocidad de forma deliberada y, si utilizas IPs o cuentas adicionales para burlarlos, normalmente violas sus términos de uso y puedes recibir una prohibición de acceso a tu cuenta. Si necesitas más rendimiento, pregunta a la plataforma sobre límites más altos, niveles VIP o API institucionales.