Bybit-API-Update sgcWebSockets

· Funktionen
Bybit V5 WebSocket- und REST-API-Integration in Delphi

Bybit ist eine wichtige Krypto-Derivate- und Spot-Börse mit Perpetual-Kontrakten, Futures, Spot-Trading und Optionen. Die Komponente TsgcWSAPI_Bybit liefert vollständige Delphi-Integration mit der unified V5-API von Bybit — kombiniert WebSocket-Subscriptions für Marktdaten in Echtzeit und private Events mit einem umfassenden REST-Interface für Trading, Positionsverwaltung und Kontoabfragen. Dieser Artikel deckt jede verfügbare Methode ab und zeigt dir, wie du dich verbindest, abonnierst und handelst.

Inhaltsverzeichnis

Architekturüberblick

Die Bybit V5-API ist ein einheitliches Interface, das Spot, Linear Perpetual, Inverse Perpetual, Inverse Futures und Optionen unter einem Satz von Endpoints zusammenfasst. Die Komponente TsgcWSAPI_Bybit unterstützt beide Kanäle:

Die Produktkategorie wählst du über die Property BybitClient, die den WebSocket-Endpoint bestimmt: bybSpot, bybLinear, bybInverse oder bybPerpetual.

WebSocket-API — Öffentliche Channels

Öffentliche Channels liefern Echtzeit-Marktdaten ohne Authentifizierung. Jede Subscribe-Methode hat eine korrespondierende Unsubscribe-Methode.

Subscribe Unsubscribe Beschreibung
SubscribeOrderBook UnSubscribeOrderBook Orderbuch-Tiefen-Snapshots und inkrementelle Updates in Echtzeit.
SubscribeTrade UnSubscribeTrade Live-Trade-Ausführungen, wie sie an der Börse passieren.
SubscribeTicker UnSubscribeTicker 24-Stunden-Rolling-Window-Ticker-Statistiken (Preis, Volumen, Veränderung).
SubscribeKLine UnSubscribeKLine Echtzeit-Candlestick-/Kline-Updates für ein bestimmtes Intervall.
SubscribeLiquidation UnSubscribeLiquidation Liquidationsereignisse börsenweit.
SubscribeLT_KLine UnSubscribeLT_KLine Kline-/Candlestick-Updates für Leveraged Tokens.
SubscribeLT_Ticker UnSubscribeLT_Ticker Tickerdaten für Leveraged Tokens.
SubscribeLT_Nav UnSubscribeLT_Nav NAV-Updates für Leveraged Tokens.

WebSocket-API — Private Channels

Private Channels erfordern Authentifizierung über API-Key und Secret. Sie liefern Echtzeit-Updates zur Aktivität deines Kontos.

Subscribe Unsubscribe Beschreibung
SubscribePosition UnSubscribePosition Positions-Updates in Echtzeit (Größe, Einstiegspreis, PnL, Hebel).
SubscribeExecution UnSubscribeExecution Bestätigungen von Trade-Executions, wenn deine Orders gefüllt werden.
SubscribeOrder UnSubscribeOrder Order-Status-Änderungen (neu, teilweise gefüllt, gefüllt, storniert).
SubscribeWallet UnSubscribeWallet Wallet-Saldo-Änderungen über alle Coins hinweg.
SubscribeGreek UnSubscribeGreek Options-Greeks-Updates (Delta, Gamma, Theta, Vega).
SubscribeDcp UnSubscribeDcp Disconnection-Protection-Events zur Überwachung der Verbindungsstabilität.

REST-API — Marktdaten

Marktdaten-Endpoints sind öffentlich und erfordern keine Authentifizierung. Zugriff über oBybit.REST_API.

Methode Beschreibung
GetServerTime Liefert den Bybit-Server-Timestamp.
GetKLine Liefert historische Kline-/Candlestick-Daten für ein Symbol und Intervall.
GetMarkPriceKLine Liefert Mark-Price-Kline-Daten (für PnL- und Liquidationsberechnungen).
GetIndexPriceKLine Liefert Index-Preis-Kline-Daten.
GetPremiumIndexPriceKLine Liefert Premium-Index-Preis-Kline-Daten für Perpetual-Kontrakte.
GetInstrumentsInfo Liefert Instrumentenspezifikationen (Tick Size, Lot Size, Hebellimits usw.).
GetOrderBook Liefert den aktuellen Orderbuch-Snapshot bei einer bestimmten Tiefe.
GetTickers Liefert die aktuellsten Ticker-Informationen für ein oder alle Symbole.
GetFundingRateHistory Liefert historische Funding-Rate-Datensätze für Perpetual-Kontrakte.
GetPublicRecentTradingHistory Liefert die aktuellsten öffentlichen Trades für ein Symbol.
GetOpenInterest Liefert Open-Interest-Daten für Derivate-Kontrakte.
GetHistoricalVolatility Liefert historische Volatilität für Optionen.
GetInsurance Liefert die Verlaufshistorie des Insurance Fund.
GetRiskLimit Liefert Risiko-Limit-Stufen für ein Symbol.
GetDeliveryPrice Liefert Delivery-Preise für abgelaufene Futures und Optionen.
GetLongShortRatio Liefert das Long-/Short-Verhältnis für ein Symbol und einen Zeitraum.

REST-API — Trading

Trading-Endpoints erfordern API-Key-Authentifizierung mit passenden Berechtigungen. Diese Methoden erlauben Platzierung, Änderung und Stornierung von Orders.

Methode Beschreibung
PlaceOrder Platziert eine neue Order mit voller Parameterkontrolle (Typ, Side, Preis, Menge, Time-in-Force usw.).
PlaceMarketOrder Convenience-Methode für Market-Orders (sofortige Ausführung zum besten verfügbaren Preis).
PlaceLimitOrder Convenience-Methode für Limit-Orders zu einem festgelegten Preis.
AmendOrder Modifiziert eine bestehende offene Order (Preis, Menge oder andere Parameter).
CancelOrder Storniert eine bestimmte offene Order anhand ihrer Order-ID.
GetOpenOrders Liefert alle aktuell offenen (ungefüllten) Orders.
CancelAllOrders Storniert alle offenen Orders, optional gefiltert nach Symbol oder Kategorie.
GetOrderHistory Liefert historische Orders (gefüllt, storniert, abgelehnt) innerhalb eines Zeitbereichs.

REST-API — Positionsverwaltung

Positions-Endpoints erlauben das Abfragen und Konfigurieren deiner Derivate-Positionen, inklusive Hebel, Margin-Modus, Risikolimits und Stop-Loss-/Take-Profit-Einstellungen.

Methode Beschreibung
GetPositionInfo Liefert aktuelle Positionsdetails (Größe, Einstiegspreis, unrealisierter PnL, Margin).
SetLeverage Setzt den Hebel für ein Symbol.
SwitchCrossIsolatedMargin Wechselt zwischen Cross- und Isolated-Margin-Modus.
SetTPSLMode Konfiguriert den Take-Profit-/Stop-Loss-Modus (gesamte Position oder partial).
SwitchPositionMode Wechselt zwischen One-Way- und Hedge-Modus.
SetRiskLimit Setzt die Risiko-Limit-Stufe für ein Symbol — beeinflusst den maximalen Hebel.
SetTradingStop Setzt Trailing-Stop, Take-Profit oder Stop-Loss für eine bestehende Position.
SetAutoAddMargin Aktiviert oder deaktiviert Auto-Add-Margin für Isolated-Margin-Positionen.
AddOrReduceMargin Fügt Margin manuell zu einer Isolated-Margin-Position hinzu oder entfernt sie.
GetExecution Liefert Execution-/Fill-Datensätze deiner Trades.
GetClosedPNL Liefert geschlossene Gewinn- und Verlust-Datensätze.
ConfirmNewRiskLimit Bestätigt eine Risikolimit-Änderung, wenn zusätzliche Margin nötig ist.

REST-API — Konto

Konto-Endpoints liefern Wallet-Salden, Kontokonfiguration und Transaktionsprotokolle.

Methode Beschreibung
GetWalletBalance Liefert Wallet-Salden über alle Coins hinweg oder für einen bestimmten Kontotyp.
GetAccountInfo Liefert Unified-Konto-Informationen (Margin-Modus, Kontostatus usw.).
GetTransactionLog Liefert Transaktionshistorie (Einzahlungen, Auszahlungen, Trades, Funding Fees usw.).

Erste Schritte — Code-Beispiel

Das folgende Beispiel zeigt ein komplettes Setup: Verbindung zum Bybit-Linear-Perpetual-Endpoint, Ticker-Daten per REST abfragen, eine Limit-Order platzieren, Wallet-Saldo prüfen und Trade-Updates in Echtzeit per WebSocket abonnieren.

var
  oClient: TsgcWebSocketClient;
  oBybit: TsgcWSAPI_Bybit;
begin
  // WebSocket-Client erstellen
  oClient := TsgcWebSocketClient.Create(nil);
  // Bybit-API-Komponente erstellen
  oBybit := TsgcWSAPI_Bybit.Create(nil);
  oBybit.Client := oClient;
  // API-Zugangsdaten konfigurieren
  oBybit.Bybit.ApiKey := 'dein_api_key';
  oBybit.Bybit.ApiSecret := 'dein_api_secret';
  // Produktkategorie wählen
  oBybit.BybitClient := bybLinear;
  // Mit dem WebSocket verbinden
  oClient.Active := True;
  // REST: Ticker-Informationen für BTCUSDT abrufen
  ShowMessage(oBybit.REST_API.GetTickers('BTCUSDT'));
  // REST: Limit-Buy-Order platzieren
  ShowMessage(oBybit.REST_API.PlaceLimitOrder(bbsBuy, 'BTCUSDT', 0.001, 30000));
  // REST: Wallet-Saldo abrufen
  ShowMessage(oBybit.REST_API.GetWalletBalance);
  // WebSocket: Trades in Echtzeit für BTCUSDT abonnieren
  oBybit.SubscribeTrade('BTCUSDT');
end;

REST vs. WebSocket

Nutze die REST-API für On-Demand-Operationen wie Orderplatzierung, Saldenabfragen und das Abrufen historischer Daten. Nutze WebSocket-Subscriptions für kontinuierliche Datenströme mit niedriger Latenz. Beide lassen sich parallel verwenden — REST-Aufrufe sind unabhängig vom WebSocket-Verbindungsstatus.

Konfigurationsreferenz

Property Typ Beschreibung
Bybit.ApiKey String Dein Bybit-API-Key für authentifizierte Requests.
Bybit.ApiSecret String Dein Bybit-API-Secret zur Request-Signierung.
Bybit.TestNet Boolean Auf True setzen, um mit der Bybit-Testnet-Umgebung zu verbinden; False für Mainnet.
Bybit.SignatureExpires Integer Ablaufzeit in Sekunden für die HMAC-Signatur (Standard reicht meist).
BybitClient Enum Produktkategorie: bybSpot, bybLinear, bybInverse oder bybPerpetual.

Tipps und Hinweise

Zuerst Testnet

Starte die Entwicklung immer mit Bybit.TestNet := True. Das Bybit-Testnet bietet eine vollständige Simulationsumgebung mit Test-Mitteln. Einen separaten Testnet-API-Key kannst du unter testnet.bybit.com erstellen.

Unified V5-API

Die V5-API vereinheitlicht alle Produkttypen unter einem Endpoint-Satz. Die Property BybitClient bestimmt, mit welchem WebSocket-Stream du dich verbindest; die REST-API routet automatisch in die korrekte Kategorie basierend auf deinen Requests.

Order-Convenience-Methoden

Während PlaceOrder dir volle Kontrolle über jeden Parameter gibt, decken die Convenience-Methoden PlaceMarketOrder und PlaceLimitOrder die häufigsten Szenarien mit weniger Parametern ab. Nutze die vollständige Methode, wenn du erweiterte Optionen wie Reduce-Only, Time-in-Force oder bedingte Trigger brauchst.

Rate Limits

Bybit erzwingt Rate Limits sowohl auf REST- als auch auf WebSocket-Endpoints. REST-Limits sind typischerweise pro Endpoint (z. B. 10 Requests pro Sekunde für Orderplatzierung). WebSocket-Subscriptions haben ein Limit für die Anzahl gleichzeitiger Topics. Überwache Response-Header und Fehlercodes, um innerhalb der Grenzen zu bleiben.

Hinweis: Bybit-WebSocket-Verbindungen senden periodisch Ping-Frames. Die Komponente TsgcWSAPI_Bybit verarbeitet diese automatisch und hält deine Verbindung ohne Zusatzcode am Leben.