Capitalisation boursière: $3.6315T -1.300%
Volume(24h): $133.5557B -36.440%
Indice de peur et de cupidité:

51 - Neutre

  • Capitalisation boursière: $3.6315T -1.300%
  • Volume(24h): $133.5557B -36.440%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $3.6315T -1.300%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top Cryptospedia

Choisir la langue

Choisir la langue

Sélectionnez la devise

Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos

Quels sont les flux WebSocket disponibles auprès de l'API Gemini?

L'API WebSocket de Gemini fournit des données de marché en temps réel comme les mises à jour, les métiers et les tickers en temps réel via `wss: // api.gemini.com / v1 / marketdata`, avec des messages JSON pour les applications de trading à faible latence.

Aug 03, 2025 at 07:43 pm

Présentation des flux de gèle Webnile Web

L' API Gemini fournit des données de marché en temps réel via ses flux WebSocket , permettant aux développeurs et aux traders de recevoir des mises à jour instantanées sur les modifications, les métiers et les informations de ticker. Ces flux sont essentiels pour les applications nécessitant des données à faible latence, telles que les systèmes de trading algorithmique, les outils de surveillance du marché et les services d'alerte de prix. Contrairement aux API REST qui nécessitent un sondage, les connexions WebSocket conservent un canal de communication bidirectionnel persistant, réduisant les frais généraux et garantissant la livraison en temps opportun des données.

Le principal point de terminaison WebSocket pour Gemini est wss://api.gemini.com/v1/marketdata . Ce point de terminaison diffuse des données du marché public et ne nécessite pas d'authentification pour l'accès de base. Tous les messages sont livrés au format JSON , ce qui les rend faciles à analyser et à intégrer dans divers environnements de programmation.

Canaux WebSocket disponibles

Gemini prend en charge plusieurs canaux WebSocket, chacun conçu pour fournir des types spécifiques de données de marché. Les canaux disponibles comprennent:

  • Flux de données du marché : diffuse des mises à jour en temps réel sur le carnet de commandes, y compris les offres, les demandes et les exécutions commerciales.
  • Messages cardiaques : signaux périodiques indiquant que la connexion est active et les données sont transmises.
  • Mises à jour des ticker : Informations sur les prix au niveau du résumé, y compris le dernier prix, le volume et la diffusion / demande de demande.
  • Notifications d'exécution des échanges : rapports en temps réel des transactions terminées sur la bourse.

Chaque canal est accessible en spécifiant le symbole souhaité lors de l'établissement de la connexion WebSocket. Par exemple, la connexion à BTCUSD ou ETHUSD diffusera des données spécifiques à cette paire de trading.

Connexion au Gemini Websocket

Pour établir une connexion avec le flux Gemini WebSocket, suivez ces étapes:

  • Ouvrez un client WebSocket à l'aide d'une bibliothèque prise en charge telle que websocket-client dans Python ou ws dans Node.js.
  • Connectez-vous au point de terminaison: wss://api.gemini.com/v1/marketdata .
  • Spécifiez la paire de trading à l'aide du paramètre symbols dans la chaîne de requête. Par exemple: wss://api.gemini.com/v1/marketdata/BTCUSD .
  • Écoutez les messages entrants et gérez les charges utiles JSON en conséquence.

Voici un exemple utilisant Python:

 import websocket
import json
Def on_Message (WS, message):

data = json.loads(message) print(data) def on_error (ws, erreur): data = json.loads(message) print(data)

def on_close (ws, close_status_code, close_msg): print(f'Error: {error}')

Def on_open (WS): print('Connection closed')

Établir une connexion print('Connected to Gemini WebSocket')

ws = Websocket.websocketApp ('wss: //api.gemini.com/v1/marketdata/btcusd',

 on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close) wsrun_forever () on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close)

Ce script se connecte au flux de données du marché BTCUSD et imprime tous les messages entrants. Les données reçues comprennent le type d'événement , le symbole , les offres , les demandes et les métiers .

Comprendre la structure de messages WebSocket

Chaque message reçu du Gemini Websocket contient une structure JSON standardisée. Les champs clés comprennent:

  • Type : indique la catégorie des messages, comme update , heartbeat ou initial .
  • EventID : un identifiant unique pour l'événement.
  • Timestamp : horodatage Unix en millisecondes lorsque l'événement s'est produit.
  • Symbole : la paire de trading (par exemple, BTCUSD ).
  • Bides et demande : tableaux de niveaux de prix et de quantités correspondantes.
  • Modifications : listes de mises à jour du carnet de commandes, montrant le prix, le montant et le côté ( buy ou sell ).

Un exemple de message de mise à jour:

 {
'type': 'update',
'eventId': 123456789,
'timestamp': 1717000000000,
'symbol': 'BTCUSD',
'changes': [
['buy', '65000.00', '0.5'], ['sell', '65001.50', '0.3']

]]
}

Dans cet exemple, le tableau des modifications montre une nouvelle offre à 65000,00 pour 0,5 BTC et une nouvelle demande à 65001,50 pour 0,3 BTC. Les clients doivent maintenir une copie locale du carnet de commandes et appliquer ces modifications progressivement pour refléter l'état de marché actuel.

Manipulation de la synchronisation des carnets de commandes

En raison de la nature incrémentielle des mises à jour WebSocket, il est crucial d'initialiser correctement le carnet de commandes. Gemini envoie un instantané initial lors de la connexion, suivi des messages de mise à jour . Pour assurer la précision:

  • Stockez les offres initiales et demandez-les lors de la réception du premier message.
  • Appliquez chaque entrée changes ultérieures au carnet de commandes local.
  • Trier les offres dans l'ordre descendant et demande en ordre croissant par prix.
  • Retirez les niveaux de prix lorsque la quantité atteint zéro.

Par exemple, lors du traitement d'un changement comme ['buy', '65000.00', '0.0'] , l'offre à 65000,00 doit être supprimée du carnet de commandes. Le maintien de cette logique garantit que votre application reflète le véritable état du marché.

Limites de taux et gestion des connexions

Gemini n'impose pas de limites de taux strictes aux connexions WebSocket car elles sont conçues pour le streaming continu. Cependant, les connexions peuvent être résiliées en raison de l'inactivité ou du backlog de message excessif. Pour maintenir la fiabilité:

  • Implémentez la logique de reconnexion avec un redoublement exponentiel.
  • Surveillez les événements Connection closed et redémarrez la session.
  • Utilisez un mécanisme de rythme cardiaque pour vérifier la santé des connexions.
  • Limitez le nombre d'abonnements simultanés pour éviter écraser le client.

Chaque connexion peut s'abonner à un seul symbole. Pour surveiller plusieurs paires, établissez des instances WebSocket séparées pour chacune.

Questions fréquemment posées

Comment puis-je souscrire simultanément à plusieurs paires de trading?

Pour recevoir des données pour plusieurs symboles, ouvrez une connexion WebSocket distincte pour chaque paire de trading. Par exemple, utilisez une connexion pour BTCUSD et une autre pour ETHUSD . Il n'y a pas de mode de diffusion pour plusieurs symboles sur une seule prise.

Que signifie une quantité «0» dans le tableau des changements?

Une quantité de «0,0» dans le domaine des modifications indique que le niveau de prix correspondant a été supprimé du carnet de commandes. Par exemple, ['sell', '65001.50', '0.0'] signifie que la demande au 65001.50 a été entièrement remplie ou annulée.

L'authentification est-elle requise pour accéder aux flux WebSocket?

Non, le flux de données sur le marché public ne nécessite pas de clés API ni d'authentification. Il est accessible à tous les utilisateurs. Cependant, les flux privés (par exemple, pour l'état de commande), nécessitent des connexions WebSocket authentifiées via l'API d'échange Gemini.

À quelle fréquence les messages de rythme cardiaque sont-ils envoyés?

Les messages de rythme cardiaque sont envoyés environ toutes les 5 secondes . Ils contiennent un champ type: 'heartbeat' et peuvent être utilisés pour confirmer que la connexion est active et que les messages sont livrés en temps réel.

Clause de non-responsabilité:info@kdj.com

Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!

Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.

Connaissances connexes

Voir tous les articles

User not found or password invalid

Your input is correct