Version 1.1.0 · NinjaTrader 8 Le contexte d'abord. La pression ensuite. L'exécution enfin. Trade less. Trade better. Trade with clarity.
© 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.
À propos de ce guide
Ce guide explique ce que Flow.42 AbsorptionMap affiche sur votre graphique, les idées qui le sous-tendent et chaque réglage que vous pouvez modifier. Il est écrit pour des traders, pas pour des programmeurs : vous n'avez besoin de rien connaître du fonctionnement interne pour bien utiliser l'outil.
AbsorptionMap est un outil de contexte et de visualisation. Il met en évidence les zones de prix où des achats ou des ventes agressifs ont été absorbés au lieu de faire bouger le prix. Ce n'est pas un signal de trade automatique et il ne vous dit pas quand acheter ou vendre. Utilisez-le comme l'un des éléments de votre propre processus.
1. Ce que fait AbsorptionMap
AbsorptionMap repère et marque les niveaux de prix où une participation agressive du marché a été absorbée par un flux inverse caché : ces moments où les acheteurs ont poussé encore et encore sans que le prix monte, ou ceux où les vendeurs ont martelé à la baisse sans créer de nouveaux plus bas.
Il lit le marché en trois couches :
- Les déséquilibres repèrent, à l'intérieur de chaque barre, les niveaux de prix où l'un des côtés de l'Order Flow a clairement dominé.
- Les clusters regroupent en une seule zone d'absorption des déséquilibres répétés à des prix proches.
- La logique d'absorption surveille ensuite chaque zone et pose la question clé : le flux agressif l'a-t-il emporté, ou a-t-il été absorbé ?
Une couche DOM Defense optionnelle lit le carnet d'ordres en direct (Level 2 / Market Depth) et vérifie si le côté absorbant est aussi visible sous la forme d'une liquidité passive anormalement lourde qui défend le niveau.
AbsorptionMap n'est pas un déclencheur d'entrée autonome. Il montre où un niveau a probablement été défendu, où un retournement pourrait se former et où le respect du prix a du sens.
2. Ce que vous voyez sur le graphique
AbsorptionMap peut dessiner cinq choses :
1. Les marqueurs en losange se placent au niveau de prix de l'absorption. La forme et le remplissage indiquent la maturité et la force de la lecture :
- Anneau seul, sans losange : étape la plus précoce (Live Warning)
- Losange creux : candidat (précoce, pas encore confirmé)
- Losange plein estompé : provisoire (confirmation probable sous peu)
- Losange plein : absorption confirmée
- Losange plein entouré d'un anneau : absorption forte confirmée
2. La teinte de fond du cluster colore la zone sous-jacente dans une couleur d'absorption estompée, afin que le niveau reste ancré sur le graphique à mesure que le prix s'en éloigne.
3. L'étiquette compacte ABS / DOM à côté du losange indique d'un coup d'œil l'agression absorbée (ABS) et, le cas échéant, la défense du carnet (DOM).
4. L'étiquette DOM Defense apparaît au-dessus de la zone lorsque le carnet d'ordres a défendu le niveau avec une liquidité nettement supérieure à la moyenne.
5. L'infobulle au survol apparaît lorsque votre souris s'approche d'un marqueur. Elle indique l'étape, le contexte haussier ou baissier, le niveau d'absorption et les limites de la zone, l'agression absorbée en contrats et le Peak Signal Score.
Logique des couleurs
- Absorption baissière → OrangeRed. Des achats agressifs ont été absorbés par des vendeurs cachés. Les acheteurs se sont épuisés contre un mur. On s'attend à une pression baissière.
- Absorption haussière → LimeGreen. Des ventes agressives ont été absorbées par des acheteurs cachés. Les vendeurs se sont épuisés contre un mur. On s'attend à une pression haussière.
La couleur suit le côté de l'agresseur absorbé, et non le côté du mouvement attendu : la même convention que celle des outils Volume Profile et footprint. La lecture directionnelle en découle automatiquement : des acheteurs absorbés signifient un contexte baissier, des vendeurs absorbés un contexte haussier.
3. Concepts fondamentaux
3.1 Qu'est-ce que l'absorption ?
Imaginez le marché comme une gigantesque enchère avec deux côtés à chaque prix : des acheteurs prêts à lever l'offre, des vendeurs prêts à frapper.
La plupart du temps, lorsqu'un côté devient agressif, le prix bouge. Les acheteurs agressifs mangent les offres et le prix monte d'un tick. Les vendeurs agressifs mangent les bids et le prix descend d'un tick. Comportement normal.
Mais parfois, le côté agressif pousse encore et encore, et le prix refuse de bouger. Pensez à un enfant qui essaie de pousser une lourde porte. Il pousse une fois, deux fois, trois fois, et la porte ne bouge pas, parce que quelqu'un, de l'autre côté, la maintient fermée.
Ce quelqu'un, c'est la partie absorbante :
- Les acheteurs agressifs lèvent l'offre encore et encore, avalant des contrats, mais un mur de vendeurs cachés reconstitue l'offre aussi vite que les acheteurs la mangent. L'agression est absorbée. Quand les acheteurs sont à court de conviction, le prix tombe : il ne reste plus d'acheteurs et beaucoup de vendeurs.
- Les vendeurs agressifs déversent dans le bid encore et encore, mais des acheteurs cachés reconstituent le bid tout aussi vite. L'agression est absorbée. Quand les vendeurs s'épuisent, le prix monte : le bid a tenu comme une forteresse.
Le rôle d'AbsorptionMap est de repérer ces moments avant que le retournement ne devienne évident, en combinant trois signes : une empreinte de déséquilibre (du volume agressif empilé d'un côté), un échec de cassure (le prix n'a pas dépassé la zone après la poussée) et, en option, une défense DOM (le carnet passif est plus lourd que la normale du côté absorbant). Quand les trois s'alignent, vous obtenez un marqueur à forte confiance. Quand seuls certains s'alignent, vous obtenez une lecture plus précoce et moins certaine. C'est pourquoi AbsorptionMap utilise des étapes progressives.
3.2 Les déséquilibres : les briques de base
Pour chaque barre complétée, AbsorptionMap compare le volume acheteur au volume vendeur en diagonale entre des niveaux de prix adjacents.
Un déséquilibre côté bid correspond à une domination acheteuse : le volume acheteur à un prix est nettement supérieur au volume vendeur un niveau en dessous. Un déséquilibre côté ask en est le miroir : le volume vendeur à un prix est nettement supérieur au volume acheteur un niveau au-dessus.
Ce qui compte comme « nettement » est fixé par Imbalance Ratio (valeur par défaut 3.0 : un côté doit représenter au moins trois fois l'autre côté en diagonale).
Les déséquilibres isolés sont bruités. Les futures sur indices en produisent des dizaines par barre. Ils ne deviennent utiles que lorsqu'ils forment un cluster.
3.3 Les clusters : les zones d'absorption
Un cluster est un groupe de déséquilibres proches en prix (dans une marge de Cluster Price Tolerance ticks), survenant dans une courte fenêtre (dans Cluster Window (Bars)), et qui, ensemble, atteignent un nombre minimum (Min Imbalances in Cluster) et un volume total minimum (Min Cluster Volume).
Un cluster représente une pression soutenue d'un seul côté sur une même zone : le moment de « l'enfant qui pousse la porte ». La question qui suit est de savoir si la porte a tenu (absorption) ou s'est ouverte (continuation).
Chaque cluster conserve une identité stable à mesure qu'il est réévalué barre après barre, de sorte qu'un niveau peut être suivi dans le temps sans perdre son historique.
3.4 Les étapes progressives
AbsorptionMap n'attend pas une confirmation complète pour afficher quoi que ce soit. Il révèle un niveau au fur et à mesure de son développement, afin que vous puissiez le voir se former en temps réel.
- Live Warning (alerte en direct) : le signe le plus précoce. La lecture a franchi le seuil d'alerte. La zone est fraîche, la défense partielle, aucun retournement n'est encore visible. À considérer comme « surveiller ce niveau ». Dessiné sous forme d'anneau seul.
- Candidate (candidat) : des preuves plus solides sont présentes : un échec de cassure, une petite réaction opposée, une défense DOM ou une reconquête. À considérer comme « ce niveau est actif ». Dessiné sous forme de losange creux.
- Provisional (provisoire) : la période d'attente s'est écoulée et la vérification d'absorption s'est déclenchée, mais la confirmation complète reste en attente. À considérer comme « négociable avec confirmation ». Dessiné sous forme de losange plein estompé.
- Confirmed (confirmé) : les vérifications sont passées : un échec de cassure plus une réaction du prix ou une continuation. À considérer comme « absorption prouvée ». Dessiné sous forme de losange plein.
Les étapes n'avancent que vers l'avant, jamais vers l'arrière. Une fois un marqueur confirmé, ses détails se figent afin que le visuel ne scintille pas sur les ticks suivants. Live Warning est la seule étape qui reste volontairement active et continue de s'affiner jusqu'à ce qu'elle soit promue ou qu'elle expire. Un résultat « invalidé » distinct et masqué couvre les niveaux où le prix a clairement cassé au travers. Ceux-là ne sont pas dessinés du tout.
3.5 Absorption forte ou faible
Deux seuils, tous deux mesurés en points, déterminent le niveau de force :
- Weak Threshold correspond à la distance que le prix aurait dû parcourir pour casser la zone. Si le prix est resté à l'intérieur ou n'en est sorti que de justesse, l'absorption est au moins faible : quelque chose a tenu.
- Strong Threshold correspond à la distance parcourue par le prix dans le sens opposé après l'absorption. Si le prix s'est retourné au-delà de cette distance depuis la zone, l'absorption est forte : quelque chose a tenu, puis a rebondi.
Une absorption forte est le cas d'école « le mur tient plus rebond ». Une absorption faible, c'est « le mur tient, le prix reste plat » : utile comme contexte de zone, mais moins exploitable pour des entrées.
Important pour les instruments hors indices : dans NinjaTrader, un point équivaut à une unité de prix complète. Pour l'ES, cela représente 4 ticks ; pour le CL, 100 ticks. Les seuils par défaut (2.0 / 3.0 points) sont calibrés pour l'ES. Le CL exige des valeurs bien plus petites. Partez du modèle CL, voir la Section 8.
3.6 DOM Defense
DOM Defense lit le carnet d'ordres en direct et pose la question : le côté absorbant affiche-t-il en ce moment une liquidité passive anormalement lourde ?
L'outil apprend une référence glissante de la liquidité normale du carnet sur DOM Baseline Seconds (valeur par défaut 300 = cinq minutes). Lorsque la liquidité actuelle du côté concerné dépasse cette référence de DOM Defense Multiplier (valeur par défaut 2.5×) et s'y maintient pendant DOM Persistence Samples relevés consécutifs, la zone est signalée comme défendue par le DOM.
La défense DOM augmente le Peak Signal Score, peut être exigée avant qu'un Candidate ne soit autorisé (lorsque Require DOM Defense For Candidate est activé), et déclenche sa propre étiquette DOM Defense au-dessus de la zone.
La défense DOM est par conception restreinte à la session, même lorsque le reste de l'indicateur tourne en continu. Si vous voulez des marqueurs DOM en dehors de vos fenêtres de session configurées, activez Ignore Session Filter.
3.7 Peak Signal Score
Chaque lecture d'absorption porte un score de 0 à 100 qui reflète la quantité de preuves corroborantes présentes. Le score augmente avec : une défense DOM du côté absorbant, une petite réaction opposée juste après le cluster, la part de la zone que le prix a reconquise, un échec de cassure dans le sens d'origine, et la taille du volume agressif absorbé.
Le Peak Signal Score est le score le plus élevé que la lecture ait jamais atteint. Il est persistant : il ne diminue jamais. Vous pouvez filtrer les marqueurs visibles à l'aide de Min Signal Score To Show : réglez-le sur 50 pour masquer les Live Warnings les plus bruités tout en conservant tous les Candidate et au-dessus.
4. Adaptive Scaling (optionnel)
Le volume n'est pas constant tout au long de la journée. L'ouverture est bruyante, le déjeuner calme, la clôture repart à la hausse. Un Min Volume adapté à l'ouverture sera bien trop strict au déjeuner, et une valeur adaptée au déjeuner sera bien trop laxiste à l'ouverture.
Adaptive Scaling résout ce problème en ajustant automatiquement Min Volume et Min Cluster Volume le long de la courbe de volume intrajournalière typique. Les valeurs que vous fixez servent d'ancres pour la phase la plus active de la session ; pendant les phases plus calmes, les seuils effectifs baissent vers leurs planchers. Chargez au moins cinq jours d'historique graphique pour que la courbe soit bien formée.
- Min Volume Floor et Min Cluster Volume Floor fixent les limites basses. Les points de départ recommandés sont d'environ 50 % de Min Volume et d'environ 75 % de Min Cluster Volume.
- Use Day Factor adapte en plus au rythme global de la journée en cours, en comparant le volume cumulé d'aujourd'hui au volume cumulé typique au même moment. Cela aide lors des journées inhabituellement calmes et des demi-séances, et n'élève jamais les seuils au-dessus de vos valeurs d'ancrage.
- Adaptive Label affiche une petite boîte d'état déplaçable indiquant le facteur adaptatif actuel et les seuils effectifs. La plupart des utilisateurs n'en auront pas besoin.
Si vous préférez un seuil fixe et prévisible, laissez Adaptive Scaling désactivé (valeur par défaut).
5. Sessions et sorties d'automatisation
Le filtre de session limite les moments où des lectures d'absorption peuvent se produire. Deux fenêtres peuvent être configurées : une fenêtre Pre-Market et une fenêtre RTH (Regular Trading Hours).
Comment les règles se combinent :
- Si Ignore Session Filter est activé, tous les horaires de session sont ignorés : les lectures peuvent se produire en continu.
- S'il est désactivé et qu'au moins une fenêtre est activée, seules les lectures situées à l'intérieur d'une fenêtre active sont conservées.
- S'il est désactivé et que les deux fenêtres sont désactivées, les marqueurs DOM n'apparaîtront pas (le DOM est strictement restreint à la session). Les marqueurs d'absorption peuvent tout de même apparaître, car en l'absence de fenêtre configurée, la logique d'absorption n'applique aucune restriction.
Pour les instruments 24/5 comme le CL, activez Ignore Session Filter ou définissez une longue fenêtre RTH qui couvre vos heures de trading.
Format horaire. Les horaires de session acceptent plusieurs formats (15:00, 3:00 PM, 15:00:00) et sont lus dans le fuseau horaire local de votre système. Si une valeur ne peut pas être lue, un avertissement apparaît dans la fenêtre Output de NinjaTrader au chargement du graphique.
Les horaires de session par défaut sont des valeurs génériques dans votre heure locale. Réglez-les toujours pour correspondre à l'instrument et au fuseau horaire que vous tradez réellement. Les modèles décrits dans la Section 8 contiennent des fenêtres d'exemple en heure d'Europe centrale.
Sorties d'automatisation
AbsorptionMap expose trois sorties que BloodHound et les outils d'automatisation similaires peuvent lire. Les noms des sorties portent le préfixe BloodHound pour des raisons historiques ; tout outil capable de se lier au tracé d'un indicateur les lit de la même façon :
| Sortie | Valeur |
|---|---|
| BloodHound Absorption Long Signal | +1 sur une lecture longue |
| BloodHound Absorption Short Signal | −1 sur une lecture courte |
| BloodHound Absorption Signal | +1 ou −1, les deux directions dans une seule sortie |
Les sorties sont tracées de façon transparente : elles ne dessinent donc jamais rien sur votre graphique.
Lisez la direction avec attention. La sortie vous donne le sens du trade, pas le côté du carnet sur lequel se trouvait le déséquilibre. Une vente absorbée produit une sortie Long, parce que les vendeurs n'ont pas réussi à faire bouger le prix. Un achat absorbé produit une sortie Short, parce que les acheteurs ont échoué. C'est l'inverse de ce que suggère la formulation brute bid et ask, et c'est aussi l'inverse des sorties de VolImbalance, où un déséquilibre côté bid est haussier. Si vous construisez un template d'automatisation qui utilise les deux indicateurs, câblez chacun par son propre nom de sortie et ne supposez pas que les deux se correspondent.
Seules les lectures confirmées se déclenchent. Une lecture provisoire peut encore disparaître, elle ne produit donc jamais de sortie. C'est voulu. Un signal qui disparaît après coup est pire dans un backtest qu'un signal qui arrive en retard.
Attendez-vous à un délai. La sortie apparaît Wait Bars barres après la formation du cluster, cinq par défaut. C'est le temps dont AbsorptionMap a besoin pour voir si le prix s'est éloigné de la zone ou non.
Après un rechargement. Les lectures confirmées qui reviennent du cache de marqueurs persistant sont réinscrites sur leurs propres barres, de sorte que les sorties sont identiques après un rechargement du graphique et en direct.
L'historique a besoin de Tick Replay. AbsorptionMap lit des transactions, pas des barres. Sur les barres historiques, les transactions ne sont disponibles que si Tick Replay est activé pour la Data Series (clic droit sur le graphique, Data Series, Tick Replay). Activé, l'historique chargé est évalué comme une session en direct et les sorties sont remplies sur chaque barre historique. Désactivé, les barres historiques ne portent aucun footprint, donc aucune nouvelle lecture ne peut s'y former : le seul historique visible, ce sont les lectures confirmées qui reviennent du cache de marqueurs persistant, et les sorties portent exactement celles-là. Si Tick Replay est désactivé et que le cache ne contient rien pour l'historique chargé, AbsorptionMap affiche un encadré d'avertissement sur le graphique et écrit une ligne dans le Control Center Log. L'encadré est partagé avec VolImbalance sur le même graphique, il n'apparaît donc qu'une fois par graphique. Rien n'est jamais écrit dans la fenêtre NinjaScript Output.
Tout l'historique est lisible. Les sorties conservent leurs valeurs sur chaque barre chargée (le look-back est illimité depuis la version de septembre 2026) : un outil d'automatisation peut lire une barre plus ancienne de la session ou d'un jour précédent, et un NinjaScript peut indexer loin en arrière sans erreur.
D'autres valeurs sont exposées pour d'autres modules Flow.42. Elles ne portent aucun tracé et ne peuvent pas être sélectionnées dans BloodHound ni dans aucun outil similaire.
6. Utilisation pratique
Contexte d'entrée prudent : n'afficher que les lectures pleinement formées. Désactivez Show Provisional Marker, désactivez Show Weak Absorption, réglez Min Signal Score To Show sur 60 et activez Require DOM Defense For Candidate. Vous verrez moins de marqueurs, mais ceux que vous voyez sont des niveaux de retournement de meilleure qualité.
Vigilance scalping en temps réel : voir les lectures le plus tôt possible, en acceptant que certaines ne se concrétisent pas. Activez Show Provisional Marker, activez Show Weak Absorption, réglez Min Signal Score To Show sur 0 et abaissez Live Warning Score (par exemple à 30). Vous verrez les anneaux Live Warning se déclencher tôt. Utilisez-les comme des alertes à surveiller, pas comme des entrées.
Complément Volume Profile / footprint : ne mettre en évidence que les zones à volume absorbé sérieux. Augmentez Min Absorbed Aggression à une valeur adaptée à l'instrument, augmentez Min Cluster Volume et réglez Min Signal Score To Show sur 50. Cela filtre les micro-clusters et n'affiche que les grands murs d'absorption.
Routine multi-instruments : partez du modèle de graphique de l'instrument, voir la Section 8. Les réglages les plus sensibles à l'instrument sont Min Volume, Min Cluster Volume et les seuils en points ; réglez-les en premier.
7. Référence complète des paramètres
Chaque réglage accessible à l'utilisateur est listé ci-dessous, regroupé selon les sections que vous voyez dans le panneau de propriétés de NinjaTrader. « Default » est la valeur avec laquelle l'indicateur est livré.
01 Imbalance Filter
| Setting | Default | Ce que cela fait |
|---|---|---|
| Min Volume | 50 | Volume de transactions minimum requis à un niveau de prix avant qu'un déséquilibre puisse être exploité. |
| Max Volume | -1 | Volume de transactions maximum autorisé à un niveau de prix. Utilisez -1 pour aucune limite supérieure. |
| Imbalance Ratio | 3.0 | Combien de fois le volume d'un côté doit être supérieur à l'autre côté en diagonale pour compter comme un déséquilibre. 3.0 signifie au moins trois pour un. Plage 1.0 à 10.0. |
| Zero Opposing = Extreme Imbalance | On | Traite un volume diagonal opposé nul comme un déséquilibre extrême, afin que la détection fonctionne encore aux extrêmes de prix où un côté n'a jamais imprimé. |
01a Adaptive Scaling
| Setting | Default | Ce que cela fait |
|---|---|---|
| Adaptive Scaling | Off | Ajuste automatiquement Min Volume et Min Cluster Volume selon la courbe de volume intrajournalière typique. Vos valeurs fixées ancrent la phase la plus active. Chargez au moins cinq jours d'historique. |
| Min Volume Floor | 25 | Limite basse du Min Volume ajusté. Recommandé à environ 50 % de Min Volume. |
| Min Cluster Volume Floor | 300 | Limite basse du Min Cluster Volume ajusté. Recommandé à environ 75 % de Min Cluster Volume. |
| Use Day Factor | Off | Adapte aussi les seuils au rythme de la journée en cours par rapport à une journée typique. Aide lors des journées calmes et des demi-séances. N'élève jamais les seuils au-dessus de vos ancres. |
| Adaptive Label | Off | Affiche une petite boîte d'état déplaçable avec le facteur adaptatif actuel et les seuils effectifs. La plupart des utilisateurs n'en auront pas besoin. |
02 Cluster Detection
| Setting | Default | Ce que cela fait |
|---|---|---|
| Cluster Price Tolerance (Ticks) | 3 | Distance de prix maximale, en ticks, pour que deux déséquilibres appartiennent au même cluster. |
| Min Imbalances in Cluster | 3 | Plus petit nombre de déséquilibres nécessaire pour former un cluster valide. Plage 2 à 20. |
| Min Cluster Volume | 400 | Plus petit volume total de cluster (la somme des volumes des déséquilibres membres) avant que le cluster ne soit qualifié. |
| Cluster Lookback Bars | 200 | Nombre de barres récentes analysées lors de la reconstruction des clusters. Des valeurs plus élevées maintiennent les clusters anciens actifs plus longtemps. Plage 50 à 500. |
| Cluster Window (Bars) | 8 | Distance maximale en barres entre le premier et le dernier déséquilibre d'un même cluster. Plage 1 à 100. |
03 Absorption Detection
| Setting | Default | Ce que cela fait |
|---|---|---|
| Enable Absorption Detection | On | Active la vérification d'absorption confirmée qui se déclenche après la période d'attente. |
| Wait Bars | 5 | Barres à attendre après la formation d'un cluster avant de lancer la classification finale d'absorption. Plage 2 à 20. |
| Weak Threshold (Points) | 2.0 | Taille de mouvement attendue en points. Si le prix n'a pas parcouru cette distance au-delà de la zone, l'absorption peut être classée comme faible. Un point = une unité de prix complète (ES = 4 ticks, CL = 100 ticks). |
| Strong Threshold (Points) | 3.0 | Taille du mouvement opposé (de retournement) en points. Si le prix se retourne de cette distance après le cluster, l'absorption est classée comme forte. Même convention de points. |
| Show Provisional Marker | On | Affiche le marqueur estompé précoce avant la confirmation finale. Désactivez pour un affichage limité aux confirmations. |
| Min Absorbed Aggression | 0 | Masque les marqueurs dont le volume agressif absorbé est inférieur à cette valeur. 0 désactive le filtre. |
| Show Weak Absorption | On | Affiche les marqueurs candidat, provisoire et confirmé de type faible. Les anneaux Live Warning restent visibles dans tous les cas. |
04 Early Absorption
| Setting | Default | Ce que cela fait |
|---|---|---|
| Enable Early Absorption | On | Active les couches Live Warning et Candidate, la partie précoce du cycle de vie progressif. |
| Early Window Seconds | 6 | Nombre de secondes pendant lesquelles le scoreur précoce reste actif après un cluster. Passé ce délai, seule la confirmation par les wait-bars peut se déclencher. Plage 1 à 30. |
| Min Follow Through Ticks | 3 | Mouvement de continuation attendu en ticks. Si le prix n'a pas parcouru cette distance dans le sens agressif d'origine, la vérification d'échec de cassure augmente le score précoce. Plage 1 à 20. |
| Reclaim Threshold Percent | 50 | Pourcentage de la hauteur de zone que le prix doit reconquérir pour gagner un point de reconquête. 50 = le milieu de la zone. Plage 0 à 100. |
| Min Opposite Response Ticks | 2 | Plus petit mouvement contre le sens du cluster nécessaire pour compter un point de réaction. Plage 1 à 10. |
| Live Warning Score | 35 | Score à partir duquel l'anneau Live Warning apparaît. Plage 0 à 100. |
| Candidate Score | 60 | Score à partir duquel un Live Warning est promu en losange Candidate. Plage 0 à 100. |
| Min Signal Score To Show | 0 | Masque tous les marqueurs dont le Peak Signal Score est inférieur à cette valeur. 0 désactive le filtre. |
05 DOM Confluence
| Setting | Default | Ce que cela fait |
|---|---|---|
| Enable DOM Confluence | On | Utilise la liquidité du carnet d'ordres en direct comme contexte supplémentaire pour les clusters actifs. Nécessite une fenêtre de session active ou Ignore Session Filter = on ; sinon les marqueurs DOM n'apparaîtront pas. |
| DOM Levels | 5 | Nombre de niveaux bid et ask (top-N) additionnés pour le compte de liquidité. Plage 1 à 20. |
| DOM Sample Interval (ms) | 500 | Millisecondes entre les relevés du carnet d'ordres. Plus bas est plus réactif mais consomme plus de CPU. Plage 100 à 5000. |
| DOM Baseline Seconds | 300 | Secondes utilisées pour apprendre la liquidité normale du carnet d'ordres. Le relevé actuel est comparé à la moyenne de cette fenêtre. Plage 30 à 3600. |
| DOM Defense Multiplier | 2.5 | À quel point la liquidité actuelle doit être plus lourde que la référence pour compter comme une défense. 2.5 = 250 % de la normale. Plage 1.0 à 20.0. |
| DOM Min Samples | 60 | Nombre minimum de relevés avant que la référence soit considérée comme valide. Environ 30 secondes à l'intervalle par défaut. |
| DOM Persistence Samples | 3 | Relevés qualifiants consécutifs nécessaires avant que la défense DOM soit signalée. Filtre les pics d'un seul tick. Plage 1 à 20. |
| Show DOM Defense Label | Off | Affiche l'étiquette DOM distincte près du marqueur. Nécessite Show Marker Details = on et une session active (ou Ignore Session Filter). Le scoring DOM fonctionne même lorsque cette étiquette est masquée. |
| Require DOM Defense For Candidate | Off | Une condition de promotion : une lecture ne peut devenir Candidate qu'une fois la défense DOM présente. N'affecte pas la visibilité des étapes Live Warning, Provisional ou Confirmed. |
| Hide Clusters Without DOM Defense | Off | Un filtre de visibilité complet : les clusters qui n'ont jamais atteint la défense DOM sont totalement masqués. Ni losange, ni anneau, ni teinte, ni étiquette. Plus strict que la condition ci-dessus. |
06 Visualization
| Setting | Default | Ce que cela fait |
|---|---|---|
| Show Diamond Markers | On | Interrupteur principal de tous les visuels liés aux clusters. Désactivé, aucun losange, anneau ou zone teintée n'est dessiné (la teinte de fond est supprimée quel que soit son propre réglage). Les étiquettes DOM sont gérées séparément. |
| Recolor Cluster Background | On | Teinte la zone du cluster avec la couleur d'absorption. C'est la fonction visuelle la plus coûteuse à elle seule. |
| Diamond Size (Pixels) | 12 | Taille du marqueur en losange en pixels. Plage 5 à 30. |
| Marker Opacity % | 80 | Opacité du remplissage du marqueur, 10 à 100. |
| Bearish Absorption Color | OrangeRed | Couleur utilisée lorsque des achats agressifs ont été absorbés (contexte baissier). |
| Bullish Absorption Color | LimeGreen | Couleur utilisée lorsque des ventes agressives ont été absorbées (contexte haussier). |
| Marker Background Color | Black | Couleur de fond derrière l'étiquette compacte d'agression absorbée. |
| Marker Font Color | White | Couleur du texte de l'étiquette compacte d'agression absorbée. |
07 Marker Details
| Setting | Default | Ce que cela fait |
|---|---|---|
| Show Marker Details | On | Affiche la valeur compacte d'agression absorbée à côté de chaque marqueur. |
| Show Detail Tooltip | On | Affiche l'infobulle complète sur plusieurs lignes (niveau, zone, agression absorbée, peak score) lorsque vous survolez un marqueur. |
08 Persistent Cache
| Setting | Default | Ce que cela fait |
|---|---|---|
| Enable 5-Day Marker Cache | On | Enregistre les événements d'absorption et DOM calculés afin qu'ils réapparaissent après un rechargement du graphique. |
| Marker Cache Days | 5 | Nombre de jours calendaires pendant lesquels conserver les événements enregistrés. Les événements plus anciens sont supprimés. Plage 1 à 5. |
09 Session Settings
| Setting | Default | Ce que cela fait |
|---|---|---|
| Ignore Session Filter | Off | Activé, aucune restriction de session n'est appliquée : les lectures peuvent se produire à tout moment. C'est aussi le moyen le plus simple de laisser apparaître les marqueurs DOM sans configurer de fenêtre. |
| Use Pre-Market | On | Active la fenêtre de session Pre-Market. |
| Pre Market Start (HH:mm) | 09:00 | Heure de début du Pre-Market, dans votre heure locale. |
| Pre Market End (HH:mm) | 13:00 | Heure de fin du Pre-Market, dans votre heure locale. |
| Use RTH | On | Active la fenêtre Regular Trading Hours. |
| RTH Start (HH:mm) | 15:00 | Heure de début du RTH, dans votre heure locale. |
| RTH End (HH:mm) | 22:00 | Heure de fin du RTH, dans votre heure locale. |
10 Auction Engine
Ces deux réglages n'ont d'effet que lorsque Flow.42 AuctionEngine est présent sur le même graphique. En l'absence d'engine, ils n'ont aucun effet et l'indicateur se comporte exactement comme avant.
| Setting | Default | Ce que cela fait |
|---|---|---|
| Auction Modulation | Subtle | Contrôle la façon dont le contexte d'AuctionEngine affecte les marqueurs d'AbsorptionMap. Les marqueurs alignés avec la lecture de l'enchère (continuation) restent à pleine opacité ; les marqueurs à contre-lecture sont atténués : légèrement tant que l'emplacement soutient encore la lecture, fortement dès que l'emplacement la menace. Off = aucune atténuation. Options : Off, Subtle, Strong. |
| Auction Context | Live | Quelle lecture d'enchère pilote l'atténuation. Live = la lecture actuelle de l'engine, appliquée à tous les marqueurs (correspond au trading en direct). Historical = chaque marqueur est jugé par l'enchère telle qu'elle était à sa propre barre, ce qui permet d'étudier le comportement passé, y compris sur un marché fermé. Historical n'applique aucune atténuation aux barres plus anciennes que la fenêtre d'historique de l'engine. |
8. Points de départ par instrument
Ne copiez pas de réglages depuis un document. Chaque version de Flow.42 est livrée avec des modèles de graphique et des modèles d'indicateur pour les instruments que nous tradons nous-mêmes : ES, MES, NQ, MNQ, CL, GC et BTCUSD. Ces modèles sont la référence pour les réglages d'AbsorptionMap. Ils portent le réglage actuel et sont mis à jour à chaque version, ils ne deviennent donc pas obsolètes comme un tableau dans un guide.
Le modèle de graphique est la version active. Il charge le graphique Flow.42 complet pour l'instrument, AbsorptionMap compris, avec les réglages adaptés à cet instrument. Faites un clic droit sur le graphique, choisissez Templates, puis Load, et sélectionnez le modèle Flow.42 de votre instrument.
Le modèle d'indicateur charge AbsorptionMap seul. Ouvrez les propriétés d'AbsorptionMap, cliquez sur Template en bas de la boîte de dialogue, puis sur Load. Le nom du fichier vous indique le type de barre pour lequel les réglages ont été faits, par exemple NQ 1min ou GC 5min. Sur un type de graphique plus lent, augmentez les seuils de volume. Sur un graphique à ticks plus fin, réduisez-les.
Les valeurs d'usine de la Section 7 sont calibrées pour l'ES. Sur tout autre instrument, partez du modèle, pas des valeurs par défaut. Les réglages les plus sensibles à l'instrument sont Min Volume, Min Cluster Volume et les deux seuils en points. Si vous réglez quelque chose à la main, commencez par ceux-là. Les seuils en points suivent la convention de points de la Section 3.5 : un point est une unité de prix complète. Pour l'ES, cela représente 4 ticks, pour le CL, 100 ticks. C'est pourquoi le CL exige des seuils bien plus petits que les futures sur indices.
Les modèles sont des points de départ, pas des optima issus de backtests. Les fenêtres de session des modèles sont des exemples en heure d'Europe centrale. Ajustez-les à votre propre fuseau horaire et validez sur votre propre configuration avant d'engager du capital.
Une routine de validation pour tout instrument
Après avoir chargé un modèle, effectuez un contrôle de cohérence d'une à deux semaines.
- Nombre de marqueurs par session RTH. À titre indicatif, l'ES tend à afficher 5 à 20 événements, le NQ 8 à 25, le CL 3 à 15. Nettement plus signifie que vos réglages sont trop sensibles ; nettement moins signifie qu'ils sont trop stricts.
- Ratio fort / faible. Un mélange sain est d'environ un fort pour trois à cinq faibles. Si tout est fort, augmentez Strong Threshold ; si rien ne l'est, abaissez-le.
- Contrôle par sondage de l'historique. Choisissez quelques marqueurs d'hier et demandez-vous honnêtement : « aurais-je tradé cela ? » Réglez à partir de là.
9. Dépannage
Je ne vois aucun marqueur. Abaissez Min Volume et Min Cluster Volume pour confirmer que le moteur produit quelque chose. Abaissez légèrement Imbalance Ratio (par exemple de 3.0 à 2.5). Réglez Min Signal Score To Show sur 0 pour qu'aucun filtre de qualité ne masque tout. Confirmez que vous êtes à l'intérieur d'une fenêtre de session configurée, ou activez Ignore Session Filter. Vérifiez les avertissements dans la fenêtre Output.
Les losanges apparaissent mais jamais les étiquettes DOM. Le DOM est restreint à la session : si Pre-Market et RTH sont tous deux désactivés et qu'Ignore Session Filter est désactivé, les étiquettes DOM ne peuvent pas apparaître. Activez une fenêtre ou activez Ignore Session Filter. Votre flux de données doit fournir le Level 2 / Market Depth ; certains flux retail ne le font pas. La référence DOM a également besoin de son nombre minimum de relevés avant que la défense puisse se déclencher, alors attendez environ une minute après la connexion.
Un marqueur apparaît en direct mais disparaît au rechargement. Confirmez qu'Enable 5-Day Marker Cache est activé. Après une mise à jour, une reconstruction ponctuelle du cache est normale : les nouveaux marqueurs se construisent à partir des données en direct. Confirmez que Marker Cache Days est assez grand pour votre habitude de rechargement.
Les barres historiques ne montrent aucune lecture ; seules les barres en direct reçoivent des marqueurs. Tick Replay est désactivé sur la Data Series et le cache de marqueurs persistant ne contient rien pour l'historique chargé (nouvel instrument, installation récente ou plus de jours que Marker Cache Days). Activez Tick Replay pour un historique calculé, ou acceptez que les lectures commencent avec les données en direct. L'encadré d'avertissement unique sur le graphique vous dit dans quel cas vous êtes ; l'indicateur n'a aucun défaut (Section 5).
Plus rien n'apparaît dans la fenêtre NinjaScript Output. C'est voulu depuis la version de septembre 2026 : AbsorptionMap n'y écrit rien. Les vraies erreurs arrivent dans le Control Center Log, une fois par source et par session.
Trop d'anneaux Live Warning, peu passent en Candidate. Augmentez Live Warning Score (par exemple de 35 à 40). Activez Require DOM Defense For Candidate pour empêcher les alertes faibles d'être promues. Sur les instruments à carnet mince, abaissez DOM Defense Multiplier (vers 2.0) pour que la défense se déclenche plus souvent, ou laissez l'exigence désactivée.
Tous mes événements sont faibles, aucun n'est fort. Abaissez Strong Threshold (Points). Pour le CL, la valeur par défaut de l'ES est bien trop grande. Voir la Section 8. Confirmez aussi que les barres sous le cluster portent réellement du volume de transactions ; sans presque aucune transaction, il n'y a rien à retourner.
Le graphique est lent sur les instruments à fort volume. Augmentez DOM Sample Interval (de 500 à 750 ou 1000) pour alléger la charge du carnet d'ordres. Augmentez Min Volume et Min Cluster Volume pour suivre moins de déséquilibres. Désactivez Recolor Cluster Background : la zone teintée est le visuel le plus coûteux à lui seul. Si vous n'avez pas besoin de mises à jour intrabarres, envisagez le mode de calcul OnBarClose.
10. Notes de performance
OnBarClose est le mode de calcul le plus léger ; utilisez-le si vous n'avez pas besoin de mises à jour intrabarres. OnPriceChange est le compromis recommandé pour le trading en direct : il se met à jour à chaque tick tout en gardant un rendu efficace. Augmenter Min Volume filtre tôt les petites impressions et est le moyen le moins coûteux de réduire la charge. Le rendu est le principal coût par image, et Recolor Cluster Background est la fonction la plus coûteuse à elle seule. Les mises à jour DOM sont limitées par DOM Sample Interval. Augmentez-le si votre flux est bruité. Le cache persistant écrit peu fréquemment, l'activité disque est donc négligeable. Faire tourner de nombreux graphiques ne pose pas de problème ; il n'y a aucun état partagé par graphique susceptible d'entrer en collision.
11. Glossaire
- Absorption : volume de trading agressif qui n'a pas fait bouger le prix, parce qu'une liquidité passive cachée ou un flux inverse l'a absorbé.
- Déséquilibre côté bid : domination acheteuse : volume acheteur à un prix bien supérieur au volume vendeur un niveau en dessous.
- Déséquilibre côté ask : domination vendeuse : volume vendeur à un prix bien supérieur au volume acheteur un niveau au-dessus.
- Cluster : un groupe de déséquilibres proches en prix et dans le temps qui, ensemble, forment une zone d'absorption.
- Live Warning : l'étape la plus précoce ; un anneau seul. La lecture a franchi le seuil d'alerte mais aucune autre exigence n'est encore remplie.
- Candidate : deuxième étape ; un losange creux. Des preuves plus solides sont présentes et, si nécessaire, la défense DOM est en place.
- Provisional : troisième étape ; un losange plein estompé. La période d'attente s'est écoulée et la vérification d'absorption s'est déclenchée, mais la confirmation complète est en attente.
- Confirmed : quatrième étape ; un losange plein. La vérification finale s'est déclenchée et les détails sont figés.
- Absorption forte : une lecture confirmée où le prix s'est retourné d'au moins le Strong Threshold au-delà de la zone.
- Absorption faible : une lecture confirmée où le prix a tenu à l'intérieur de la zone ou n'en est sorti que de justesse, sans retournement marqué.
- DOM (Depth of Market) : liquidité passive dans le carnet d'ordres sur plusieurs niveaux.
- DOM Defense : liquidité actuelle du carnet d'ordres du côté absorbant dépassant sa référence glissante du facteur DOM Defense Multiplier.
- Peak Signal Score : le score le plus élevé atteint par une lecture au cours de sa vie. Persistant ; ne diminue jamais.
- Agression absorbée : les contrats agressifs qui ont été absorbés à la zone ; affichés sur l'étiquette compacte ABS.
12. Journal des modifications
Version 1.2.0 (version de septembre 2026)
- Les réglages par instrument viennent désormais des modèles Flow.42 (Section 8).
- La Section 5 explique Tick Replay et l'historique. Un rechargement reproduit les sorties en direct.
- Look-back illimité sur toutes les sorties. Aucun message dans la fenêtre NinjaScript Output.
Version 1.1.0
- Sorties d'automatisation pour BloodHound et les systèmes similaires, documentées dans la Section 5 : une sortie longue, une sortie courte et une sortie combinée.
- Note sur la lecture de la direction, qui est le sens du trade et non le côté bid ou ask brut.
Version 1.0.0
Première version publique du Guide de l'utilisateur AbsorptionMap.
- Identité de cluster stable qui ne dérive pas d'un cycle de détection à l'autre.
- Cycle de vie progressif de la lecture : Live Warning, Candidate, Provisional, Confirmed, plus un niveau Strong.
- Adaptive Scaling optionnel pour le volume selon l'heure de la journée et le rythme du jour.
- Confluence DOM Defense avec une référence glissante et un filtrage par persistance.
- Cache de marqueurs persistant pour que les lectures survivent à un rechargement du graphique.
- Intégration optionnelle de Flow.42 AuctionEngine qui atténue les marqueurs à contre-lecture.
- Réglages de départ suggérés pour l'ES, le NQ et le CL.
Flow.42 AbsorptionMap : détection d'absorption de l'Order Flow basée sur les clusters, avec confluence DOM Defense optionnelle et cache de marqueurs persistant.
© 2026 TTW Trading Systems PTE. LTD. · Flow.42 Analytics · All rights reserved.