Almost every strategy I have ever run has one setting that quietly decides everything, and it is the one nobody talks about. Whether the market is trending or chopping. A breakout system prints money in a trend and bleeds in a range. A mean-reversion system does the exact opposite. The signal logic is usually fine. The problem is that people bolt it onto whatever regime happens to show up, and then wonder why the same code that worked in March gets shredded in April.
So the useful question is not which indicator is best. It is how do you put a reliable label on the current tape. Trending or choppy. And it turns out no single measure does this well, because they each fail in a different place. The trick is to use three that fail differently and only trust the label when they agree.
Three measures that see different things
The three I keep coming back to are ADX, Kaufman's Efficiency Ratio, and the slope of a short regression line. They sound like they measure the same thing. They do not.
ADX asks whether a trend is present at all, without caring which direction. It is built from directional movement, and it rises when price keeps making moves that stick and falls when moves keep getting reversed. A common rule of thumb is that ADX under roughly 20 means no real trend and over roughly 25 means a trend worth respecting. What ADX is genuinely good at is telling you the tape has directional energy. What it is bad at is timing. It lags, because it is a smoothed average of a smoothed thing, so by the time it confirms a strong trend the easy part is often over.
The Efficiency Ratio, sometimes called Kaufman's ER, measures path directness. You take the net move over a window and divide it by the sum of the absolute bar to bar moves over that same window. If price went straight from A to B, the numerator and denominator are close and the ratio is near one. If price wandered all over the place to end up near where it started, the denominator balloons and the ratio drops toward zero. ER is elegant because it is pure geometry. It does not lag much and it does not care about your parameters beyond the window length. What it cannot tell you is direction or magnitude. A slow grind up and a slow grind down can produce the same efficiency.
Slope is the plainest of the three. Fit a linear regression to the last N closes and look at the angle. Slope gives you direction and rate, which the other two throw away. On its own though it is easily fooled, because a regression line through a violent sideways range can still come out with a mild positive tilt that means nothing. Slope needs a second opinion on whether the line it drew through the data actually describes the data.
Where each one lies to you
The reason to combine them is that their blind spots do not overlap. A quick tour of the failure modes, because knowing where a measure lies is more useful than knowing where it works.
- ADX reads high during the tail end of a move that is about to roll over, so it can confirm a trend right as you should be thinking about the exit. It also stays elevated for a while after a trend dies, coasting on old momentum.
- ER can look strong inside a tight, orderly range if that range happens to drift cleanly in one direction for the window. Orderly is not the same as trending, and ER sometimes cannot tell the difference.
- Slope will happily report a trend in pure noise. Give it a choppy series with one slightly larger up bar and the fitted line tilts, and the number lies with a straight face.
Line those up and the pattern is obvious. When the market is genuinely trending, all three tend to agree. When it is chopping, at least one of them usually breaks ranks, and which one breaks ranks tells you something about how it is chopping.
Combining them into one label
Here is the workflow I actually use. It is deliberately boring, because the goal is a stable label, not a clever one.
- Compute ADX over your usual window, say 14 bars. Mark it trend-positive if it is above your threshold, around 22 to 25 depending on the asset and timeframe.
- Compute ER over a similar window. Mark it trend-positive if it is above roughly 0.3 to 0.4. Below that you are paying a lot of path for a little progress.
- Compute the regression slope over the same window and normalize it, ideally by dividing by the recent average true range so the number is comparable across assets. Mark it trend-positive if the absolute normalized slope clears a small floor, and record its sign for direction.
- Label the regime trending only when at least two of the three agree, and prefer all three for anything you are going to size up on. If ADX and ER both say trend and slope agrees on direction, that is a clean read. If only slope fires, treat it as chop until proven otherwise.
The two of three rule is the whole point. It costs you a few trends you would have caught by trusting a single fast measure, and in exchange it saves you from the far more expensive mistake of running a trend system through a range that merely looked directional for a moment. I would rather be late and right about the regime than early and wrong, because the regime call is the one that sets the sign on everything downstream.
A couple of practical notes. Keep the windows on all three roughly aligned so you are describing the same stretch of price, otherwise you are comparing an ADX from last week to a slope from yesterday. And do not fight the timeframe. A one hour chart can be choppy while the daily is cleanly trending, and both labels are correct at their own scale. If your strategy trades the hour, label the hour.
Turning the label into a rule
Once you have a stable trend-or-chop flag, the useful move is to let it gate strategy selection rather than filter individual trades. Run the breakout logic only when the flag says trending. Run the fade logic only when it says choppy. Sit out the ambiguous middle where two measures disagree, because the middle is where both styles get chopped up. In our market scorecards on Blockcircle I lean on exactly this kind of composite regime read rather than any single oscillator, because a single number always has a regime where it quietly stops meaning what you think it means.
None of this is predictive, and it is not supposed to be. It is a description of the tape you are standing on right now, built from three measures that disagree in useful ways. Get the description honest and most of your strategy problems turn out to be regime problems wearing a costume. Fix the label first, and a surprising number of the other issues stop showing up.