Fibonacci retracement levels: 401 depths tested on USD/JPY
Which Fibonacci retracement level actually holds? Every depth from 10% to 90%, measured across 6,266 USD/JPY swings: no canonical ratio beat the depth next door.
A Fibonacci retracement is a drawing tool. You anchor it to a swing low and a swing high, and it puts horizontal lines at 23.6%, 38.2%, 50%, 61.8% and 78.6% of that range. The premise is that pullbacks tend to stop at those lines.
So which of the five stops price most often? This article measures it.
Testing only those five would not answer the question, though — in a five-horse race something always wins. So every depth from 10.0% to 90.0% was measured in 0.2% steps, which is 401 levels, and the question becomes whether the canonical ratios sit on bumps in that curve. The data is USD/JPY over 2024 and 2025 on the 15-minute, hourly and four-hour charts: 6,266 automatically detected swings.
The answer first. Past the 30% mark, the share of pullbacks that ended at a level is flat between 3.5% and 4.4%. The five Fibonacci ratios beat the depths within three points of them by an average of minus 0.037 points — no different from the six non-Fibonacci controls at plus 0.046. Depth mattered. The ratio did not.
What a Fibonacci retracement measures
The arithmetic is one subtraction and one multiplication. With a swing low L and a swing high H, the level at depth d sits at H − (H − L) × d/100. The 61.8% line is the price 61.8% of the range below the high.
So the tool measures how far price has given back a recent one-way move, as a fraction — never as a distance. The swings this test detected had a median range of 38.4 pips on the 15-minute chart, 85.8 pips on the hourly and 178.7 pips on the four-hour, all for 2025. The same "61.8%" is a 24-pip pullback in one case and a 110-pip one in another.
There are only two knobs: which depth you read, and which two points the tool is anchored to. The second matters more. This test repeated everything with five different swing definitions — a bar has to beat 3, 5, 8, 13 or 21 bars on each side to count as a swing point — and the reach rate moves by more than ten points across those five. Choosing which wave to anchor to comes before choosing a number on it.
More than half of all retracements go all the way back
Before asking where pullbacks stop, it is worth counting how they end at all. Across the 6,266 swings:
| Ending | Swings | Share |
|---|---|---|
| Turned, and the swing extended in its original direction | 2,955 | 47.2% |
| Retraced fully to the swing's origin, erasing it | 3,295 | 52.6% |
| Still undecided after 200 bars | 16 | 0.3% |
A slim majority of swings are completely unwound. Any statement about where a pullback stops sits on top of that: more often than not, it does not stop.
How to draw Fibonacci retracement levels
Every platform ships the tool.
| Platform | Steps |
|---|---|
| MT4 / MT5 | Insert → Fibonacci → Retracement, then drag from the swing low to the swing high |
| TradingView | Pick Fib Retracement from the drawing tool list |
| Browser (Formiq) | In the drawing tools; on the backtest side the swing is detected automatically so a level can be used as a rule |
The only difference between drawing by hand and detecting automatically is who picks the two anchors. This article uses automatic detection: a bar that beats the N bars on each side of it becomes a swing point, highs and lows are forced to alternate, and the most recent leg between them is the swing.
That method has a confirmation lag. A bar is only known to be a swing high once N later bars have failed to exceed it, so the line cannot be drawn until N bars after the top. How much that costs is measured further down.
How this Fibonacci test was run
The settings, at the resolution a reader needs to reproduce them.
| Item | Value |
|---|---|
| Pair | USD/JPY |
| Period | 2025-01-01 to 2025-12-31, with 2024 run identically for comparison |
| Timeframes | M15 / H1 / H4 |
| Swing detection | A bar beating the 5 bars on each side is a swing point; highs and lows alternate; the latest leg is used. Repeated with 3, 8, 13 and 21 as a sensitivity check |
| Swings | 6,266 (M15 4,752 / H1 1,176 / H4 338, both years) |
| Depth grid | 10.0% to 90.0% in 0.2% steps = 401 levels. 23.6, 38.2, 50, 61.8 and 78.6 land on the grid exactly |
| Turn rate | Of the swings that reached a depth, the share whose pullback ended within 5 points of it. Also computed at 2.5 and 10 points |
| Trading test | 9 levels (5 Fibonacci, 4 controls) x 5 swing definitions x 2 triggers = 90 settings, per timeframe, per window |
| Stops and targets | None, except in the section that measures them |
| Spread | 0.3 pips, zero slippage, 0.1 lot, charged on both fills |
| Measurement | Run through Formiq's backtest engine; pips recomputed from each individual fill |
The four control depths — 30%, 45%, 70% and 80% — are the point of the design. If a Fibonacci ratio has an edge that belongs to the number rather than to the depth, it has to show up as a gap against the ordinary depth next door.
How often price reaches each Fibonacci level
Start with reach: the share of pullbacks that got that deep at all.
| Depth | Reached | Swings |
|---|---|---|
| 23.6% | 95.9% | 6,012 |
| 30% | 92.5% | 5,798 |
| 38.2% | 87.2% | 5,462 |
| 45% | 82.3% | 5,157 |
| 50% | 78.8% | 4,936 |
| 55% | 75.4% | 4,725 |
| 61.8% | 71.4% | 4,474 |
| 70% | 66.8% | 4,184 |
| 78.6% | 62.3% | 3,902 |
| 80% | 61.5% | 3,855 |
Perfectly monotonic. Deeper is rarer, and nothing bends at a Fibonacci ratio. The 23.6% line is touched on 19 swings out of 20; the 78.6% line is missed on two out of three.
That table alone explains something. Shallow levels feel like they work because price visits them constantly. Draw a line at 23.6% and it will be touched almost every time — and a touch is what gets remembered.
Where the pullback actually ended
Now divide by the reach count. For each depth, of the swings that got there, what share ended their pullback within five points of it? This number has no threshold to tune: it depends only on whether the level was reached and where the move stopped.
| Depth | Turn rate | 95% interval | Turned / reached |
|---|---|---|---|
| 20% | 2.05% | ±0.36 | 125 / 6,096 |
| 23.6% | 2.73% | ±0.41 | 164 / 6,012 |
| 30% | 3.55% | ±0.48 | 206 / 5,798 |
| 38.2% | 3.94% | ±0.52 | 215 / 5,462 |
| 45% | 4.29% | ±0.55 | 221 / 5,157 |
| 50% | 4.27% | ±0.56 | 211 / 4,936 |
| 55% | 3.92% | ±0.55 | 185 / 4,725 |
| 61.8% | 4.22% | ±0.59 | 189 / 4,474 |
| 70% | 3.78% | ±0.58 | 158 / 4,184 |
| 78.6% | 3.95% | ±0.61 | 154 / 3,902 |
| 80% | 3.76% | ±0.60 | 145 / 3,855 |
The highest is 45%, which is not a Fibonacci ratio. Then 50%, then 61.8%.
The ordering should not be trusted, though. Every depth from 38.2% down sits inside every other one's interval. The gap between 45% at 4.29% and 78.6% at 3.95% is 0.34 points, smaller than either interval. What this measurement supports is "past 38.2%, they are all about the same" — and nothing finer.
The only real structure is at the shallow end. 20% and 23.6% are clearly lower, at 2.05% and 2.73%. A pullback that has given back a fifth of the move has rarely finished.
The figure at the top is the whole curve. Plotted across all 401 depths it climbs from 10% to about 30% and then runs flat in a band between 3.5% and 4.4% all the way to 90%. None of the five red markers stands on a bump.
Widening the window that counts as "ended here" does not change it:
| Window | 23.6% | 38.2% | 50% | 61.8% | 78.6% |
|---|---|---|---|---|---|
| ±2.5 points | 1.1% | 2.3% | 2.0% | 2.1% | 1.9% |
| ±5 points | 2.7% | 3.9% | 4.3% | 4.2% | 3.9% |
| ±10 points | 6.0% | 8.4% | 8.0% | 8.0% | 7.8% |
Each Fibonacci ratio against the depth next door
If deeper levels turn more often, the depth effect has to be separated from the number. So each level's turn rate was compared against the mean of the depths within three points of it, excluding the 0.8 points either side — near-identical depth, different number.
Averaged over the twelve cells (three timeframes x two years x up and down legs):
| Level | Gap vs neighbours | Ahead in |
|---|---|---|
| 20% | −0.078 points | 6 / 12 |
| 23.6% (ratio) | −0.196 points | 5 / 12 |
| 30% | +0.160 points | 6 / 12 |
| 38.2% (ratio) | −0.077 points | 6 / 12 |
| 45% | +0.033 points | 5 / 12 |
| 50% (ratio) | −0.105 points | 7 / 12 |
| 55% | −0.071 points | 4 / 12 |
| 61.8% (ratio) | −0.040 points | 6 / 12 |
| 70% | +0.091 points | 8 / 12 |
| 78.6% (ratio) | +0.234 points | 7 / 12 |
| 80% | +0.144 points | 7 / 12 |
Pooled: the five Fibonacci ratios average minus 0.037 points and beat their neighbours in 31 of 60 cells. The six controls average plus 0.046 points and 36 of 72. Both are coin flips.
Put at its plainest: 61.8% turns 4.22% of the pullbacks that reach it, and 62.0% turns 4.30%. So does 61.0%, at 4.22%. The 38.2% level turns 3.94%, against 3.92% at 37.0%, 3.97% at 39.0% and 4.07% at 40.0%. Moving the line one notch sideways changes nothing.
Within this test, there is no evidence that a Fibonacci ratio stops price better than the depth beside it.
The shallow Fibonacci levels are gone before the line exists
One more number, and it may be the one that matters most in practice.
A swing high is confirmed five bars after the top, using this test's default. The line cannot be drawn before that. In those five bars, price has usually already gone through the shallow levels.
Share of swings whose level had already been traded through by the time the swing was confirmed, averaged over the twelve cells:
| Depth | Already passed |
|---|---|
| 23.6% | 94.1% |
| 30% | 88.8% |
| 38.2% | 81.3% |
| 45% | 73.4% |
| 50% | 67.9% |
| 61.8% | 52.5% |
| 70% | 43.4% |
| 78.6% | 35.0% |
| 80% | 34.0% |
On 94 swings in 100, the 23.6% level had already been passed by the time the swing could be drawn. At 38.2% it is 81.3%. Only at 61.8% does it fall to about half.
Drawing by hand does not escape this. A top is only recognisable as a top after price has left it. Planning to buy a shallow retracement assumes you can place the order before you know it is a retracement — and that is true whether a person or an algorithm picks the swing.
Does trading a Fibonacci level make money
Everything so far describes price. This section trades it. Two readings are commonly taught:
- Touch the level and take the original direction — buy the dip inside a rally
- Close through the level and take the break — sell when a rally's 61.8% gives way
The first bets that the level holds, the second that it does not. Same line, opposite rules. Nine depths x five swing definitions x two triggers were run across three timeframes and four windows.
Settings profitable in both 2024 and 2025, out of 45 per cell:
| Timeframe | Buy the level | Trade the break |
|---|---|---|
| M15 | 2 / 45 | 20 / 45 |
| H1 | 6 / 45 | 14 / 45 |
| H4 | 4 / 45 | 3 / 45 |
Buying the level barely survives. On the 15-minute chart only 2 of 45 did — 78.6% and 80%, both with the 21-bar swing definition. The medians were minus 1,095.7 pips in 2025 and minus 2,153.6 pips in 2024.
Trading the break kept 20 of 45 on the 15-minute chart, with medians of plus 631.8 pips in 2025 and plus 512.2 in 2024. That is the most stable cell in the study.
The ratios have no edge here either. For buying the level, the five Fibonacci depths returned a median of minus 742.4 pips over 150 settings against minus 668.5 for the four controls over 120. For the break, Fibonacci returned plus 118.4 against plus 222.4. The controls are slightly ahead in both.
Matched one against one — same timeframe, year, trigger and swing definition — the Fibonacci level beat the ordinary depth next to it in 143 comparisons out of 300.
Win rate and net pips point opposite ways
The pattern this series keeps finding shows up again. Settings with at least 20 trades:
| System | Mean win rate | Median net pips per year | Settings |
|---|---|---|---|
| Buy the level | 61.17% | −629.1 | 256 |
| Trade the break | 43.23% | +206.1 | 217 |
The system that wins 18 points more often finishes 835 pips behind.
The hourly default — 61.8% on the 5-bar swing — shows why. In 2025 buying the level took 292 trades at a 65.75% win rate for plus 921.1 pips, with an average win of 43.69 pips against an average loss of 74.68. Three wins are needed to cover one loss. The break trigger took 112 trades at 35.71%, with an average win of 110.23 against an average loss of 60.07 — the same relationship inverted.
Bollinger Bands and RSI produced the same split. Ranking levels by win rate reverses the order.
Carrying last year's best Fibonacci setting forward
Each year's winner, applied to the other year:
| Timeframe and trigger | Best of 2024 | 2024 result | Applied to 2025 | 2025 rank |
|---|---|---|---|---|
| M15 touch | 50%, 3-bar swing | +445.8 pips (2,491 trades) | −846.4 pips | 17 / 45 |
| M15 break | 80%, 3-bar swing | +3,922.6 pips (491 trades) | −1,410.7 pips | 43 / 45 |
| H1 touch | 30%, 21-bar swing | +1,909.5 pips (150 trades) | +320.2 pips | 13 / 45 |
| H1 break | 80%, 13-bar swing | +3,335.4 pips (35 trades) | −251.4 pips | 33 / 45 |
| H4 touch | 23.6%, 8-bar swing | +2,891.4 pips (94 trades) | +692.2 pips | 25 / 45 |
| H4 break | 23.6%, 21-bar swing | +3,775.7 pips (7 trades) | +148.7 pips | 12 / 45 |
The 15-minute break winner fell from first to 43rd of 45. The four-hour break winner took seven trades all year. A small trade count producing a spectacular number that vanishes the next year is the most reliable finding in this whole series.
Rank correlations are no better:
| Timeframe and trigger | 2024 vs 2025 | First vs second half of 2025 |
|---|---|---|
| M15 touch | 0.085 | 0.349 |
| M15 break | 0.208 | −0.281 |
| H1 touch | 0.375 | −0.085 |
| H1 break | 0.059 | −0.189 |
| H4 touch | −0.336 | −0.014 |
| H4 break | −0.284 | 0.154 |
Both four-hour rows are negative across the two years — last year's better depths were this year's worse ones.
Filters and stops on a Fibonacci entry
Applied to the hourly 61.8% level on the 5-bar swing. Trade count, then net pips.
| Condition | 2025 touch | 2024 touch | 2025 break | 2024 break |
|---|---|---|---|---|
| None | 292 · +921.1 | 255 · −1,846.5 | 112 · +84.6 | 101 · −622.8 |
| ADX ≥ 20 | 76 · +149.9 | 64 · +642.8 | 29 · −887.4 | 25 · +218.8 |
| ADX ≥ 25 | 74 · +3.1 | 69 · −713.9 | 28 · −536.8 | 25 · +282.6 |
| ADX ≥ 30 | 66 · −308.9 | 53 · −785.0 | 25 · −1,018.2 | 16 · +1,068.7 |
| London and New York | 250 · −58.4 | 223 · −2,132.8 | 82 · −515.6 | 79 · −1,194.6 |
| Tokyo | 185 · −611.2 | 178 · −811.2 | 58 · −108.4 | 49 · +176.8 |
The ADX filter points opposite ways in the two years. It takes the touch system from plus 921.1 to plus 3.1 in 2025 at ADX 25, and from minus 1,846.5 to plus 642.8 in 2024 at ADX 20. Either year on its own supports either conclusion.
The session filter was worse than no filter in three of the four columns, and London/New York was worse in all four.
Stops and targets:
| Exit rule | 2025 touch | 2024 touch | 2025 break | 2024 break |
|---|---|---|---|---|
| Opposite signal | 292 · +921.1 | 255 · −1,846.5 | 112 · +84.6 | 101 · −622.8 |
| Stop 30 / target 60 | 743 · −1,234.4 | 650 · −643.3 | 182 · +145.2 | 163 · +142.2 |
| Stop 50 / target 100 | 525 · +394.3 | 492 · −2,012.7 | 154 · +285.3 | 141 · −80.4 |
| Stop 100 / target 200 | 381 · +1,254.7 | 351 · −2,225.3 | 130 · +21.7 | 119 · +434.5 |
| 24-bar time exit | 382 · +923.2 | 338 · −1,865.9 | 162 · +303.3 | 145 · −28.6 |
A 30-pip stop with a 60-pip target was the only exit that was profitable in both years (+145.2 and +142.2), and only on the break trigger. Nothing rescued the touch trigger's 2024.
What a Fibonacci strategy pays in spread
Re-running 2025 on the hourly chart with only the spread changed:
| Spread | Touch 61.8% (292 trades) | Break 61.8% (112 trades) |
|---|---|---|
| 0.0 pips | +1,008.7 | +118.2 |
| 0.3 pips | +921.1 | +84.6 |
| 0.6 pips | +833.5 | +51.0 |
| 1.0 pips | +716.7 | +6.2 |
| 1.5 pips | +570.7 | −49.8 |
| 2.0 pips | +424.7 | −105.8 |
Going from 0 to 2.0 pips costs the touch system 584.0 pips (292 × 2.0) and the break system 224.0 (112 × 2.0). Both match trade count times spread exactly — a relationship that has held in all sixteen articles in this series.
The break system goes underwater somewhere past 1.0 pips. 112 trades a year is not many, but 118.2 pips of gross profit is not much either.
What this test supports
Only the findings that pointed the same way in both years:
- No Fibonacci ratio showed an effect of its own. Against the depths within three points, the five ratios averaged minus 0.037 points and led in 31 of 60 cells — the same as the six non-Fibonacci controls at plus 0.046 and 36 of 72
- Depth is what mattered. Turn rates are clearly low only at the shallow end (2.05% at 20%, 2.73% at 23.6%) and sit between 3.8% and 4.3% everywhere past 38.2%
- If one level has to be named, it is 45% — and the margin is inside the error. 45% at 4.29%, 50% at 4.27%, 61.8% at 4.22%, each with an interval near ±0.55
- Shallow levels are gone before a pullback is recognisable as one. 94.1% of swings had already passed 23.6% by the time the swing itself was confirmed
- Betting that the level holds raises the win rate and lowers the money. Buying the level averaged a 61.17% win rate for a median of minus 629.1 pips; trading the break averaged 43.23% for plus 206.1
"61.8% works because it is special" is not supported here. But deeper levels do turn more often than shallow ones, so this is not a result against using the tool as a depth scale.
The same high-win-rate, negative-return shape appears in Bollinger Bands and RSI. Moving average crosses ask the same question of an event rather than a level. If you would rather check this on your own pair and period, building the conditions without writing code is the route.
Limits of this test
- One pair, USD/JPY, and two years. Nothing here guarantees the same behaviour on another pair or another period
- The two years are very different. 2024 rose 1,632 pips within a 2,237-pip range; 2025 finished 56 pips lower within a 1,900-pip range. The collapse of the pullback system in 2024 owes a lot to that trend
- Swings are detected, not drawn. A person choosing anchors by hand may pick different waves, and this test cannot measure that choice. Five detection widths were run and the ordering of the turn rates held across all of them
- The 5-point window that counts as "ended here" is arbitrary. It was also computed at 2.5 and 10 points, and the relationship between levels did not change
- The turn rate asks whether the pullback finished at the level. A pause that resumed lower is not counted as a turn
- The 401 depths overlap, so neighbouring figures are not independent. Rankings and maxima cannot be read as 401 independent trials
- Entries and exits use bar closes. Real fills differ
- The spread is held at 0.3 pips throughout. Real spreads move with the session and with releases
- Volatility varies by hour, which the session filter results inherit
Questions people ask
- Which Fibonacci retracement level is the strongest?
- Measuring strength as the share of pullbacks that ended at the level, 45% came first at 4.29%, then 50% at 4.27%, 61.8% at 4.22%, 78.6% at 3.95% and 38.2% at 3.94%, over 6,266 USD/JPY swings. The top level is not a Fibonacci ratio. Every one of those figures carries a 95% interval of roughly plus or minus 0.55 points, so the ordering exists but the differences do not clear the measurement error.
- Is the 61.8% retracement level special?
- Not in this test. The 61.8% level turned 4.22% of the pullbacks that reached it; 62.0% turned 4.30% and 61.0% turned 4.22%. Compared against the depths within three points either side, the five Fibonacci ratios averaged minus 0.037 points and came out ahead in 31 of 60 cells. The six non-Fibonacci controls averaged plus 0.046 points and 36 of 72. Both are indistinguishable from zero.
- Does buying a Fibonacci retracement work?
- It won often and lost money. Across 256 settings with at least 20 trades, buying the level won 61.17% of trades and returned a median of minus 629.1 pips a year. Trading the break of the level instead won 43.23% and returned plus 206.1 pips. On the 15-minute chart, 2 of 45 pullback settings were profitable in both 2024 and 2025 against 20 of 45 for the break.
- How deep do retracements usually go?
- Of 6,266 swings, 52.6% were fully retraced back to their origin and 47.2% turned and extended the original move. The 23.6% level was reached on 95.9% of swings, 38.2% on 87.2%, 50% on 78.8%, 61.8% on 71.4% and 78.6% on 62.3%. Deeper levels are reached less often, but once reached they turn at almost the same rate.
- How do I add Fibonacci retracement in MT4?
- It ships with the platform. In MT4 and MT5 choose Insert, then Fibonacci, then Retracement, and drag from the swing low to the swing high. TradingView carries it in the drawing tool list. Formiq has it as a drawing tool and, on the backtest side, detects the swing automatically so a level can be used as a rule — which is how the numbers in this article were produced.
Formiq is a free browser-based FX terminal with replay practice and no-code backtesting. Open the chart or see what the free plan includes.