Passer au contenu principal
Retour aux exemples d'applications

Carte thermique TP/SL d'Hyperliquid

Un tableau de bord accessible via un navigateur en temps réel qui visualise les ordres de déclenchement TP/SL inactifs d'Hyperliquid sous forme de groupes de niveaux de prix, indexés sur les cours acheteur/vendeur en temps réel provenant des flux gRPC de Quicknode Hypercore.

Framework/bibliothèque front-end :
Réagir
Langue :
TypeScript
Outil de compilation/serveur de développement :
Vite
Aperçu de l'application d'exemple

Aperçu

Cette application se connecte à Point de terminaison gRPC « Hyperliquid » de Quicknode pour diffuser en direct les événements liés aux ordres TP/SL (StreamTpslUpdates) et les meilleurs cours acheteur/vendeur (StreamBboBook). Les ordres ouverts sont regroupés en tranches de prix configurables et transmis au navigateur via WebSocket, où une carte thermique basée sur un canevas affiche en temps réel la pression agrégée des déclencheurs à chaque niveau de prix.

L'application intègre un mode démo qui utilise un flux synthétique, ce qui vous permet de découvrir l'interface utilisateur sans avoir à saisir d'identifiants.

Cette application exemple est fournie uniquement à des fins pédagogiques et de démonstration.

Architecture

Navigateur (React + Canvas)

│ WebSocket

Serveur HTTP + WebSocket Node.js

├── gRPC : StreamTpslUpdates ──┐
│ ├── Point de terminaison gRPC Hyperliquid de Quicknode
└── gRPC : StreamBboBook ──────┘

Fonctionnalités


  • Carte thermique TP/SL en temps réel: regroupements par tranches de prix mis à jour en direct à partir des flux gRPC de Quicknode
  • Ancrage BBO: cours acheteur et vendeur actuels superposés à la carte thermique pour situer le contexte du marché
  • Indicateur de répartition TP/SL: chaque compartiment affiche un petit marqueur vert ou rouge indiquant la part respective du « take-profit » et du « stop-loss »
  • Prise en charge de plusieurs actifs: suivez simultanément le BTC, l'ETH, le SOL, le HYPE et tout autre symbole « perp » d'Hyperliquid
  • Largeur de godet réglable: BUCKET_SIZE_PCT adapte la taille du panier en fonction du cours moyen actuel
  • Mode démo: s'exécute avec des données factices lorsque les identifiants sont manquants ou DEMO_MODE=true
  • Critère d'évaluation en matière de santé: GET /health renvoie l'état du serveur et le mode d'exécution actuel au format JSON

Prérequis


  • Compte Quicknode avec un point de terminaison Hyperliquid (accès gRPC requis)
  • Node.js v18 et versions ultérieures
  • pnpm

Structure du projet

proto/
orderbook.proto # Définition du service gRPC
src/
client/
App.tsx # Sélecteur de cryptomonnaie et client WebSocket
HeatmapCanvas.tsx # Rendu de carte thermique basé sur Canvas
main.tsx # Point d'entrée React
styles.css # Styles de l'application
server/
cluster-store.ts # Regroupement des commandes et état BBO
config.ts # Chargement des variables d’environnement
demo.ts # Flux de démonstration synthétique
grpc.ts # Configuration du client gRPC
server.ts # Serveur HTTP + WebSocket
streams.ts # Connexions de flux gRPC en direct
shared/
types.ts # Types TypeScript partagés

Variables d'environnement

Copier .env.example to .env puis saisissez vos identifiants :

# https://your-endpoint.hype-mainnet.quiknode.pro:10000
QUICKNODE_GRPC_ENDPOINT=votre-point-de-terminaison.hype-mainnet.quiknode.pro:10000
QUICKNODE_GRPC_TOKEN=votre-jeton-d'authentification
TARGET_COINS=BTC,ETH,SOL
DEVISE_PAR_DÉFAUT=BTC
TAILLE_DU_BUCKET_EN_POURCENTAGE=0,75
MODE_DE_DÉMONSTRATION=false
PORT=8787
VariableDescription
QUICKNODE_GRPC_ENDPOINTVotre point de terminaison gRPC Quicknode Hyperliquid (hôte:port)
QUICKNODE_GRPC_TOKENJeton d'authentification pour le point de terminaison gRPC
TARGET_COINSListe, séparée par des virgules, des symboles « perp » d'Hyperliquid à surveiller
DEFAULT_COINQuelle pièce afficher au chargement (doit être dans TARGET_COINS)
BUCKET_SIZE_PCTLargeur de la fourchette en pourcentage du cours moyen (par exemple, 0.75 = ~500 $ par lot sur le BTC, à près de 64 000 $)
MODE_DÉMORégler sur vrai pour forcer le mode démo, quelles que soient les informations d'identification fournies
PORTPort du serveur HTTP (par défaut : 8787)

Démarrer

1. Cloner le dépôt

git clone https://github.com/quiknode-labs/qn-guide-examples.git
cd qn-guide-examples/sample-dapps/hyperliquid-tpsl-heatmap

2. Installer les dépendances

pnpm installer

3. Configurer l'environnement

cp .env.example .env

Ouvrir .env et définir QUICKNODE_GRPC_ENDPOINT et QUICKNODE_GRPC_TOKEN avec vos identifiants de connexion au point de terminaison Quicknode Hyperliquid. Si vous ne les indiquez pas, l'application démarrera automatiquement en mode démo.

4. Lancez l'application

pnpm dev

Ouvrez la page http://localhost:8787 dans votre navigateur.


Aperçu

Aperçu du tableau de bord « Heatmap » de Hyperliquid TP/SL
Contributions et commentaires
Nous serions ravis de connaître votre avis et nous vous invitons à contribuer à cette application d'exemple !
Pour signaler des problèmes ou faire part de vos commentaires, ouvrez un ticket GitHub dans le qn-guide-exemples référentiel.
Pour contribuer, procédez comme suit :
  1. Créer une branche du dépôt
  2. Créer une branche de fonctionnalité :
    git checkout -b feature/amazing-feature
  3. Validez vos modifications :
    git commit -m "Ajout d'une fonctionnalité géniale"
  4. Publiez votre branche :
    git push origin feature/amazing-feature
  5. Créez une Pull Request.