Tool
Trend-Based Fib Extension / Expansion (ABC)
calc.fibonacci_projection
Inputs
The A→B impulse as one leg bundle — A is the leg’s start, B its end. Used by the default leg_plus_point mode.
The first pivot (start of the impulse) as a zigzag bundle. Used by three_points mode.
The second pivot (end of the impulse) as a zigzag bundle. The A→B distance is what gets projected.
The launch pivot C — the end of the retracement against A→B; every target anchors on it. Used by leg_plus_point and three_points.
A raw price for point A in three_prices mode.
A raw price for point B in three_prices mode.
A raw price for point C in three_prices mode — the level the targets project from.
Outputs
A bundle of projected target levels — each ratio paired with the price it projects to from C — ready to use as take-profit levels or as zones to watch for reversals.
Trend-Based Fib Extension takes a three-point A-B-C move and projects extension targets beyond it — price levels like 0.618, 1.0 and 1.618 of the A→B swing measured from C. This is the tool TradingView calls “Trend-Based Fib Extension” and MetaTrader calls “Fibonacci Expansion”. Traders use these as profit targets and likely turning points.
How it works
Given an impulse A→B and a corrective pullback to C, the node measures the A→B distance and lays out projection ratios from C: 1.0 means the move from C equals A→B, 1.618 means it runs a golden extension further, and so on — DiNapoli traders know 0.618 / 1.0 / 1.618 as COP, OP and XOP. Ratios here are plain ratio units (0.618 = 61.8%), unlike the retracement and OTE tools, which configure their levels in percent. The `mode` picker chooses how the geometry is supplied — one leg bundle plus the launch point C (default), three zigzag pivot points, or raw prices; `ratio_count` sets how many projection levels to draw, and the per-level `ratio_N` knobs set each multiple. The output bundle carries every projected target price.
Modes
Mode options
Supplies the A→B impulse as one leg bundle plus the launch pivot C — the same 3-point geometry with one wire fewer.
When to use: The default — pair a fibonacci anchor’s leg with a retrace pivot and project from C.
Supplies A, B and C as zigzag pivot bundles; the node measures A→B, then projects the ratio targets forward from C.
When to use: The usual setup — wire three swing pivots from a zigzag so the projection follows real market structure.
Supplies A, B and C as raw price numbers instead of pivot bundles, then lays out the projection ladder from those values.
When to use: When your A/B/C levels come from constants or computed prices rather than zigzag bundles.
Ratio count options
Configuration
How the A-B-C geometry is supplied: ‘leg_plus_point’ (one leg bundle for A→B plus the launch pivot C — the default), ‘three_points’ (pivots A, B and C), or ‘three_prices’ (raw prices A, B and C). The inspector greys out the inputs that don’t apply to the chosen mode.
How many projection levels to draw, from 1 up to 8. More levels give a fuller target ladder (e.g. 0.618, 1.0, 1.618, 2.618) while fewer keep just the key extensions. Only the first `ratio_count` of the `ratio_N` values are used.
The 1st projection multiple of the A→B move, measured from C. A common value is 0.382.
The 2nd projection multiple. A common value is 0.618.
The 3rd projection multiple. 1.0 means the move from C equals the A→B distance.
The 4th projection multiple. The 1.618 golden extension is the classic target.
The 5th projection multiple. A common value is 2.0.
The 6th projection multiple. A common value is 2.618.
The 7th projection multiple, a deeper extension such as 3.618.
The 8th projection multiple, a far extension such as 4.236.
Connects to
Examples
- Take-profit: in three_points mode, project from the last A-B-C swing and place the first target at the 1.618 extension of the impulse.
- Reversal watch: gate short setups to bars where price reaches the 2.618 projection of an extended up-move.
Common mistakes
- Confusing projection with retracement — projection extends targets BEYOND the move from C, while retracement marks pullback levels inside the leg; use calc.fibonacci_retracement for the latter.
- Setting `ratio_count` larger than the `ratio_N` values you configured, so unused slots fall back to defaults.