Bybit-API-update sgcWebSockets

· Functies
Bybit V5 WebSocket- en REST-API-integratie in Delphi

Bybit is een belangrijke cryptocurrency-derivaten- en spotbeurs en biedt perpetual contracts, futures, spot trading en opties. De component TsgcWSAPI_Bybit levert volledige Delphi-integratie met de uniforme Bybit V5-API — met zowel WebSocket-subscriptions voor realtime market data en private events, als een uitgebreide REST-interface voor trading, positiebeheer en account-queries. Dit artikel behandelt elke beschikbare methode en laat zien hoe je verbindt, abonneert en handelt.

Inhoudsopgave

Architectuuroverzicht

De Bybit V5-API is een uniforme interface die spot, linear perpetual, inverse perpetual, inverse futures en opties bundelt onder één set endpoints. De component TsgcWSAPI_Bybit ondersteunt beide kanalen:

Je selecteert de productcategorie via de eigenschap BybitClient, die het WebSocket-endpoint bepaalt: bybSpot, bybLinear, bybInverse of bybPerpetual.

WebSocket-API — publieke kanalen

Publieke kanalen leveren realtime market data zonder authenticatie. Elke subscribe-methode heeft een bijbehorende unsubscribe-methode.

Subscribe Unsubscribe Beschrijving
SubscribeOrderBook UnSubscribeOrderBook Realtime order-book-snapshots en incrementele updates.
SubscribeTrade UnSubscribeTrade Live-trade-executions zodra ze op de exchange plaatsvinden.
SubscribeTicker UnSubscribeTicker Ticker-statistieken met 24-uurs schuivend venster (prijs, volume, verandering).
SubscribeKLine UnSubscribeKLine Realtime candlestick-/kline-updates voor een opgegeven interval.
SubscribeLiquidation UnSubscribeLiquidation Liquidation-events over de hele exchange.
SubscribeLT_KLine UnSubscribeLT_KLine Kline-/candlestick-updates voor leveraged tokens.
SubscribeLT_Ticker UnSubscribeLT_Ticker Ticker-data voor leveraged tokens.
SubscribeLT_Nav UnSubscribeLT_Nav Updates van de netto-vermogenswaarde van leveraged tokens.

WebSocket-API — private kanalen

Private kanalen vereisen authenticatie via API-sleutel en -secret. Ze leveren realtime updates over je accountactiviteit.

Subscribe Unsubscribe Beschrijving
SubscribePosition UnSubscribePosition Realtime positie-updates (grootte, instapprijs, PnL, leverage).
SubscribeExecution UnSubscribeExecution Trade-executie-bevestigingen zodra je orders worden gevuld.
SubscribeOrder UnSubscribeOrder Wijzigingen in order-status (new, partially filled, filled, cancelled).
SubscribeWallet UnSubscribeWallet Wijzigingen in wallet-balances over alle coins.
SubscribeGreek UnSubscribeGreek Updates van de Greeks voor opties (delta, gamma, theta, vega).
SubscribeDcp UnSubscribeDcp Disconnection-protection-events voor het monitoren van verbindingsstatus.

REST-API — market data

Market data-endpoints zijn publiek en vereisen geen authenticatie. Benader ze via oBybit.REST_API.

Methode Beschrijving
GetServerTime Geeft de tijdstempel van de Bybit-server terug.
GetKLine Geeft historische kline-/candlestick-data terug voor een symbool en interval.
GetMarkPriceKLine Geeft mark-price-kline-data terug (gebruikt voor PnL- en liquidatieberekeningen).
GetIndexPriceKLine Geeft index-price-kline-data terug.
GetPremiumIndexPriceKLine Geeft premium-index-price-kline-data terug voor perpetual contracts.
GetInstrumentsInfo Geeft de instrument-specificaties terug (tick size, lot size, leverage-limieten, enz.).
GetOrderBook Geeft de huidige order-book-snapshot op een opgegeven diepte terug.
GetTickers Geeft de nieuwste ticker-informatie terug voor één of alle symbolen.
GetFundingRateHistory Geeft historische funding-rate-records terug voor perpetual contracts.
GetPublicRecentTradingHistory Geeft de meest recente publieke trades voor een symbool terug.
GetOpenInterest Geeft open-interest-data terug voor derivatencontracten.
GetHistoricalVolatility Geeft de historische volatiliteit voor opties terug.
GetInsurance Geeft de historie van het insurance-fund-saldo terug.
GetRiskLimit Geeft de risk-limit-tiers voor een opgegeven symbool terug.
GetDeliveryPrice Geeft de leveringsprijs voor verlopen futures en opties terug.
GetLongShortRatio Geeft de long/short-ratio voor een opgegeven symbool en periode terug.

REST-API — trading

Trading-endpoints vereisen API-sleutel-authenticatie met de juiste rechten. Met deze methoden kun je orders plaatsen, wijzigen en annuleren.

Methode Beschrijving
PlaceOrder Plaatst een nieuwe order met volledige parametercontrole (type, side, prijs, hoeveelheid, time-in-force, enz.).
PlaceMarketOrder Hulpmethode die een market-order plaatst (direct uitgevoerd tegen de best beschikbare prijs).
PlaceLimitOrder Hulpmethode die een limit-order plaatst tegen een opgegeven prijs.
AmendOrder Wijzigt een bestaande openstaande order (prijs, hoeveelheid of andere parameters).
CancelOrder Annuleert een specifieke openstaande order op basis van het order-ID.
GetOpenOrders Geeft alle openstaande (nog niet gevulde) orders terug.
CancelAllOrders Annuleert alle openstaande orders, optioneel gefilterd op symbool of categorie.
GetOrderHistory Geeft historische orders (filled, cancelled, rejected) terug binnen een tijdvenster.

REST-API — positiebeheer

Met positie-endpoints kun je je derivatenposities opvragen en configureren, inclusief leverage, margin-modus, risk limits en stop-loss/take-profit-instellingen.

Methode Beschrijving
GetPositionInfo Geeft de huidige positiedetails terug (grootte, instapprijs, niet-gerealiseerde PnL, margin).
SetLeverage Stelt de leverage in voor een opgegeven symbool.
SwitchCrossIsolatedMargin Schakelt tussen cross-margin- en isolated-margin-modus.
SetTPSLMode Configureert de take-profit-/stop-loss-modus (volledige positie of gedeeltelijk).
SwitchPositionMode Schakelt tussen one-way-modus en hedge-modus.
SetRiskLimit Stelt de risk-limit-tier voor een symbool in, wat de maximale leverage beïnvloedt.
SetTradingStop Zet een trailing stop, take-profit of stop-loss op een bestaande positie.
SetAutoAddMargin Schakelt automatische margin-toevoeging in of uit voor isolated-margin-posities.
AddOrReduceMargin Voegt handmatig margin toe aan of verwijdert margin van een isolated-margin-positie.
GetExecution Geeft execution-/fill-records voor je trades terug.
GetClosedPNL Geeft de gesloten winst- en verlies-records terug.
ConfirmNewRiskLimit Bevestigt een wijziging van de risk limit wanneer er extra margin vereist is.

REST-API — account

Account-endpoints leveren wallet-balances, accountconfiguratie en transactielogs.

Methode Beschrijving
GetWalletBalance Geeft de wallet-balances terug over alle coins of voor een specifiek account-type.
GetAccountInfo Geeft de unified account-informatie terug (margin-modus, accountstatus, enz.).
GetTransactionLog Geeft de transactiegeschiedenis terug (deposits, withdrawals, trades, funding fees, enz.).

Aan de slag — codevoorbeeld

Het volgende voorbeeld laat een complete setup zien: verbinden met het Bybit linear perpetual-endpoint, ticker-data opvragen via REST, een limit-order plaatsen, de wallet-balance controleren en je abonneren op realtime trade-updates via 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 vs. WebSocket

Gebruik de REST-API voor on-demand bewerkingen zoals het plaatsen van orders, balances opvragen en historische data ophalen. Gebruik WebSocket-subscriptions voor continue, lage-latentie data-streams. De twee kunnen gelijktijdig worden gebruikt — REST-aanroepen staan los van de WebSocket-verbindingsstatus.

Configuratie-referentie

Eigenschap Type Beschrijving
Bybit.ApiKey String Je Bybit-API-sleutel voor authenticated requests.
Bybit.ApiSecret String Je Bybit-API-secret voor het ondertekenen van requests.
Bybit.TestNet Boolean Set to True to connect to the Bybit testnet environment; False for mainnet.
Bybit.SignatureExpires Integer Verlooptijd in seconden voor de HMAC-signature (de standaardwaarde voldoet meestal).
BybitClient Enum Product category: bybSpot, bybLinear, bybInverse, or bybPerpetual.

Tips en opmerkingen

Begin met testnet

Begin de ontwikkeling altijd met Bybit.TestNet := True. Het Bybit-testnet biedt een volledige simulatie-omgeving met testfondsen. Je kunt een aparte testnet-API-sleutel aanmaken op testnet.bybit.com.

Uniforme V5-API

De V5-API bundelt alle producttypes onder één set endpoints. De eigenschap BybitClient bepaalt met welke WebSocket-stream je verbindt, terwijl de REST-API automatisch naar de juiste categorie wordt gerouteerd op basis van je requests.

Order-conveniencemethoden

Hoewel PlaceOrder je volledige controle geeft over elke parameter, dekken de conveniencemethoden PlaceMarketOrder en PlaceLimitOrder de meest voorkomende scenario's met minder parameters af. Gebruik de volledige methode als je geavanceerde opties nodig hebt zoals reduce-only, time-in-force of conditionele triggers.

Rate limits

Bybit hanteert rate limits op zowel REST- als WebSocket-endpoints. REST-limieten zijn doorgaans per endpoint (bijv. 10 requests per seconde voor order-plaatsing). WebSocket-subscriptions hebben een limiet op het aantal gelijktijdige topics. Monitor response-headers en foutcodes om binnen de limieten te blijven.

Opmerking: Bybit-WebSocket-verbindingen sturen periodiek ping-frames. De TsgcWSAPI_Bybit-component verwerkt deze automatisch, zodat je verbinding actief blijft zonder extra code.