API Binance Futures

Binance

 

Binance est une bourse de cryptomonnaies internationale multilingue. Elle propose des API pour accéder aux données Binance. Ce composant vous permet d'obtenir les flux de marché WebSocket Binance Futures.

 

https://binance-docs.github.io/apidocs/futures/en

https://binance-docs.github.io/apidocs/delivery/en

Contrats à terme

L'API Binance propose 2 types de méthodes : publiques et privées. Les méthodes publiques sont accessibles sans authentification, par exemple : obtenir les prix du ticker. Certaines sont privées et liées aux données utilisateur ; ces méthodes nécessitent l'utilisation des clés API Binance.

 

 

Le client peut se connecter aux contrats à terme Binance USDT ou COIN ; définissez quel contrat vous souhaitez négocier à l'aide de la propriété FuturesContracts :

 

 

Le client peut se connecter aux comptes Binance de production ou de démonstration. Si la propriété TestNet est activée, il se connectera au compte de démonstration, sinon il se connectera aux serveurs Binance de production.

 

 

API de flux WebSocket

Le client peut s'abonner/se désabonner des événements après une connexion réussie.

Les méthodes d'abonnement / désabonnement suivantes sont prises en charge.

 

Méthode Paramètres Description
AggregateTrades Symbol Les flux de transactions agrégées transmettent des informations sur les transactions agrégées pour un seul ordre preneur toutes les 100 millisecondes.
MarkPrice Symbol, UpdateSpeed Prix mark et taux de financement pour un seul symbole, envoyés toutes les 3 secondes ou chaque seconde.
AllMarkPrice UpdateSpeed Prix de marque et taux de financement pour tous les symboles envoyés toutes les 3 secondes ou toutes les secondes.
KLine Symbole, Intervalle Le flux Kline/Chandelier envoie des mises à jour aux klines/chandeliers actuels toutes les 250 millisecondes (si existants).
MiniTicker Symbol Statistiques mini-ticker sur une fenêtre glissante de 24 h pour un seul symbole. Il ne s'agit PAS des statistiques du jour UTC, mais d'une fenêtre glissante de 24 h de l'heure de la requête jusqu'à 24 h avant.
AllMiniTicker   Statistiques de mini-ticker sur une fenêtre glissante de 24h pour tous les symboles. Ce ne sont PAS les statistiques de la journée UTC, mais une fenêtre glissante de 24h de requestTime à 24h avant. Notez que seuls les tickers ayant changé seront présents dans le tableau.
Ticker Symbol Statistiques de la fenêtre glissante de 24h pour un seul symbole. Il ne s'agit PAS des statistiques du jour UTC, mais d'une fenêtre glissante de 24h entre l'heure de la requête et 24h auparavant.
AllMarketTickers   Statistiques du ticker sur une fenêtre glissante de 24h pour tous les symboles. Ce ne sont PAS les statistiques de la journée UTC, mais une fenêtre glissante de 24h de requestTime à 24h avant. Notez que seuls les tickers qui ont changé seront présents dans le tableau.
BookTicker Symbol Envoie en temps réel toute mise à jour du prix ou de la quantité du meilleur bid ou ask pour un symbole donné.
AllBookTickers   Pousse toute mise à jour du meilleur prix ou de la quantité bid/ask en temps réel pour tous les symboles.
LiquidationOrders Symbol Les flux d'ordres de liquidation transmettent les informations d'ordre de liquidation forcée pour un symbole spécifique
AllLiquidationOrders   Les flux All Liquidation Order transmettent les informations d'ordre de liquidation forcée pour tous les symboles du marché.
PartialBookDepth Symbole, Profondeur Meilleures offres et demandes ; valeurs valides : 5, 10 ou 20.
DiffDepth Symbol Offres et demandes, poussées toutes les 250 millisecondes, 500 millisecondes, 100 millisecondes ou en temps réel (si existant)

 

Après un abonnement/désabonnement réussi, le client reçoit un message à ce sujet, où l'id est le résultat de la méthode Subscribed / Unsubscribed.

 


{
  "result": null,
  "id": 1
}

API User Data Stream

Nécessite une ApiKey valide obtenue depuis votre compte Binance, et ApiKey doit être définie dans la propriété Binance.ApiKey du composant.

 

Les données suivantes sont envoyées au client chaque fois qu'il y a un changement. Il n'est pas nécessaire de s'abonner à une méthode ; cela est fait automatiquement si vous définissez une ApiKey valide.

 

Méthode Description
Appel de marge Lorsque le ratio de risque de position de l'utilisateur est trop élevé, ce flux sera poussé. Ce message est uniquement utilisé comme information d'orientation du risque et n'est pas recommandé pour les stratégies d'investissement. Dans le cas d'un marché très volatile, il est possible que la position de l'utilisateur ait été liquidée au moment où ce flux est envoyé.
Mise à jour du solde et de la position

La mise à jour du solde se produit dans les cas suivants :

 

  • Lorsque le solde ou la position est mis à jour, cet événement sera poussé.
  • Lorsque les "FRAIS DE FINANCEMENT" modifient le solde de l'utilisateur.
Mise à jour d'ordre Lorsqu'un nouvel ordre est créé, un changement de statut de l'ordre déclenchera cet événement.

 

 

REST API

Tous les points de terminaison renvoient soit un objet JSON soit un tableau. Les données sont renvoyées par ordre croissant. Les plus anciennes en premier, les plus récentes en dernier.

 

Points de terminaison API publics

 

Ces points de terminaison sont accessibles sans aucune autorisation.

 

Points de terminaison généraux

 

Méthode Paramètres Description
Ping   Tester la connectivité à l'API Rest.
GetServerTime   Tester la connectivité à l'API Rest et obtenir l'heure actuelle du serveur.
GetExchangeInformation   Règles de trading actuelles de la plateforme et informations sur les symboles

 

 

Points de terminaison des données de marché

 

Méthode Paramètres Description
GetOrderBook Symbol Obtenir le carnet d'ordres.
GetTrades Symbol Obtenir les transactions récentes
GetHistoricalTrades Symbol Obtenir les anciens trades.
GetAggregateTrades Symbol Obtenir des transactions agrégées et compressées. Les transactions réalisées au même moment, issues du même ordre et au même prix auront la quantité agrégée.
GetKLines Symbole, Intervalle Barres Kline/chandeliers pour un symbole. Les Klines sont identifiées de manière unique par leur heure d'ouverture.
Get24hrTicker Symbol Statistiques de variation de prix sur une fenêtre glissante de 24 heures. Attention lors de l'accès sans symbole.
GetPriceTicker Symbol Dernier prix pour un ou plusieurs symboles.
GetBookTicker Symbol Meilleur prix/quantité dans le carnet d'ordres pour un ou plusieurs symboles.
GetMarkPrice Symbol Prix Mark et taux de financement
GetFundingRateHistory Symbol  
GetOpenInterest Symbol Obtenir l'open interest actuel d'un symbole spécifique.
GetOpenInterestStatistics Symbol, Period  
GetTopTraderAccountRatio Symbol, Period  
GetTopTraderPositionRatio Symbol, Period  
GetGlobalAccountRatio Symbol, Period  
GetTakerVolume Symbol, Period
GetContinuousKLines Pair, ContractType, Interval Bougies Kline/chandeliers pour un type de contrat spécifique.
GetIndexPriceKLines Paire, Intervalle Barres Kline/chandelier pour le prix d'index d'une paire.
GetMarkPriceKLines Symbole, Intervalle Bougies Kline/chandeliers pour le prix mark d'un symbole.
GetPremiumIndexKLines Symbole, Intervalle Barres de kline de l'index premium d'un symbole.
GetFundingInfo Obtenir les informations sur le taux de financement pour tous les symboles.
GetPriceTickerV2 Symbol Dernier prix pour un ou plusieurs symboles (V2).
GetIndexInfo Symbol Obtenir des informations sur l'index.
GetAssetIndex Symbol Obtenir l'index des actifs pour le mode multi-actifs.
GetConstituents Symbol Obtenir les composants d'un index.
GetDeliveryPrice Pair Obtenir le prix de livraison.
GetBasis Pair, ContractType, Period Obtenir les données de base.

 

 

Points d'accès API privés

 

Nécessite une APIKey et un APISecret pour être autorisé par le serveur.

 

Points de terminaison du compte et des transactions

 

Méthode Paramètres Description
ChangePositionMode DualPosition Modifier le mode de position de l'utilisateur (mode Hedge ou mode unidirectionnel) sur TOUS les symboles
GetCurrentPositionMode   Obtenir le mode de position de l'utilisateur (Mode Hedge ou Mode unidirectionnel) sur TOUS les symboles
NewOrder Symbol, Side, PositionSide, Type Envoyer un nouvel ordre.
PlaceMarketOrder Side, Symbol, Quantity  
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice  
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice  
PlaceTrailingStopOrder Side, Symbol, Quantity, aActivationPrice, aCallbackRate  
QueryOrder Symbol Vérifier le statut d'un ordre.
CancelOrder Symbol Annuler un ordre actif. L'OrderId ou l'OrigClientOrderId doit être fourni.
CancelAllOpenOrders Symbol  
AutoCancelAllOpenOrders Symbol, CountDownTimer Annuler tous les ordres ouverts du symbole spécifié à la fin du compte à rebours spécifié.
QueryCurrentOpenOrder Symbol  
GetOpenOrders Symbol Obtenir tous les ordres ouverts sur un symbole. Soyez prudent lors de l'accès sans symbole.
GetAllOrders Symbol Obtenir tous les ordres du compte ; actifs, annulés ou exécutés.
GetAccountBalance    
GetAccountInformation   Obtenir les informations du compte courant.
ChangeInitialLeverage Symbol, Leverage Modifier le levier initial de l'utilisateur pour un marché de symbole spécifique.
ChangeMarginType Symbol, MarginType  
ModifyIsolatedPositionMargin Symbol, Amount, Type  
GetPositionMarginChangeHistory Symbol  
GetPositionInformation Symbol  
GetAccountTradeList Symbol  
GetIncomeHistory Symbol  
GetNotionalLeverageBracket Symbol
TestNewOrder Symbol, Side, PositionSide, Type Tester la création d'un nouvel ordre et la signature/recvWindow long. Crée et valide un nouvel ordre mais ne l'envoie pas dans le moteur de correspondance.
ModifyOrder Symbol Modifier une commande existante.
NewBatchOrders BatchOrders Placer plusieurs ordres.
ModifyBatchOrders BatchOrders Modifier plusieurs ordres.
CancelBatchOrders Symbol Annuler plusieurs ordres.
GetOrderAmendment Symbol Obtenir l'historique des modifications d'ordre.
CountdownCancelAll Symbol, CountdownTime Annuler tous les ordres ouverts du symbole spécifié à la fin du compte à rebours spécifié.
GetForceOrders Symbol Obtenir les ordres de liquidation forcée de l'utilisateur.
GetADLQuantile Symbol Obtenir l'estimation du quantile ADL pour les positions.
GetAccountBalanceV3 Obtenir le solde du compte futures (V3).
GetAccountInformationV3 Obtenir les informations courantes du compte (V3).
GetPositionInformationV3 Symbol Obtenir les informations de position actuelles (V3).
GetCommissionRate Symbol Obtenir le taux de commission de l'utilisateur.
GetAccountConfig Obtenir la configuration actuelle du compte.
GetSymbolConfig Symbol Obtenir la configuration du symbole.
GetOrderRateLimit Obtenir la limite de débit des ordres de l'utilisateur.
GetApiTradingStatus Symbol Obtenir les indicateurs de règles quantitatives de trading via l'API.
ChangeMultiAssetsMode MultiAssetsMargin Changer le mode multi-actifs de l'utilisateur. Mode multi-actifs : true ; Mode mono-actif : false.
GetMultiAssetsMode Récupère le mode multi-actifs actuel de l'utilisateur.
SetFeeBurn FeeBurn Modifier le statut de déduction des frais BNB de l'utilisateur.
GetFeeBurn Obtenir le statut de brûlage des frais BNB de l'utilisateur.
CreateListenKey Démarrer un nouveau flux de données utilisateur. Le flux se fermera après 60 minutes sauf si un keepalive est envoyé.
KeepAliveListenKey Maintenir un flux de données utilisateur actif pour éviter un délai d'expiration.
CloseListenKey Fermer un flux de données utilisateur.

 

 

 

Événements

Les messages Binance Futures sont reçus dans le composant TsgcWebSocketClient, vous pouvez utiliser les événements suivants :

 

OnConnect

Après une connexion réussie au serveur Binance.

OnDisconnect

Après une déconnexion du serveur Binance

OnMessage

Les messages envoyés par le serveur au client sont traités dans cet événement.

OnError

En cas d'erreur dans le protocole, cet événement sera appelé.

OnException

En cas d'exception non gérée, cet événement sera appelé.

 

De plus, il existe un événement spécifique dans le composant API Binance, appelé OnBinanceHTTPException, qui est déclenché à chaque erreur lors d'un appel à une requête HTTP (API REST ou flux utilisateur WebSocket).

 

(*) En raison de modifications des serveurs Binance, les versions d'Indy antérieures à Rad Studio 10.1 ne pourront pas se connecter aux serveurs de test. Ce problème n'affecte pas l'édition Enterprise ni si la version d'Indy a été mise à jour vers la dernière.