API REST

Flux et microstructure

Ce que le carnet et le flux d’ordres disent du rapport de force. Cinq familles : le delta de volume cumulé, la profondeur agrégée, les prix moyens pondérés, la pression directionnelle et les zones de liquidation.

#CVD

GET/v1/cvddata_type · cvd_<tf>
GET/v1/cvd/historydata_type · cvd_<tf>_history

Le cumulative volume delta : la somme courante du volume acheteur moins le volume vendeur au marché. Il mesure qui, des acheteurs ou des vendeurs, a dû traverser le carnet — donc qui pousse réellement le prix.

ParamètreTypeDéfautDescription
symbolstringrequisL’actif.
timeframestringrequis1m, 5m, 15m, 30m, 1h, 4h, 1d.
livebooleanfalseExpose la fenêtre en cours.
since_ms / until_msintegerSur l’historique uniquement.
limitinteger100Sur l’historique, de 1 à 1000.
curl -H "X-API-KEY: $BYTNODE_KEY" \
  "https://api.bytnode.com/v1/cvd?symbol=BTCUSDT&timeframe=1h"
ChampTypeDescription
bucketstringDébut de la fenêtre.
cvd_seriesfloat[]La série cumulée à l’intérieur de la fenêtre, un point par pas interne, de l’ancien vers le récent. C’est sa pente qui porte l’information.
net_deltafloatAcheteur moins vendeur sur toute la fenêtre.
taker_buy_volume / taker_sell_volumefloatLes deux volumes qui composent le delta.
points_countintegerNombre de points de la série.
is_closedbooleanFaux uniquement avec live=1.

#Carnet d’ordres

GET/v1/raw/orderbookdata_type · raw_orderbook

Le dernier état connu, agrégé : la dernière photo de chaque place, puis la somme des profondeurs. Pas de limit — la route rend un objet unique.

ChampTypeDescription
timestampstringLe plus récent des états retenus.
bid_totalfloatVolume à l’achat, toutes places.
ask_totalfloatVolume à la vente, toutes places.
imbalancefloat | null(bid − ask) / (bid + ask), calculé sur les totaux agrégés et non moyenné par place. Positif : les acheteurs dominent.
GET/v1/orderbook/aggregateddata_type · orderbook_aggregated_<tf>
GET/v1/orderbook/aggregated/historydata_type · orderbook_aggregated_<tf>_history

La même profondeur, mais résumée par fenêtre : moyenne, extrêmes et dispersion. C’est la forme utile pour un graphique ou une détection de régime — un état instantané de carnet est trop bruité pour cela.

ChampTypeDescription
bucketstringDébut de la fenêtre.
bid_total_avg / _min / _maxfloatVolume à l’achat cumulé, en moyenne et aux extrêmes.
ask_total_avg / _min / _maxfloatIdem à la vente.
imbalance_avg / _min / _maxfloatLe déséquilibre sur la fenêtre.
imbalance_stdfloat | nullSon écart-type : une mesure de la stabilité du rapport de force.
samples_countintegerNombre d’échantillons dans la fenêtre.
is_closedbooleanFaux uniquement avec live=1.

#VWAP

Deux VWAP, à ne pas confondre. Le premier est cumulatif depuis minuit UTC : c’est le prix moyen de la journée. Le second est celui d’une fenêtre : une valeur par bougie. Les deux sont pondérés par le volume et agrégés sur les places.

curl
# Le VWAP du jour, depuis minuit UTC
GET /v1/vwap?symbol=BTCUSDT

# Le VWAP de la derniere heure fermee, une valeur par fenetre
GET /v1/vwap/window?symbol=BTCUSDT&timeframe=1h
GET/v1/vwapdata_type · vwap
GET/v1/vwap/historydata_type · vwap_history
ChampTypeDescription
vwapfloat | nullPrix moyen pondéré depuis minuit UTC.
cumulative_volumefloatVolume cumulé, qui sert de poids.
timestampstringHorodatage du dernier calcul.

Cette route ne porte pas is_closed : ce n’est pas une bougie mais une valeur courante.

GET/v1/vwap/windowdata_type · vwap_window_<tf>
GET/v1/vwap/window/historydata_type · vwap_window_<tf>_history
ChampTypeDescription
bucketstringDébut de la fenêtre.
vwapfloat | nullPrix moyen pondéré sur la fenêtre.
total_volumefloatVolume de la fenêtre.
trade_countintegerNombre de trades de la fenêtre.
is_closedbooleanFaux uniquement avec live=1.

#Pression directionnelle

GET/v1/buysell/ratiodata_type · buysell_ratio
GET/v1/buysell/ratio/historydata_type · buysell_ratio_history
ChampTypeDescription
timestampstringHorodatage du calcul.
buy_volumefloatVolume acheteur sur la fenêtre de 5 minutes.
sell_volumefloatVolume vendeur.
buy_ratiofloatbuy / (buy + sell), de 0 à 1. Au-dessus de 0,5, les acheteurs dominent.
GET/v1/trades/avg-sizedata_type · trade_size_avg
GET/v1/trades/avg-size/historydata_type · trade_size_avg_history

La taille moyenne d’un trade dresse le profil des participants : elle monte quand des acteurs institutionnels entrent, elle s’effondre quand le flux devient une poussière d’ordres de détail.

ChampTypeDescription
avg_sizefloat | nullTaille moyenne, pondérée par le nombre de trades de chaque place.
total_volumefloatVolume total agrégé.
trade_countintegerNombre de trades agrégé.
timestampstringHorodatage du calcul.

#Heatmap de liquidation

GET/v1/heatmap/clustersdata_type · heatmap_clusters
GET/v1/heatmap/clusters/historydata_type · heatmap_clusters_history

Les zones où se concentrent les liquidations potentielles, au-dessus et en dessous du prix. Ce sont des zones d’attraction : le prix va y chercher la liquidité qu’elles représentent.

ChampTypeDescription
timestampstringHorodatage du calcul.
density_up / density_downfloatDensité du cluster le plus attractif au-dessus et en dessous du prix.
dist_up / dist_downfloatDistance fractionnelle du cluster — 0,01 vaut 1 %.
attraction_up / attraction_downfloatdensité / distance². Le carré fait que le proche pèse bien plus que le lointain.

Comment la lire

Si attraction_down dépasse nettement attraction_up, le prix est tiré vers le bas : des liquidations de positions longues sont proches. La lecture est symétrique dans l’autre sens. C’est un indicateur de le prix a une raison mécanique d’aller, pas une prédiction.