Indicateur Engulfing : formule, réglages et lecture
Engulfing signale les barres dont le corps contient entièrement celui de la barre précédente : le plus bas entre ouverture et clôture se situe au niveau ou en dessous de celui de la barre précédente, et le plus haut au niveau ou au-dessus. Seuls les corps sont comparés, les mèches n'interviennent pas, et le sens du marqueur vient de la barre signalée elle-même.
Senzoukria · Indicateurs · Updated September 2026
Engulfing — Structure et séances, sur le graphique des prix.
Ce que mesure Engulfing
Le test d'englobement accepte l'égalité : un corps qui touche exactement l'ouverture ou la clôture précédente l'englobe quand même. Ce choix reflète la lecture de l'enchère, puisque le corps courant couvre toute la zone acceptée par la barre précédente, et évite de manquer les avalements les plus nets sur une grille de ticks discrète, où l'égalité exacte est fréquente. Le sens vient strictement du corps courant : une barre qui clôture au-dessus de son ouverture est marquée haussière avec une flèche sous son plus bas, une barre qui clôture en dessous est marquée baissière avec une flèche au-dessus de son plus haut, et une barre qui clôture exactement à son ouverture ne produit aucun marqueur même si le test d'inclusion passe. Un écart volontaire avec la définition des manuels : la barre précédente n'a pas à être de couleur opposée. L'inclusion est le fait mesurable ; filtrer sur le sens de la barre précédente est une interprétation laissée au lecteur. La première barre du graphique n'est jamais marquée, faute de barre à avaler.
La formule, telle qu’implémentée
Ce n'est pas la définition habituelle ailleurs : c'est ce que calcule le code livré, documenté à côté de son implémentation :
Période entière ≥ `min` depuis les params (garde-fou UI, même helper que momentum.ts). */ function intParam( params: Record<string, unknown>, key: string, fallback: number, min = 1, ): number { return Math.max(min, Math.floor(numParam(params, key, fallback))); } function boolParam( params: Record<string, unknown>, key: string, fallback: boolean, ): boolean { const v = params[key]; return typeof v === "boolean" ? v : fallback; } /** Bas du CORPS (open/close) — le corps ignore les mèches par définition. */ function bodyLow(b: FootprintBar): number { return Math.min(b.open, b.close); } function bodyHigh(b: FootprintBar): number { return Math.max(b.open, b.close); } function bodySize(b: FootprintBar): number { return Math.abs(b.close - b.open); } function barRange(b: FootprintBar): number { return b.high - b.low; } function upperWick(b: FootprintBar): number { return b.high - bodyHigh(b); } function lowerWick(b: FootprintBar): number { return bodyLow(b) - b.low; } function markersOut(markers: SeriesMarker[]): SeriesOutput { return { shape: "markers", markers }; } function histOut( points: HistogramPoint[], positiveColor: string, negativeColor: string, ): SeriesOutput { return { shape: "histogram", points, positiveColor, negativeColor }; } /** Pivot HAUT strict sur `lr` barres de CHAQUE côté : high[i] > high[j] pour tout j de la fenêtre. STRICT des deux côtés — choix documenté : un plateau (double top exact dans la fenêtre) ne produit AUCUN pivot plutôt que deux pivots collés qui feraient double emploi sur le chart et fausseraient le « dernier swing » du break of structure. `false` si la fenêtre déborde du tableau : un pivot n'est confirmable qu'avec ses `lr` barres de droite CHARGÉES — on ne devine pas la suite. / function isSwingHigh( bars: readonly FootprintBar[], i: number, lr: number, ): boolean { if (i - lr < 0 || i + lr >= bars.length) return false; const h = bars[i].high; for (let j = i - lr; j <= i + lr; j++) { if (j !== i && bars[j].high >= h) return false; } return true; } /** Pivot BAS strict — miroir exact d'`isSwingHigh` (mêmes gardes de bord). */ function isSwingLow( bars: readonly FootprintBar[], i: number, lr: number, ): boolean { if (i - lr < 0 || i + lr >= bars.length) return false; const l = bars[i].low; for (let j = i - lr; j <= i + lr; j++) { if (j !== i && bars[j].low <= l) return false; } return true; } // ── Defs ──────────────────────────────────────────────────────────────────── /** Engulfing — le CORPS de la barre englobe entièrement celui de la précédente : bodyLow[i] ≤ bodyLow[i−1] ET bodyHigh[i] ≥ bodyHigh[i−1] haussière ssi close > open (marqueur arrow-up au LOW) baissière ssi close < open (marqueur arrow-down au HIGH) Contenance INCLUSIVE (≤/≥) : un corps qui touche exactement l'open ou le close précédent l'englobe — c'est la lecture de l'auction (le corps couvre toute la zone d'acceptation de la barre d'avant), et l'exiger strictement ferait rater les engulfings les plus nets sur une grille de ticks discrète. Le SENS vient du corps courant, strictement : close == open (doji) → aucun marqueur, même si la contenance passe. Choix assumé : on n'exige PAS que la barre précédente soit de sens opposé (la définition « livre » d'un engulfing de retournement). La contenance du corps est le fait mesurable ; filtrer sur le sens de la barre d'avant est une interprétation qu'on laisse au lecteur du chart. Première barre → rien (pas de précédente à englober).
Comment le lire
- Un marqueur après une barre à petit corps signifie qu'un corps plus large a couvert toute la zone de prix acceptée par la barre précédente entre son ouverture et sa clôture.
- Si vous voulez la lecture classique de retournement, vérifiez vous-même que la barre avalée était de couleur opposée : l'indicateur n'applique pas ce filtre pour vous.
- Une barre avalante au milieu d'une tendance en cours n'est souvent qu'une barre de continuation plus grande ; sa position par rapport à la structure de la session en dit plus que la figure seule.
- Comparez la taille du corps avalant au corps habituel de l'instrument : avaler une toute petite barre précédente est une exigence faible.
- La figure n'est que de la géométrie de prix : lisez le footprint ou le delta de la barre signalée pour voir si le mouvement vient d'acheteurs agressifs, de vendeurs agressifs ou d'une absorption passive.
Ce qu’il ne montre pas
Quatre prix entrent dans le test : une barre avalante traitée avec une forte participation et une autre traitée sur presque rien sont identiques à l'écran. Quand une seule barre large écrase plusieurs petites, comme en marché rapide, les avalements deviennent fréquents et le corps franchi est d'autant plus petit. Le sens de la barre précédente n'étant pas filtré, certains marqueurs décrivent une continuation plutôt qu'un retournement, et c'est au lecteur de faire la distinction. Le marqueur enregistre une forme achevée et ne confirme rien de la suite.
Indicateurs liés
- Session High/Low — Structure et séances
- Opening Range — Structure et séances
- IB Extensions — Structure et séances
- Classic Pivots — Structure et séances
- Camarilla Pivots — Structure et séances
- Naked POC — Structure et séances
Cette page dans d’autres langues
Frequently asked questions
- Une bougie avalante doit-elle aussi avaler les mèches ?
- Pas ici. Le test ne compare que les corps : l'intervalle ouverture-clôture de la barre courante doit contenir celui de la barre précédente. Les mèches sont ignorées par définition : une barre peut donc être signalée comme avalante même si le plus haut ou le plus bas de la barre précédente la dépasse.
- La bougie précédente doit-elle être de couleur opposée ?
- Cet indicateur ne l'exige pas. Il marque toute barre dont le corps contient le corps précédent, puis prend le sens de la seule barre courante. C'est un choix délibéré : l'inclusion est le fait mesurable, alors qu'exiger une barre précédente de couleur opposée est une interprétation ajoutée par-dessus, que vous pouvez appliquer vous-même en regardant le graphique.
- Pourquoi ma barre n'est-elle pas signalée alors qu'elle avale la précédente ?
- La raison la plus probable est que la barre a clôturé exactement à son ouverture. Une barre sans sens de corps ne produit aucun marqueur même si la condition d'inclusion est remplie, car l'indicateur n'aurait aucune direction à donner à la flèche. L'autre cas courant est la toute première barre du graphique, qui n'a aucune barre précédente à avaler.