Huobi(現在 HTX にリブランド)は国際的な多言語対応の暗号通貨取引所です。
プライベートアカウントの更新をサブスクライブするには、Huobi アカウントで API キーを作成する必要があります。作成後、Huobi API クライアントに API キーとシークレットを設定してください
HTX は市場データとアカウントデータを、それぞれ異なるスキーマを持つ 2 つの異なるエンドポイントで提供しています。wss://api.htx.com/ws は市場データを v1 サブスクリプションフレームとして配信し、wss://api.htx.com/ws/v2 はアカウントおよび注文チャンネルを v2 認証フレームとして配信します。どちらのエンドポイントも、もう一方のフレームには応答しません。
これまでの動作。 これまでコンポーネントは単一の接続のみを開き、資格情報からエンドポイントを選択していました。ApiKey が空の場合はパブリックエンドポイントに接続してパブリックメソッドのみが機能し、ApiKey が設定されている場合はプライベートエンドポイントに接続してプライベートメソッドのみが機能していました。市場データとアカウントデータを同時に必要とするアプリケーションは、資格情報ありとなしの 2 つのコンポーネントインスタンスを作成する必要がありました。
現在の動作。 コンポーネントの接続は常にパブリック接続であるため、資格情報の設定有無にかかわらず市場データを利用できます。ApiKey が設定されている場合、コンポーネントは v2 エンドポイントへの 2 本目の接続も自動的に開き、単一のインスタンスでパブリックな市場データとプライベートなアカウントデータの両方を同時に受信できるようになります。この 2 本目の接続は内部的なもので、パブリック接続とともにコンポーネントによって開閉され、独自の Active プロパティもイベントも持たず、そこに届くすべての情報は市場データと全く同様に、コンポーネントのイベントを通じて表面化します。
既存のアプリケーションで変更が必要な箇所はありません。新しいプロパティもイベントも追加されておらず、コンポーネントのパブリック API は以前と同じです。すでに ApiKey を設定してプライベートチャンネルのみをサブスクライブしているアプリケーションはそのまま動作し続け、同じインスタンスでパブリックチャンネルもサブスクライブできるようになります。2 つのインスタンスを使用していたアプリケーションも引き続き動作しますが、2 つ目のインスタンスはもはや不要です。
プライベート接続の認証は独立して実行されるため、アプリケーションがサブスクライブした時点でプライベート接続がまだ接続中または認証中である場合があります。これはエラーではなく、待機する必要もありません。チャンネルは記録され、認証が確認され次第リクエストされます。Resubscribe が有効な場合の再接続後も同様で、新しいセッションが認証された時点でプライベートチャンネルが再構築され、再度リクエストされます。
ApiKey が設定されていない状態でプライベートサブスクライブメソッドを呼び出すと、現在は OnHuobiError イベントが発生し、リクエストされたチャンネルと必要だったエンドポイントが報告されます。以前は、このリクエストはそれを処理できない接続に書き込まれ、痕跡を残さず失われていました。
Futures クライアント(TsgcWS_API_Huobi_Fut)は異なるエンドポイントに接続しており、ここには v2 に相当するものが存在しないため、2 本目の接続は開かれず、そのプライベートフレームはこれまでどおり自身の接続を使用します。
以下のパブリックチャンネルをサブスクライブできます(API キーは不要)
| メソッド | 説明 |
| SubscribeKLine | このトピックは利用可能になると新しいローソク足を送信します。対応期間:1min、5min、15min、30min、60min、4hour、1day、1mon、1week、1year。 |
| SubscribeMarketDepth | このトピックは、最新のmarket by price板を、1秒間隔のスナップショットモードで送信します。サポートされる深さの集約レベル: step0 から step15 まで。 |
| SubscribeTradeDetail | このトピックは最新の完了した取引を送信します。ティックごとのモードで更新されます。 |
| SubscribeMarketDetail |
このトピックは 24 時間のサマリーを含む最新の市場統計を送信します。1 秒間に最大 10 回の頻度でスナップショットモードで更新されます。 |
| SubscribeBBO | ユーザーはティックバイティックモードで BBO(Best Bid/Offer)の更新を受け取ることができます。 |
| SubscribeMarketTicker |
マーケットティッカーを取得します。データは 100ms ごとにプッシュされます。 |
| SubscribeMarketByPrice | このチャンネルをサブスクライブして Market By Price 注文板のリフレッシュ更新を受信します。更新間隔は約 100ms です。サポートされているレベル: 5、10、20、150、400。 |
以下のメソッドは、上記のすべてのパブリックメソッドに加えて、Futures APIクライアント(TsgcWS_API_Huobi_Fut)で使用できます。
| メソッド | 説明 |
| SubscribeIncrementalMarketDepth | 設定可能なサイズとデータタイプ (スナップショットまたはインクリメンタル) でインクリメンタルな市場深度の更新をサブスクライブします。 |
| SubscribePremiumIndexKLine | 先物契約のプレミアムインデックスのローソク足データを購読します。 |
| SubscribeEstimatedRateKLine | 先物コントラクトの推定資金調達レートのローソク足/ライン データをサブスクライブします。 |
| SubscribeBasisData | ベーシスデータ(スポットと先物の価格差)にサブスクライブします。open、close、high、low など異なるベーシス価格タイプをサポートします。 |
| SubscribeMarkPriceKLine | 先物コントラクトのマーク価格ローソク足/ライン データをサブスクライブします。 |
| SubscribeLiquidationOrders | 指定したコントラクトのパブリック清算注文フィードをサブスクライブします。認証は不要です。 |
| SubscribeFundingRate | 指定した契約のパブリックなファンディングレート更新にサブスクライブします。認証は不要です。 |
| SubscribeContractInfo | 契約パラメーターの変更(例:契約の上場、上場廃止、パラメーター調整)をサブスクライブします。 |
以下のプライベートチャンネルにサブスクライブできます(API キーが必要です)。これらは ApiKey が設定されているときにコンポーネントが自動的に開く 2 本目の接続によって処理されるため、同じコンポーネントインスタンスでパブリックチャンネルと組み合わせて使用できます。資格情報が正しくない場合、接続は自動的に切断され、ApiKey が全く設定されていない場合はそのリクエストが OnHuobiError イベントで報告されます。
| メソッド | 説明 |
| SubscribeOrderUpdates |
注文の更新は次のいずれかによってトリガーされる可能性があります:
|
| SubscribeTradeClearing | 注文がトランザクション中またはキャンセル中の場合のみ更新されます。注文トランザクションの更新はティックバイティックモードです。つまり、テイカーの注文が複数のメーカーの注文と一致した場合、同時に発生した複数のトレードは 1 つずつ配信されます。ただし、複数のトレードの更新シーケンスは、トランザクションが行われた順序とまったく同じでない場合があります。また、注文が部分約定直後に自動キャンセルされた場合(例: 典型的な IOC 注文)、このチャンネルがトレードの前にキャンセルの更新を先に配信する可能性があります。 |
| SubscribeAccountChange |
サブスクリプションフィールドの値が指定されると、次のいずれかのイベントによって更新がトリガーされます。aMode パラメーターは更新動作を制御します:
モード 0:アカウント残高が変更された場合のみ更新します。 モード1: アカウント残高または利用可能残高のいずれかが変更されたときに更新します(個別更新)。 モード2: アカウント残高または利用可能残高が変更されたときに更新します(複合更新)。 |
OnHuobiSubscribed: サブスクリプションが成功した後に呼び出されるイベントです。
OnHuobiUnSubscribed: サブスクリプション解除が成功した後に呼び出されるイベント。
OnHuobiUpdate: データ(Kライン、市場の深さなど)が更新されるたびにこのイベントが呼び出されます。パブリックチャンネルとプライベートチャンネルの両方の更新を、どちらの接続で届いたものであっても報告します。
OnHuobiError: Huobi API にエラーが発生した場合、このイベントはエラーに関する情報を提供します。また、プライベートチャンネルがリクエストされたにもかかわらず、コンポーネントにプライベート接続を開くための ApiKey が設定されていない場合にも呼び出され、Code パラメータには「private-credentials」が設定され、Msg パラメータにはリクエストされたチャンネル名が設定されます。