Binance は国際的な多言語対応の暗号通貨取引所です。Binance のデータにアクセスするための API を提供しています。このコンポーネントを使用すると、Binance Futures WebSocket マーケットストリームを取得できます。
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
Binance API には 2 種類のメソッドがあります: パブリックとプライベートです。パブリックメソッドは認証なしでアクセスできます(例: ティッカー価格の取得)。一部はプライベートでユーザーデータに関連しており、これらのメソッドは Binance API キーの使用が必要です。
クライアントは USDT または COIN Binance Futures に接続できます。FuturesContracts プロパティを使用して取引するコントラクトを設定します:
クライアントはProductionまたはDemoのBinanceアカウントに接続できます。TestNetプロパティが有効な場合はDemoアカウントに接続し、そうでない場合は本番のBinanceサーバーに接続します。
クライアントは接続が成功した後、イベントのサブスクライブ/サブスクライブ解除ができます。
以下のサブスクリプション/サブスクリプション解除メソッドがサポートされています。
| メソッド | パラメータ | 説明 |
| AggregateTrades | 銘柄 | アグリゲートトレードストリームは、100ミリ秒ごとに単一のテイカー注文のトレード情報を集約してプッシュします。 |
| MarkPrice | Symbol, UpdateSpeed | 単一シンボルのマーク価格とファンディングレートを 3 秒ごとまたは毎秒プッシュします。 |
| AllMarkPrice | UpdateSpeed | すべてのシンボルのマーク価格とファンディングレートが 3 秒ごとまたは毎秒プッシュされます。 |
| KLine | Symbol, Interval | Kline/Candlestick Streamは、現在のkline/ローソク足の更新を250ミリ秒ごとにプッシュします(存在する場合)。 |
| MiniTicker | 銘柄 | 単一シンボルの 24 時間ローリングウィンドウのミニティッカー統計。これらは UTC 日の統計ではなく、requestTime から 24 時間前までの 24 時間ローリングウィンドウです。 |
| AllMiniTicker | すべてのシンボルの 24 時間ローリングウィンドウミニティッカー統計。これは UTC 日の統計ではなく、requestTime から 24 時間前までの 24 時間ローリングウィンドウです。変更があったティッカーのみが配列に含まれます。 | |
| Ticker | 銘柄 | 単一シンボルの 24 時間ローリングウィンドウティッカー統計。UTC 日付の統計ではなく、requestTime から 24 時間前までの 24 時間ローリングウィンドウです。 |
| AllMarketTickers | すべてのシンボルの 24 時間ローリングウィンドウのティッカー統計。これらは UTC の日次統計ではなく、requestTime から 24 時間前までの 24 時間ローリングウィンドウです。変化したティッカーのみが配列に含まれることに注意してください。 | |
| BookTicker | 銘柄 | 指定されたシンボルについて、最良買い気配または売り気配の価格や数量への更新をリアルタイムでプッシュします。 |
| AllBookTickers | すべての銘柄の最良の売値または買値の価格または数量の更新をリアルタイムでプッシュします。 | |
| LiquidationOrders | 銘柄 | Liquidation Order Streams は、特定の銘柄の強制清算注文情報をプッシュします |
| AllLiquidationOrders | 全清算注文ストリームは、市場のすべてのシンボルの強制清算注文情報をプッシュします。 | |
| PartialBookDepth | Symbol、Depth | 上位の買い注文と売り注文。有効値は5、10、または20です。 |
| DiffDepth | 銘柄 | 買い気配と売り気配。250ミリ秒、500ミリ秒、100ミリ秒ごと、またはリアルタイムでプッシュされます(存在する場合) |
サブスクリプション/サブスクリプション解除が成功すると、クライアントはそれに関するメッセージを受信します。ここでidはSubscribed / Unsubscribedメソッドの結果です。
{
"result": null,
"id": 1
}
Binanceアカウントから取得した有効なApiKeyが必要で、ApiKey はコンポーネントの Binance.ApiKey プロパティに設定する必要があります。
変化があるたびに次のデータがクライアントにプッシュされます。任意のメソッドをサブスクライブする必要はありません。有効な ApiKey が設定されていれば自動的に行われます。
| メソッド | 説明 |
| マージンコール | ユーザーのポジションリスク比率が高すぎる場合、このストリームがプッシュされます。 このメッセージはリスクガイダンス情報としてのみ使用され、投資戦略としての使用は推奨されません。 市場が非常に変動した場合、このストリームがプッシュされると同時にユーザーのポジションが強制決済されている可能性があります。 |
| 残高およびポジションの更新 |
残高の更新は以下の場合に発生します:
|
| 注文の更新 | 新しい注文が作成されたとき、注文ステータスが変更されるとこのようなイベントがプッシュされます。 |
すべてのエンドポイントは JSON オブジェクトまたは配列を返します。データは昇順 (古いものから新しいもの) で返されます。
パブリック API エンドポイント
これらのエンドポイントには認証なしでアクセスできます。
一般エンドポイント
| メソッド | パラメータ | 説明 |
| Ping | REST API への接続をテストします。 | |
| GetServerTime | REST API への接続をテストして現在のサーバー時刻を取得します。 | |
| GetExchangeInformation | 現在の取引所の取引ルールとシンボル情報 |
Market Data エンドポイント
| メソッド | パラメータ | 説明 |
| GetOrderBook | 銘柄 | オーダーブックを取得します。 |
| GetTrades | 銘柄 | 最近の取引を取得します。 |
| GetHistoricalTrades | 銘柄 | 古い取引を取得します。 |
| GetAggregateTrades | 銘柄 | 圧縮された集約トレードを取得します。同じ注文から、同じ価格で、同時に約定したトレードは数量が集計されます。 |
| GetKLines | Symbol, Interval | 銘柄の kline/ローソク足バー。Klines は開始時刻で一意に識別されます。 |
| Get24hrTicker | 銘柄 | 24 時間のローリングウィンドウの価格変動統計。シンボルなしでアクセスする場合は注意が必要です。 |
| GetPriceTicker | 銘柄 | シンボルまたは複数のシンボルの最新価格。 |
| GetBookTicker | 銘柄 | シンボルまたは複数シンボルの板注文における最良価格/数量。 |
| GetMarkPrice | 銘柄 | マーク価格とファンディングレート |
| GetFundingRateHistory | 銘柄 | |
| GetOpenInterest | 銘柄 | 特定シンボルの現在の建玉を取得します。 |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair、ContractType、Interval | 特定の契約タイプのKline/ローソク足バー。 |
| GetIndexPriceKLines | Pair, Interval | ペアのインデックス価格のローソク足バー。 |
| GetMarkPriceKLines | Symbol, Interval | シンボルのマーク価格のローソク足/Kline バー。 |
| GetPremiumIndexKLines | Symbol, Interval | シンボルのプレミアムインデックスのローソク足バー。 |
| GetFundingInfo | すべてのシンボルのファンディングレート情報を取得します。 | |
| GetPriceTickerV2 | 銘柄 | シンボルまたは複数シンボルの最新価格 (V2)。 |
| GetIndexInfo | 銘柄 | インデックス情報を取得します。 |
| GetAssetIndex | 銘柄 | マルチアセットモードのアセットインデックスを取得します。 |
| GetConstituents | 銘柄 | インデックスの構成銘柄を取得します。 |
| GetDeliveryPrice | ペア | 配達価格を取得します。 |
| GetBasis | Pair, ContractType, Period | ベーシスデータを取得します。 |
プライベート API エンドポイント
サーバーによる認証を取得するために APIKey と APISecret が必要です。
アカウントおよびトレードエンドポイント
| メソッド | パラメータ | 説明 |
| ChangePositionMode | DualPosition | すべてのシンボルのユーザーのポジションモード(ヘッジモードまたはワンウェイモード)を変更します。 |
| GetCurrentPositionMode | すべてのシンボルでユーザーのポジションモード (ヘッジモードまたは一方向モード) を取得します | |
| NewOrder | Symbol、Side、PositionSide、Type | 新しい注文を送信します。 |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side、Symbol、Quantity、LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | 銘柄 | 注文のステータスを確認します。 |
| CancelOrder | 銘柄 | アクティブな注文をキャンセルします。OrderId または OrigClientOrderId のどちらかを送信する必要があります。 |
| CancelAllOpenOrders | 銘柄 | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | 指定されたカウントダウン終了時に指定シンボルのすべてのオープン注文をキャンセルします。 |
| QueryCurrentOpenOrder | 銘柄 | |
| GetOpenOrders | 銘柄 | シンボルのすべてのオープン注文を取得します。シンボルなしでアクセスする場合は注意してください。 |
| GetAllOrders | 銘柄 | すべてのアカウント注文(アクティブ、キャンセル済み、または約定済み)を取得します。 |
| GetAccountBalance | ||
| GetAccountInformation | 現在のアカウント情報を取得します。 | |
| ChangeInitialLeverage | Symbol, Leverage | 特定のシンボルマーケットのユーザーの初期レバレッジを変更します。 |
| ChangeMarginType | Symbol, MarginType | |
| ModifyIsolatedPositionMargin | Symbol、Amount、Type | |
| GetPositionMarginChangeHistory | 銘柄 | |
| GetPositionInformation | 銘柄 | |
| GetAccountTradeList | 銘柄 | |
| GetIncomeHistory | 銘柄 | |
| GetNotionalLeverageBracket | 銘柄 | |
| TestNewOrder | Symbol、Side、PositionSide、Type | 新しい注文の作成と署名/recvWindow の長さをテストします。新しい注文を作成して検証しますが、マッチングエンジンには送信しません。 |
| ModifyOrder | 銘柄 | 既存の注文を変更します。 |
| NewBatchOrders | BatchOrders | 複数の注文を発注します。 |
| ModifyBatchOrders | BatchOrders | 複数の注文を変更します。 |
| CancelBatchOrders | 銘柄 | 複数の注文をキャンセルします。 |
| GetOrderAmendment | 銘柄 | 注文変更履歴を取得します。 |
| CountdownCancelAll | Symbol, CountdownTime | 指定されたカウントダウン終了時に指定シンボルのすべてのオープン注文をキャンセルします。 |
| GetForceOrders | 銘柄 | ユーザーの強制清算注文を取得します。 |
| GetADLQuantile | 銘柄 | ポジションの ADL 分位数推定を取得します。 |
| GetAccountBalanceV3 | 先物アカウント残高を取得します(V3)。 | |
| GetAccountInformationV3 | 現在のアカウント情報を取得します(V3)。 | |
| GetPositionInformationV3 | 銘柄 | 現在のポジション情報を取得します (V3)。 |
| GetCommissionRate | 銘柄 | ユーザー手数料率を取得します。 |
| GetAccountConfig | 現在のアカウント設定を取得します。 | |
| GetSymbolConfig | 銘柄 | シンボル設定を取得します。 |
| GetOrderRateLimit | ユーザーの注文レート制限を取得します。 | |
| GetApiTradingStatus | 銘柄 | API取引の定量的ルールインジケーターを取得します。 |
| ChangeMultiAssetsMode | MultiAssetsMargin | ユーザーのmulti-assetsモードを変更します。Multi-Assets Mode: true、Single-Asset Mode: false。 |
| GetMultiAssetsMode | ユーザーの現在のマルチアセットモードを取得します。 | |
| SetFeeBurn | FeeBurn | ユーザーのBNB手数料バーンステータスを変更します。 |
| GetFeeBurn | ユーザーの BNB 手数料バーン ステータスを取得します。 | |
| CreateListenKey | 新しいユーザーデータストリームを開始します。キープアライブが送信されない場合、ストリームは 60 分後に閉じられます。 | |
| KeepAliveListenKey | タイムアウトを防ぐためにユーザーデータストリームをkeepaliveします。 | |
| CloseListenKey | ユーザーデータストリームを閉じます。 |
Binance Futures メッセージは TsgcWebSocketClient コンポーネントで受信されます。以下のイベントを使用できます:
OnConnect
Binance サーバーへの接続が成功した後。
OnDisconnect
Binance サーバーからの切断後
OnMessage
サーバーからクライアントに送信されたメッセージは、このイベントで処理されます。
OnError
プロトコルにエラーがある場合、このイベントが呼び出されます。
OnException
未処理の例外がある場合、このイベントが呼び出されます。
さらに、Binance APIコンポーネントには OnBinanceHTTPException という特定のイベントがあります。これはHTTPリクエスト(REST APIまたはWebSocketユーザーストリーム)の呼び出しにエラーが発生するたびに発生します。
(*)Binance サーバーの変更により、Rad Studio 10.1 より前の Indy バージョンではテストサーバーに接続できません。この問題は Enterprise Edition または Indy バージョンを最新にアップグレードした場合には影響しません。