ByBit Client API が V5 にアップグレードされました。以下のプロトコルがサポートされています:
- WebSocket API:WebSocket サーバーに接続し、リアルタイムの市場データ更新・アカウント変更などを提供します。
- REST API:HTTP リクエストを送信して市場データの取得・注文の発注・口座データの取得などを行います。
プロパティ
Bybit プロパティで以下のプロパティを設定できます。
- ApiKey:Bybit アカウントで新しい API キーをリクエストし、値をこのプロパティにコピーします。APIKey が設定されている場合、クライアントは WebSocket プライベートサーバーに接続します。空の場合は WebSocket パブリックサーバーに接続します。
- ApiSecret:API のシークレット値。
- SignatureExpires:署名が期限切れになるまでの秒数(デフォルト 10 秒)。
- TestNet:有効にすると Bybit TestNet デモアカウントに接続します(デフォルトは無効)。
接続
クライアントが Bybit サーバーへの接続に成功すると、OnConnect イベントが発生します。OnConnect イベント発生後、Bybit サーバーとのメッセージの送受信を開始できます。プライベート WebSocket チャンネルに接続する場合は、チャンネルをサブスクライブする前に OnBybitAuthentication イベントが発生し、success パラメーターが true であることを確認する必要があります。
クライアントは複数の API をサポートしています。BybitClient プロパティを使用して使用する API を設定します:
- bybSpot
- bybPerpetual
- bybLinear
- bybFutures
以下は WebSocket Spot プライベート API への接続例です。
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybSpot;
oClient.Active := True;
procedure OnConnect(Connection: TsgcWSConnection);
begin
DoLog('#Bybit Connected');
end;
Spot WebSocket サーバーへの接続に成功したら、WebSocket チャンネルのサブスクライブを開始できます。REST_API プロパティにアクセスして、利用可能なサブスクライブ/アンサブスクライブメソッドを呼び出します。
WebSocket チャンネルへのサブスクライブ
以下は認証成功後にプライベート Spot WebSocket チャンネルをサブスクライブする例です。
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybSpot;
oClient.Active := True;
procedure OnBybitAuthentication(Sender: TObject; aSuccess: Boolean; const aError, aRawMessage: string)
begin
if aSuccess then
begin
oClient.SubscribeOrderBook('BTCUSDT');
oClient.SubscribeTrade('BTCUSDT');
end;
end;
注文の発注
以下は成行注文発注の例です。
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybSpot;
oBybit.REST_API.PlaceMarketOrder('BTCUSDT', bbosBuy, 1);
