Higher High / Lower Low Indicator: Formula, Settings and How to Read It
Higher High / Lower Low plots a three-state structure score in a separate pane: +1 when a bar's high and low are both above the previous bar's, −1 when both are below, and 0 in every other case. It compares each bar with its immediate predecessor rather than comparing swing points.
Senzoukria · Indicators · Updated September 2026
Higher High / Lower Low ships with the Senzoukria desktop app, in the Structure & sessions group of the indicator catalogue. It is drawn in its own panel below the chart.
What Higher High / Lower Low measures
Both comparisons use strict inequalities, so an unchanged high or low does not advance the structure. The 0 is a measured state rather than missing data: it covers inside bars, outside bars, and any bar where only one of the two extremes moved. Only the first bar on the chart is null, having nothing to compare against. The choice of a three-state score rather than a magnitude is deliberate — comparing the amplitude of a shift in highs against a shift in lows has no honest common scale, whereas the ordering of the two extremes does. For structure measured swing to swing rather than bar to bar, the Swing High/Low indicator covers that scale.
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:
Structure de tendance barre à barre : +1 si high[i] > high[i−1] ET low[i] > low[i−1] (HH + HL) −1 si high[i] < high[i−1] ET low[i] < low[i−1] (LH + LL) 0 sinon (inside, outside, ou un seul extrême qui bouge) Inégalités STRICTES : un extrême inchangé ne fait pas progresser la structure. Le 0 est une VALEUR MESURÉE (structure indécise), pas un trou — seule la première barre est null (aucune précédente à comparer). Lecture : la somme glissante de cette série donne un score de tendance ; le choix d'un ternaire plutôt que d'une magnitude est délibéré — comparer des amplitudes de highs et de lows n'a pas d'échelle honnête, l'ORDRE de la structure si. Comparaison barre à barre (pas swing à swing) : c'est la granularité du chart, `swing-high-low` couvre l'autre échelle.
How to read it
- A run of +1 values means each successive bar shifted its entire range higher — both the high and the low advanced, bar after bar.
- Values alternating between +1 and −1 describe rotation, where the range moves up and back down without either side accumulating.
- A long stretch of zeros means the range is neither advancing nor retreating as a whole: inside bars, outside bars, or one extreme pinned while the other moves.
- A rolling sum of the series gives a rough directional score over a window; the raw value on a single bar is one observation, not a trend.
- Note that an outside bar — a higher high together with a lower low — scores 0 here even though it is often the most informative bar on the screen.
Parameters and defaults
The smoothing parameter defaults to 1, which keeps the raw ternary values. Raising it converts the series into a moving average of the score, which reads more like a trend line but no longer takes only three values. The colour (#2962ff by default) is the only other setting.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Smoothing | number | 1 | 1 – 200 |
What it does not show
The score is ordinal: it says which way the range moved, never how far, so a one-tick shift and a fifty-tick shift both score +1. Volume, delta and aggressor side are all outside it. Inside bars and outside bars — contraction and expansion, opposite conditions — both collapse to 0, which is why a stretch of zeros is worth checking against the price chart. Bar construction matters too: on tick, volume or range bars the sequence depends heavily on how the bars were cut. Smoothing above 1 pushes the reading behind the market by however many bars you average.
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 does a 0 mean on a higher high / lower low indicator?
- A 0 means the structure did not advance in either direction on that bar. It covers three situations: an inside bar, an outside bar, and a bar where only one of the two extremes moved while the other stayed put or went the other way. It is a measured state, not missing data — only the first bar on the chart has no value.
- Does an outside bar count as a higher high?
- No. This indicator requires both the high and the low to be above the previous bar's before it scores +1. An outside bar has a higher high but also a lower low, so it returns 0. That is worth remembering, because outside bars are often the largest bars on the chart and the score gives them no weight.
- Is this the same as swing-based market structure analysis?
- No — this indicator compares each bar with the one immediately before it, which is the granularity of the chart itself. Swing-based structure compares confirmed pivot points that may be many bars apart, and that is covered by the Swing High/Low and Break of Structure indicators. The two views can disagree: a sequence of lower bar-to-bar highs can occur inside an intact swing uptrend.