API REST

Flux et microstructure

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

#CVD

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

Le delta de volume cumulé : la somme courante du volume acheté au marché moins le volume vendu au marché. Il mesure qui, des acheteurs ou des vendeurs, a dû traverser le carnet d’ordres, donc qui pousse vraiment le prix.

ParamètreTypeDéfautDescription
symbolstringobligatoireL’actif.
timeframestringobligatoire1m, 5m, 15m, 30m, 1h, 4h, 1d.
livebooleanfalseExpose la fenêtre en cours.
since_ms / until_msinteger—Sur 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, du plus ancien au plus récent. C’est sa pente qui porte l’information.
net_deltafloatAchat moins vente 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é : le dernier instantané de chaque place, puis la somme des profondeurs. Pas de limit : la route renvoie un seul objet.

ChampTypeDescription
timestampstringLe plus récent des états retenus.
bid_totalfloatVolume acheteur, toutes places.
ask_totalfloatVolume vendeur, 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é du carnet étant trop bruité pour cela.

ChampTypeDescription
bucketstringDébut de la fenêtre.
bid_total_avg / _min / _maxfloatVolume acheteur cumulé, en moyenne et aux extrêmes.
ask_total_avg / _min / _maxfloatLa même chose côté vendeur.
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 cumulé 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
# The VWAP of the day, since midnight UTC
GET /v1/vwap?symbol=BTCUSDT

# The VWAP of the last closed hour, one value per window
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é par le volume 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é par le volume sur la fenêtre.
total_volumefloatVolume de la fenêtre.
trade_countintegerNombre de transactions dans 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’une transaction profile les participants : elle monte quand les acteurs institutionnels entrent, elle s’effondre quand le flux devient une poussière d’ordres de particuliers.

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

#Heatmap de liquidations

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 au-dessous du prix. Ce sont des zones d’attraction : le prix y va chercher la liquidité qu’elles représentent.

ChampTypeDescription
timestampstringHorodatage du calcul.
density_up / density_downfloatDensité du cluster le plus attractif au-dessus et au-dessous du prix.
dist_up / dist_downfloatDistance fractionnaire du cluster : 0.01 signifie 1 %.
attraction_up / attraction_downfloatdensité / distance². Le carré fait peser le proche bien plus que le lointain.

Comment le lire

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