Gap Open Indicator: Formula, Settings and How to Read It
Gap Open marks bars that open a measurable distance away from the previous bar's close, with the distance counted in ticks rather than points and a default threshold of 4 ticks. The arrow is drawn at the open — the price on the far side of the gap — and points in the direction of the jump.
Senzoukria · Indicators · Updated September 2026
Gap Open ships with the Senzoukria desktop app, in the Structure & sessions group of the indicator catalogue. It is drawn on the price chart.
What Gap Open measures
The comparison is made between integer tick indices, not between floating-point prices, which makes it exact: a gap of precisely four ticks is always recognised, whereas a floating-point comparison against four times the tick size fails at the boundary unpredictably. This requires the chart to know the instrument's tick size; when it does not, the indicator emits nothing at all rather than falling back on a generic quantiser, which would report tens of thousands of nominal ticks and be worse than silence. The default of 4 ticks was chosen to sit beyond the spread plus one tick of noise on CME index futures, so that a marker corresponds to a genuine hole in the quoted prices and not to a routine open one tick away from the last print. The first bar on the chart is never marked, having no previous close to compare against.
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:
Gap d'ouverture — écart entre l'open de la barre et le close de la précédente, mesuré en TICKS : |tickIndex(open[i]) − tickIndex(close[i−1])| ≥ minTicks Le comptage passe par `priceKey` (indice de tick entier, canon du repo : jamais de clé f64 brute) — la comparaison est de l'ARITHMÉTIQUE ENTIÈRE exacte, là où `|open − close| ≥ minTicks × tickSize` en flottant rate un gap de pile 4 ticks une fois sur deux. `ctx.tickSize` inconnu → AUCUN marqueur : un seuil en ticks sans grille de ticks n'a pas de sens, et le quantifieur de secours (1e-6) donnerait des dizaines de milliers de « ticks » — on dégrade, on n'invente pas. Défaut minTicks = 4 : au-delà du spread + 1 tick de bruit sur les indices CME, donc un vrai trou de cotation et pas un simple décalage d'ouverture. Marqueur à l'OPEN (le prix du trou), flèche dans le sens du gap. Première barre → rien.
How to read it
- Markers gather at session boundaries and around scheduled releases, where trading pauses or reprices sharply.
- A gap appearing inside continuous trading is a different observation from one spanning a session break — check the timestamp before treating them alike.
- Tick counts make gap sizes comparable day to day on the same contract; across contracts, four ticks of ES and four ticks of CL are not the same amount of price.
- Frequent small markers during thin hours usually reflect a wide spread rather than a dislocation; raise the threshold if that is what you are seeing.
- An absence of markers can mean the chart does not know the tick size, not that the instrument never gapped — verify the instrument before concluding anything.
Parameters and defaults
The minimum gap runs from 1 to 500 ticks with a default of 4. Setting it to 1 will mark nearly every bar on an illiquid series, since a one-tick difference between one bar's close and the next bar's open is ordinary. Raising it isolates only large dislocations, at the cost of missing the smaller session-boundary gaps. The up and down colours are cosmetic.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Min gap (ticks) | number | 4 | 1 – 500 |
What it does not show
The marker records that a gap existed. Whether it fills, how fast, and on what volume are all outside a calculation that compares two prices and nothing else. On aggregated or resampled series — and on continuously traded crypto charts, where bar boundaries are a construction choice — a reported gap can be an artefact of how the bars were built rather than an event in the market. And on an instrument whose tick size never reaches the chart, no marker appears at all, which must not be read as an absence of gaps.
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
- Why is the opening gap measured in ticks instead of points?
- Ticks are the actual price increment the instrument trades in, so a threshold in ticks means the same thing whether the contract moves in increments of 0.25 or 0.01. Counting in integer tick indices also makes the comparison exact: a gap of precisely four ticks is recognised every time, while the equivalent floating-point test on prices fails at that boundary unreliably.
- What minimum gap setting makes sense on index futures?
- The default of 4 ticks was chosen for CME index futures, where it sits beyond the typical spread plus one tick of noise, so a marker indicates a real hole in the quotes. Below that, ordinary opens a tick or two from the prior close start being flagged. On a wider-spread or thinner contract, raise the threshold rather than lower it.
- Why does Gap Open show no markers on my chart?
- The usual reason is that the chart does not know the instrument's tick size. Without it, a threshold expressed in ticks has no meaning, and the indicator deliberately produces nothing rather than substituting a generic price quantum that would report absurd gap sizes. The other possibility is simply that the threshold is set higher than any gap in the loaded range.