Calculates the generalized Hurst exponent H(q) of a stochastic variable x(t) (a time series) from the scaling of the renormalized q-moments of the distribution
<|x(t+r)-x(t)|^q>/<x(t)^q> ~ r^[qH(q)]
The value of H(q) give indication about the fractal nature of the signal. H(q) = 0.5 corresponds to a Brownian motion, deviations form 0.5 and dependency on q are indications of multi-fractality and time-correlations.
Dear Mr. Tamaso Aste,
I would like to ask whether there is any restriction on the values of the series S. Are there any problems if my series contains both positive and negative values? It's quite strange in my case, as I calculate the spread between 2 stocks for the period of 1 year (252 observations), and I get the mH for this series = -0.00518, which confuses me. Could you please give some advice me on this issue?
I want to know that whether I should use cumsum(data) to the function instead of raw data to get the value of Hurst Exponent.？
Dear Tamaso Aste
I want to know that whether I should use cumsum(data) to the function instead of raw data to get the value of Hurst Exponent.
Thank you very much for sharing the code to enitre community.
I found this very useful. I translated the implementation into Python, with a reference to this FileExchange: https://github.com/PTRRupprecht/GenHurst
good function. THX
a little biased on a pure random walk. is it possible to add corrections/
The Hurst exponent for a random walk is indeed 0.5. The Hurst exponent for a random variable is instead 0. If you apply the genhurst to cumsum(randn) and you will get numbers close to 0.5.
I tried your file with a random time series (both rand and randn) and this values of obtained is close to 0 (although it should be close to 0.5 right?). Can you explain it?