Max Adverse Excursion Indicator: Formula, Settings and How to Read It
Max Adverse Excursion (MAE) measures, in ticks, how far each bar travelled against its own direction before it closed, starting from that bar's open. On a bar that closes up it reports the distance down to the low; on a bar that closes at or below its open it reports the distance up to the high.
Senzoukria · Indicators · Updated September 2026
Max Adverse Excursion ships with the Senzoukria desktop app, in the Volatility group of the indicator catalogue. It is drawn in its own panel below the chart.
What Max Adverse Excursion measures
The sign carries the information rather than the colour. When the close is above the open, the value is low minus open, so it is zero or negative and describes the heat a theoretical long entered at the open would have taken. When the close is at or below the open, the value is high minus open, zero or positive, describing the heat against a theoretical short. A bar whose low never went below its open returns exactly 0, which is a measurement and not a missing value. Readings are expressed in ticks and computed with exact integer arithmetic on tick indices rather than by dividing a price difference by tick size, because stop distances are reasoned in ticks and a floating-point division leaves values such as 3.9999999 behind. If no tick size is known for the instrument the pane stays empty instead of falling back on an invented 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:
Max Adverse Excursion (MAE) — de combien la barre est allée CONTRE son propre sens, en TICKS, depuis son open : close > open (barre haussière) → (low − open) ≤ 0 sinon (barre baissière) → (high − open) ≥ 0 Le signe EST l'information : négatif = excursion contre un long théorique entré à l'open, positif = excursion contre un short théorique. Une barre qui n'est jamais passée sous son open rend 0 (pas de trou : 0 est une mesure, pas une absence). POURQUOI en ticks et pas en points : le MAE sert à dimensionner un stop, et un stop se raisonne en ticks (le pas de cotation), pas en unités de prix. La conversion passe par `priceKey` — ARITHMÉTIQUE ENTIÈRE exacte sur des indices de tick — et non par une division flottante `(low − open)/tickSize` qui rend 3,9999999 une fois sur deux. `ctx.tickSize` inconnu → AUCUN point (et non un fallback 1e-6, qui afficherait des dizaines de milliers de « ticks ») : on dégrade, on n'invente pas.
How to read it
- Read the height of each bar as heat in ticks: how much room an entry at that open would have needed to survive the bar.
- Repeated readings at or near 0 mean bars that left their open and did not trade back through it.
- Deep readings clustered on the side you trade mean entries taken at bar opens were routinely underwater before the bar resolved, whatever the close did.
- Compare the recent distribution against the stop distance you actually use, in ticks, to see how often ordinary bar movement alone reaches it.
- A change of sign only reflects the bar closing on the other side of its open; it is not a separate event.
Parameters and defaults
Smoothing defaults to 1, which means raw per-bar values with no averaging, and accepts up to 200. Raising it turns the series into a slower estimate of typical heat and stops it being a record of individual bars. The two colour settings separate positive readings, adverse to a short, from negative ones, adverse to a long.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Smoothing | number | 1 | 1 – 200 |
What it does not show
MAE looks at one bar in isolation and is blind to the path inside it: a bar that dipped once and a bar that dipped five times report the same number, and the order in which the high and the low printed is unknown. It measures from the bar's open, which is not the price you were filled at, so it is a proxy for entry heat and not a record of it. It says nothing about what happened after the close, so a bar with a small reading can still precede an adverse move. With no tick size available for the instrument, the indicator plots nothing at all.
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
- True Range — Volatility
- Std Dev — Volatility
- Squeeze — Volatility
- Chaikin Volatility — Volatility
- Realized Vol — Volatility
- Skewness — Volatility
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 is maximum adverse excursion in trading?
- Maximum adverse excursion is the worst unrealised loss a position reaches before it is closed. Applied bar by bar, as here, it becomes the distance price travelled against the bar's own direction measured from its open, which gives a per-bar record of how much room a trade taken at that open would have needed.
- Why does the MAE indicator show negative numbers?
- The sign identifies which side the excursion went against. Negative values come from bars that closed higher than they opened and report how far below the open price traded, the heat against a long. Positive values come from bars that closed at or below their open and report how far above it price traded, the heat against a short.
- Can MAE tell me where to put my stop loss?
- It tells you how much adverse movement recent bars actually produced, in ticks, which you can compare with the stop distance you are considering. It does not choose a level for you, and the distribution of past bars places no bound on future ones, so it is an input to sizing rather than a rule.