Kaufman efficiency ratio: formula, 0-to-1 reading and a trend test
The Kaufman efficiency ratio divides the net price change over N bars by the total bar-to-bar distance price travelled in those bars. Near 1 the move was a straight line, near 0 it went nowhere. It measures how clean the recent move was, not whether it continues, so any threshold is a setting to test on your own market.
By Soren Huang · Published · updated · Editorial policy
Contents
- What is the Kaufman efficiency ratio and how do you calculate it?
- How high must the efficiency ratio be before a trend counts as clean?
- How does the efficiency ratio drive the Kaufman adaptive moving average?
- Can the efficiency ratio be used as a regime filter?
- What does a backtest of an efficiency-ratio rule on ES show?
- Which mistakes make an efficiency-ratio test misleading?
- Frequently asked questions
- References
What is the Kaufman efficiency ratio and how do you calculate it?
The Kaufman efficiency ratio is the net price change over N bars divided by the total distance price travelled bar to bar in those same N bars. It runs from 0 to 1: near 1, price moved almost in a straight line; near 0, it went nowhere. Read it as a gauge of how clean the recent move was, and test any threshold before trusting it.
Think of two drivers who both go from one town to another, 10 kilometres apart in a straight line. One takes the highway and the odometer shows 12 kilometres. The other takes winding back roads and the odometer shows 40 kilometres. Both arrived, but the first trip was far more efficient. The efficiency ratio applies the same idea to price: the straight-line distance is the net change, the odometer reading is the path length.
Path length is the sum of the absolute bar-to-bar changes over the lookback, so every up and down move adds to it, whatever its direction. Here is the only formula you need:
efficiency ratio = |close now − close N bars ago| ÷ Σ |close of each bar − close of the bar before it|
Here N is the lookback, often 10 bars by default; the vertical bars mean "ignore the sign"; and Σ means "add up over all N bars". The top line is the net change, the bottom line is the path length. The bottom line can never be smaller than the top line, so the result always sits between 0 and 1. Because both lines are in price points, the ratio has no unit and can be compared across markets, which is a rare property among technical indicators.
Hypothetical example
Two price paths start at 100 and end at 110 over 10 bars, so both have a net change of 10 points. The first path rises almost every bar, with two small dips, and its path length is 12 points: ratio 10 ÷ 12 = 0.83. The second path zigzags up and down by several points each bar before finishing at 110, with a path length of 40 points: ratio 10 ÷ 40 = 0.25. Same start, same end, same lookback, but one move was clean and the other was mostly noise.
How high must the efficiency ratio be before a trend counts as clean?
There is no universal level: values near 1 mean a near-straight path and values near 0 mean sideways noise, but the level that separates "clean" from "noisy" depends on the market, the bar size and the lookback, so read the ratio's own distribution before you set a threshold. A threshold is a setting you test, not a fact you look up.
The reason is simple. The ratio compares net change with path length, and the share of path length that is noise changes with the bar size. On very short bars, bar-to-bar wiggles are a larger part of all movement, so the ratio tends to sit lower on average. On daily bars the same market can show higher typical readings. A fixed level such as 0.6 can therefore be rare on one chart and common on another, which is one reason an indicator's role changes when you move from swing to intraday work, as the guide to the best indicators for day trading and where each fails explains.
| Ratio reading | What the last N bars looked like | How a trend rule usually behaves there |
|---|---|---|
| Near 1 (for example above 0.7) | Almost every bar moved the same way | Entries follow through more often; late entries are the risk |
| Middle (for example 0.3 to 0.7) | A direction with pullbacks | Mixed; depends on the rule and the lookback |
| Near 0 (for example below 0.3) | Price ended close to where it started after travelling a lot | Breakouts fail and reverse; many small losses |
The practical method is to compute the ratio on your own history, sort the values, and see where the 25th, 50th and 75th percentiles fall. A percentile is the value below which that share of the readings sits. If the median on your market and lookback is 0.35, then a threshold of 0.6 will pass only a small fraction of bars, and you should know that before you run a single backtest. Write the threshold down, then test it, then test its neighbours.
How does the efficiency ratio drive the Kaufman adaptive moving average?
The ratio is the dial that sets how fast the Kaufman adaptive moving average reacts, so the average hugs price in a clean trend and flattens in noise. The Kaufman adaptive moving average (KAMA) is a moving average whose smoothing speed changes bar by bar according to the efficiency ratio. This is why the ratio and the average are almost always studied together: KAMA is the ratio turned into a line on the price chart.
A fixed moving average has one speed. A short one reacts quickly but whipsaws in a range; a long one is calm in a range but lags at every turn. KAMA tries to have both. It is given a fast speed and a slow speed, commonly the speeds of a 2-bar and a 30-bar average, and the efficiency ratio decides where between the two it sits on each bar. A high ratio moves the smoothing toward the fast end, so the average tracks price closely. A low ratio moves it toward the slow end, so the average barely moves and the noise passes beneath it.
- Compute the N-bar efficiency ratio on the current bar, with N often 10.
- Convert the ratio to a smoothing speed between the fast and slow limits. High ratio, fast; low ratio, slow.
- Update the average by moving yesterday's KAMA value toward today's close by that speed.
Two practical consequences follow. First, KAMA's lag is not fixed, so a crossover rule built on it will enter quickly in a clean trend and almost never in chop. Second, a flat KAMA is itself information: it says the ratio has been low. Some traders use the slope or flatness of KAMA as the filter instead of the raw ratio; both carry the same information in different clothes, and both need the same with-and-without test described in the next section.
Can the efficiency ratio be used as a regime filter?
Yes, and the fair test is to run the same trend rule with and without the filter under the same costs, then compare trade count, average trade after costs and maximum drawdown side by side, not only net profit. A regime filter is a condition that allows a strategy to trade only when the market is in a chosen state, here "recently moved efficiently". The filter does not create trades; it removes some. The question is whether it removes mostly the bad ones.
- Compute the N-bar efficiency ratio on every bar of the test history.
- Write the threshold down before running anything. Pick it from the ratio's distribution, as in the previous section, not from an equity curve.
- Run the trend rule with no filter. This is the baseline. Record trades, average trade after commission and slippage, and max drawdown.
- Run the identical rule allowed only when the ratio is above the threshold. Change nothing else: same costs, same sessions, same next-bar execution.
- Compare the two runs line by line. A filter earns its place when the average trade rises by more than the trade count falls and the drawdown shrinks.
Net profit alone misleads here because a filter always trades less. Fewer trades can lower net profit even when each trade got better, and fewer trades can also make a result lean on three or four big winners. Read the average trade after costs and the drawdown together. The same with-and-without comparison applies whenever you add a condition to an existing rule, for example a volatility gate on a Bollinger Bands strategy before you backtest it. When both runs are evaluated by the backtesting in AlphaPrime (Valynox), every candidate already carries commission, slippage and next-bar execution, so the filtered and unfiltered versions are compared on the same footing rather than on a gross curve.
Hypothetical example
An unfiltered breakout rule takes 200 trades, with an average trade of $80 after costs, a max drawdown of $12,000 and 60 percent of the time in the market. With a useful ratio filter it takes 120 trades, the average trade rises to $150, the drawdown falls to $8,000 and time in market drops to 35 percent: fewer trades, but each one better and the worst stretch shallower. With a harmful filter it takes 40 trades, the average trade is $85, the drawdown is $11,000 and time in market is 10 percent: it removed most of the trades and almost none of the bad ones, and the remaining sample is too small to trust.
What does a backtest of an efficiency-ratio rule on ES show?
Our run on ES daily bars shows one candidate out of the 1,024 the search tried, kept for its return against its drawdown, with 41 trades and 15.84% time in market, and because it was picked after the fact, its numbers flatter it. The run tested the efficiency ratio as the only entry and exit rule, long and short, one contract, with no stop, no target and no other filter, from 2019-01-02 to 2025-06-30, with $20 commission and $25 slippage charged on every trade. It is a test of the ratio as a rule, not of the ratio as a filter over another rule.
Source: AlphaPrime product engine (CPU), run 2026-10-31. ES daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $25 slippage per trade.
| Number | Result |
|---|---|
| Net profit (closed trades) | $50,967.5 |
| Max drawdown | $19,100 |
| Trades | 41 |
| Win rate | 56.1% |
| Profit factor | 2.107 |
| Average trade | $1,243.11 |
| Time in market | 15.84% |
Read the box as a description of one test, not a forecast, and read the rows together. The candidate was in the market 15.84% of the time, so it sat flat for most of six and a half years and acted only when the ratio said the recent path was clean. Forty-one trades over that period is a small sample: a handful of trades decide the average, and a different handful could have decided it the other way. The best of about a thousand candidates on one history also carries a selection bonus that a fresh stretch of data does not, which is the effect Bailey, Borwein, López de Prado and Zhu (2014) describe. The guide to how to split in-sample and out-of-sample data explains why trades, not years, are the unit to count.

In the equity figure, look for three things. Does the profit arrive in many steps or in two or three jumps? Does the curve keep its shape in the marked out-of-sample stretch, or does it go flat there? And does the drawdown of $19,100 come from one long losing run or from a cluster of fast reversals? These shapes tell you more about how an efficiency-ratio rule behaves than the net profit line does.
Which mistakes make an efficiency-ratio test misleading?
Three mistakes inflate most efficiency-ratio results: a lookback so short the ratio flips every bar, a threshold chosen after looking at the equity curve, and judging the filtered strategy on net profit while forgetting that fewer trades make each cost estimate matter more. Each has a fix that costs little.
| Mistake | What goes wrong | Fix |
|---|---|---|
| Lookback too short (for example 3 bars) | The ratio crosses the threshold almost every bar, the filter turns on and off constantly, and trades cluster around noise | Use a lookback long enough that the ratio stays on one side of the threshold for several bars, and check that neighbouring lookbacks (8, 10, 12) behave alike |
| Threshold picked after seeing the equity curve | The threshold absorbs the history's noise; the curve looks smooth because the level was fitted to it | Write the threshold down from the ratio's distribution first, then judge on data the choice never touched |
| Judging by net profit only | Fewer trades hide a thin edge; one tick more slippage can erase the whole result | Read the average trade after $20 commission and $25 slippage per trade, then rerun with doubled slippage and see what survives |
The first row is the one intraday traders meet most. Short bars already lower the ratio's typical level, and a short lookback on top of that produces a flickering filter, which is part of why what testing shows about the best indicator for intraday trading is rarely the indicator with the shortest setting. Pardo (2008) makes the general point that a setting which only works at one value, with poor results at its neighbours, is describing the history rather than the market. The second row is the classic selection trap; the third is why the stress tests in robustness testing that tries to break a strategy start with doubled slippage.
The next step takes an afternoon. Compute the 10-bar efficiency ratio on the market you trade, sort the values and note the 25th, 50th and 75th percentiles. Write one threshold down from that list. Then run your trend rule twice, with and without the filter, under the same costs, and compare trades, average trade after costs and max drawdown line by line before you look at net profit.
Frequently asked questions
Is the Kaufman efficiency ratio the same as KAMA?
No. The efficiency ratio is a number between 0 and 1 that measures how straight the recent price path was. KAMA is a moving average that uses that number to change its smoothing speed on every bar. The ratio is the input; KAMA is one way to use it on a price chart.
What lookback should I use for the efficiency ratio?
Ten bars is the common default, but the right lookback depends on how long the moves you want to catch usually last. A lookback that is too short makes the ratio flip every bar; one that is too long reacts after the move is over. Test a range of neighbouring lookbacks and prefer the region where results are similar rather than the single best value.
Does a high efficiency ratio mean the trend will continue?
Not by itself. A high ratio says the last N bars moved cleanly in one direction; it is a description of the past path. Whether clean moves tend to continue on your market and time frame is exactly what a backtest with and without the ratio filter is for. Moskowitz, Ooi and Pedersen (2012) document persistence in futures returns over months, but that is a separate finding from any single threshold on the ratio.
How is the efficiency ratio different from ADX?
Both try to measure trend strength, but they compute it differently. The efficiency ratio divides net change by path length and is bounded between 0 and 1 with no smoothing of its own. ADX is built from smoothed directional movement and reacts more slowly. The ratio tends to respond faster to a change from trend to chop; ADX tends to produce a smoother line. Which one filters a given rule better is a question for a side-by-side test.
References
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time Series Momentum. Journal of Financial Economics, 104(2), 228–250.

