Fathom Footprint
Entrez dans la bougie. Le détail brut, prix par prix : les volumes exécutés au bid et à l’ask pour lire la pression des deux côtés.
Barres de 15, 60 ou 300 secondes. Chaque niveau de prix (regroupé par groupTicks) porte le volume des ventes agressives (bid) et celui des achats agressifs (ask). Le filtre de taille ne compte que les trades dont le volume est dans les bornes. La barre en cours est republiée à chaque trade compté (provisoire, état complet), puis publiée en définitif à l'ouverture de la barre suivante.
- Identifiant
footprint- Objets reçus
bar- Calcul
- Trades récents
- Coût sur l’historique
- 4 compute units par trade
S’abonner
Les mêmes params fonctionnent en temps réel, sur l’historique et en export. Ceux que vous omettez prennent leur valeur par défaut.
{
"t": "subscribe",
"sub": "footprint",
"instrument": "NQ.front",
"indicator": "footprint",
"params": {
"filterMax": 0,
"filterMin": 0,
"groupTicks": 1,
"timeframe": 15
},
"mode": "live",
"from": "live"
}Paramètres
Dès qu’un paramètre s’écarte de sa valeur par défaut, la subscription compte comme une configuration personnalisée. Une nouvelle valeur peut demander de préparer un nouveau calcul (status warming).
| Paramètre | Type | Défaut | Valeurs possibles | Unité | Description |
|---|---|---|---|---|---|
filterMax | integer | 0 | 0 à 1 000 000 | contrats | Volume maximum d'un trade pour être compté ; 0 = illimité, sinon au moins filterMin. |
filterMin | integer | 0 | 0 à 1 000 000 | contrats | Volume minimum d'un trade pour être compté ; 0 = aucun minimum. |
groupTicks | integer | 1 | 1 à 100 | ticks | Nombre de ticks regroupés par niveau de prix. |
timeframe | integer | 15 | 15 · 60 · 300 | — | Durée des barres, en secondes : 15, 60 ou 300. |
Objets reçus
Chaque objet garde le même id d’une mise à jour à l’autre. Ses données sont dans le champ data. Les prix sont en ticks : multipliez-les par le tick size de l’instrument (GET /v1/instruments) pour obtenir des points.
bar mis à jour en continu
Barre ; provisoire tant qu'elle est en cours.
Format de l’id : <barStartNs>. Tant qu’il évolue, l’objet est envoyé avec final: false, et chaque nouvelle version remplace entièrement la précédente. Sa dernière version porte final: true.
| Champ | Type | Unité | Présent | Description |
|---|---|---|---|---|
levels | array | ticks | toujours | Niveaux par prix croissant : [prix, bid, ask], plus un 4e élément quand le niveau contient des trades sans côté agresseur (leur volume). Volume = somme des éléments 2 à 4 ; delta = ask − bid. |
poc | integer | ticks | toujours | Prix du niveau de plus fort volume ; à égalité, le premier rencontré en partant de l'ouverture, vers le haut puis vers le bas. |
Warming du calcul
Cet indicateur ne dépend que des trades récents. Si personne n’utilise encore vos paramètres, vous recevez brièvement un status warming avant le snapshot.
L’historique suit les mêmes règles : une requête sur une période passée renvoie exactement ce que le temps réel a publié.
Exemples de messages
Messages reçus avec les paramètres de la subscription ci-dessus. Sur le WebSocket, chaque message contient aussi sub et cursor.
{
"t": "upsert",
"id": "1790207985000000000",
"final": true,
"ts": "1790208000058746563",
"data": {
"levels": [
[
123012,
1,
0
],
[
123014,
0,
1
],
[
123015,
1,
0
],
[
123016,
2,
0
],
[
123017,
1,
0
],
[
123018,
1,
0
],
[
123020,
3,
1
],
[
123022,
1,
0
],
[
123024,
1,
0
],
[
123025,
0,
1
],
[
123026,
0,
1
],
[
123027,
0,
2
],
[
123032,
0,
1
]
],
"poc": 123020
}
}{
"t": "upsert",
"id": "1790208000000000000",
"final": false,
"ts": "1790208000058746563",
"data": {
"levels": [
[
123014,
1,
0
]
],
"poc": 123014
}
}Schémas JSON
Pour valider ou typer vos données : les schémas JSON des paramètres et de data, aussi disponibles par GET /v1/indicators. Le SDK peut en générer les types.
Schéma des paramètres
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://fathomcharts.com/schemas/footprint/params.json",
"type": "object",
"additionalProperties": false,
"properties": {
"filterMax": {
"description": "Volume maximum d'un trade pour être compté ; 0 = illimité, sinon au moins `filterMin`.",
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 1000000
},
"filterMin": {
"description": "Volume minimum d'un trade pour être compté ; 0 = aucun minimum.",
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 1000000
},
"groupTicks": {
"description": "Nombre de ticks regroupés par niveau de prix.",
"type": "integer",
"default": 1,
"minimum": 1,
"maximum": 100
},
"timeframe": {
"description": "Durée des barres, en secondes : 15, 60 ou 300.",
"type": "integer",
"default": 15,
"enum": [
15,
60,
300
]
}
}
}Schéma du champ data
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://fathomcharts.com/schemas/footprint/data.json",
"title": "bar",
"type": "object",
"additionalProperties": false,
"properties": {
"levels": {
"description": "Niveaux par prix croissant : `[prix, bid, ask]`, plus un 4e élément quand le niveau contient des trades sans côté agresseur (leur volume). Volume = somme des éléments 2 à 4 ; delta = ask − bid.",
"type": "array",
"items": {
"type": "array",
"maxItems": 4,
"minItems": 3,
"prefixItems": [
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
},
{
"type": "integer"
}
]
}
},
"poc": {
"description": "Prix du niveau de plus fort volume ; à égalité, le premier rencontré en partant de l'ouverture, vers le haut puis vers le bas.",
"type": "integer"
}
},
"required": [
"levels",
"poc"
]
}