MA Ribbon Indicator: Formula, Settings and How to Read It

The MA Ribbon plots six exponential moving averages whose periods increase by a constant step, drawn in a fixed colour order from the fastest to the slowest. Senzoukria defaults to a base of 10 and a step of 10, which gives periods of 10, 20, 30, 40, 50 and 60.

Senzoukria · Indicators · Updated September 2026


MA Ribbon ships with the Senzoukria desktop app, in the Averages & volatility group of the indicator catalogue. It is drawn on the price chart.

What MA Ribbon measures

Each line is an exponential average of the close computed with the catalog convention: seeded with a simple average of its first N samples, then updated with a factor of 2/(N+1). What the ribbon adds over a single average is the relationship between the six lines: their spacing shows how differently the market is being summarised at different horizons, and their order shows whether short-horizon means sit above or below long-horizon ones. The palette runs blue, cyan, green, yellow, orange, red from the fastest to the slowest and is deliberately not configurable, since the ribbon is read by colour order and freely chosen colours would destroy that reading.

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:

Palette du ruban, du plus RAPIDE (bleu) au plus LENT (rouge) — l'ordre EST l'information : un ruban se lit à l'écartement et à l'ordre des couleurs. Fixe, donc pas paramétrable (6 couleurs libres permettraient de détruire cette lecture). */ const RIBBON_COLORS: readonly string[] = [ C.blue, C.cyan, C.green, C.yellow, C.orange, C.red, ]; /** MA Ribbon — 6 EMA de périodes ARITHMÉTIQUEMENT croissantes : période_k = base + k·step pour k = 0…5 (défauts 10, 20, 30, 40, 50, 60) EMA du catalogue : graine = SMA des N premiers échantillons, α = 2/(N+1) (parité TradingView/ATAS) — donc la ligne k est null avant l'indice période_k − 1, et les 6 lignes apparaissent en cascade. C'est VOULU : chaque ligne est une sortie INDÉPENDANTE (pas une bande), la règle de trou synchronisé ne s'applique pas — masquer les 5 premières jusqu'à la 6ᵉ supprimerait l'information la plus utile du ruban (l'ouverture en éventail après une compression). Livré à la place de « moving-average-envelope-atr » = `keltner` (cf. en-tête du fichier).

How to read it

  • A fan that opens, with the fast lines pulling away from the slow ones in the colour order, describes a move that is consistent across horizons.
  • Compression, where the six lines converge into a narrow band, means the horizons agree on the same level; it describes the current state and says nothing about the direction of the next expansion.
  • Interleaved colours, where the fast lines cross back and forth through the slow ones, indicate no consistent direction across horizons.
  • The six lines appearing one after another at the left edge is normal warm-up, since each one needs its own period of history before it can be computed.

Parameters and defaults

Base period defaults to 10 in a 1 to 200 range and step defaults to 10 in a 1 to 100 range, giving periods of base plus k times step for k from 0 to 5. A small step packs the six lines close together and makes the fan subtle; a large step spreads the horizons and produces a wide ribbon whose far end reacts slowly. The colours are fixed by design.

MA Ribbon — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
Base periodnumber101 – 200
Stepnumber101 – 100

What it does not show

A ribbon is six lagging averages, so a compression or an expansion is always reported after the fact. The six lines are strongly correlated by construction, being computed from the same closes with periods that differ only by a constant step, so a ribbon in full fan can add little beyond what two averages already show. Each line starts at a different bar, which leaves the left edge of a short history partly empty. And none of the six sees the bid x ask cells, the traded delta or the resting liquidity: a ribbon in full fan can coexist with heavy absorption visible on the footprint.

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.

  • SMAAverages & volatility
  • EMAAverages & volatility
  • WMAAverages & volatility
  • Hull MAAverages & volatility
  • ATR (Wilder)Averages & volatility
  • BollingerAverages & 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 periods does the MA ribbon use?
Six exponential averages at base plus k times step, for k from 0 to 5. With the defaults of base 10 and step 10 that gives 10, 20, 30, 40, 50 and 60 bars. Both values are configurable, so a base of 5 with a step of 5 would give 5, 10, 15, 20, 25 and 30.
What does it mean when a moving average ribbon compresses?
It means the averages over short and long horizons have converged toward the same level, which happens when price has stopped trending relative to those periods. Compression describes the present state and does not indicate the direction of the move that follows. Read it as a description of range conditions rather than as a setup.
Why do some ribbon lines appear later than others on my chart?
Each average needs its own period of history before it can be computed, so the 10-period line appears first and the 60-period line last. The lines are shown as soon as each becomes available rather than held back until the slowest is ready, because that cascade, and the fan opening out of a compression, are the most useful part of the display.

Keep reading