A Huobi (agora renomeada como HTX) é uma exchange de criptomoedas internacional e multilíngue.
Se você quiser assinar as atualizações privadas da conta, precisa criar uma API Key em sua conta Huobi. Uma vez criada, defina a API Key e o Secret no Huobi API Client
A HTX serve os dados de mercado e os dados da conta em dois endpoints diferentes, com dois esquemas diferentes: wss://api.htx.com/ws transporta os dados de mercado como frames de assinatura v1, e wss://api.htx.com/ws/v2 transporta os canais de conta e de ordens como frames autenticados v2. Nenhum dos dois endpoints responde aos frames do outro.
Comportamento anterior. O componente abria uma única conexão e escolhia o endpoint a partir das credenciais: com uma ApiKey vazia ele conectava ao endpoint público e apenas os métodos públicos funcionavam, e com uma ApiKey configurada ele conectava ao endpoint privado e apenas os métodos privados funcionavam. Uma aplicação que precisasse dos dados de mercado e dos dados da conta ao mesmo tempo precisava criar duas instâncias do componente, uma com credenciais e outra sem.
Comportamento atual. A conexão do componente é sempre a pública, então os dados de mercado estão disponíveis independentemente de as credenciais estarem configuradas ou não. Quando uma ApiKey é configurada, o componente também abre uma segunda conexão ao endpoint v2 por conta própria, e uma única instância passa a receber os dados públicos de mercado e os dados privados da conta ao mesmo tempo. Essa segunda conexão é interna: ela é aberta e fechada pelo componente junto com a pública, não tem uma propriedade Active própria nem eventos próprios, e tudo o que chega por ela é exposto através dos eventos do componente, exatamente como os dados de mercado.
Não há nada a alterar nas aplicações existentes. Nenhuma propriedade nova e nenhum evento novo foi adicionado, a API pública do componente é a mesma de antes. Uma aplicação que já define a ApiKey e assina apenas os canais privados continua funcionando, e agora também pode assinar os canais públicos na mesma instância. Uma aplicação que usava duas instâncias ainda funciona, embora a segunda instância não seja mais necessária.
A autenticação da conexão privada é executada por conta própria, então a conexão privada ainda pode estar conectando ou autenticando quando a aplicação faz a assinatura. Isso não é um erro e não há nada a esperar: o canal é registrado e é requisitado assim que a autenticação é confirmada. O mesmo se aplica após uma reconexão quando Resubscribe está habilitado, os canais privados são reconstruídos e requisitados novamente assim que a nova sessão for autenticada.
Chamar um método de assinatura privado com nenhuma ApiKey configurada agora dispara o evento OnHuobiError, informando o canal que foi requisitado e o endpoint que ele precisava. Anteriormente a requisição era escrita em uma conexão que não podia atendê-la e era perdida sem deixar rastro.
O cliente de futuros (TsgcWS_API_Huobi_Fut) conecta a um endpoint diferente, que não tem uma contrapartida v2 aqui, então ele não abre uma segunda conexão e seus frames privados trafegam pela sua própria conexão, exatamente como sempre fizeram.
Você pode assinar os seguintes canais públicos (a api key não é obrigatória)
| Method | Descrição |
| SubscribeKLine | Este tópico envia um novo candlestick sempre que ele estiver disponível. Períodos suportados: 1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year. |
| SubscribeMarketDepth | Este tópico envia o order book mais recente por preço de mercado em modo snapshot a intervalos de 1 segundo. Níveis de agregação de profundidade suportados: step0 a step15. |
| SubscribeTradeDetail | Este tópico envia as negociações concluídas mais recentes. Ele atualiza no modo tick a tick. |
| SubscribeMarketDetail |
Este tópico envia as estatísticas de mercado mais recentes com resumo de 24h. Ele é atualizado em modo de snapshot, a uma frequência de no máximo 10 vezes por segundo |
| SubscribeBBO | O usuário pode receber atualizações de BBO (Best Bid/Offer) em modo tick a tick. |
| SubscribeMarketTicker |
Recupera o ticker de mercado. Os dados são enviados a cada 100ms. |
| SubscribeMarketByPrice | O usuário pode fazer subscribe a este canal para receber atualizações de refresh do order book Market By Price. O intervalo de atualização é de cerca de 100ms. Níveis suportados: 5, 10, 20, 150, 400. |
Os seguintes métodos estão disponíveis para o cliente da Futures API (TsgcWS_API_Huobi_Fut), além de todos os métodos públicos acima.
| Method | Descrição |
| SubscribeIncrementalMarketDepth | Assina atualizações incrementais de profundidade de mercado com tamanho e tipo de dados configuráveis (snapshot ou incremental). |
| SubscribePremiumIndexKLine | Assine os dados de premium index kline/candlestick para contratos de futuros. |
| SubscribeEstimatedRateKLine | Faça subscribe a dados de kline/candlestick de taxa de funding estimada para contratos de futuros. |
| SubscribeBasisData | Assine os dados de basis (spread de preço spot-futures). Suporta diferentes tipos de basis price: open, close, high, low. |
| SubscribeMarkPriceKLine | Faça subscribe a dados de kline/candlestick de mark price para contratos de futuros. |
| SubscribeLiquidationOrders | Assina o feed público de ordens de liquidação de um determinado contrato. Nenhuma autenticação necessária. |
| SubscribeFundingRate | Assine atualizações públicas de funding rate para um contrato informado. Nenhuma autenticação necessária. |
| SubscribeContractInfo | Assinar mudanças de parâmetros de contrato (por exemplo, listagens de contratos, deslistagens, ajustes de parâmetros). |
Você pode assinar os seguintes canais privados (uma api key é necessária). Eles são servidos pela segunda conexão que o componente abre automaticamente quando a ApiKey é configurada, então podem ser combinados com os canais públicos na mesma instância do componente. Se as credenciais não estiverem corretas, a conexão será fechada automaticamente, e se não houver nenhuma ApiKey a requisição é reportada no evento OnHuobiError.
| Method | Descrição |
| SubscribeOrderUpdates |
Uma atualização de ordem pode ser acionada por qualquer um dos seguintes:
|
| SubscribeTradeClearing | Atualize apenas quando a ordem estiver em transação ou cancelamento. A atualização da transação da ordem ocorre no modo tick by tick, o que significa que, se a ordem de um taker corresponder a múltiplas ordens de makers, os múltiplos trades simultâneos serão disseminados um a um. Porém, a sequência de atualização dos múltiplos trades pode não ser exatamente a mesma que a sequência das transações realizadas. Além disso, se uma ordem for cancelada automaticamente imediatamente após seus preenchimentos parciais, por exemplo uma ordem IOC típica, este canal poderia possivelmente disseminar a atualização de cancelamento antes do trade. |
| SubscribeAccountChange |
Após o valor do campo de assinatura especificado, a atualização pode ser disparada por qualquer um dos seguintes eventos. O parâmetro aMode controla o comportamento da atualização:
Mode 0: Atualizar apenas quando o saldo da conta for alterado. Modo 1: Atualiza quando o saldo da conta ou o saldo disponível é alterado (atualizações separadas). Modo 2: Atualiza quando o saldo da conta ou o saldo disponível é alterado (atualização combinada). |
OnHuobiSubscribed: evento chamado após uma assinatura bem-sucedida.
OnHuobiUnSubscribed: evento chamado após uma desinscrição bem-sucedida.
OnHuobiUpdate: toda vez que há uma atualização nos dados (kline, market depth...) este evento é chamado. Ele reporta as atualizações dos canais públicos e dos privados, seja qual for a conexão em que chegaram.
OnHuobiError: se houver um erro na API da Huobi, este evento fornecerá informações sobre o erro. Também é chamado quando um canal privado é requisitado e o componente não tem uma ApiKey para abrir a conexão privada, com o parâmetro Code definido como "private-credentials" e o parâmetro Msg informando o canal que foi requisitado.