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
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.
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
}
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 :
|
| Mise à jour d'ordre | Lorsqu'un nouvel ordre est créé, un changement de statut de l'ordre déclenchera cet événement. |
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. |
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.