Senzoukria · Indicators

Fib Retracement Indicator: Formula, Settings and How to Read It

Fib Retracement finds the swing leg formed by the highest high and the lowest low of the last N bars and draws the standard retracement ratios across it. The 0% level is always placed at the more recent of the two extremes, which is the point the market is retracing from.

Updated September 2026First published 17 September 2026

On this page
  1. What Fib Retracement measures
  2. The formula, as implemented
  3. How to read it
  4. Parameters and defaults
  5. What it does not show
  6. Related indicators
  7. This page in other languages
  8. Frequently asked questions

Fib Retracement — VWAP & bands, on the price chart.

What Fib Retracement measures

The leg is detected by the order in which the two extremes appeared in the window: if the high came after the low, the leg is treated as rising and levels are measured downward from the high; if the low came last, they are measured upward from the low. The ratios drawn are 0%, 23.6%, 38.2%, 50%, 61.8%, 78.6% and 100% — 50% is not a Fibonacci ratio but belongs to the conventional set. Levels extend from the first bar of the window to the right edge of the chart and remain active there. If fewer than N bars are loaded, or if the window's high equals its low, no level is drawn at all rather than a level based on a partial window.

The formula, as implemented

This is not how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:

Ratios de retracement (0 % = extrême terminal de la jambe). */ const RETRACEMENTS: ReadonlyArray<readonly [number, string]> = [ [0, "0%"], [0.236, "23.6%"], [0.382, "38.2%"], [0.5, "50%"], [0.618, "61.8%"], [0.786, "78.6%"], [1, "100%"], ]; /** Ratios d'extension (projection AU-DELÀ de l'extrême terminal). */ const EXTENSIONS: ReadonlyArray<readonly [number, string]> = [ [1.272, "127.2%"], [1.618, "161.8%"], [2.618, "261.8%"], ]; /** Retracements de Fibonacci sur la jambe des N dernières barres. Jambe = plus haut et plus bas de la fenêtre, orientés par l'ORDRE d'apparition des deux extrêmes (`lastSwingLeg`) : • jambe HAUSSIÈRE (le sommet est postérieur au creux) → niveau(p) = high − p·(high − low) : 0 % au sommet, 100 % au creux ; • jambe BAISSIÈRE → niveau(p) = low + p·(high − low) : 0 % au creux. Autrement dit 0 % est TOUJOURS l'extrême le plus récent — c'est depuis lui que le marché retrace. Ratios : 0 / 23.6 / 38.2 / 50 / 61.8 / 78.6 / 100 % (50 % n'est pas un ratio de Fibonacci mais fait partie du jeu standard). Niveaux tracés de la première barre de la fenêtre au bord droit (`to: null` — ils restent actifs). Moins de N barres chargées, ou range nul → AUCUN niveau (une fenêtre partielle mentirait sur son lookback). Défaut N=100.

How to read it

  • Identify the leg before the levels: the 0% line marks the most recent extreme, and 100% marks the opposite end of the swing being measured.
  • A retracement that stalls in the 38.2% to 61.8% band has given back part of the leg; one that passes 78.6% has given back nearly all of it. These are descriptions of distance travelled, not predictions.
  • When the window produces a new extreme, the leg is redefined and every level moves. If your levels changed without you touching a setting, look for a new high or low inside the lookback.
  • Two instruments with the same ratios are not comparable in ticks: the spacing depends entirely on the size of the detected leg.
  • Confirm what happens at a level with actual trade — absorption, resting size, a footprint imbalance — rather than assuming the line itself does the work.

Parameters and defaults

Lookback defaults to 100 bars and accepts 2 to 2000. A short lookback locks onto the latest swing and redraws often; a long one describes a larger structural leg whose levels stay put for longer. There is no way to add or remove individual ratios, which keeps the set consistent across charts.

Fib Retracement — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
Lookbacknumber1002 – 2000

What it does not show

The leg is chosen mechanically from the window's extremes, which is not always the leg a human would draw: an isolated spike inside the lookback becomes the anchor. Because the window slides with the chart, levels are not stable — a level that held yesterday may no longer be drawn today. The ratios themselves carry no market information: they say nothing about volume, resting liquidity or which side was aggressing. And below the minimum bar count, or on a flat window, the indicator draws nothing, which is the correct behaviour rather than a fault.

Browse all indicators

This page in other languages

Frequently asked questions

How is the Fibonacci retracement leg chosen automatically?
The indicator takes the highest high and the lowest low within the lookback window and orders them by when they occurred. The more recent extreme becomes the 0% end and the older one becomes 100%, so the leg always points from where the move started to where it finished. Changing the lookback can change which extremes are captured and therefore the whole leg.
Why is the 0% level at the top of an up leg?
Because 0% marks the terminal extreme of the leg — the point from which price retraces. On a rising leg that is the high, so retracement levels descend toward 100% at the low. On a falling leg the convention mirrors: 0% sits at the low.
Is the 50% retracement a Fibonacci ratio?
No. 50% does not come from the Fibonacci series; it is the midpoint of the leg and is included because it is part of the standard set traders expect to see. The genuinely Fibonacci-derived values in the set are 23.6%, 38.2%, 61.8% and 78.6%.
NEXT

Keep reading