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
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ètre | Type | Défaut | Description |
|---|---|---|---|
symbol | string | requis | L’actif. |
timeframe | string | requis | 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, de l’ancien vers le récent. C’est sa pente qui porte l’information. |
net_delta | float | Acheteur moins vendeur 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é : la dernière photo de chaque place, puis la somme des profondeurs. Pas de limit — la route rend un objet unique.
| Champ | Type | Description |
|---|---|---|
timestamp | string | Le plus récent des états retenus. |
bid_total | float | Volume à l’achat, toutes places. |
ask_total | float | Volume à la vente, 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é de carnet est trop bruité pour cela.
| Champ | Type | Description |
|---|---|---|
bucket | string | Début de la fenêtre. |
bid_total_avg / _min / _max | float | Volume à l’achat cumulé, en moyenne et aux extrêmes. |
ask_total_avg / _min / _max | float | Idem à la vente. |
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 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.
# 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| Champ | Type | Description |
|---|---|---|
vwap | float | null | Prix moyen pondéré 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é sur la fenêtre. |
total_volume | float | Volume de la fenêtre. |
trade_count | integer | Nombre de trades de 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’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.
| Champ | Type | Description |
|---|---|---|
avg_size | float | null | Taille moyenne, pondérée par le nombre de trades de chaque place. |
total_volume | float | Volume total agrégé. |
trade_count | integer | Nombre de trades agrégé. |
timestamp | string | Horodatage du calcul. |
#Heatmap de liquidation
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.
| Champ | Type | Description |
|---|---|---|
timestamp | string | Horodatage du calcul. |
density_up / density_down | float | Densité du cluster le plus attractif au-dessus et en dessous du prix. |
dist_up / dist_down | float | Distance fractionnelle du cluster — 0,01 vaut 1 %. |
attraction_up / attraction_down | float | densité / 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 où le prix a une raison mécanique d’aller, pas une prédiction.