En esta página
Fibonacci retracement is the indicator with the best PR in trading. Borrowed from a 13th-century Italian mathematician, dressed up with the word "golden," and promoted relentlessly by educators selling courses, it has the aura of being mystically reliable. The reality is more mundane: it's a set of horizontal levels that occasionally act as support or resistance, mostly because enough traders watch them to make them self-fulfilling — and sometimes they don't, and the post-mortem retroactively finds a different Fib level that did.
What the levels actually are
After a directional price move (a swing from low to high, or high to low), the Fibonacci retracement levels mark fractions of that move where price might pause or reverse. The standard set:
- 0.236 (23.6%) — shallow pullback, barely a breath
- 0.382 (38.2%) — common first-pullback level in strong trends
- 0.5 (50%) — not a Fibonacci number; included because traders watch it
- 0.618 (61.8%) — the "golden ratio," deepest level most trends recover from
- 0.786 (78.6%) — last-chance retracement before the trend is invalidated
The 0.618 and 0.382 ratios come from the Fibonacci sequence: each number divided by the next gives ~0.618, each divided by the one two slots ahead gives ~0.382. The 0.236 is the next step in that chain. 0.5 has no mathematical claim — it's there because half is psychologically meaningful.
How to apply them
Pick a swing. Connect its low to its high (for an uptrend; the reverse for a downtrend). The retracement levels are computed automatically as fractions of that range, drawn as horizontal lines.
Swing low: $40,000
Swing high: $50,000
Range: $10,000
Level Ratio Price
───── ───── ──────────
0.000 0% $50,000 (the high)
0.236 23.6% $47,640
0.382 38.2% $46,180
0.500 50% $45,000
0.618 61.8% $43,820
0.786 78.6% $42,140
1.000 100% $40,000 (the low)After the high, if the trend continues, price often pulls back to one of these levels before resuming. The 0.382 and 0.618 are the most-watched. A pullback that holds at 0.618 and resumes the trend is the textbook "buying the dip" trade — and a real signal when it works.
When Fibs actually work
Two conditions, both required. First, the underlying swing must be impulsive — a clean directional move with high volume, not a noisy grind. Second, the market must be liquid enough that the levels are widely watched. Major liquid pairs (BTC, ETH, large-cap stocks, major FX) tend to respect Fib levels because thousands of traders place orders at them. Small-cap alts and illiquid markets do not — the levels exist on the chart, but there's no one to defend them.
Backtest data on liquid pairs consistently shows the 0.5 and 0.618 levels do produce slightly higher reaction rates than random horizontal levels — but not dramatically so. The edge is real but small (typically a 5-15% improvement in reaction probability over random levels), and it disappears in low-liquidity assets.
When they don't
Three failure modes. First, contrived swings. If you have to squint at the chart to decide which low to connect, the swing isn't real and the Fib levels are arbitrary. Second, low-liquidity markets. The level exists but no one's defending it. Third, regime breaks. A Fib level drawn from the 2021 swing is irrelevant in 2025; market structure has changed.
Encoding Fibs in rules
The honest approach to systematic Fib trading is to pre-compute the levels off a programmatically detected swing (not an eyeballed one), and trigger entries only when price actually touches the level during a confirmed trend. No after-the-fact justification — the rule fires or it doesn't.
strategy:
name: fib_pullback_long
indicators:
- { id: swing, kind: SwingDetector, lookback: 8 }
- { id: fib, kind: FibonacciLevels, swing_source: swing, levels: [0.5, 0.618] }
- { id: rsi, kind: RSI, period: 14 }
rules:
entry:
type: AND
children:
- { type: eq, left: swing.is_uptrend, right: 1 }
- { type: lt, left: bar.low, right: fib.level_618 }
- { type: gt, left: bar.close, right: fib.level_618 } # bounced
- { type: lt, left: rsi, right: 40 } # oversold
exit:
type: OR
children:
- { type: gt, left: bar.close, right: fib.level_236 } # took profit at shallow level
- { type: lt, left: bar.close, right: fib.level_786 } # trend invalidated
risk:
stop_loss: { kind: percent_below, ref: fib.level_786, mult: 0.5 }Backtest, walk-forward, and check whether the edge survives out-of-sample. If it does, the levels were doing real work. If not, the strategy was finding patterns in noise — and the Fib name was just helping you trust it.
Next steps
Fibs are most useful inside a clear trend — start with the trend definition post. For the broader question of whether any single indicator can give you an edge, see the overfitting post.
Pruébalo con tus datos
Cada concepto de arriba está implementado en la plataforma. Backtest, walk-forward, paper trading, luego live — el mismo conjunto de reglas en cada etapa.