API Huobi

Huobi (HTX)

Huobi (ahora rebautizado como HTX) es un exchange de criptomonedas internacional y multilingüe.

Configuración

Si desea suscribirse a las actualizaciones privadas de su cuenta, debe crear una clave API en su cuenta de Huobi. Una vez creada, configure la clave API y el secreto en el cliente API de Huobi.

Datos públicos y privados con un único componente

HTX sirve los datos de mercado y los datos de cuenta en dos endpoints distintos, con dos esquemas distintos: wss://api.htx.com/ws transporta los datos de mercado como frames de suscripción v1, y wss://api.htx.com/ws/v2 transporta los canales de cuenta y de órdenes como frames autenticados v2. Ninguno de los dos endpoints responde a los frames del otro.

Comportamiento anterior. El componente abría una única conexión y elegía el endpoint según las credenciales: con una ApiKey vacía se conectaba al endpoint público y solo funcionaban los métodos públicos, y con una ApiKey configurada se conectaba al endpoint privado y solo funcionaban los métodos privados. Una aplicación que necesitara los datos de mercado y los datos de cuenta a la vez tenía que crear dos instancias del componente, una con credenciales y otra sin ellas.

Comportamiento actual. La conexión del componente es siempre la pública, así que los datos de mercado están disponibles tanto si hay credenciales configuradas como si no. Cuando se configura una ApiKey, el componente abre además una segunda conexión al endpoint v2 por su cuenta, y una única instancia recibe entonces a la vez los datos públicos de mercado y los datos privados de cuenta. Esa segunda conexión es interna: el componente la abre y la cierra junto con la pública, no tiene propiedad Active ni eventos propios, y todo lo que llega por ella se expone a través de los eventos del componente, exactamente igual que los datos de mercado.

No hay nada que cambiar en las aplicaciones existentes. No se ha añadido ninguna propiedad ni ningún evento nuevo, la API pública del componente es la misma que antes. Una aplicación que ya establece la ApiKey y se suscribe solo a canales privados sigue funcionando, y ahora también puede suscribirse a los canales públicos en la misma instancia. Una aplicación que usaba dos instancias sigue funcionando también, aunque la segunda instancia ya no es necesaria.

La autenticación de la conexión privada se ejecuta por su cuenta, así que la conexión privada puede seguir conectándose o autenticándose cuando la aplicación se suscribe. Eso no es un error y no hay que esperar nada: el canal se registra y se solicita en cuanto se confirma la autenticación. Lo mismo se aplica tras una reconexión cuando Resubscribe está habilitado, los canales privados se reconstruyen y se vuelven a solicitar en cuanto la nueva sesión se ha autenticado.

Llamar a un método de suscripción privado con ninguna ApiKey configurada ahora lanza el evento OnHuobiError, informando del canal que se solicitó y del endpoint que necesitaba. Antes la solicitud se escribía en una conexión que no podía atenderla y se perdía sin dejar rastro.

El cliente de futuros (TsgcWS_API_Huobi_Fut) se conecta a un endpoint distinto, que aquí no tiene contrapartida v2, así que no abre ninguna segunda conexión y sus frames privados circulan por su propia conexión, exactamente igual que siempre.

Métodos públicos

Puede suscribirse a los siguientes canales públicos (no se requiere clave de API)

Método Descripción
SubscribeKLine Este tema envía una nueva vela japonesa cada vez que está disponible. Periodos admitidos: 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year.
SubscribeMarketDepth Este tema envía el libro de órdenes de mercado por precio más reciente en modo instantáneo a intervalos de 1 segundo. Niveles de agregación de profundidad admitidos: step0 a step15.
SubscribeTradeDetail Este topic envía las últimas operaciones completadas. Se actualiza en modo tick a tick.
SubscribeMarketDetail

Este topic envía las últimas estadísticas de mercado con un resumen de 24h. Se actualiza en modo instantáneo, con una frecuencia de no más de 10 veces por segundo.

SubscribeBBO El usuario puede recibir actualizaciones BBO (Best Bid/Offer) en modo tick a tick.
SubscribeMarketTicker

Recupera el ticker de mercado. Los datos se envían cada 100 ms.

SubscribeMarketByPrice El usuario puede suscribirse a este canal para recibir actualizaciones del libro de órdenes Market By Price. El intervalo de actualización es de aproximadamente 100 ms. Niveles admitidos: 5, 10, 20, 150, 400.

Métodos públicos de Futures

Los siguientes métodos están disponibles para el cliente de la API de Futuros (TsgcWS_API_Huobi_Fut), además de todos los métodos públicos indicados anteriormente.

Método Descripción
SubscribeIncrementalMarketDepth Suscríbase a actualizaciones incrementales de profundidad de mercado con tamaño y tipo de datos configurables (instantánea o incremental).
SubscribePremiumIndexKLine Suscribirse a datos de velas/kline de índice premium para contratos de futuros.
SubscribeEstimatedRateKLine Suscríbase a los datos de kline/velas de tasa de financiación estimada para contratos de futuros.
SubscribeBasisData Suscribirse a datos de base (diferencial de precio spot-futuros). Admite distintos tipos de precios de base: open, close, high, low.
SubscribeMarkPriceKLine Suscríbase a los datos de kline/velas del precio mark para contratos de futuros.
CancelOrderBatch Suscríbase al feed de órdenes de liquidación públicas para un contrato determinado. No se requiere autenticación.
SubscribeFundingRate Suscríbase a las actualizaciones públicas de la tasa de financiación de un contrato determinado. No se requiere autenticación.
SubscribeContractInfo Suscríbase a cambios de parámetros de contratos (p. ej., listados de contratos, retiros de mercado, ajustes de parámetros).

Métodos privados

Puede suscribirse a los siguientes canales privados (se requiere una clave API). Los sirve la segunda conexión que el componente abre automáticamente cuando se configura la ApiKey, así que pueden combinarse con los canales públicos en la misma instancia del componente. Si las credenciales no son correctas, la conexión se cerrará automáticamente, y si no hay ninguna ApiKey, la solicitud se informa en el evento OnHuobiError.

Método Descripción
SubscribeOrderUpdates

Una actualización de pedido puede ser desencadenada por cualquiera de los siguientes:


- Fallo en el disparo de orden condicional (eventType=trigger)
- Cancelación de orden condicional antes del disparo (eventType=deletion)
- Creación de orden (eventType=creation)
- Coincidencia de orden (eventType=trade)
- Cancelación de orden (eventType=cancellation)

SubscribeTradeClearing Solo se actualiza cuando una orden está en transacción o cancelación. La actualización de la transacción de una orden se realiza en modo tick a tick, lo que significa que si una orden de tomador coincide con múltiples órdenes de creador, las múltiples operaciones simultáneas se difundirán una por una. Sin embargo, la secuencia de actualización de las múltiples operaciones puede no ser exactamente igual a la secuencia de las transacciones realizadas. Además, si una orden se cancela automáticamente inmediatamente después de sus ejecuciones parciales, por ejemplo una orden IOC típica, es posible que este canal difunda primero la actualización de cancelación antes que la operación.
SubscribeAccountChange

Cuando se especifica el valor del campo de suscripción, la actualización puede ser desencadenada por cualquiera de los siguientes eventos. El parámetro aMode controla el comportamiento de la actualización:

Modo 0: Solo actualizar cuando cambie el saldo de la cuenta.

Modo 1: Actualizar cuando el saldo de la cuenta o el saldo disponible cambie (actualizaciones separadas).

Modo 2: Actualizar cuando cambia el saldo de la cuenta o el saldo disponible (actualización combinada).

Eventos

OnHuobiSubscribed: evento llamado tras una suscripción exitosa.

OnHuobiUnSubscribed: evento llamado tras una cancelación de suscripción exitosa.

OnHuobiUpdate: cada vez que hay una actualización de datos (kline, profundidad de mercado...) se llama a este evento. Informa tanto de las actualizaciones de los canales públicos como de las privadas, sea cual sea la conexión por la que llegaron.

OnHuobiError: si se produce un error en la API Huobi, este evento proporcionará información sobre el error. También se llama cuando se solicita un canal privado y el componente no tiene ApiKey para abrir la conexión privada, con el parámetro Code establecido en "private-credentials" y el parámetro Msg indicando el canal que se solicitó.