Fathom Trades
Les gros volumes laissent une trace. Isolez les ordres agressifs au-dessus de votre seuil et voyez où ils frappent le marché.
Regroupe en un seul ordre agressif les trades consécutifs d'un même côté, sans retour de prix et espacés de 5 ms au plus. Le groupe en cours est publié en provisoire dès qu'il atteint le volume minimum, puis en définitif à sa clôture : changement de côté, retour de prix, écart de plus de 5 ms ou trade sans côté agresseur. Les seuils et le mode de prix sont des paramètres de vue : tous les abonnés d'un instrument partagent le même calcul.
- Identifiant
big-trades- Objets reçus
group- Calcul
- Trades récents
- Coût sur l’historique
- 1 compute unit 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": "big-trades",
"instrument": "NQ.front",
"indicator": "big-trades",
"params": {
"minimum": 30,
"maximum": 0,
"priceMode": "last"
},
"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. Un paramètre d’affichage ne fait que filtrer les résultats envoyés : en changer est instantané. Un paramètre de calcul peut demander de préparer un nouveau calcul (status warming).
| Paramètre | Type | Rôle | Défaut | Valeurs possibles | Unité | Description |
|---|---|---|---|---|---|---|
minimum | integer | Affichage | 30 | 1 à 1 000 000 | contrats | Volume minimum du groupe, en contrats. |
maximum | integer | Affichage | 0 | 0 à 1 000 000 | contrats | Volume maximum du groupe, en contrats ; 0 = illimité, sinon au moins minimum. |
priceMode | choice | Affichage | last | last · start · average | — | Prix publié dans price : dernier prix, premier prix ou VWAP arrondi du groupe. |
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.
group mis à jour en continu
Groupe de trades ; provisoire tant qu'il s'étend.
Format de l’id : <startNs>:<ordinal>. 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 |
|---|---|---|---|---|
end | string | timestamp (ns) | toujours | ts_event du dernier trade. |
first | integer | ticks | toujours | Prix du premier trade. |
last | integer | ticks | toujours | Prix du dernier trade. |
price | integer | ticks | toujours | Prix selon priceMode : dernier prix, premier prix ou VWAP arrondi au tick (au pair en cas d'égalité). |
side | string · buy | sell | — | toujours | Côté agresseur du groupe. |
start | string | timestamp (ns) | toujours | ts_event du premier trade. |
trades | integer | trades | toujours | Nombre de trades du groupe. |
volume | integer | contrats | toujours | Volume total du groupe. |
vwap | number | ticks | toujours | Prix moyen pondéré par le volume, en ticks décimaux. |
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": "1790208267461672923:0",
"final": false,
"ts": "1790208267461672923",
"data": {
"side": "sell",
"volume": 30,
"trades": 14,
"start": "1790208267461672923",
"end": "1790208267461672923",
"first": 122991,
"last": 122979,
"price": 122979,
"vwap": 122984.5
}
}{
"t": "upsert",
"id": "1790208267461672923:0",
"final": true,
"ts": "1790208267468979827",
"data": {
"side": "sell",
"volume": 40,
"trades": 21,
"start": "1790208267461672923",
"end": "1790208267461672923",
"first": 122991,
"last": 122976,
"price": 122976,
"vwap": 122982.775
}
}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/big-trades/params.json",
"type": "object",
"additionalProperties": false,
"properties": {
"minimum": {
"description": "Volume minimum du groupe, en contrats.",
"type": "integer",
"default": 30,
"minimum": 1,
"maximum": 1000000
},
"maximum": {
"description": "Volume maximum du groupe, en contrats ; 0 = illimité, sinon au moins `minimum`.",
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 1000000
},
"priceMode": {
"description": "Prix publié dans `price` : dernier prix, premier prix ou VWAP arrondi du groupe.",
"type": "string",
"default": "last",
"enum": [
"last",
"start",
"average"
]
}
}
}Schéma du champ data
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://fathomcharts.com/schemas/big-trades/data.json",
"title": "group",
"type": "object",
"additionalProperties": false,
"properties": {
"end": {
"description": "`ts_event` du dernier trade.",
"type": "string",
"pattern": "^[0-9]+$"
},
"first": {
"description": "Prix du premier trade.",
"type": "integer"
},
"last": {
"description": "Prix du dernier trade.",
"type": "integer"
},
"price": {
"description": "Prix selon `priceMode` : dernier prix, premier prix ou VWAP arrondi au tick (au pair en cas d'égalité).",
"type": "integer"
},
"side": {
"description": "Côté agresseur du groupe.",
"type": "string",
"enum": [
"buy",
"sell"
]
},
"start": {
"description": "`ts_event` du premier trade.",
"type": "string",
"pattern": "^[0-9]+$"
},
"trades": {
"description": "Nombre de trades du groupe.",
"type": "integer"
},
"volume": {
"description": "Volume total du groupe.",
"type": "integer"
},
"vwap": {
"description": "Prix moyen pondéré par le volume, en ticks décimaux.",
"type": "number"
}
},
"required": [
"side",
"volume",
"trades",
"start",
"end",
"first",
"last",
"price",
"vwap"
]
}