Autocorrelation trading: does lag-1 say trend or mean reversion?
A positive lag-1 autocorrelation of returns points toward trend rules and a negative one toward mean-reversion rules. On most futures the value sits close to zero, so compare it with a band of ±2/√N before you build a rule, match the lag to your holding period, and test the rule with costs and out-of-sample data.
By Soren Huang · Published · updated · Editorial policy
Contents
- How can return autocorrelation tell you whether to trade trend or mean reversion?
- What does return autocorrelation measure?
- What do positive and negative lag-1 values mean for trend vs mean reversion?
- Which lag should you use?
- How many bars do you need before the autocorrelation is reliable?
- How do you judge whether the autocorrelation is significant?
- How do you turn the autocorrelation reading into a rule and test it?
- Frequently asked questions
- References
How can return autocorrelation tell you whether to trade trend or mean reversion?
Autocorrelation trading starts from one number: the lag-1 autocorrelation of returns. A positive value points to trend rules, a negative value to mean-reversion rules. On most futures the value sits close to zero, so check the sample size and the ±2/√N noise band before you build anything on the sign.
Serial correlation is another name for the same number, and the debate about mean reversion vs momentum usually comes down to it. The idea is attractive because it replaces an opinion ("this market trends") with a measurement. The claim this article makes is narrower: the sign deserves a rule only after two checks, enough bars and a value outside the noise band. Most readings on liquid futures fail one of the two, and a reading that fails them gives you no reason to prefer trend over reversion. The sections below cover what the number measures, how to read its sign, which lag to use, how many bars you need, how to judge significance, and what a backtest built on the reading looks like.
What does return autocorrelation measure?
Return autocorrelation is the correlation between each bar's return and the return of the bar a fixed number of bars earlier, which tells you whether a move tends to continue or to reverse. Take the list of daily returns, make a copy of it shifted by one day, and measure how the two lists move together. If up days tend to follow up days, the correlation is positive. If up days tend to follow down days, it is negative. If yesterday says nothing about today, it is near zero.
An everyday comparison: think of a queue at a bank. If the person ahead of you took a long time, does that tell you anything about how long the next person will take? If slow customers cluster, waiting times are positively autocorrelated. If a slow customer is usually followed by a quick one, they are negatively autocorrelated. If each customer is a fresh draw, the autocorrelation is zero and the past tells you nothing.
Three details matter in practice. First, measure it on returns, not on prices. Prices today and prices yesterday are almost the same number, so their correlation is close to one and tells you nothing. Second, the value runs from −1 to +1, and on liquid futures the daily lag-1 value is usually a small number on either side of zero. Third, it is a single average over the whole sample; a market can show positive autocorrelation in one year and negative in the next, and the average hides both. Other measures ask the same question from a different angle, and the Hurst exponent for trending or mean-reverting markets is the closest relative.
What do positive and negative lag-1 values mean for trend vs mean reversion?
A positive lag-1 value means yesterday's direction tends to repeat today, which favours breakout and momentum rules, while a negative value means it tends to flip, which favours fade and band rules. The sign chooses the rule family. It does not choose the parameters, the exit or the stop, and it does not tell you whether the edge is larger than the cost of trading it.
A trend rule buys after a move up and sells after a move down, so it needs continuation to pay for its late entry. A mean-reversion rule does the opposite: it sells after a move up and buys after a move down, so it needs the move to come back. Mean reversion is the tendency of a price that has moved away from its recent average to move back toward it. Each family has its own exit style and its own way of failing, which the table lays out.
| Question | Positive lag-1 (continuation) | Negative lag-1 (reversal) |
|---|---|---|
| What the sign says | Up bars tend to follow up bars | Up bars tend to follow down bars |
| Rule family | Breakout, momentum, moving-average cross | Fade, band touch, distance from average |
| Typical entry | Buy strength, sell weakness | Sell strength, buy weakness |
| Exit style | Trailing stop or opposite signal; let the move run | Target at the average; time exit if it does not return |
| Win profile | Fewer winners, larger winners | More winners, smaller winners |
| Failure mode | Choppy market: many small losses from false breaks | Strong trend: one large loss when the price does not come back |
Two related tools measure the same thing with different units. The choppiness index as a trend or range filter scores how much of a window's range the price actually travelled, and a wider review of what can and cannot be tested is in the guide to technical analysis tools and indicators you can test. Autocorrelation has one advantage over both: it comes with a known noise band, which the later sections use.
Which lag should you use?
Match the lag to the holding period of the rule you want to build: lag 1 on the bar size you trade for a one-bar hold, and a lag equal to the intended hold in bars otherwise. The lag is the distance in bars between the two returns being compared. Lag 1 on daily bars compares today with yesterday and speaks to a one-day hold. Lag 5 on daily bars compares this week's bar with the bar five days earlier and speaks to a one-week hold. A reading at lag 1 says nothing about a rule that holds for a month.
The bar size matters as much as the lag number. Lag 1 on 5-minute bars measures whether a five-minute move continues into the next five minutes, which is mostly a question about order flow and the bid-ask bounce. Lag 1 on daily bars measures something different. Longer horizons behave differently again: Moskowitz, Ooi and Pedersen (2012) found that a futures market's return over the past twelve months tended to continue in the following month across a wide set of markets, which is a positive autocorrelation at a monthly horizon even when the daily lag-1 value is near zero. Sign and horizon travel together.
- Decide the holding period first. Write it in bars of the size you will trade.
- Measure the lag that matches it. A one-bar hold uses lag 1; a ten-bar hold uses lag 10, or the autocorrelation of ten-bar returns at lag 1, which asks the same question.
- Check the neighbouring lags. If lag 5 is positive but lags 3, 4, 6 and 7 are all near zero or negative, lag 5 is probably a lucky number. A real tendency usually shows a cluster of lags with the same sign.
- Repeat on two halves of the history. A sign that flips between halves is not a basis for a rule.
How many bars do you need before the autocorrelation is reliable?
The uncertainty of a measured autocorrelation shrinks with the square root of the number of returns, so a few hundred bars give a rough reading and about a thousand bars are needed before a value under 0.1 can be told from zero. The slow square root is the problem. Four times as much data only halves the uncertainty. One year of daily ES bars is about 250 returns, which is enough to detect a large effect and far too few to detect the small one that liquid futures usually show.
| Sample size (returns) | Roughly how much history on daily bars | Width of the noise band (±2/√N) |
|---|---|---|
| 50 | About two and a half months | ±0.28 |
| 250 | About one year | ±0.13 |
| A thousand | About four years | ±0.06 |
| Four thousand | About sixteen years | ±0.03 |
There is a trade-off hidden in the table. More bars make the measurement more precise, but a longer history is more likely to mix different market conditions, so the single average may describe none of them. A workable compromise on daily bars is to measure on the full history for precision and then on rolling windows of two to four years to see whether the sign holds. On intraday bars the sample grows fast, so a few months of 5-minute bars already hold several thousand returns, and the harder problem there is the cost per trade rather than the sample size.
How do you judge whether the autocorrelation is significant?
Compare the measured value with a band of plus or minus two divided by the square root of the sample size; a value inside the band is indistinguishable from noise and gives you no reason to pick trend over reversion. The significance band is the range of values a series with no real autocorrelation would produce by chance most of the time. One formula is enough here:
noise band = ±2 ÷ √N
Here N is the number of returns in the sample and √N is its square root. The number 2 sets the band so that a random series lands inside it about 95 times out of 100. A measured value outside the band is unusual for a random series, which is the minimum reason to test a rule on it. A value inside the band could easily be zero, and a rule built on it is built on nothing.
Hypothetical example
You measure a lag-1 autocorrelation of +0.08 on daily returns. With 250 returns, the band is ±2 ÷ 15.8 ≈ ±0.13, so +0.08 sits inside it and is noise. With a thousand returns, the band is ±2 ÷ 31.6 ≈ ±0.06, so the same +0.08 sits outside it and is worth a rule test. The number did not change; the evidence behind it did.
Two refinements make the check more honest. First, the band assumes each return has a similar size; futures returns come in calm and wild clusters, which widens the real band somewhat, so treat a value that barely clears ±2/√N as borderline. Second, if you looked at ten lags and ten markets before finding one value outside the band, you ran a hundred checks, and about five of them would clear the band by chance. Brock, Lakonishok and LeBaron (1992) handled this problem for moving-average rules by comparing the rule's result with results on simulated series, and the same discipline applies here: the more values you looked at, the further outside the band the chosen one must sit.
How do you turn the autocorrelation reading into a rule and test it?
Use the sign to choose the rule family, write the rule down before looking at the result, then backtest it with costs and out-of-sample data. The order matters. A trader who measures, then tries both families, then keeps the better one has used the data twice, and the autocorrelation reading added nothing. The steps below keep the measurement and the test separate.
- Measure on in-sample bars only. Split the history by date first, as described in in-sample vs out-of-sample splitting, and measure the autocorrelation on the earlier part.
- Check the sign against ±2/√N. Inside the band: stop, and try a different market, bar size or horizon. Outside: continue.
- Pick the rule family. Positive: a breakout or momentum rule with a trailing exit. Negative: a fade rule with a target at the average, such as the one in the mean reversion futures backtest example.
- Write the rule and thresholds down. Lookback, entry level, exit, and the number you will require in the out-of-sample result. Once the sign has chosen the family, the lookbacks, thresholds and exits go into strategy generation as ranges rather than single values, so the search covers the neighbouring settings instead of the one you guessed.
- Backtest with costs and out-of-sample data. Charge commission and slippage on every trade, as explained in trading costs in backtests, and read the out-of-sample result against the number you wrote in step 4.
Here is what one such test looks like. AlphaPrime (Valynox) searched 1,024 candidates on ES daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, each using an autocorrelation rule as its only entry and exit signal, with no stop, no target and no filter, and with $20 commission and $25 slippage charged on every trade. The box shows the one candidate the search kept out of those 1,024, chosen for its return against its drawdown. Picking the best of 1,024 after the fact flatters that candidate: Bailey, Borwein, López de Prado and Zhu (2014) show that the best backtest in a large search is inflated by the search itself, even when the rules have no edge. These numbers describe what that one candidate did on that history. They do not say that the autocorrelation rule earned that money or that a reader can expect it.
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) | $113,365 |
| Max drawdown | $68,940 |
| Trades | 58 |
| Win rate | 58.62% |
| Profit factor | 1.629 |
| Average trade | $1,954.57 |
| Time in market | 92.42% |

Read the box the way the earlier sections suggest. Fifty-eight trades over six and a half years is a hint, not a result; the uncertainty of an average built from 58 trades is large, and the section on sample size applies to trades as much as to bars. Time in market of 92.42% means the candidate is almost always holding a position, so its result is tied to the direction of ES over that period as much as to any continuation effect. The max drawdown of $68,940 against a net profit of $113,365 says the kept candidate gave back more than half of its gain at the worst point. A trader who wanted to carry this candidate forward would now run the walk-forward and out-of-sample checks, with the pass thresholds written in advance.
The next step is to measure it yourself. Take the daily returns of the market you trade, compute the lag-1 autocorrelation on the earlier two thirds of your history, count the returns, and compare the value with ±2/√N. If it sits inside the band, that is a useful answer too: it tells you that neither trend nor reversion rules on a one-day hold have a measured reason behind them on that market, and the horizon or the bar size is where to look next.
Frequently asked questions
What is serial correlation in trading?
Serial correlation is another name for autocorrelation: the correlation between a return and the return a fixed number of bars earlier. A positive value means moves tend to continue, a negative value means they tend to reverse, and a value near zero means the earlier bar tells you nothing about the next one. In trading it is used to decide whether a trend rule or a mean-reversion rule fits a market and horizon.
Should I measure autocorrelation on prices or on returns?
On returns. Today's price and yesterday's price are almost the same number, so their correlation is close to one on every market and says nothing about whether moves continue or reverse. Returns, the bar-to-bar changes, remove that shared level and leave only the question you care about.
Does a negative lag-1 autocorrelation mean a mean-reversion strategy will work?
No. It means a fade rule is the family worth testing, not that the test will pass. The value must first sit outside the ±2/√N noise band for the sample size, and then the rule built on it must pay for commission and slippage on every trade and hold up on data it was not tuned on. Many negative readings on intraday bars come from the bid-ask bounce and disappear once costs are charged.
Can autocorrelation be positive at one lag and negative at another?
Yes, and it is common. A market can show a small negative value at lag 1 on daily bars and a positive value at horizons of several months, which is the pattern behind time-series momentum. Each lag speaks to a different holding period, so measure the lag that matches the hold you intend and check the neighbouring lags for the same sign.
How is autocorrelation different from the Hurst exponent?
Both ask whether a market trends or mean reverts, but autocorrelation measures the link between returns at one fixed lag, while the Hurst exponent summarizes how the range of price movement grows with the time window across many horizons at once. Autocorrelation is easier to test for significance because its noise band, ±2/√N, is known. The Hurst exponent gives one number for all horizons and needs a longer history to be stable.
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.
- Brock, W., Lakonishok, J., & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. The Journal of Finance, 47(5), 1731–1764.
- Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time Series Momentum. Journal of Financial Economics, 104(2), 228–250.

