Northmark
Forex
16 min read

Do Fibonacci + Elliott Wave + MACD + RSI Actually Win? 198,000 Backtests Across 38 Instruments

We tested the classic "combine four indicators for a high win rate" claim across 38 instruments, 3 timeframes and 2 brokers — 198,000 backtests. All 15 combinations came in under PF 1.0. We also show exactly where an "80% win rate" comes from.

Fact-checked · Last verified August 1, 2026

About the accuracy of information: The figures and regulatory information on this page were verified by the editorial team against each company's official website and the regulator's registry as of August 2026 update. Since bonus amounts, spreads, and regulatory status may change, our editorial team rechecks primary sources with each update. Read detailed disclaimer

Do Fibonacci + Elliott Wave + MACD + RSI Actually Win? 198,000 Backtests Across 38 Instruments

What this is

"Map the move with Fibonacci and Elliott Wave, then confirm with MACD and RSI, and your win rate goes up." You have seen this claim.

This is the record of testing it exhaustively against real price data — 198,000 tests, published in full.

Three conclusions up front.

  1. All 15 combinations lost. After transaction costs, the profit factor (gross profit ÷ gross loss) ranged 0.85–0.87. Every one below 1.0.
  2. Adding indicators did not help. Fibonacci alone: PF 0.853. All four stacked: PF 0.860. That is noise.
  3. An 80% win rate is easy to manufacture — and it is not the indicators. With a small take-profit and a wide stop, even completely random entries win 66.3% of the time.

How the test was built

  • Instruments: 21 FX pairs / 3 metals / 6 stock index CFDs / 3 energy / 2 crypto / 3 US stock CFDs — 38 in total
    • FX pairs: AUDCHF, AUDJPY, AUDNZD, AUDUSD, CADJPY, CHFJPY, EURAUD, EURCHF, EURGBP, EURJPY, EURNZD, EURUSD, GBPAUD, GBPCHF, GBPJPY, GBPUSD, NZDJPY, NZDUSD, USDCAD, USDCHF, USDJPY
    • metals: XAGUSD, XAUUSD, XPTUSD
    • stock index CFDs: DE40, JP225, UK100, US30, US500, USTEC
    • energy: NGAS, UKOIL, USOIL
    • crypto: BTCUSD, ETHUSD
    • US stock CFDs: AAPL, NVDA, TSLA
  • Timeframes: 1-hour, 4-hour, daily
  • Data: two brokers (Exness / XM) tested separately. A result that appears on only one is not accepted
  • Combinations: every on/off pattern of the four indicators = 15. Each swept across parameters and exit settings (1,100 configurations per instrument-timeframe)
  • Total tests: 198,000 (180 units × 1,100 configurations)

Not looking into the future (the part that matters most)

Fibonacci levels and Elliott wave counts both need a confirmed swing high or low. But you only know a bar was the high after price has turned and fallen far enough away from it.

Ignore that and a backtest lies effortlessly, because it trades at points that were only identifiable in hindsight. Most published Fibonacci and Elliott backtests get this wrong.

So every pivot here is stamped with the bar on which it was confirmed, and a signal can only fire on a later bar. Entry is always the next bar's open, and when a bar could have hit both target and stop, we record it as the stop — always resolving against ourselves.

Costs

A realistic round-trip spread is deducted from every single trade. As shown below, that assumption turned out to be too generous.

Pass criteria, fixed before running

Criteria invented after seeing results can prove anything. These five were fixed up front and never moved.

GateWhat it checksConfigs passing
G1enough trades, profitable after costs, PF ≥ 1.15399 / 400
G2at least 60% of years profitable392 / 400
G3holds on both brokers’ data246 / 400
G4multiple-testing correction (discount for being the best of 200k tries)0 / 400
G5still profitable at 2× costs400 / 400

Result 1: all 15 combinations

CombinationIndicatorsTradesWin ratePFPer trade
MACD12,617,61845.6%0.873-1.86 pips
RSI13,600,76146.8%0.872-1.86 pips
Elliott Wave11,598,85345.3%0.860-2.09 pips
Fibonacci18,241,96546.1%0.853-2.20 pips
MACD + RSI24,194,97045.6%0.873-1.84 pips
Fibonacci + MACD26,533,18945.6%0.868-1.97 pips
Elliott Wave + MACD21,832,63145.4%0.867-1.97 pips
Elliott Wave + RSI21,555,50645.3%0.861-2.07 pips
Fibonacci + RSI28,466,35945.5%0.857-2.14 pips
Fibonacci + Elliott Wave22,015,95345.2%0.855-2.17 pips
Elliott Wave + MACD + RSI31,779,07845.4%0.868-1.96 pips
Fibonacci + MACD + RSI35,956,71845.5%0.866-1.97 pips
Fibonacci + Elliott Wave + MACD32,210,08745.3%0.860-2.05 pips
Fibonacci + Elliott Wave + RSI31,957,89045.2%0.856-2.15 pips
Fibonacci + Elliott Wave + MACD + RSI42,154,63745.3%0.860-2.06 pips

How to read it: PF above 1.0 means profitable. All 15 rows are below.

Now look at the "per trade" column. Every combination lands between -1.8 and -2.2 pips — which is roughly the spread on these instruments. In other words the expectancy before costs is approximately zero. The indicators are neither right nor wrong; the strategies simply pay the spread.

Stacking indicators raises the share of configurations that show a profit, but that is not an edge. Tighter conditions mean fewer trades and wider dispersion. PF does not move — which is the tell.

Result 2: why "it worked in the backtest" happens

This is the core of the study.

Run 198,000 tests and the best one will look spectacular. The problem is that choosing the spectacular one is itself an untested act.

So: pick the winner using only the first 70% of the data, then measure that winner on the last 30% , which was never used for selection.

Selection rule (first half)First-half P/LFirst-half winSecond-half P/LSecond-half winUnits profitable in 2nd half
highest total profit+301,367 pips37.4%-37,784 pips32.6%31%
highest win rate+75,637 pips75.5%-11,099 pips65.8%39%
highest PF+107,342 pips60.6%-4,475 pips48.2%38%

All three selection rules flip from strongly positive to negative.

Look closely at the middle row. Select on win rate and the win rate largely survives — 75.5% in the first half, 65.8% in the second. And yet the P/L is -11,099 pips. The win rate persists; the money does not.

Only 31%–39% of instruments stayed profitable in the second half. A coin flip would give 50%, so selecting on past performance was worse than useless here.

Result 3: what an "80% win rate" actually is

The table below uses no indicators at all. Entries are placed completely at random. Only the exit settings change.

Exit settingTake profit / Stop (× ATR)Win rate from RANDOM entries
high-win-rate0.8 / 1.666.3%
reward-tilted1.5 / 1.039.9%
trend-following2.5 / 1.028.9%

Take profit at 0.8×ATR and stop at 1.6×ATR, and random entries win 66.3% of the time. Of course they do — small gains are easy to reach, large losses are hard to reach. The price is that one loss erases three or four wins.

Here are this study's highest win-rate configurations. Check the exit column: every single one is hiwin (TP 0.8 / SL 1.6).

InstrumentTFCombinationExitTradesWin rate95% CIPFTotal pips
USOILh1Fibonacci + RSIhiwin8482.1%72.6–88.9%1.72+254
GBPJPYh1Fibonacci + RSIhiwin11380.5%72.3–86.8%1.97+937
EURAUDh1Fibonacci + RSIhiwin8280.5%70.6–87.6%1.58+422
AUDCHFd1Fibonacci + MACDhiwin10680.2%71.6–86.7%1.82+2,365
CADJPYh1Fibonacci + MACD + RSIhiwin9479.8%70.6–86.7%1.85+471
AUDCHFd1Fibonacci + MACD + RSIhiwin10179.2%70.3–86.0%1.61+1,863
GBPAUDd1Fibonacci + MACDhiwin9679.2%70.0–86.1%1.55+4,082
GBPAUDd1Fibonacci + MACD + RSIhiwin9179.1%69.7–86.2%1.50+3,590
AAPLh4Fibonacci + Elliott Wave + RSIhiwin8179.0%68.9–86.5%1.44+306
UKOILd1Fibonacci + MACDhiwin10478.8%70.0–85.6%2.12+1,692
GBPCHFh4Fibonacci + Elliott Wave + MACDhiwin8078.8%68.6–86.3%1.63+963
GBPCHFh4Fibonacci + Elliott Wave + MACD + RSIhiwin8078.8%68.6–86.3%1.63+963
XPTUSDh1Fibonacci + Elliott Wave + MACDhiwin9878.6%69.5–85.5%1.86+449
NVDAh4Elliott Wave + RSIhiwin8878.4%68.7–85.7%1.37+217
XPTUSDh1Fibonacci + Elliott Wave + MACD + RSIhiwin9678.1%68.9–85.2%1.84+439
GBPCHFh4Fibonacci + MACD + RSIhiwin9178.0%68.5–85.3%1.48+488
GBPUSDd1Elliott Wave + MACD + RSIhiwin8677.9%68.0–85.4%1.91+3,252
UKOILd1Fibonacci + MACDhiwin11377.9%69.4–84.5%1.81+1,545
USDJPYh4Elliott Wave + MACDhiwin9077.8%68.2–85.1%1.70+972
AUDJPYh1Fibonacci + Elliott Wave + MACD + RSIhiwin9877.5%68.3–84.7%1.27+241

Of that 80% win rate, roughly 66.3% of it is exit geometry alone. The indicators add barely ten points — total pips stay small, and not one configuration in this table cleared the pass criteria (G2–G4 below).

Win rate is largely decided the moment you choose your target and stop distances. It is not a measure of whether a method works.

Result 4: the closest calls

In fairness, here are the configurations that survived longest. All still failed.

InstrumentTFDataCombinationTradesWin ratePFTotal pipsCorrected significance
GBPUSDh4xmFibonacci + RSI56535.2%1.35+6,5460.060
EURAUDh4xmFibonacci + MACD69233.5%1.17+4,8270.003
GBPUSDh4xmFibonacci + MACD66732.1%1.20+4,5090.005
GBPUSDh4xmFibonacci + RSI57645.7%1.27+4,2220.027
GBPUSDh4xmElliott Wave + MACD58947.0%1.25+4,0820.026
GBPUSDh4xmElliott Wave + MACD + RSI57547.1%1.25+4,0130.025
XAUUSDh4xmFibonacci + Elliott Wave56834.1%1.44+3,6760.044
XAUUSDh4xmFibonacci + Elliott Wave + RSI53234.4%1.45+3,4760.040
USDJPYh4xmFibonacci + MACD41833.7%1.29+3,2310.008
USDJPYh4xmFibonacci + MACD + RSI78944.6%1.19+3,2030.013
XAUUSDh4exnessElliott Wave + MACD + RSI15637.2%2.11+3,1310.007
XAUUSDh4exnessElliott Wave + MACD16036.3%2.07+3,0740.006
XAUUSDh4exnessFibonacci + Elliott Wave + RSI20441.7%1.69+2,9470.007
XAUUSDh4exnessFibonacci + MACD18535.1%1.72+2,8920.004
XAUUSDh4exnessElliott Wave + RSI17535.4%1.82+2,7850.003
XAUUSDh4exnessFibonacci + Elliott Wave22339.9%1.58+2,7830.004
XAUUSDh4exnessElliott Wave + RSI38035.0%1.33+2,7720.002
XAUUSDh4exnessElliott Wave18234.1%1.76+2,6710.002
USDJPYh4xmFibonacci + RSI60331.5%1.16+2,6140.001
XAUUSDh4xmElliott Wave + MACD + RSI82333.0%1.19+2,5520.003

They all died at the same gate: G4, the multiple-testing correction. That is the rightmost column — closer to 1.0 means "harder to explain as luck". Across all 198,000 tests the best value anywhere was 0.145, against a required 0.95.

The question that gate asks is: "if 200,000 people flip coins, should we call the longest heads streak a skilled flipper?" Discount for the number of attempts, and nothing was left.

"Maybe your implementation was just bad"

A fair challenge. Two answers.

The three Elliott rules really do bind

Elliott Wave has three rules no school disputes, and they are implemented here:

  1. Wave 2 never retraces beyond the start of wave 1
  2. Wave 3 is never the shortest of waves 1, 3 and 5
  3. Wave 4 never overlaps wave 1's price territory

Only 5.5–9.7% of detected swing sequences satisfy all three. Rule 3 does the most work, passing 10–18%. So this is not a detector that waved everything through — it filtered hard, and the survivors still lost.

"Count the waves properly and it works"

This is the central dispute, so let us be direct.

Discretionary wave counting cannot be tested at all. Show one chart to ten analysts and you get ten counts — and any of them can be revised afterwards ("that was actually wave b inside wave 4"). A claim that cannot be recorded as wrong when it is wrong will only ever accumulate a record of being right.

This study tested the mechanically definable part. In that range there was no edge. Whether the discretionary part holds one, this study cannot say — but whether to fund something unmeasurable is a separate decision.

Assumed costs vs. a real account

"Maybe the cost assumption was too harsh." It was the opposite.

PairCost assumed in this studyMeasured (median)Measured (p75)
USDJPY1.1 pips0.7 pips4.3 pips
EURUSD1.0 pips0.6 pips0.6 pips
EURJPY1.5 pips1.1 pips2.6 pips
GBPUSD1.3 pips0.7 pips0.7 pips

Measured on our own verification account (Exness Technologies Ltd / Exness-MT5Trial5), as spread percentiles with stale ticks excluded. Sampled at 2026-07-31T20:27:12+00:00.

This study assumed costs that favour the strategies. On a real account the results above get worse, not better.

What you can actually take away

  1. Do not judge a method by win rate. Win rate is manufacturable from target and stop distances. Look at profit factor and per-trade expectancy. Any pitch that leads with win rate but omits the stop distance deserves suspicion on that basis alone.
  2. "It backtested well" carries zero information on its own. Without knowing how many variants were tried, the number cannot be interpreted. Best-of-200,000 and only-one-tried can print the same figure and mean opposite things.
  3. Ask for a split-period result. If nobody shows a rule fixed on early data and then applied to later data, the number may be after-the-fact.
  4. Costs matter more than people expect. Gross expectancy here was near zero; essentially the entire loss was spread. The more you trade, the more broker choice weighs.
  5. Adding indicators does not fix it. "It fails because I need more confirmation" did not hold anywhere in this study.

The raw, pre-aggregation data

The tables above aggregate 198,000 tests. The pre-aggregation data — one row per configuration, for the 100,798 that produced trades — is also available.

What you get: trades, win rate, PF, max drawdown, per-year P/L and multiple-testing-corrected significance for every instrument × timeframe × combination × parameter set (CSV), plus the design notes for the harness (pivot confirmation, the three Elliott rules, exit simulation spec).

This is not a trade record. The conclusions, all 15 combination results, the pass criteria and the reason everything failed are published in full on this page. Nothing inconvenient is hidden behind the gate — the result here is a clean negative. The raw data is gated because it is the work that backs our testing.

It goes to readers who opened an account through this site (we only match your account number against our partner ledger; no email, no password).

How to receive it

Limitations, stated plainly

  • Bar-level simulation. The path within a single bar is not reconstructed (when both target and stop were reachable in one bar, we always record the stop — the assumption against ourselves).
  • Swap/rollover is not modelled. Longer-holding configurations would differ in practice.
  • These Fibonacci and Elliott implementations are one operational definition. Two swing-detection sensitivities were tested (1.5× and 3× ATR); that is not the only defensible choice.
  • Index and stock CFDs depend on exchange hours and gap heavily. They are not handled to the same precision as FX.
  • This does not prove the method can never work. It shows that under pre-registered conditions, across 200,000 variants, no edge distinguishable from chance was found.

Disclaimer

This is not investment advice. All figures are measured in our own verification environment and do not guarantee future results. Margin trading can produce losses exceeding your deposit. Trade at your own discretion.

Tags
#forex#fibonacci#elliott-wave#macd#rsi#backtest#verification#technical-analysis

Related articles