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
- WebSocket-API — Öffentliche Channels
- WebSocket-API — Private Channels
- REST-API — Marktdaten
- REST-API — Trading
- REST-API — Positionsverwaltung
- REST-API — Konto
- Erste Schritte — Code-Beispiel
- Konfigurationsreferenz
- Tipps und Hinweise
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:
- WebSocket — Öffentliche Marktdaten in Echtzeit (Orderbücher, Trades, Tickers, Klines, Liquidationen) und private Konto-Events (Positionen, Executions, Orders, Wallet-Updates).
- REST — On-Demand-Abfragen und -Aktionen über
oBybit.REST_API, von Marktdatenabruf über Orderplatzierung und -verwaltung bis hin zu Positionskonfiguration und Kontoinformationen.
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 KomponenteTsgcWSAPI_Bybit verarbeitet diese automatisch und hält deine Verbindung ohne Zusatzcode am Leben.
