Hurst exponent: does a futures market trend or mean revert?
The Hurst exponent sorts a price series into trending (above 0.5), random (near 0.5) or mean-reverting (below 0.5) behaviour. On futures data the estimate is noisy, needs thousands of bars and drifts over time, so treat it as a coarse regime hint that a backtest must confirm, not a switch.
By Soren Huang · Published · updated · Editorial policy
Contents
- Can the Hurst exponent tell whether a futures market trends or mean reverts?
- What does a Hurst exponent of 0.5 mean, and what do values below or above it mean?
- How do you calculate the Hurst exponent?
- How much data is enough for a Hurst estimate?
- Which estimation method should you use, and how noisy is each?
- Which futures markets show a high Hurst exponent?
- Why does the Hurst estimate drift over time?
- What does a simple trend rule on ES daily bars show in a real backtest?
- Frequently asked questions
- References
Can the Hurst exponent tell whether a futures market trends or mean reverts?
The Hurst exponent can sort a futures market into trending (above 0.5), random (near 0.5) or mean-reverting (below 0.5) behaviour, but the estimate on real futures data is noisy and drifts over time. Treat it as a coarse regime hint that a backtest must confirm, not a switch that tells you which strategy to run today.
The Hurst exponent is a number between 0 and 1 that measures whether a price series tends to continue its recent direction or to reverse it. Think of three walkers. A drunk walker wanders with no memory of the last step: that is a random walk. A hiker on a trail keeps going the same way for a long time: that is trending. A dog on a leash runs off and is pulled back: that is mean reverting. The exponent tries to say which walker a market resembles.
The claim this article defends is simple: the Hurst exponent is worth computing as one input to market regime detection for trading strategies, but it is too unstable to switch strategies on by itself. The sections below show what the number means, how to compute it, how much data it needs, why it moves, and what a plain trend rule on ES daily bars looks like in a real run after costs.
What does a Hurst exponent of 0.5 mean, and what do values below or above it mean?
A Hurst exponent near 0.5 means the past moves carry no information about the next move, above 0.5 means moves tend to continue, and below 0.5 means moves tend to reverse. A random walk is a price path where each step is independent of every step before it. Mean reversion is the tendency of a price to move back toward a recent average after it has stretched away from it; the rules that trade it are covered in mean reversion explained with a testable futures example.
| H below 0.5 | H near 0.5 | H above 0.5 | |
|---|---|---|---|
| What past moves say | An up move is more often followed by a down move | Nothing: the next move is a coin flip | An up move is more often followed by another up move |
| Price path | Choppy, crosses its average often | Wanders, no pattern | Long runs in one direction |
| Rule family to test first | Fade stretched moves, bands, oscillators | Neither has an edge from this measure | Breakouts, moving-average trend rules |
| Typical futures reading | Short intraday bars on index futures | Most daily series | Daily or weekly bars on some commodity and rate futures |
The practical point is the size of the gap. A coin-flip market gives 0.5. A market that trends strongly over months might give 0.55 to 0.6 on daily bars. A market that reverts hard on one-minute bars might give 0.4 to 0.45. The whole useful range for liquid futures is therefore about two tenths wide, and the estimation error, covered below, can be a tenth on its own. That is the whole problem with "mean reversion vs trend" labels taken from one reading.
How do you calculate the Hurst exponent?
The classic method is rescaled range analysis, and it reads the Hurst exponent as a slope: how fast the range of a block of returns grows as the block gets longer. The rescaled range is the range of the cumulative deviations inside a block of returns, divided by the standard deviation of that block. Hurst (1951) built the method to size reservoirs on the Nile: he asked how far the cumulative water level could wander away from its average over a span of years, and found that the wander grew faster than a random series would allow.
- Take log returns. Work with bar-to-bar changes, not prices, so the level of the market does not matter.
- Split the series into blocks of length n. Use several block lengths, for example 16, 32, 64, 128 and 256 bars.
- For each block, compute R and S. Subtract the block's average from each return, add the results up one by one to get a running total, and take the highest total minus the lowest total: that is the range R. The standard deviation of the block's returns is S.
- Average R/S across all blocks of the same length. One value per block length n.
- Plot log(R/S) against log(n) and fit a straight line. The slope is H.
The one formula behind the last step is:
log(R/S) = H × log(n) + c
Here R/S is the average rescaled range for blocks of length n, log is the logarithm (any base, as long as you use the same one on both sides), H is the Hurst exponent you want, and c is a constant that shifts the line up or down and does not matter. For a random walk the range grows with the square root of the block length, which gives a slope of exactly 0.5.
Hypothetical example
Suppose the average R/S is 4 for blocks of 16 bars and 8 for blocks of 64 bars. The slope is log(8 ÷ 4) ÷ log(64 ÷ 16) = log 2 ÷ log 4 = 0.5, a random walk. If instead the average R/S at 64 bars were 10, the slope would be log(10 ÷ 4) ÷ log 4 ≈ 0.92 ÷ 1.39 ≈ 0.66, a trending reading. In practice you fit the line through five or six block lengths rather than two, and the fit is only as good as the number of blocks behind each point.
How much data is enough for a Hurst estimate?
A reliable Hurst estimate needs thousands of bars, and short intraday windows produce numbers that swing far more than the market itself does. Two things drive this. First, H is the slope of a line fitted through only a handful of points, one per block length, and a slope from five points is fragile. Second, each point is an average of block ranges, and that average settles down only slowly as the number of blocks grows, roughly with the square root of the count, as most averages do. A block length of 256 bars inside a one-year daily series gives you a single block, so that point is one observation dressed up as an average.
Hypothetical example
Suppose the true H of a market is 0.5 and the estimate's typical error is about 0.1 with 250 bars (one year of daily data). Because error shrinks roughly with the square root of the bar count, 2,500 bars (ten years of daily data) would bring it to about 0.03, and 10,000 bars (about 40 years daily, or well under a year of 15-minute bars) to about 0.015. Only the last two samples can separate a reading of 0.55 from 0.5. A trader who recomputes H on the last 200 one-minute bars is reading noise.
The practical consequence is a trade-off. Daily bars give the cleanest regime reading but need a decade or more of history, during which the market has changed. Intraday bars give enough observations in months, but at short horizons the reading is dominated by the mechanics of the order book rather than by the behaviour you want to trade. Either way, decide the window length before you look at the result, and keep it fixed.
Which estimation method should you use, and how noisy is each?
Rescaled range, detrended fluctuation analysis and variance-ratio estimates all approximate the same quantity, and because each is biased in a different direction on short samples, you should compare two of them on the same data before trusting a label. Detrended fluctuation analysis is a method that removes a fitted trend from each block before measuring how much the running total wanders, so a slow drift in the data does not get counted as persistence. A variance-ratio estimate is a method that compares the variance of returns over k bars with k times the variance of one-bar returns; for a random walk the ratio is 1, above 1 points to trending and below 1 to mean reversion.
| Rescaled range (R/S) | Detrended fluctuation analysis | Variance ratio | |
|---|---|---|---|
| What it measures | How the range of cumulative deviations grows with block length | How the wander around a local trend grows with block length | Whether k-bar variance is larger or smaller than k one-bar variances |
| Bias on short samples | Reads high: short random series often show 0.55 to 0.6 | Closer to neutral, still wide | Depends on the lag k you choose; results differ by lag |
| Minimum useful data | Thousands of bars | Thousands of bars | Hundreds of bars per lag, more for long lags |
| Ease of calculation | Easy in a spreadsheet | Moderate: a line fit inside every block | Easy, but one number per lag |
| Best use | First look on long daily series | Series with slow drifts, such as rate futures | Checking a specific horizon, such as 5-bar or 20-bar |
The upward bias of plain R/S on short samples is the trap that catches most first-time users: a few hundred random bars will often print 0.57 and look like a trending market. Running detrended fluctuation analysis on the same bars and getting 0.51 tells you the first number was the method, not the market. When the two methods disagree by more than their difference on a shuffled copy of the same returns, you do not have a label yet.
Which futures markets show a high Hurst exponent?
Markets that trend persistently on daily bars, such as some commodity and rate futures, tend to show H slightly above 0.5, while equity index futures on short intraday bars often sit at or below 0.5, and the gap between the groups is small. Moskowitz, Ooi and Pedersen (2012) documented across a broad set of liquid futures that returns over the past one to twelve months tend to continue into the next month, which is persistence in exactly the sense the Hurst exponent measures, at those horizons. A persistent daily series shows up as H a little above 0.5; it does not show up as 0.8.
Three patterns are worth knowing before you compute anything:
- Bar size changes the answer more than the market does. The same index future can read above 0.5 on weekly bars and below 0.5 on one-minute bars, because at the shortest horizons prices bounce between the bid and the ask, which looks like reversal.
- Rate and some commodity futures lean to persistence on daily bars. Slow-moving fundamentals, such as central-bank cycles or crop seasons, play out over months.
- Equity index futures on daily bars sit close to the middle. Trend rules on them live or die on a few long moves per decade, which is why the ES run later in this article has few trades.
For intraday work this means the Hurst exponent is less useful than it sounds; what the testing of common intraday indicators actually shows is covered in best indicator for intraday trading. For a wider view of which tools can be turned into a testable rule and which cannot, see the guide to technical analysis tools and indicators you can test.
Why does the Hurst estimate drift over time?
The estimate drifts because the market's behaviour changes with volatility and participation and because every rolling window carries sampling error, so a reading of 0.58 one quarter and 0.49 the next can be a real regime change, pure noise, or both. The two causes look identical on a chart. A calm quarter in which an index grinds higher raises the measured persistence; a quarter with a sharp sell-off and rebound lowers it. Neither tells you what the next quarter holds.
Three steps make a rolling estimate readable:
- Draw the error band. Compute H on shuffled copies of the same window several times; the spread of those results is the band. A crossing of 0.5 inside the band is noise.
- Require the reading to stay outside the band for several windows. One window outside is a single observation.
- Test the switch, not the number. Build the rule "trade breakouts when H is above the band, bands and fades when below", backtest it with costs, and compare it with the same rules run without the switch. If the switch does not improve the result on data it has not seen, it is adding noise, not information.
This is the same discipline that applies to any slow positioning measure, such as the dealer gamma exposure (GEX) levels that option flows produce: the reading changes with who is in the market, so a level that mattered last month may not matter now, and only a test across many months tells you whether it ever did.
What does a simple trend rule on ES daily bars show in a real backtest?
A trend rule on an equity index future at daily resolution produces few trades, long holding periods and a drawdown that is a large share of the profit, and the single kept survivor of a search looks better than the rule family it came from. The run below did not test the Hurst exponent itself: it used a stand-in trend rule (a Pkg rule from the rule set of AlphaPrime (Valynox)) as the only entry and exit, with no stop, no target and no filter, so the result shows what plain trend-following on ES daily bars looks like after costs. AlphaPrime ran it on ES daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with $20 commission and $25 slippage charged per trade.
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) | $70,197.5 |
| Max drawdown | $47,425 |
| Trades | 42 |
| Win rate | 69.05% |
| Profit factor | 1.695 |
| Average trade | $1,671.37 |
| Time in market | 55.02% |

Read the numbers as a description of one past run, not as what the rule earns. The candidate shown is the one kept out of about a thousand variants (1,024 in the run) because its return against its drawdown was the best of the set. Picking the winner after seeing all the results flatters it: with that many tries on one history, the best result includes a share of luck that no reader can expect to repeat, and Bailey, Borwein, López de Prado and Zhu (2014) show that this share grows with the number of variants compared. Forty-two trades in six and a half years is also a small sample: the average trade of $1,671.37 rests on a few long moves, and a max drawdown of $47,425 against $70,197.5 of net profit means the account spent long stretches far below its high. The 55.02% time in market says the rule was in a position for just over half the bars and flat the rest.
What this says about the Hurst question is consistent with the sections above. ES daily bars sit near 0.5; a trend rule on them does not fail, but it earns its result from a handful of persistent runs and gives much of it back in the chop between them. A kept survivor like this one has to go on to walk-forward windows and thresholds that were written down before the search, which is the job of strategy validation in AlphaPrime: a "trending" label that only holds on the data that produced it is discarded there before it reaches a trading platform. Before you run your own version, set the contract, session and cost inputs described in five things to set first for ES and NQ futures backtesting, so your result is comparable with the box above.
The next step is concrete: take ten years of daily bars for one futures market you trade, compute H with rescaled range and with detrended fluctuation analysis on the whole series, then compute both again on a shuffled copy. If the real readings do not beat the shuffled ones by more than the shuffled ones differ from each other, the market has not told you whether it trends or reverts, and the rule family you test next should be chosen by a backtest, not by the label.
Frequently asked questions
Is the Hurst exponent a trading indicator?
Not in the usual sense. An indicator is computed on a short window and updates every bar; the Hurst exponent needs thousands of bars to be stable, so a bar-by-bar version is mostly noise. It is better used as a research measure: compute it once on a long history to decide which rule family to test first, then let the backtest decide.
What is a good Hurst exponent for trend following?
On daily futures data, a reading that stays above 0.5 by more than the estimate's own error band, confirmed by two different methods, is as good as it gets. Expect values like 0.53 to 0.6 rather than 0.8. A reading of 0.5 does not rule out trend following; it means the measure gives no reason to prefer it over mean reversion.
Can I compute the Hurst exponent on intraday bars?
You can, but the result mostly reflects how prices bounce between the bid and the ask at very short horizons, which reads as mean reversion. Use bars of at least several minutes, several months of history, and compare the reading with a shuffled copy of the same returns before drawing a conclusion. For intraday rules, a direct backtest of the rule usually answers the question faster.
Is the Hurst exponent the same as autocorrelation?
They measure related things in different ways. Autocorrelation at lag one asks whether this bar's return is linked to the last bar's return. The Hurst exponent asks how the range of cumulative moves grows with the time span, which captures memory over many lags at once. A series can have near-zero one-bar autocorrelation and still show H above 0.5 because of slow persistence over weeks.
References
- Hurst, H. E. (1951). Long-Term Storage Capacity of Reservoirs. Transactions of the American Society of Civil Engineers, 116, 770–799.
- Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time Series Momentum. Journal of Financial Economics, 104(2), 228–250.
- 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.

