Indicateur

Fathom Levels

Vos repères, toujours sous les yeux. Ouverture, extrêmes et VWAP cadrent votre lecture de la séance.

Conserve les days dernières séances, les weeks dernières semaines et les months derniers mois, période en cours comprise, avec leurs niveaux : milieu, bas, haut, ouverture et clôture (périodes passées seulement), plus le POC, la value area à 70 % et le VWAP pour les séances et les semaines. Les niveaux de la période en cours sont provisoires et mis à jour à chaque barre close ; ils deviennent définitifs à la fin de la période et sont retirés quand elle sort de la fenêtre.

Identifiant
key-levels
Objets reçus
level
Calcul
Sur les périodes demandées
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": "key-levels",
  "instrument": "NQ.front",
  "indicator": "key-levels",
  "params": {
    "days": 2,
    "months": 0,
    "skipCurrent": false,
    "timeframe": 300,
    "weeks": 1
  },
  "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ètreTypeDéfautValeurs possiblesUnitéDescription
daysinteger20 à 30—Nombre de séances conservées, séance en cours comprise.
monthsinteger00 à 12—Nombre de mois conservés, mois en cours compris (sans POC, value area ni VWAP).
skipCurrentbooleanfalsetrue · false—Masquer les niveaux de la période en cours.
timeframeinteger30015 · 60 · 300—Durée des barres, en secondes : 15, 60 ou 300.
weeksinteger10 à 12—Nombre de semaines conservées, semaine en cours comprise.

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.

level mis à jour en continu

Niveau ; provisoire pendant la période en cours.

Format de l’id : <period>:<key>:<label>. 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
currentboolean—toujoursNiveau de la période en cours, donc provisoire.
keystring—toujoursSéance (date de clôture), dimanche de la semaine ou mois YYYY-MM.
labelstring · MP | L | H | O | C | P | VH | VL | VW—toujoursMilieu, bas, haut, ouverture, clôture, POC, haut et bas de la value area, VWAP.
periodstring · day | week | month—toujoursPériode.
pricenumbertickstoujoursPrix du niveau.

Warming du calcul

Le calcul couvre les jours, semaines ou mois demandés dans les paramètres. Si personne n’utilise encore vos paramètres, le serveur recalcule d’abord ces périodes (status warming), puis passe en direct (status live).

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": "day:2026-09-24:VH",
  "final": false,
  "ts": "1790208000058746563",
  "data": {
    "period": "day",
    "key": "2026-09-24",
    "label": "VH",
    "price": 123177,
    "current": true
  }
}
Version en cours
{
  "t": "upsert",
  "id": "week:2026-09-20:VW",
  "final": false,
  "ts": "1790208000058746563",
  "data": {
    "period": "week",
    "key": "2026-09-20",
    "label": "VW",
    "price": 123433.46225133342,
    "current": true
  }
}
Version finale
{
  "t": "upsert",
  "id": "day:2026-09-24:MP",
  "final": true,
  "ts": "1790287500006398661",
  "data": {
    "period": "day",
    "key": "2026-09-24",
    "label": "MP",
    "price": 122395,
    "current": false
  }
}

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/key-levels/params.json",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "days": {
      "description": "Nombre de séances conservées, séance en cours comprise.",
      "type": "integer",
      "default": 2,
      "minimum": 0,
      "maximum": 30
    },
    "months": {
      "description": "Nombre de mois conservés, mois en cours compris (sans POC, value area ni VWAP).",
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "maximum": 12
    },
    "skipCurrent": {
      "description": "Masquer les niveaux de la période en cours.",
      "type": "boolean",
      "default": false
    },
    "timeframe": {
      "description": "Durée des barres, en secondes : 15, 60 ou 300.",
      "type": "integer",
      "default": 300,
      "enum": [
        15,
        60,
        300
      ]
    },
    "weeks": {
      "description": "Nombre de semaines conservées, semaine en cours comprise.",
      "type": "integer",
      "default": 1,
      "minimum": 0,
      "maximum": 12
    }
  }
}
Schéma du champ data
JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://fathomcharts.com/schemas/key-levels/data.json",
  "title": "level",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "current": {
      "description": "Niveau de la période en cours, donc provisoire.",
      "type": "boolean"
    },
    "key": {
      "description": "Séance (date de clôture), dimanche de la semaine ou mois `YYYY-MM`.",
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}(-[0-9]{2})?$"
    },
    "label": {
      "description": "Milieu, bas, haut, ouverture, clôture, POC, haut et bas de la value area, VWAP.",
      "type": "string",
      "enum": [
        "MP",
        "L",
        "H",
        "O",
        "C",
        "P",
        "VH",
        "VL",
        "VW"
      ]
    },
    "period": {
      "description": "Période.",
      "type": "string",
      "enum": [
        "day",
        "week",
        "month"
      ]
    },
    "price": {
      "description": "Prix du niveau.",
      "type": "number"
    }
  },
  "required": [
    "period",
    "key",
    "label",
    "price",
    "current"
  ]
}