Reading ADX as bullish or bearish
It is a strength measure with no sign. A high reading during a collapse is exactly as high as one during a rally, which is why it is always paired with something directional.
A technical indicator measuring trend strength on a 0–100 scale without saying which way the trend runs. EAs use it as a regime filter — trend strategies wait for a high reading, mean-reversion strategies for a low one.
also: ADX, Average Directional Movement Index, DMI
Updated
A number that says how strongly the market is moving in one direction, without saying which direction. Low means it is going nowhere in particular; high means it is going somewhere, and the sign of it has to come from somewhere else.
Most EAs fail not because their entry logic is wrong but because it is right in one kind of market and wrong in another. ADX is the cheapest way to give a strategy an opinion about which kind it is in, which is why it appears as a filter in far more EAs than it appears as a signal.
| Setting | Typical value | Note |
|---|---|---|
| Period | 14 | The conventional default. Shorter periods react faster and cross the threshold more often, in both directions. |
| Trend threshold | 20–25 | Above this, trend-following logic is enabled. The exact value matters less than its stability across neighbours. |
| Range threshold | below 20 | Grid and mean-reversion EAs commonly require this before opening anything. |
| Strong trend | above 40 | Counter-trend and mean-reversion entries are usually blocked entirely here. |
| Timeframe read from | the entry timeframe or one above | Reading a higher timeframe gives a slower, steadier regime signal — at the cost of reacting later. |
One entry rule, two regime filters, opposite conditions. The rule does not change; what changes is when it is allowed to fire.
The measurable effect of a regime filter is usually a smaller drawdown rather than a larger profit — it removes losses rather than adding wins.
Calculation if (adx[1] < TrendThreshold) return; // trend EA does nothing in a range
Result A strategy that abstains in the conditions it was never good at
Judge a filter by what it removes. The right comparison is the same strategy with and without it, over the same window, read on drawdown as well as on net result.
| Range | What it means |
|---|---|
| ADX under 20 | No effective trend. Trend-following entries have their worst expectancy here, and breakout signals mostly fail. |
| ADX 20–40 | A real trend is in progress. The usual operating range for trend logic. |
| ADX above 40 | Strong trend, and often late in one. Trend entries still work; counter-trend and grid strategies are at their most dangerous. |
| Threshold tuned to the best backtest value | A fitted parameter. Check that neighbouring thresholds give similar results before believing it. |
The `/indicators` page for ADX covers the calculation and chart reading; this entry is about its use as an EA regime filter.
It is a strength measure with no sign. A high reading during a collapse is exactly as high as one during a rally, which is why it is always paired with something directional.
If ADX spends most of its time near the threshold, the filter toggles constantly and the strategy's behaviour is decided by noise. A threshold is useful when it is crossed rarely and decisively.
Every filter removes trades, including profitable ones. The test is whether it removes more loss than profit — which is a measurement, not an assumption.
ADX is smoothed twice by design. Shortening the period makes it cross the threshold more often in both directions, which usually adds whipsaw rather than earlier entries.