Począwszy od sgcWebSockets 2022.10.0 obsługiwana jest giełda kryptowalut Bybit. Dostępne są następujące API:
- WebSocket API: łączy się z serwerem WebSocket i dostarcza aktualizacje danych rynkowych w czasie rzeczywistym, zmiany na koncie i nie tylko.
- REST API: wysyła żądania HTTP w celu pobierania danych rynkowych, składania zleceń, danych konta itd.
Zaimplementowane są następujące API produktów:
- Spot (V3)
- USDT Perpetual (Futures V2)
- Inverse Perpetual (Futures V2)
- Inverse Futures (Futures V2)
Properties
W właściwości Bybit możesz skonfigurować następujące właściwości.
- ApiKey: możesz wygenerować nowy klucz API na swoim koncie Bybit — wystarczy skopiować wartość do tej właściwości. Jeśli APIKey jest ustawiony, klient połączy się z prywatnym serwerem WebSocket. Jeśli jest pusty, połączy się z publicznym serwerem WebSocket.
- ApiSecret: tajna wartość klucza API.
- SignatureExpires: liczba sekund ważności podpisu (domyślnie 10 sekund).
- TestNet: po włączeniu łączy się z demonstracyjnym kontem Bybit TestNet (domyślnie wyłączone).
Connection
Gdy klient pomyślnie połączy się z serwerami Bybit, zostaje wywołane zdarzenie OnConnect. Po wywołaniu zdarzenia OnConnect możesz zacząć wysyłać i odbierać wiadomości z serwerów Bybit. Jeśli łączysz się z prywatnym kanałem WebSocket, musisz poczekać na wywołanie zdarzenia OnBybitAuthentication i sprawdzić, czy parametr success ma wartość true, zanim zasubskrybujesz jakikolwiek kanał.
Klient obsługuje kilka API, dlatego za pomocą właściwości BybitClient ustaw, którego API chcesz używać:
- bybSpot
- bybInversePerpetual
- bybUSDTPerpetual
- bybInverseFutures
Poniżej znajdziesz przykład łączenia się z prywatnym API WebSocket Spot.
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;
Po pomyślnym połączeniu z serwerem WebSocket Spot możesz zacząć subskrybować kanały WebSocket — wystarczy uzyskać dostęp do właściwości SPOT i wywołać dowolną z dostępnych metod subskrypcji/anulowania subskrypcji.
Poniżej znajdziesz listę obiektów API Bybit:
- SPOT
- INVERSE_PERPETUAL
- USDT_PERPETUAL
- INVERSE_FUTURES
Subscribe to WebSocket Channels
Poniżej znajdziesz przykład subskrypcji prywatnych kanałów WebSocket Spot po pomyślnym uwierzytelnieniu.
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.SubscribeOrder;
oClient.SubscribeStopOrder;
end;
end;
Placing Orders
Poniżej znajdziesz przykład składania zlecenia rynkowego dla USDT Perpetual.
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybUSDTPerpetual;
oBybit.USDT_PERPETUAL.REST_API.PlaceMarketOrder('BTCUSDT', bbosBuy, 1);
