Indicateur

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.

Message subscribe
{
  "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ètreTypeRôleDéfautValeurs possiblesUnitéDescription
minimumintegerAffichage301 à 1 000 000contratsVolume minimum du groupe, en contrats.
maximumintegerAffichage00 à 1 000 000contratsVolume maximum du groupe, en contrats ; 0 = illimité, sinon au moins minimum.
priceModechoiceAffichagelastlast · 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.

ChampTypeUnitéPrésentDescription
endstringtimestamp (ns)toujoursts_event du dernier trade.
firstintegertickstoujoursPrix du premier trade.
lastintegertickstoujoursPrix du dernier trade.
priceintegertickstoujoursPrix selon priceMode : dernier prix, premier prix ou VWAP arrondi au tick (au pair en cas d'égalité).
sidestring · buy | sell—toujoursCôté agresseur du groupe.
startstringtimestamp (ns)toujoursts_event du premier trade.
tradesintegertradestoujoursNombre de trades du groupe.
volumeintegercontratstoujoursVolume total du groupe.
vwapnumbertickstoujoursPrix 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.

Version en cours
{
  "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
  }
}
Version finale
{
  "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
JSON
{
  "$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
JSON
{
  "$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"
  ]
}