All posts
PublishedByEvidence recordTrend filtersADXMoving average slopeFalse signalsBacktestUSDJPY

Do Trend Filters Remove False Signals? 1,596 Backtests

Only trade when ADX is above 25. Only buy when the average is rising. Both run on the 38 settings this site has published, against dropping trades at random.

"The signal fired, but the market was ranging, so it failed. Read ADX, and only trade when it is above 25." Almost every article about removing false signals is built on that sentence.

This series has tried the ADX filter on three indicators, GMMA, CCI and the Alligator, and lost pips on all four attempts. Three indicators going wrong does not answer whether the filter works anywhere else.

So the same six filters went onto all 38 settings this site has published, across three timeframes and two years. With the unfiltered runs, that is 1,596 backtests.

The three ADX levels lowered the count of settings profitable in both 2024 and 2025 on every timeframe. All nine cells. The 15-minute chart falls from 13 settings to 6, 4 and 7; the hourly from 27 to 18, 10 and 12; the 4-hour from 16 to 14, 11 and 12.

The trades were measured the same way. Whether a filter removed the losing ones was tested against removing the same number at random. Of 1,348 comparisons, 72 fell outside the 95% range, and chance alone puts about 67 outside.

0102030202530DI5020015-min202530DI50200Hourly202530DI502004-hoursettings profitable in both years, of 38
fewer than with no filtermore than with no filterdashed line = no filter, out of 38
Settings profitable in both 2024 and 2025, out of the 38 published settings. Bars are ADX at 20, 25 and 30, the DI comparison, and the 50- and 200-bar average slopes. Thirteen of the eighteen bars fall below the unfiltered line, and all nine ADX bars do.

ADX and moving-average slope: what the settings mean

Both filters come from indicators already in the condition list.

ADX draws three lines in a panel below price: ADX itself for trend strength, +DI for upward pressure and -DI for downward pressure. The scale runs 0 to 100, and a higher reading is read as a stronger trend. MT4 draws no level lines by default, so the 20 and 25 lines have to be added by hand.

Moving-average slope draws one ordinary moving average on the price chart and reads only whether the line is higher or lower than it was a few bars ago. The line is visible; the rising-or-falling judgement is not drawn anywhere.

ConditionParameterDefaultWhat it does
ADXPeriod14How many bars the calculation reads
ADXMinimum level25No trade unless ADX is at or above this
ADXReadingLevel onlyLevel only, DI comparison, or DI cross
MA slopePeriod20Length of the average being drawn
MA slopeMethodSMASimple, exponential, weighted and so on
MA slopeLookback5How many bars back the comparison runs
MA slopeDirectionEitherBuy only when rising, sell only when falling, or both

How each one behaves as a filter

Set the ADX reading to level only, and bars at or above the minimum level allow a buy and a sell, while bars below allow neither. That is what filtering on trend strength means.

The DI comparison allows only buys while +DI is above -DI, and only sells while it is below. The moving-average slope set to either direction works the same way: rising allows buys, falling allows sells. Neither of those filters on strength. They filter on direction.

Put the filter in the condition list beside the rule already there, set the match to all conditions, and only bars where both point the same way survive.

How many bars each filter throws away

Before judging a filter, count what it can remove. A condition true on most bars removes nothing.

Share of 2025 bars where each filter allowed a buy:

Filter15-minuteHourly4-hour
ADX 20 or more61.22%66.33%67.20%
ADX 25 or more40.51%47.24%37.58%
ADX 30 or more25.15%31.40%17.58%
+DI above -DI49.85%45.87%41.24%
50-bar average rising50.09%48.35%55.16%
200-bar average rising48.50%54.61%60.81%

The ADX levels behave as expected. At 25 they admit 37.58% to 47.24% of bars, and at 30 that falls to between 17.58% and 31.40%.

The three direction filters discard no bars whatsoever. Either +DI is above -DI or it is below; the average is either rising or falling. The percentages here are the share allowing a buy, and every remaining bar allows a sell. What they remove is the combination of wanting to buy on a falling bar.

What actually follows a high ADX reading

The premise is that a strong trend continues. Every 2025 bar was sorted into four ADX bands and measured against the close ten bars later.

TimeframeADXBarsMove over ten barsIn ATRDirection continued
15-minuteUnder 209,65419.81 pips1.8650.58%
15-minuteOver 306,26420.92 pips1.6548.77%
HourlyUnder 202,09642.45 pips1.9150.52%
HourlyOver 301,94744.52 pips1.7547.82%
4-hourUnder 2051982.66 pips1.8151.64%
4-hourOver 3028395.61 pips1.8443.82%

"Direction continued" is the share of bars where the move over the five bars into the bar and the move over the ten bars out of it carried the same sign.

The move does grow a little, from 19.81 to 20.92 pips on the 15-minute chart and from 82.66 to 95.61 on the 4-hour. Divide the same distance by the bar's own ATR and the 15-minute figure falls from 1.86 to 1.65 and the hourly from 1.91 to 1.75, while the 4-hour rises from 1.81 to 1.84. A bar with a high ADX reading is itself a larger bar, so the extra pips are mostly the extra bar size.

Direction is the clearer answer. Across two years and three timeframes, all 24 bands landed between 43.82% and 53.45%. Readings over 30 continued more often than readings under 20 in one of the six timeframe-and-year cells: the hourly chart in 2024, at 53.45% against 51.16%.

How this was measured

ItemValue
InstrumentUSD/JPY
Timeframes15-minute, 1-hour, 4-hour
Period1 January 2024 to 31 December 2025
Base settingsThe 38 settings published in these articles
FiltersADX 20, 25 and 30 or more; +DI above -DI; 50-bar and 200-bar averages rising
Where the filter goesEntry rules only; exits stay as published
Control1,000 random draws of the filtered count from the unfiltered trades
Runs38 settings x 7 conditions x 3 timeframes x 2 years = 1,596
Spread0.3 pips, fixed
Lot size0.1
FillClose of the signal bar

The base settings were not chosen for this article. Each published article carries a "run this setting" button, and those are the rules used here. At the time of this run there were 43 of those buttons, and three are left out. The DMI/ADX article already uses ADX, and one rule set holds one ADX configuration. The morning-star and evening-star article joins its two conditions with OR, so a third condition would widen the rule rather than narrow it. This article's own button is a setting with a filter already on it, so it belongs to the results rather than to the inputs. Of the remaining 40, the three Bollinger articles publish identical rules (period 20, 2σ, breakout), which leaves 38.

Exits were not touched. The advice is about entries, and changing the exit at the same time would measure the exit.

The same six filters on 38 settings

Settings that ended the year with positive pips, out of 38:

Filter15-min 2025Hourly 20254-hour 202515-min 2024Hourly 20244-hour 2024
None202920173431
ADX 20 or more112622162727
ADX 25 or more112223141923
ADX 30 or more162021142524
+DI above -DI212413253233
50-bar average rising202818343035
200-bar average rising221428213531

Read one year at a time and the answer changes cell by cell. ADX 25 took the 4-hour chart from 20 settings to 23 in 2025, and the 50-bar slope took the 15-minute chart from 17 to 34 in 2024.

Asking for both years at once takes most of that swing out. Settings profitable in 2024 and in 2025:

Filter15-minuteHourly4-hour
None132716
ADX 20 or more61814
ADX 25 or more41011
ADX 30 or more71212
+DI above -DI152212
50-bar average rising182317
200-bar average rising161321

Every one of the nine ADX cells is below the unfiltered count. The largest drop is the hourly chart at ADX 25, from 27 settings to 10.

The direction filters land on both sides. The 50-bar slope raised the count on the 15-minute chart (13 to 18) and the 4-hour (16 to 17) and lowered it on the hourly (27 to 23). The 200-bar slope also raised the 15-minute and 4-hour counts and lowered the hourly one, from 27 to 13.

The win rate rises and the pips fall

One setting, in detail. The MACD 12/26/9 signal-line crossover from that article, with ADX 25 added, on the hourly chart:

YearConditionTradesWin ratePips per tradeAnnual pips
2025No filter45138.58%+4.93+2,223.6
2025ADX 25 or more20440.69%+2.21+451.0
2024No filter42339.95%+7.45+3,152.1
2024ADX 25 or more16846.43%+8.03+1,349.2

The win rate rose in both years, by 2.11 points in 2025 and 6.48 points in 2024. The annual pips fell in both, by 1,772.6 and 1,802.9.

In 2024 even the pips per trade improved, from 7.45 to 8.03. The year still lost roughly 1,800 pips because the trade count went from 423 to 168. Gaining 0.58 pips on each of 168 trades does not replace the 255 trades that are gone.

Were the removed trades the losing ones

A filter that works removes the losers, so the trades it keeps should beat the full set on pips per trade.

Take the same MACD run. On the hourly chart in 2025 it took 451 trades unfiltered; 204 of them were on bars where ADX was at 25 or above, and the other 247 are what the filter removes.

TradesCountWin ratePips per trade
All of them, unfiltered45138.58%+4.93
Kept by ADX 25 or more20440.69%+2.21
Removed by ADX 25 or more24736.84%+7.18

The 247 removed trades made +7.18 pips each and the 204 kept ones made +2.21. The kept side has the higher win rate and the removed side has the money.

Removing trades moves that average by itself, though: a smaller sample wanders further from its own mean. So the comparison is against removing the same number at random. Drawing 204 of those 451 a thousand times puts pips per trade between -1.38 and +11.55, and the filter's +2.21 sits inside. Win rate lands between 34.31% and 43.63%, and 40.69% sits inside that too.

38 settings times six filters times three timeframes times two years is 1,368 comparisons. In 20 of them the filter kept everything or nothing, leaving nothing to draw against. The other 1,348:

FilterComparedKept beat the full setOutside the rangeOf those, above
ADX 20 or more22595111
ADX 25 or more22792158
ADX 30 or more2261031513
+DI above -DI21512084
50-bar average rising2271472119
200-bar average rising22814922
Total1,3487067247

Pips per trade beat the full set in 706 comparisons, 52.4%. A coin lands near the same number.

72 comparisons fell outside the range. The range covers the middle 95%, so sorting nothing at all still puts about 67 outside. Repeating the measurement on win rate instead of pips gives 67 outside, 44 above and 23 below.

These 1,348 comparisons are not independent of one another: the same trades are cut six ways, and the timeframes and years overlap. So 72 against 67 is not a significance test. It says the sorting a filter does is not large enough to separate from chance.

The settings a filter helped were the ones already losing

If the filters sort nothing, something still moved the annual results. The 38 settings were ranked by their unfiltered pips and split at the median. For each setting, the best of the six filters was chosen after seeing the year. A filter that cannot help with hindsight cannot help at all.

Timeframe and yearBottom 19 improvedMedian gainTop 19 improvedMedian gain
15-minute 202519+891.6 pips10+35.9 pips
15-minute 202419+2,228.2 pips18+976.4 pips
Hourly 202517+413.1 pips1-462.1 pips
Hourly 202417+519.2 pips8-177.4 pips
4-hour 202519+1,012.5 pips17+248.7 pips
4-hour 202419+911.2 pips9-66.3 pips

The 19 settings that lost money unfiltered improved in 17 to 19 cases in all six timeframe-and-year cells. The 19 that made money improved in 1 to 18.

The hourly chart in 2025 shows it plainly. The largest gain went to the fair value gap setting, which moved from -3,491.7 pips over 174 trades to -2,230.8 over 83 with ADX 30, an improvement of 1,260.9 pips that is still a losing year. The largest loss went to WaveTrend, which fell from +3,283.4 pips over 867 trades to +1,955.5 over 436 even with the best of the six chosen afterwards.

A filter lifted the settings that were losing and pushed down the settings that were making money. A filter that sorted trades would work the same way on either half. The count that left the random range said the same thing from a different angle.

Does last year's filter work this year

Every article in this series takes the best choice from one year and applies it to the other. The filter with the highest 2024 pips was picked for each setting, then run in 2025.

TimeframeSettings where 2024 preferred no filterBeat no filter in 2025Ended 2025 profitable
15-minute1 of 3819 of 3818 of 38
Hourly13 of 385 of 3824 of 38
4-hour10 of 3814 of 3819 of 38

The first column is the part worth pausing on: looking only at 2024, some filter appeared to help in 90 of 114 settings.

Carried into 2025, that choice beat leaving the filter off in 38 of 114. On the hourly chart it was 5 of 38.

Why the direction filters only worked in 2024

One cell does stand clear. On the 15-minute chart in 2024, the 50-bar slope improved 36 of 38 settings and moved the median year from -205.9 pips to +1,157.3, the largest improvement count among the 36 combinations of six filters, three timeframes and two years.

USD/JPY closed 2024 at 157.1975 against 140.8655 at the start, a rise of 1,633.2 pips on the 15-minute closes. In 2025 it went from 157.2375 to 156.67, a fall of 56.8 pips.

"Buy only while the 50-bar average is rising" lets buys through and blocks sells in a year that rose. The same filter on the same chart in 2025 improved 20 settings and moved the median from +87.1 pips to +32.3.

What a direction filter does is not avoid false signals. It leans the rule toward the side price travelled that year, which is useful to anyone who already knows which side that is, and those people have no need of the filter.

Notes on scope

  • USD/JPY only, 2024 and 2025, on the 15-minute, 1-hour and 4-hour charts
  • Fills at the close, a fixed 0.3 pip spread, 0.1 lots, no slippage
  • Two of the 38 base settings trade identically: the MACD article's 12/26/9 signal cross and the OsMA article's 12/26/9 matched on trade count and pips in all 42 runs, because OsMA is the distance between the MACD line and its signal, so its zero cross is that crossing
  • The random ranges come from a fixed seed, so the percentiles reproduce exactly

Questions people ask

Is the ADX filter useless?
As a way to remove entries it did not work here. All nine combinations of three ADX levels and three timeframes lowered the number of settings profitable in both 2024 and 2025. It does cut the trade count reliably, so it has a use where a setting is losing to spread. The 4-hour chart in 2025 is the one bright spot: ADX 25 improved 29 of 38 settings. The same filter on the same chart in 2024 improved 10.
Why does the win rate rise while the pips fall?
Filtering removes trades, and a smaller sample moves away from its own average on its own. Measured against dropping the same count at random, the win rate left the 95% range in 67 of 1,348 comparisons, which is what chance produces. On the 4-hour chart in 2025, ADX 30 raises the median win rate from 42.05% to 44.00% and cuts the trade count from 4,660 to 847.
What about filtering on the slope of a moving average?
On the 15-minute chart in 2024 the 50-bar slope improved 36 of 38 settings and moved the median year from -205.9 to +1,157.3 pips. USD/JPY rose 1,633.2 pips that year. The same filter on the same chart in 2025 improved 20 settings and moved the median from +87.1 to +32.3 pips.
If no filter helps, what should change instead?
The result here is that entries removed after the fact are not only the losing ones. Cutting the trade count does cut the round-trip spread, so a setting trading thousands of times a year still benefits. On the hourly chart in 2025 the 38 settings took 17,528 trades unfiltered and 7,860 with ADX above 25.
Can I run these filters in Formiq?
Yes. Add ADX or the moving-average slope to the condition list beside the rule you already have and set the match to all conditions. Only bars where both point the same way are left. All 1,596 runs here were built that way.

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.