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
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ètre | Type | Défaut | Description |
|---|---|---|---|
symbol | string | obligatoire | L’actif. |
timeframe | string | obligatoire | 1m, 5m, 15m, 30m, 1h, 4h, 1d. |
live | boolean | false | Expose la fenêtre en cours. |
since_ms / until_ms | integer | — | Sur l’historique uniquement. |
limit | integer | 100 | Sur l’historique, de 1 à 1000. |
curl -H "X-API-KEY: $BYTNODE_KEY" \
"https://api.bytnode.com/v1/cvd?symbol=BTCUSDT&timeframe=1h"| Champ | Type | Description |
|---|---|---|
bucket | string | Début de la fenêtre. |
cvd_series | float[] | 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_delta | float | Achat moins vente sur toute la fenêtre. |
taker_buy_volume / taker_sell_volume | float | Les deux volumes qui composent le delta. |
points_count | integer | Nombre de points de la série. |
is_closed | boolean | Faux uniquement avec live=1. |
#Carnet d’ordres
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.
| Champ | Type | Description |
|---|---|---|
timestamp | string | Le plus récent des états retenus. |
bid_total | float | Volume acheteur, toutes places. |
ask_total | float | Volume vendeur, toutes places. |
imbalance | float | null | (bid − ask) / (bid + ask), calculé sur les totaux agrégés et non moyenné par place. Positif : les acheteurs dominent. |
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.
| Champ | Type | Description |
|---|---|---|
bucket | string | Début de la fenêtre. |
bid_total_avg / _min / _max | float | Volume acheteur cumulé, en moyenne et aux extrêmes. |
ask_total_avg / _min / _max | float | La même chose côté vendeur. |
imbalance_avg / _min / _max | float | Le déséquilibre sur la fenêtre. |
imbalance_std | float | null | Son écart-type : une mesure de la stabilité du rapport de force. |
samples_count | integer | Nombre d’échantillons dans la fenêtre. |
is_closed | boolean | Faux 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.
# 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| Champ | Type | Description |
|---|---|---|
vwap | float | null | Prix moyen pondéré par le volume depuis minuit UTC. |
cumulative_volume | float | Volume cumulé, qui sert de poids. |
timestamp | string | Horodatage du dernier calcul. |
Cette route ne porte pas is_closed : ce n’est pas une bougie mais une valeur courante.
| Champ | Type | Description |
|---|---|---|
bucket | string | Début de la fenêtre. |
vwap | float | null | Prix moyen pondéré par le volume sur la fenêtre. |
total_volume | float | Volume de la fenêtre. |
trade_count | integer | Nombre de transactions dans la fenêtre. |
is_closed | boolean | Faux uniquement avec live=1. |
#Pression directionnelle
| Champ | Type | Description |
|---|---|---|
timestamp | string | Horodatage du calcul. |
buy_volume | float | Volume acheteur sur la fenêtre de 5 minutes. |
sell_volume | float | Volume vendeur. |
buy_ratio | float | buy / (buy + sell), de 0 à 1. Au-dessus de 0,5, les acheteurs dominent. |
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.
| Champ | Type | Description |
|---|---|---|
avg_size | float | null | Taille moyenne, pondérée par le nombre de transactions de chaque place. |
total_volume | float | Volume total agrégé. |
trade_count | integer | Nombre de transactions agrégé. |
timestamp | string | Horodatage du calcul. |
#Heatmap de liquidations
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.
| Champ | Type | Description |
|---|---|---|
timestamp | string | Horodatage du calcul. |
density_up / density_down | float | Densité du cluster le plus attractif au-dessus et au-dessous du prix. |
dist_up / dist_down | float | Distance fractionnaire du cluster : 0.01 signifie 1 %. |
attraction_up / attraction_down | float | densité / 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.