MACD Crossover Tested: 63% of 1,482 Signals Reversed Within the Hour

Key takeaways
- MACD 12/26/9 produced 1,482 signal-line crossings on 16,926 EURUSD 5-minute bars — roughly one an hour, split exactly 741 bullish and 741 bearish.
- 63.3% of them reversed within the hour and the median cross was cancelled by the opposite cross after 45 minutes. Only 0.5% survived four hours.
- Every fixed holding period lost money before costs. The best was one hour at -0.03 pips a trade; the worst was eight hours at -0.69. Add a 1-pip spread and the whole grid is between -1.03 and -1.69.
- Trading each cross until the opposite cross — the way MACD is actually described — made 1,481 trades, won 24.6% and lost 913 pips before spread, 2,394 after.
- One pocket was positive: crosses taken between 16:00 and 21:00 UTC made +2.76 pips over four hours and +4.09 over eight, on 73 and 58 trades.
MACD is on more charts than any other oscillator, and almost none of the people running it can tell you what it did last month. It is the default second window in MetaTrader, it appears in every beginner course, and the rule everybody quotes — buy when the MACD line crosses above the signal line — is old enough to have been written for daily bars on paper charts. I ran that exact rule over 16,926 real EURUSD 5-minute bars, June 3 to August 26, 2026, and then ran four variations of it to find out whether any version of MACD pays for its own spread on this pair.
How was the MACD crossover tested?

Same dataset, same measurement rules and the same 1-pip cost assumption as the rest of the tests on this site, so the numbers sit on one scale with my moving average crossover test and my RSI divergence test.
- Indicator: MACD 12/26/9 — the MT4 and MT5 default. The MACD line is EMA(12) minus EMA(26); the signal line is EMA(9) of that; the histogram is the gap between them.
- Signal: the MACD line closing above the signal line is a buy, closing below is a sell. Taken on the close of the bar where it happens, never before.
- Exit: a fixed number of bars, measured in pips in the signal direction. No stop and no target, so the number describes the signal rather than a money-management scheme wrapped around it.
- Overlap rule: new signals are ignored while a trade is open, so no move is counted twice. This is why the trade counts fall as the holding period grows.
- Cost: 1 pip a round turn, which is roughly what EURUSD costs in liquid hours according to my spread and swap measurements.
How often does the MACD cross?

| Frequency on 16,926 bars | Value |
|---|---|
| Signal-line crossings | 1,482 |
| Bullish / bearish | 741 / 741 |
| One crossing every | 57 minutes |
| Zero-line crossings | 677 |
| Bars with MACD above zero | 48.8% |
The split is 741 against 741, to the signal. That is not a coincidence and it is the first thing worth understanding about this indicator: the MACD line is a difference between two averages, so it must cross its own signal line in one direction exactly as often as the other. Whatever edge MACD has, it cannot come from pointing up more often than down.
Roughly one signal an hour is also a lot. For comparison, the same bars produced 104 RSI divergences and 329 Ichimoku cloud breakouts. MACD is not a rare-setup indicator; it is a constant stream of opinions.
What did the standard crossover pay?
| Hold | Trades | Win rate | Avg pips | Total | After 1-pip cost |
|---|---|---|---|---|---|
| 30 minutes | 1,051 | 38.3% | -0.12 | -127.1 | -1,178.1 |
| 1 hour | 800 | 41.0% | -0.03 | -25.3 | -825.3 |
| 2 hours | 503 | 41.6% | -0.04 | -21.5 | -524.5 |
| 4 hours | 294 | 44.2% | -0.25 | -73.3 | -367.3 |
| 8 hours | 160 | 45.6% | -0.69 | -110.3 | -270.3 |
| 12 hours | 109 | 43.1% | -0.21 | -22.9 | -131.9 |
Six holding periods, six negative averages. Not catastrophically negative — the one-hour hold gives back three hundredths of a pip a trade, which is as close to nothing as a result gets — but never positive, and the win rate never reaches 46%. This is a signal that is genuinely uninformative rather than actively wrong, and that distinction matters, because an actively wrong signal could be traded backwards. This one cannot.
Notice the shape as the hold lengthens: the win rate improves from 38.3% to 45.6% while the average pip result gets worse. Longer holds win more often and lose more per loss. That is the signature of a rule catching a lot of small mean reversions and occasionally standing in front of a real move.
How long does a MACD signal actually last?
This is the number that explains the table above, and it is the one I did not expect to be so extreme.
| Life of a crossing, until the opposite crossing | Value |
|---|---|
| Crossings measured | 1,482 |
| Median life | 45 minutes (9 bars) |
| Average life | 57 minutes |
| Reversed within 30 minutes | 38.8% |
| Reversed within 1 hour | 63.3% |
| Lasted 4 hours or more | 0.5% |
Nearly two thirds of MACD signals are cancelled by the indicator itself inside sixty minutes, and seven crossings in a thousand survive a normal London session. The chart pattern everybody has in their head — MACD crosses up, and the histogram builds for hours while price trends — happens about once every two hundred signals on a 5-minute chart.
So I tested the honest version of that rule: enter at every cross, exit at the opposite cross, always in the market.
| Always-in, exit on the opposite cross | Value |
|---|---|
| Trades | 1,481 |
| Win rate | 24.6% |
| Average hold | 54 minutes |
| Average result | -0.62 pips |
| Total before cost | -913.0 pips |
| Total after 1-pip cost | -2,394.0 pips |
A 24.6% win rate is not a typo. Three quarters of always-in MACD trades close at a loss, and the system stays only slightly negative overall because the quarter that wins runs further. Then the spread arrives 1,481 times and turns a 913-pip loss into a 2,394-pip one. That is the real cost of an indicator that changes its mind every 45 minutes.
Do the other two MACD rules do any better?
MACD gives you three signals, not one, so I ran all three on identical bars.
| Rule, 4-hour hold | Trades | Win rate | Avg pips | After cost |
|---|---|---|---|---|
| Signal-line cross | 294 | 44.2% | -0.25 | -1.25 |
| Zero-line cross | 223 | 48.4% | -0.36 | -1.36 |
| Histogram turn | 329 | 49.5% | -0.16 | -1.16 |
The histogram turn — entering the moment the histogram bars stop shrinking, which is the earliest thing MACD can tell you — has the best win rate at 49.5% and the smallest loss. It is still a loss. The zero-line cross deserves its own article, because it is not really a MACD signal at all: it is bar-for-bar the same event as an EMA 12/26 crossover, all 677 of them, which I go through in my MACD against moving average crossover comparison.
Does a trend filter rescue it?
| Filter on the signal-line cross, 4-hour hold | Trades | Win rate | Avg pips |
|---|---|---|---|
| No filter | 294 | 44.2% | -0.25 |
| Only crosses on the trend side of zero | 222 | 43.2% | -0.87 |
| Only crosses against the zero line | 281 | 48.0% | -0.38 |
| Only crosses in the direction of EMA 200 | 250 | 40.8% | -1.19 |
Every filter I tried made it worse, and the most popular one made it worst of all. Taking only the crosses that agree with the 200-period EMA cut the average from -0.25 to -1.19 pips and dropped the win rate below 41%. The counter-trend version — buying when MACD crosses up while still below zero — beat the trend-following version on both counts. On a 5-minute chart the trend filter is throwing away the mean-reversion trades that were carrying the rule, which is the same effect my ADX above 25 test found from a different direction.
Where does MACD work at all?
| Signal-line cross by session, 4-hour hold | Trades | Win rate | Avg pips | After cost |
|---|---|---|---|---|
| Asia, 00:00-07:00 UTC | 113 | 43.4% | -0.88 | -1.88 |
| London, 07:00-12:00 UTC | 77 | 42.9% | -0.77 | -1.77 |
| Overlap, 12:00-16:00 UTC | 59 | 40.7% | +1.97 | +0.97 |
| US, 16:00-21:00 UTC | 73 | 47.9% | +2.76 | +1.76 |
The one place MACD paid was the American afternoon. Crosses taken between 16:00 and 21:00 UTC made +2.05 pips at two hours, +2.76 at four and +4.09 at eight, and all three clear a 1-pip spread. The overlap window is positive too, on a 40.7% win rate — a few large winners doing the work.
I am reporting this because it is in the data, not because I would trade it. Seventy-three trades is a small sample, the win rate in the overlap window is under 41%, and the same rule loses in the two sessions with the most volume. It fits what my best hours to trade EURUSD study found about the afternoon being the cleanest directional window on this pair, which makes it slightly more believable — but a result that only exists in a five-hour slice is a hypothesis, not a system.
Is the result stable across the sample?
| Half of the data, 4-hour hold | Trades | Win rate | Avg pips | Total |
|---|---|---|---|---|
| June to mid-July | 146 | 41.1% | -1.71 | -249.0 |
| Mid-July to August | 147 | 49.0% | +1.30 | +191.4 |
Two halves with almost the same number of trades and a three-pip swing in the average. Whatever MACD is measuring, it was worth having in the second half of the summer and expensive in the first. Any MACD result you read — mine included — is one draw from a distribution this wide, which is exactly the problem my in-sample against out-of-sample test was built to show.
How far does a MACD trade run for and against you?
| Excursion within four hours of the cross | Value |
|---|---|
| Trades measured | 1,479 |
| Average best move in your favour | +9.2 pips |
| Median best move in your favour | +6.5 pips |
| Average worst move against you | -10.1 pips |
| Median worst move against you | -7.8 pips |
| Went 10+ pips into profit at some point | 32.3% |
| Went 10+ pips underwater at some point | 37.4% |
The adverse excursion is larger than the favourable one at both the average and the median. More MACD trades dip ten pips underwater than ever show ten pips of profit. A stop tight enough to make the losses small — five pips, say — sits inside the median adverse move and would close most trades before they resolve, which is the boundary my stop distance test and my fixed against ATR stop comparison both landed on from other angles.
What I would actually do with this
- Do not trade the crossover on its own on M5. Every hold, every filter and the always-in version were negative before spread on this data.
- Stop expecting the signal to last. The median crossing is dead in 45 minutes. Any plan that assumes you will ride the histogram for hours is describing 0.5% of cases.
- Skip the trend filter. Both versions I tested — zero line and EMA 200 — made the result worse, the EMA 200 badly.
- If you use MACD at all, use it as context. It tells you which side of its own averages price sits on. That is a description, not a trigger.
- Treat the American afternoon result as a question. +2.76 pips over 73 trades is worth investigating on more data, not worth funding.
Frequently asked questions
Does the MACD crossover strategy actually work?
Not on EURUSD 5-minute bars. Across 16,926 bars the 12/26/9 signal-line cross produced 1,482 signals and lost money at every holding period from 30 minutes to 12 hours, before any spread. The best single number was -0.03 pips a trade at a one-hour hold, which becomes -1.03 once you pay a typical spread.
Why does MACD give so many false signals?
Because the MACD line and its signal line are close together most of the time, so small moves flip their order. On this data 38.8% of crossings reversed within 30 minutes and 63.3% within an hour, with a median life of 45 minutes.
What is the best MACD holding time?
One hour was the least bad at -0.03 pips, and four to eight hours had the better win rates at 44.2% and 45.6%. None of them were profitable, so this is a ranking of losses rather than a recommendation.
Is the histogram better than the crossover?
Slightly. Entering on the histogram turn gave a 49.5% win rate against 44.2% for the signal-line cross at a four-hour hold, and a smaller average loss of -0.16 pips against -0.25. It fires more often, 329 trades against 294, so the total damage after spread was similar.
Should I add a 200 EMA filter to MACD?
It hurt here. Taking only crosses that agreed with the 200-period EMA dropped the win rate from 44.2% to 40.8% and the average from -0.25 to -1.19 pips. The crosses that disagreed with the zero line did better than the ones that agreed with it.
Which MACD settings tested best?
Not the default. In a nine-way grid on the same bars, 12/26/9 finished sixth; 3/10/16 and 8/17/9 were the two best and still did not clear the spread. The full grid and the MT4 setup are in my MACD settings guide for MT4.
What data was this run on?
16,926 EURUSD 5-minute bars, June 3 to August 26, 2026 — the same set behind my stochastic overbought study, my Parabolic SAR test and my Ichimoku cloud breakout test.
Want a clean indicator to install right now?
It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

