Bybit Update API sgcWebSockets

· 機能
Bybit V5 WebSocket・REST API の Delphi 統合

Bybit は主要な暗号通貨デリバティブ・現物取引所であり、無期限契約・先物・現物取引・オプションを提供しています。TsgcWSAPI_Bybit コンポーネントは Bybit V5 統合 API との完全な Delphi 統合を実現します。リアルタイム市場データとプライベートイベントの WebSocket サブスクリプション、および取引・ポジション管理・口座照会のための包括的な REST インターフェースの両方を組み合わせています。本記事では利用可能なすべてのメソッドを説明し、接続・サブスクライブ・取引の方法を紹介します。

目次

アーキテクチャ概要

Bybit V5 API は、現物・リニア無期限・インバース無期限・インバース先物・オプションを単一のエンドポイントセットに統合した統一インターフェースです。TsgcWSAPI_Bybit コンポーネントは両方のチャンネルをサポートします:

BybitClient プロパティでプロダクトカテゴリーを選択します。これにより WebSocket エンドポイントが決まります:bybSpotbybLinearbybInverse、または bybPerpetual

WebSocket API — パブリックチャンネル

パブリックチャンネルは認証なしでリアルタイムの市場データを提供します。各サブスクライブメソッドには対応するサブスクライブ解除メソッドがあります。

サブスクライブ サブスクライブ解除 説明
SubscribeOrderBook UnSubscribeOrderBook リアルタイムの板情報の深度スナップショットと差分更新。
SubscribeTrade UnSubscribeTrade 取引所でリアルタイムに発生する約定情報。
SubscribeTicker UnSubscribeTicker 24 時間ローリングウィンドウのティッカー統計(価格・出来高・変動率)。
SubscribeKLine UnSubscribeKLine 指定した時間間隔のリアルタイムローソク足/K ライン更新。
SubscribeLiquidation UnSubscribeLiquidation 取引所全体の清算イベント。
SubscribeLT_KLine UnSubscribeLT_KLine レバレッジトークンの K ライン/ローソク足更新。
SubscribeLT_Ticker UnSubscribeLT_Ticker レバレッジトークンのティッカーデータ。
SubscribeLT_Nav UnSubscribeLT_Nav レバレッジトークンの純資産価値更新。

WebSocket API — プライベートチャンネル

プライベートチャンネルは API キーとシークレットによる認証が必要です。口座のアクティビティに関するリアルタイム更新を配信します。

サブスクライブ サブスクライブ解除 説明
SubscribePosition UnSubscribePosition リアルタイムのポジション更新(サイズ・エントリー価格・損益・レバレッジ)。
SubscribeExecution UnSubscribeExecution 注文が約定した際の取引執行確認。
SubscribeOrder UnSubscribeOrder 注文ステータスの変更(新規・一部約定・約定済み・キャンセル)。
SubscribeWallet UnSubscribeWallet 全コインのウォレット残高変更。
SubscribeGreek UnSubscribeGreek オプションのグリークス更新(デルタ・ガンマ・シータ・ベガ)。
SubscribeDcp UnSubscribeDcp 接続の健全性を監視する切断保護イベント。

REST API — 市場データ

市場データエンドポイントはパブリックで認証不要です。oBybit.REST_API 経由でアクセスします。

メソッド 説明
GetServerTime Bybit サーバーのタイムスタンプを返します。
GetKLine 指定シンボルと時間間隔の過去の K ライン/ローソク足データを返します。
GetMarkPriceKLine マーク価格の K ラインデータを返します(損益・清算計算に使用)。
GetIndexPriceKLine インデックス価格の K ラインデータを返します。
GetPremiumIndexPriceKLine 無期限契約のプレミアムインデックス価格 K ラインデータを返します。
GetInstrumentsInfo 銘柄仕様(ティックサイズ・ロットサイズ・レバレッジ上限など)を返します。
GetOrderBook 指定した深度での現在の板情報スナップショットを返します。
GetTickers 1 つまたは全シンボルの最新ティッカー情報を返します。
GetFundingRateHistory 無期限契約の過去のファンディングレート記録を返します。
GetPublicRecentTradingHistory 指定シンボルの最新のパブリック約定を返します。
GetOpenInterest デリバティブ契約の未決済建玉データを返します。
GetHistoricalVolatility オプションの過去のボラティリティを返します。
GetInsurance 保険基金の残高履歴を返します。
GetRiskLimit 指定シンボルのリスクリミット階層を返します。
GetDeliveryPrice 満期となった先物・オプションの決済価格を返します。
GetLongShortRatio 指定シンボルと期間のロング/ショート比率を返します。

REST API — 取引

取引エンドポイントは適切な権限を持つ API キー認証が必要です。これらのメソッドで注文の発注・変更・キャンセルができます。

メソッド 説明
PlaceOrder 完全なパラメーター制御(タイプ・売買方向・価格・数量・執行条件など)で新規注文を発注します。
PlaceMarketOrder 成行注文を発注するショートカットメソッド(最良利用可能価格で即時執行)。
PlaceLimitOrder 指定価格で指値注文を発注するショートカットメソッド。
AmendOrder 既存の未約定注文を変更します(価格・数量・その他のパラメーター)。
CancelOrder 注文 ID で特定の未約定注文をキャンセルします。
GetOpenOrders 現在未約定のすべての注文を返します。
CancelAllOrders すべての未約定注文をキャンセルします。シンボルまたはカテゴリーでフィルタリング可能です。
GetOrderHistory 指定期間内の過去の注文(約定済み・キャンセル・拒否)を返します。

REST API — ポジション管理

ポジションエンドポイントでデリバティブポジションの照会と設定ができます。レバレッジ・証拠金モード・リスクリミット・損切り/利確設定などが含まれます。

メソッド 説明
GetPositionInfo 現在のポジション詳細(サイズ・エントリー価格・未実現損益・証拠金)を返します。
SetLeverage 指定シンボルのレバレッジを設定します。
SwitchCrossIsolatedMargin クロス証拠金とアイソレーテッド証拠金モードを切り替えます。
SetTPSLMode 利確/損切りモードを設定します(全ポジションまたは部分的)。
SwitchPositionMode 一方向モードとヘッジモードを切り替えます。
SetRiskLimit シンボルのリスクリミット階層を設定します。最大レバレッジに影響します。
SetTradingStop 既存ポジションにトレーリングストップ・利確・損切りを設定します。
SetAutoAddMargin アイソレーテッド証拠金ポジションの自動証拠金追加を有効/無効にします。
AddOrReduceMargin アイソレーテッド証拠金ポジションに手動で証拠金を追加または削除します。
GetExecution 取引の執行/約定記録を返します。
GetClosedPNL 確定した損益記録を返します。
ConfirmNewRiskLimit 追加証拠金が必要な場合にリスクリミット変更を確認します。

REST API — 口座

口座エンドポイントはウォレット残高・口座設定・取引ログを提供します。

メソッド 説明
GetWalletBalance 全コインまたは特定の口座タイプのウォレット残高を返します。
GetAccountInfo 統合口座情報(証拠金モード・口座ステータスなど)を返します。
GetTransactionLog 取引履歴(入金・出金・取引・ファンディング手数料など)を返します。

はじめに — コード例

以下の例は完全なセットアップを示しています:Bybit リニア無期限エンドポイントへの接続・REST 経由のティッカーデータ照会・指値注文の発注・ウォレット残高の確認・WebSocket 経由のリアルタイム約定更新のサブスクライブ。

var
  oClient: TsgcWebSocketClient;
  oBybit: TsgcWSAPI_Bybit;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  // Create the Bybit API component
  oBybit := TsgcWSAPI_Bybit.Create(nil);
  oBybit.Client := oClient;
  // Configure API credentials
  oBybit.Bybit.ApiKey := 'your_api_key';
  oBybit.Bybit.ApiSecret := 'your_api_secret';
  // Select the product category
  oBybit.BybitClient := bybLinear;
  // Connect to the WebSocket
  oClient.Active := True;
  // REST: Get ticker information for BTCUSDT
  ShowMessage(oBybit.REST_API.GetTickers('BTCUSDT'));
  // REST: Place a limit buy order
  ShowMessage(oBybit.REST_API.PlaceLimitOrder(bbsBuy, 'BTCUSDT', 0.001, 30000));
  // REST: Get wallet balance
  ShowMessage(oBybit.REST_API.GetWalletBalance);
  // WebSocket: Subscribe to real-time trades for BTCUSDT
  oBybit.SubscribeTrade('BTCUSDT');
end;

REST と WebSocket の使い分け

注文発注・残高照会・過去データ取得などのオンデマンド操作には REST API を使用してください。継続的な低レイテンシデータストリームには WebSocket サブスクリプションを使用してください。両方を同時に使用できます — REST 呼び出しは WebSocket の接続状態から独立しています。

設定リファレンス

プロパティ 説明
Bybit.ApiKey String 認証済みリクエスト用の Bybit API キー。
Bybit.ApiSecret String リクエスト署名用の Bybit API シークレット。
Bybit.TestNet Boolean Bybit テストネット環境に接続する場合は True;メインネットの場合は False
Bybit.SignatureExpires Integer HMAC 署名の有効期限(秒)。通常はデフォルト値で十分です。
BybitClient Enum プロダクトカテゴリー:bybSpotbybLinearbybInverse、または bybPerpetual

ヒントと注意事項

まずテストネットで

常に Bybit.TestNet := True で開発を開始してください。Bybit テストネットはテスト資金を使った完全なシミュレーション環境を提供します。testnet.bybit.com で個別のテストネット API キーを作成できます。

統合 V5 API

V5 API はすべてのプロダクトタイプを単一のエンドポイントセットに統合します。BybitClient プロパティで接続する WebSocket ストリームが決まり、REST API はリクエストに基づいて自動的に正しいカテゴリーにルーティングします。

注文ショートカットメソッド

PlaceOrder はすべてのパラメーターを完全に制御できますが、PlaceMarketOrderPlaceLimitOrder のショートカットメソッドは最も一般的なシナリオをより少ないパラメーターでカバーします。リデュースオンリー・執行条件・条件付きトリガーなどの高度なオプションが必要な場合はフルメソッドを使用してください。

レート制限

Bybit は REST と WebSocket エンドポイントの両方にレート制限を設けています。REST 制限は通常エンドポイントごとです(例:注文発注は 1 秒あたり 10 リクエスト)。WebSocket サブスクリプションには同時トピック数の制限があります。制限内に収まるようにレスポンスヘッダーとエラーコードを監視してください。

注意:Bybit の WebSocket 接続は定期的に ping フレームを送信します。TsgcWSAPI_Bybit コンポーネントはこれを自動的に処理し、追加コードなしで接続を維持します。