Skip to content
All library documents

Estimating Daily Hurst Exponents with Rolling Windows

Article Quant Q&A · Author: Marcus

Summary

The document asks how to produce a daily series of Hurst exponent estimates for stock returns, rather than a single estimate for an entire time series. It includes a Python function that estimates one exponent by calculating variability across lagged differences, fitting a line to the log lag and log variability values, and scaling the fitted slope. The question is how to adapt that single-sample calculation to update through time.

No answer or adaptation is supplied, and the text gives no rolling-window length, daily estimation procedure, or evidence about the reliability of daily values. Consequently, it introduces a way to estimate an overall Hurst exponent but does not resolve how to obtain or interpret daily estimates. Any time-varying implementation would need to specify its data window and account for estimation noise; those choices are outside the document’s discussion.

Key ideas

  • The document seeks a Hurst exponent estimate for each day of a stock-return series.
  • The included method fits a line to log lag lengths and log variability of lagged differences.
  • The slope of that fit is scaled to produce a single Hurst exponent estimate.
  • The text does not explain how to convert the single estimate into a daily rolling series.
  • Window selection and the reliability of frequently updated estimates remain unaddressed.

Tags

Full text
# Daily Hurst Exponent


# Daily Hurst Exponent












I am trying to estimate daily Hurst exponent values of a stock returns (e.g. for each day to have also Hurst exponent - something like that: https://www.quandl.com/data/PE/CKEC_HURST-Hurst-Exponent-of-Carmike-Cinemas-Inc-Common-Stock-CKEC-NASDAQ).

I am using tis Python code (taken from https://www.quantstart.com/articles/Basics-of-Statistical-Mean-Reversion-Testing), but I do not how to accomodate it for daily Hurst values instead of just one value:

```
from numpy import cumsum, log, polyfit, sqrt, std, subtract

from numpy.random import randn

def hurst(ts):

    """Returns the Hurst Exponent of the time series vector ts"""
    # Create the range of lag values
    lags = range(2, 100)

    # Calculate the array of the variances of the lagged differences
    tau = [sqrt(std(subtract(ts[lag:], ts[:-lag]))) for lag in lags]

    # Use a linear fit to estimate the Hurst Exponent
    poly = polyfit(log(lags), log(tau), 1)

    # Return the Hurst exponent from the polyfit output
    return poly[0]*2.0
```

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.