Doji Indicator: Formula, Settings and How to Read It
Doji marks bars whose body is negligible relative to their range, using the test |close − open| ≤ tolerance × (high − low) with a default tolerance of 0.1. The marker is a dot placed at the close, because a doji is a statement about indecision rather than about direction.
Senzoukria · Indicators · Updated September 2026
Doji ships with the Senzoukria desktop app, in the Structure & sessions group of the indicator catalogue. It is drawn on the price chart.
What Doji measures
The threshold is inclusive: a body measuring exactly 10% of the range qualifies, so a setting described as a 10% tolerance behaves the way it reads. Setting the tolerance to 0 narrows the test to the perfect doji, where the close matches the open exactly, which is useful on instruments with wide bars. A bar with zero range produces no marker at all: with both sides of the inequality collapsing to zero the test would be trivially satisfied and every flat overnight bar would be painted, so the indicator treats a rangeless bar as carrying no information rather than as a doji.
The formula, as implemented
This is not a description of how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
Doji — corps négligeable devant le range : |close − open| ≤ tolerance · (high − low) Seuil INCLUSIF (≤) : « tolérance 10 % » doit accepter un corps à exactement 10 % du range. Défaut 0.1 — la convention usuelle ; 0 donne le doji PARFAIT (close == open), utile sur des barres à gros range. range = 0 → AUCUN marqueur : une barre sans range n'est pas un doji, c'est une barre sans information (0 ≤ tol·0 serait trivialement vrai et peindrait toutes les barres plates de la nuit). Marqueur : dot au CLOSE — le doji est un fait d'indécision, sans direction.
How to read it
- A dot means the bar finished where it started after trading through a range — the auction explored and came back.
- The range matters as much as the marker: a wide-range doji and a two-tick doji describe very different amounts of activity ending in the same place.
- Where the doji sits matters too — one at the edge of the session's range is a different observation from one in the middle of a balanced area.
- Long stretches of dots in thin hours usually reflect low participation rather than a meaningful stand-off.
- Because the marker is shape-only, open the bid × ask footprint of the flagged bar if you want to know whether the indecision came from two-sided trade or from absorption.
Parameters and defaults
The tolerance runs from 0 to 0.5 in steps of 0.01, with 0.1 as the default. Raising it toward 0.5 progressively admits ordinary small-bodied bars and will flood the chart with markers; lowering it to 0 restricts the indicator to bars where the close and open are exactly equal. The colour (#fdd835 by default) is the only other setting.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Body / range tolerance | number | 0.1 | 0 – 0.5 |
What it does not show
One ratio cannot tell doji shapes apart — a long-legged doji, a dragonfly with its long lower wick and a gravestone with its long upper wick all satisfy the same inequality and receive the same dot. The test reads four prices, so a doji printed on heavy two-sided trade is indistinguishable from one printed on a handful of contracts. Low-liquidity sessions and small-tick instruments produce qualifying bars for mechanical reasons. And the dot describes a bar that has closed; it makes no statement about the one that follows.
Using it in Senzoukria
Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.
Related indicators
- Session High/Low — Structure & sessions
- Opening Range — Structure & sessions
- IB Extensions — Structure & sessions
- Classic Pivots — Structure & sessions
- Camarilla Pivots — Structure & sessions
- Naked POC — Structure & sessions
See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.
Frequently asked questions
- What body tolerance should a doji use?
- This indicator defaults to 0.1, meaning the body must be no more than 10% of the bar's high-to-low range, which is the common convention. The comparison is inclusive, so a body at exactly 10% of the range still qualifies. Raising the tolerance flags more bars, including ordinary small-bodied ones; lowering it flags fewer.
- Why is a completely flat bar not marked as a doji?
- A bar whose high equals its low has no range, so the test would compare zero against zero and pass automatically. The indicator excludes those bars deliberately: a bar with no range carries no information about indecision, since nothing was explored and given back. This mainly affects quiet overnight bars, which would otherwise all be marked.
- Can I make the doji indicator only show exact dojis?
- Yes — set the tolerance to 0. The test then requires the close to equal the open exactly, which is the strict definition of a doji. On instruments with a coarse tick grid this still happens regularly; on instruments with fine ticks it becomes rare.