Huobi(现更名为 HTX)是一家国际多语言加密货币交易所。
若要订阅私有账户更新,需要在您的 Huobi 账户中创建 API 密钥。创建后,在 Huobi API 客户端中设置 API 密钥和 Secret。
HTX 会在两个不同的端点上提供市场数据和账户数据,且使用两种不同的协议架构:wss://api.htx.com/ws 以 v1 订阅帧的形式承载市场数据,wss://api.htx.com/ws/v2 以 v2 已认证帧的形式承载账户和订单频道。这两个端点互不响应对方的帧。
此前的行为。组件只会打开一个连接,并根据凭据选择端点:ApiKey 为空时连接到公开端点,只有公开方法可用;配置了 ApiKey 时连接到私有端点,只有私有方法可用。需要同时获取市场数据和账户数据的应用程序,必须创建两个组件实例,一个带凭据,一个不带凭据。
目前的行为。组件的连接始终是公开连接,因此无论是否配置了凭据,市场数据都始终可用。当配置了 ApiKey 后,组件还会自行打开第二个连接,连接到 v2 端点,这样单个实例就能同时接收公开市场数据和私有账户数据。第二个连接是内部的:它会随公开连接一起由组件打开和关闭,没有自己的 Active 属性,也没有自己的事件,其上到达的所有内容都会通过组件的事件呈现出来,与市场数据的处理方式完全相同。
现有应用程序无需做任何改动。组件没有新增任何属性或事件,其公开 API 与之前完全相同。已经设置了 ApiKey 并只订阅私有频道的应用程序会继续正常工作,现在还可以在同一个实例上订阅公开频道。使用两个实例的应用程序仍然可以正常工作,只是第二个实例已不再必要。
私有连接的身份验证是独立进行的,因此当应用程序发起订阅时,私有连接可能仍处于连接或身份验证阶段。这不是错误,也无需等待:该频道会被记录下来,并在身份验证得到确认后立即被请求。启用 Resubscribe 后,重新连接时同样适用这一机制:私有频道会被重新构建,并在新会话完成身份验证后再次被请求。
在未配置 ApiKey 的情况下调用私有订阅方法,现在会触发 OnHuobiError 事件,报告所请求的频道以及它所需要的端点。此前,这样的请求会被写入一个无法处理它的连接,并在毫无提示的情况下丢失。
期货客户端(TsgcWS_API_Huobi_Fut)连接到一个不同的端点,此处没有对应的 v2 端点,因此它不会打开第二个连接,其私有帧仍然像以往一样,使用它自己的连接。
您可以订阅以下公共频道(无需 API 密钥)
| 方法 | 描述 |
| SubscribeKLine | 每当有新的 K 线时,此主题会发送新 K 线。支持的周期:1min、5min、15min、30min、60min、4hour、1day、1mon、1week、1year。 |
| SubscribeMarketDepth | 此主题以 1 秒间隔快照模式推送最新的市场深度订单簿。支持的深度聚合级别:step0 至 step15。 |
| SubscribeTradeDetail | 该主题推送最新的已完成成交记录,以逐笔模式更新。 |
| SubscribeMarketDetail |
本主题推送最新的市场统计数据,包含 24 小时摘要。以快照模式更新,频率不超过每秒 10 次。 |
| SubscribeBBO | 用户可以逐笔接收 BBO(最优买卖报价)更新。 |
| SubscribeMarketTicker |
获取市场行情。数据每 100 毫秒推送一次。 |
| SubscribeMarketByPrice | 用户可订阅此频道以接收 Market By Price 订单簿的刷新更新。更新间隔约为 100ms。支持的档位:5、10、20、150、400。 |
以下方法适用于期货 API 客户端(TsgcWS_API_Huobi_Fut),且在上述所有公共方法的基础上额外提供。
| 方法 | 描述 |
| SubscribeIncrementalMarketDepth | 订阅具有可配置大小和数据类型(快照或增量)的增量市场深度更新。 |
| SubscribePremiumIndexKLine | 订阅期货合约的溢价指数 K 线/蜡烛图数据。 |
| SubscribeEstimatedRateKLine | 订阅期货合约的预估资金费率K线/蜡烛图数据。 |
| SubscribeBasisData | 订阅基差数据(现货与期货价差)。支持不同的基差价格类型:开盘价、收盘价、最高价、最低价。 |
| SubscribeMarkPriceKLine | 订阅期货合约的标记价格K线/蜡烛图数据。 |
| SubscribeLiquidationOrders | 订阅指定合约的公开强平订单推送。无需认证。 |
| SubscribeFundingRate | 订阅给定合约的公开资金费率更新。无需认证。 |
| SubscribeContractInfo | 订阅合约参数变化(例如合约上市、下市、参数调整)。 |
您可以订阅以下私有频道(需要 API 密钥)。它们由组件在配置了 ApiKey 后自动打开的第二个连接提供服务,因此可以与公开频道在同一个组件实例上组合使用。若凭据不正确,连接将自动关闭;若完全没有配置 ApiKey,该请求会通过 OnHuobiError 事件报告。
| 方法 | 描述 |
| SubscribeOrderUpdates |
订单更新可由以下任一情况触发:
|
| SubscribeTradeClearing | 仅在订单处于交易中或取消时更新。订单交易更新为逐笔模式,这意味着如果吃单方的订单与多个挂单方的订单匹配,则同时发生的多笔交易将逐一推送。但多笔交易的更新顺序可能与实际交易顺序不完全一致。此外,如果订单在部分成交后立即被自动取消(例如典型的 IOC 订单),该频道可能会在交易推送之前先推送取消更新。 |
| SubscribeAccountChange |
订阅字段值指定后,更新可由以下任一事件触发。aMode 参数控制更新行为:
模式 0:仅在账户余额变化时更新。 模式 1:当账户余额或可用余额发生变化时更新(分别更新)。 模式 2:当账户余额或可用余额发生变化时更新(合并更新)。 |
OnHuobiSubscribed:订阅成功后调用的事件。
OnHuobiUnSubscribed: 成功取消订阅后调用的事件。
OnHuobiUpdate:每当数据(K 线、市场深度等)发生更新时,将调用此事件。无论更新来自这两个连接中的哪一个,它都会报告公开频道和私有频道的更新。
OnHuobiError:如果 Huobi API 出现错误,此事件将提供有关该错误的信息。当请求了某个私有频道,但组件没有可用于打开私有连接的 ApiKey 时,也会调用此事件,此时 Code 参数为 "private-credentials",Msg 参数会说明所请求的频道名称。