Technical Studies Reference


Hurst Exponent

This study calculates and displays an estimate of the Hurst Exponent for the data specified by the Input Data Input. There are many algorithms for estimating the Hurst Exponent. For instance, when the Hurst Exponent is estimated using the R package pracma, five different estimates are returned. This study uses the Rescaled Range Analysis described in the Wikipedia article Hurst Exponent, modified to accomodate a moving window of fixed Length. The partial time series over which the Rescaled Ranges are averaged are determined according to the method on the web page Estimating the Hurst Exponent.

The Input Length is denoted as \(n\), and its values are restricted to \(32\), \(64\), and \(128\). The data in the moving window are divided into subsets of size \(N = 8,16,32\) for \(n = 32\), \(N = 8,16,32,64\) for \(n = 64\), and \(N = 8,16,32,64,128\) for \(n = 128\). We denote the five possible values of \(N\) as \(N_1 = 8\), \(N_2 = 16\), \(N_3 = 32\), \(N_4 = 64\), and \(N_5 = 128\).

Let \(X\) be a random variable denoting the Input Data, and let \(X_i\) be the value of the Input Data at Index \(i\). We outline the method of computation for the Hurst Exponent at Index \(t\) in the following list. For each calculation, \(k\) is the number of the subset under consideration. The values of \(k\) are \(k = 1, ..., \frac{n}{N}\).

  1. Calculate the Mean of each subset, as follows.

    \(\displaystyle{\overline{X}_{k,t}(n,N) = \frac{1}{N}\sum_{i=t-n+(k-1)N+1}^{t-n+kN}X_i}\)
  2. Calculate the Mean-Adjusted time series \(Y_{i,k,t}\) for each subset, as follows.

    \(Y_{i,k,t}(X,n,N) = X_{t-n+(k-1)N+(i+1)} - \overline{X}_{k,t}(n,N)\)

    Here, \(i = 0\) to \(N - 1\).
  3. Calculate the Cumulative Variate time series \(Z_{i,k,t}\) for each subset, as follows.

    \(\displaystyle{Z_{i,k,t} = \sum_{j = 0}^{N - 1}Y_{j,k,t}(X,n,N)}\)

    Here, \(i = 0\) to \(N - 1\).
  4. Calculate the Range \(R_{k,t}(X,n,N)\) of the Cumulative Variates for each subset, as follows.

    \(R_{k,t}(X,n,N) = \max\{Z_{0,k,t}(X,n,N),...,Z_{N-1,k,t}(X,n,N)\} - \min\{Z_{0,k,t}(X,n,N),...,Z_{N-1,k,t}(X,n,N)\}\)
  5. Calculate the Standard Deviation \(S_{k,t}(X,n,N)\) of each subset, as follows.

    \(\displaystyle{S_{k,t}(X,n,N) = \sqrt{\frac{1}{N}\sum_{i = t - n + (k - 1)N + 1}^{t - n + kN}(X_i - \overline{X}_{k,t}(n,N))^2}}\)
  6. Calculate the Rescaled Range \(\mathcal{R}_{k,t}(X,n,N)\) of each subset, as follows.

    \(\displaystyle{\mathcal{R}_{k,t}(X,n,N) = \frac{R_{k,t}(X,n,N)}{S_{k,t}(X,n,N)}}\)
  7. Calculate the expected value (average) of the Rescaled Range for all subsets of size \(N\), as follows.

    \(\displaystyle{E[\mathcal{R}_{k,t}(X,n,N)] = \frac{N}{n}\sum_{k = 1}^{n/N}\mathcal{R}_{k,t}(X,n,N)}\)

    We then have the following ordered pairs \(N_i,(E[\mathcal{R}_{k,t}(X,n,N)])_i)\)
    \(i\) \((N_i,(E[\mathcal{R}_{k,t}(X,n,N)])_i)\)
    \(1\) \((8,E[\mathcal{R}_{k,t}(X,n,8)])\)
    \(2\) \((16,E[\mathcal{R}_{k,t}(X,n,16)])\)
    \(3\) \((32,E[\mathcal{R}_{k,t}(X,n,32)])\)
    \(4\) \((64,E[\mathcal{R}_{k,t}(X,n,64)])\)
    \(5\) \((128,E[\mathcal{R}_{k,t}(X,n,128)])\)
  8. Calculate the natural logarithm of each \(N_i\) and each \((E[\mathcal{R}_{k,t}(X,n,N)])_i\) for \(i = 1,...,\nu_n\), where \(\nu_n\) is the Length of the upcoming regression calculation in Step 9. \(\nu_n\) is connected to the Length Input \(n\). Explicitly, \(\nu_{32} = 3\), \(\nu_{64} = 4\), and \(\nu_{128} = 5\).
  9. Calculate the slope of the least squares regression line of \(\ln(N)\) vs \(\ln(E[\mathcal{R}_{k,t}(X,n,N)])\) of each subset, as follows. This is the Hurst Exponent, denoted as \(H_t(X,n)\). It is given explicitly by the following formula.

    \(\displaystyle{H_t(X,n) = \frac{\nu_n\cdot\sum_{i=1}^{\nu_n}(\ln(N_i)\cdot\ln((E[\mathcal{R}_{k,t}(X,n,N)])_i) - \left(\sum_{i=1}^{\nu_n}\ln(N_i)\right)\left(\sum_{i=1}^{\nu_n}\ln((E[\mathcal{R}_{k,t}(X,n,N)])_i)\right)}{\nu_n\cdot\sum_{i=1}^{\nu_n}(\ln(N_i))^2 - \left(\sum_{i=1}^{\nu_n}\ln(N_i)\right)^2}}\)

Inputs


*Last modified Friday, 26th May, 2017.