Hurst

This package implements methods for estimating Generalised Hurst Exponents (GHEs).

At the moment, the package only implements one method of estimation, and not the most state-of-the-art method at that. In time this will be updated - the goal of the package is to be allow the user to flexibly calculate GHEs in whatever way is most appropriate for the task at hand.

The package is designed to be fast and to facilitate the kind on analysis often seen in the literature. For example, one can calculate the normal Hurst exponent directly:

using Hurst
X = accumulate(+, randn(10000));
@time H = hurst_exponent(X, 1:19)
1×2 Matrix{Float64}:
 0.493258  0.000600183

Or, one can calculate the GHEs for a wide variety of moments:

using Hurst
tau_range = 1:19
q_range = 0.1:0.1:2.
generalised_hurst_range(X, tau_range, q_range)
20×2 Matrix{Float64}:
 0.499019  0.000279984
 0.499354  0.000500031
 0.499572  0.000675711
 0.4997    0.000819083
 0.499759  0.000939211
 0.499765  0.0010428
 0.499729  0.00113481
 0.499663  0.00121896
 0.499571  0.00129817
 0.499461  0.00137481
 0.499335  0.00145097
 0.499198  0.00152855
 0.499053  0.00160938
 0.4989    0.00169523
 0.498743  0.00178783
 0.498582  0.00188886
 0.498418  0.00199991
 0.498253  0.00212245
 0.498087  0.00225781
 0.497921  0.00240713

Hurst exponents (generalised or not) are calculate by performing a regression across a range of values of $\tau$. It is important to be aware of these values as they can have a significant impact on the results (see here). As a result, these values are never supplied by default in functions and must be provided explicitly by the user. Users interest in the details of the calculation are encouraged to look at the above paper and its references.