Bybit est une plateforme majeure de dérivés crypto et spot, qui propose des contrats perpétuels, des futures, du trading spot et des options. Le composant TsgcWSAPI_Bybit fournit une intégration Delphi complète avec l'API unifiée Bybit V5 — combinant à la fois les abonnements WebSocket pour les données de marché en temps réel et les événements privés, et une interface REST complète pour le trading, la gestion des positions et les requêtes de compte. Cet article couvre chaque méthode disponible et te montre comment te connecter, t'abonner et trader.
Table des matières
- Aperçu de l'architecture
- API WebSocket — canaux publics
- API WebSocket — canaux privés
- API REST — données de marché
- API REST — trading
- API REST — gestion des positions
- API REST — compte
- Premiers pas — exemple de code
- Référence de configuration
- Astuces et notes
Aperçu de l'architecture
L'API Bybit V5 est une interface unifiée qui consolide spot, linear perpetual, inverse perpetual, inverse futures et options dans un seul ensemble d'endpoints. Le composant TsgcWSAPI_Bybit prend en charge les deux canaux :
- WebSocket — données de marché publiques en temps réel (carnets d'ordres, trades, tickers, klines, liquidations) et événements de compte privés (positions, exécutions, ordres, mises à jour de wallet).
- REST — requêtes et actions à la demande via
oBybit.REST_API, couvrant la récupération de données de marché, le placement et la gestion d'ordres, la configuration des positions et les informations de compte.
Tu sélectionnes la catégorie de produit via la propriété BybitClient, qui détermine l'endpoint WebSocket : bybSpot, bybLinear, bybInverse ou bybPerpetual.
API WebSocket — canaux publics
Les canaux publics fournissent des données de marché en temps réel sans authentification. Chaque méthode d'abonnement a une méthode de désabonnement correspondante.
| S'abonner | Se désabonner | Description |
|---|---|---|
SubscribeOrderBook |
UnSubscribeOrderBook |
Snapshots de profondeur du carnet d'ordres en temps réel et mises à jour incrémentales. |
SubscribeTrade |
UnSubscribeTrade |
Exécutions de trades en direct au fur et à mesure qu'elles se produisent sur l'exchange. |
SubscribeTicker |
UnSubscribeTicker |
Statistiques ticker sur fenêtre glissante de 24 heures (prix, volume, variation). |
SubscribeKLine |
UnSubscribeKLine |
Mises à jour de chandeliers/klines en temps réel pour un intervalle spécifié. |
SubscribeLiquidation |
UnSubscribeLiquidation |
Événements de liquidation à travers l'exchange. |
SubscribeLT_KLine |
UnSubscribeLT_KLine |
Mises à jour kline/chandeliers de leveraged tokens. |
SubscribeLT_Ticker |
UnSubscribeLT_Ticker |
Données ticker de leveraged tokens. |
SubscribeLT_Nav |
UnSubscribeLT_Nav |
Mises à jour de la valeur nette des leveraged tokens. |
API WebSocket — canaux privés
Les canaux privés requièrent une authentification via clé API et secret. Ils livrent des mises à jour en temps réel sur l'activité de ton compte.
| Subscribe | Unsubscribe | Description |
|---|---|---|
SubscribePosition |
UnSubscribePosition |
Mises à jour de position en temps réel (taille, prix d'entrée, PnL, leverage). |
SubscribeExecution |
UnSubscribeExecution |
Confirmations d'exécution de trade au fur et à mesure que tes ordres sont fillés. |
SubscribeOrder |
UnSubscribeOrder |
Changements de statut d'ordre (new, partially filled, filled, cancelled). |
SubscribeWallet |
UnSubscribeWallet |
Changements de solde de wallet pour tous les coins. |
SubscribeGreek |
UnSubscribeGreek |
Mises à jour des Greeks d'options (delta, gamma, theta, vega). |
SubscribeDcp |
UnSubscribeDcp |
Événements de protection contre la déconnexion pour surveiller la santé de la connexion. |
API REST — données de marché
Les endpoints de données de marché sont publics et ne requièrent pas d'authentification. Accède-les via oBybit.REST_API.
| Méthode | Description |
|---|---|
GetServerTime |
Retourne le timestamp du serveur Bybit. |
GetKLine |
Retourne les données historiques kline/chandeliers pour un symbole et un intervalle. |
GetMarkPriceKLine |
Retourne les données kline du mark price (utilisées pour les calculs de PnL et de liquidation). |
GetIndexPriceKLine |
Retourne les données kline de l'index price. |
GetPremiumIndexPriceKLine |
Retourne les données kline du premium index price pour les contrats perpétuels. |
GetInstrumentsInfo |
Retourne les spécifications de l'instrument (tick size, lot size, limites de leverage, etc.). |
GetOrderBook |
Retourne le snapshot actuel du carnet d'ordres à une profondeur donnée. |
GetTickers |
Retourne les dernières informations ticker pour un ou tous les symboles. |
GetFundingRateHistory |
Retourne les enregistrements historiques de funding rate pour les contrats perpétuels. |
GetPublicRecentTradingHistory |
Retourne les trades publics les plus récents pour un symbole. |
GetOpenInterest |
Retourne les données d'open interest pour les contrats dérivés. |
GetHistoricalVolatility |
Retourne la volatilité historique pour les options. |
GetInsurance |
Retourne l'historique du solde du fonds d'assurance. |
GetRiskLimit |
Retourne les paliers de risk limit pour un symbole donné. |
GetDeliveryPrice |
Retourne le prix de livraison pour les futures et options expirés. |
GetLongShortRatio |
Retourne le ratio long/short pour un symbole et une période donnés. |
API REST — trading
Les endpoints de trading requièrent une authentification par clé API avec les permissions appropriées. Ces méthodes te permettent de placer, modifier et annuler des ordres.
| Method | Description |
|---|---|
PlaceOrder |
Place un nouvel ordre avec un contrôle complet des paramètres (type, side, prix, quantité, time-in-force, etc.). |
PlaceMarketOrder |
Méthode de commodité qui place un ordre market (s'exécute immédiatement au meilleur prix disponible). |
PlaceLimitOrder |
Méthode de commodité qui place un ordre limit à un prix spécifié. |
AmendOrder |
Modifie un ordre ouvert existant (prix, quantité ou d'autres paramètres). |
CancelOrder |
Annule un ordre ouvert spécifique par ID d'ordre. |
GetOpenOrders |
Retourne tous les ordres actuellement ouverts (non fillés). |
CancelAllOrders |
Annule tous les ordres ouverts, optionnellement filtrés par symbole ou catégorie. |
GetOrderHistory |
Retourne les ordres historiques (filled, cancelled, rejected) sur une plage de temps. |
API REST — gestion des positions
Position endpoints allow you to query and configure your derivative positions, including leverage, margin mode, risk limits, and stop-loss/take-profit settings.
| Method | Description |
|---|---|
GetPositionInfo |
Retourne les détails de la position actuelle (taille, prix d'entrée, PnL latent, marge). |
SetLeverage |
Définit le leverage pour un symbole donné. |
SwitchCrossIsolatedMargin |
Bascule entre mode cross margin et isolated margin. |
SetTPSLMode |
Configures take-profit/stop-loss mode (full position or partial). |
SwitchPositionMode |
Bascule entre mode one-way et mode hedge. |
SetRiskLimit |
Définit le palier de risk limit pour un symbole, ce qui affecte le leverage maximum. |
SetTradingStop |
Définit un trailing stop, take-profit ou stop-loss sur une position existante. |
SetAutoAddMargin |
Enables or disables auto-add margin for isolated margin positions. |
AddOrReduceMargin |
Ajoute ou supprime manuellement de la marge sur une position en isolated margin. |
GetExecution |
Retourne les enregistrements d'exécution/fill de tes trades. |
GetClosedPNL |
Retourne les enregistrements de profit and loss clôturés. |
ConfirmNewRiskLimit |
Confirme un changement de risk limit quand de la marge supplémentaire est requise. |
API REST — compte
Account endpoints provide wallet balances, account configuration, and transaction logs.
| Method | Description |
|---|---|
GetWalletBalance |
Retourne les soldes de wallet pour tous les coins ou pour un type de compte spécifique. |
GetAccountInfo |
Retourne les informations du compte unified (mode de marge, statut du compte, etc.). |
GetTransactionLog |
Retourne l'historique des transactions (dépôts, retraits, trades, frais de funding, etc.). |
Premiers pas — exemple de code
L'exemple suivant montre une configuration complète : connexion à l'endpoint Bybit linear perpetual, interrogation des données ticker via REST, placement d'un ordre limit, vérification du solde du wallet et abonnement aux mises à jour de trades en temps réel via WebSocket.
var
oClient: TsgcWebSocketClient;
oBybit: TsgcWSAPI_Bybit;
begin
// Créer le client WebSocket
oClient := TsgcWebSocketClient.Create(nil);
// Créer le composant API Bybit
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
// Configure API credentials
oBybit.Bybit.ApiKey := 'your_api_key';
oBybit.Bybit.ApiSecret := 'your_api_secret';
// Sélectionner la catégorie de produit
oBybit.BybitClient := bybLinear;
// Se connecter au 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
Utilise l'API REST pour les opérations à la demande comme placer des ordres, interroger des soldes et récupérer des données historiques. Utilise les abonnements WebSocket pour des flux de données continus à faible latence. Les deux peuvent être utilisés simultanément — les appels REST sont indépendants de l'état de la connexion WebSocket.
Référence de configuration
| Property | Type | Description |
|---|---|---|
Bybit.ApiKey |
String | Your Bybit API key for authenticated requests. |
Bybit.ApiSecret |
String | Your Bybit API secret for request signing. |
Bybit.TestNet |
Boolean | Définis sur True pour te connecter à l'environnement testnet Bybit ; False pour mainnet. |
Bybit.SignatureExpires |
Integer | Temps d'expiration en secondes pour la signature HMAC (la valeur par défaut est généralement suffisante). |
BybitClient |
Enum | Product category: bybSpot, bybLinear, bybInverse, or bybPerpetual. |
Astuces et notes
Testnet First
Commence toujours le développement avec Bybit.TestNet := True. Le testnet Bybit fournit un environnement de simulation complet avec des fonds de test. Tu peux créer une clé API testnet séparée sur testnet.bybit.com.
Unified V5 API
L'API V5 unifie tous les types de produits sous un seul ensemble d'endpoints. La propriété BybitClient détermine à quel flux WebSocket tu te connectes, tandis que l'API REST route automatiquement vers la bonne catégorie selon tes requêtes.
Méthodes de commodité pour les ordres
Alors que PlaceOrder te donne un contrôle complet sur chaque paramètre, les méthodes de commodité PlaceMarketOrder et PlaceLimitOrder couvrent les scénarios les plus courants avec moins de paramètres. Utilise la méthode complète quand tu as besoin d'options avancées comme reduce-only, time-in-force ou des déclencheurs conditionnels.
Rate limits
Bybit impose des rate limits à la fois sur les endpoints REST et WebSocket. Les limites REST sont typiquement par endpoint (par ex. 10 requêtes par seconde pour le placement d'ordres). Les abonnements WebSocket ont une limite sur le nombre de topics simultanés. Surveille les en-têtes de réponse et les codes d'erreur pour rester dans les limites.
Note : les connexions WebSocket Bybit envoient des trames ping périodiques. Le composantTsgcWSAPI_Bybit les gère automatiquement, gardant ta connexion active sans code supplémentaire.
