Bybit は主要な暗号通貨デリバティブ・現物取引所であり、無期限契約・先物・現物取引・オプションを提供しています。TsgcWSAPI_Bybit コンポーネントは Bybit V5 統合 API との完全な Delphi 統合を実現します。リアルタイム市場データとプライベートイベントの WebSocket サブスクリプション、および取引・ポジション管理・口座照会のための包括的な REST インターフェースの両方を組み合わせています。本記事では利用可能なすべてのメソッドを説明し、接続・サブスクライブ・取引の方法を紹介します。
目次
- アーキテクチャ概要
- WebSocket API — パブリックチャンネル
- WebSocket API — プライベートチャンネル
- REST API — 市場データ
- REST API — 取引
- REST API — ポジション管理
- REST API — 口座
- はじめに — コード例
- 設定リファレンス
- ヒントと注意事項
アーキテクチャ概要
Bybit V5 API は、現物・リニア無期限・インバース無期限・インバース先物・オプションを単一のエンドポイントセットに統合した統一インターフェースです。TsgcWSAPI_Bybit コンポーネントは両方のチャンネルをサポートします:
- WebSocket — リアルタイムのパブリック市場データ(板情報・約定・ティッカー・ローソク足・清算)とプライベート口座イベント(ポジション・約定・注文・ウォレット更新)。
- REST —
oBybit.REST_APIを介したオンデマンドの照会とアクション。市場データ取得・注文発注・管理・ポジション設定・口座情報をカバーします。
BybitClient プロパティでプロダクトカテゴリーを選択します。これにより WebSocket エンドポイントが決まります:bybSpot、bybLinear、bybInverse、または 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 | プロダクトカテゴリー:bybSpot、bybLinear、bybInverse、または bybPerpetual。 |
ヒントと注意事項
まずテストネットで
常に Bybit.TestNet := True で開発を開始してください。Bybit テストネットはテスト資金を使った完全なシミュレーション環境を提供します。testnet.bybit.com で個別のテストネット API キーを作成できます。
統合 V5 API
V5 API はすべてのプロダクトタイプを単一のエンドポイントセットに統合します。BybitClient プロパティで接続する WebSocket ストリームが決まり、REST API はリクエストに基づいて自動的に正しいカテゴリーにルーティングします。
注文ショートカットメソッド
PlaceOrder はすべてのパラメーターを完全に制御できますが、PlaceMarketOrder と PlaceLimitOrder のショートカットメソッドは最も一般的なシナリオをより少ないパラメーターでカバーします。リデュースオンリー・執行条件・条件付きトリガーなどの高度なオプションが必要な場合はフルメソッドを使用してください。
レート制限
Bybit は REST と WebSocket エンドポイントの両方にレート制限を設けています。REST 制限は通常エンドポイントごとです(例:注文発注は 1 秒あたり 10 リクエスト)。WebSocket サブスクリプションには同時トピック数の制限があります。制限内に収まるようにレスポンスヘッダーとエラーコードを監視してください。
注意:Bybit の WebSocket 接続は定期的に ping フレームを送信します。TsgcWSAPI_Bybit コンポーネントはこれを自動的に処理し、追加コードなしで接続を維持します。
