nolantait

HurstExponent

Library "HurstExponent"
Library to calculate Hurst Exponent refactored from Hurst Exponent - Detrended Fluctuation Analysis

demean(src) Calculates a series subtracted from the series mean.
  Parameters:
    src: The series used to calculate the difference from the mean (e.g. log returns).
  Returns: The series subtracted from the series mean

cumsum(src, length) Calculates a cumulated sum from the series.
  Parameters:
    src: The series used to calculate the cumulative sum (e.g. demeaned log returns).
    length: The length used to calculate the cumulative sum (e.g. 100).
  Returns: The cumulative sum of the series as an array

aproximateLogScale(scale, length) Calculates an aproximated log scale. Used to save sample size
  Parameters:
    scale: The scale to aproximate.
    length: The length used to aproximate the expected scale.
  Returns: The aproximated log scale of the value

rootMeanSum(cumulativeSum, barId, numberOfSegments) Calculates linear trend to determine error between linear trend and cumulative sum
  Parameters:
    cumulativeSum: The cumulative sum array to regress.
    barId: The barId for the slice
    numberOfSegments: The total number of segments used for the regression calculation
  Returns: The error between linear trend and cumulative sum

averageRootMeanSum(cumulativeSum, barId, length) Calculates the Root Mean Sum Measured for each block (e.g the aproximated log scale)
  Parameters:
    cumulativeSum: The cumulative sum array to regress and determine the average of.
    barId: The barId for the slice
    length: The length used for finding the average
  Returns: The average root mean sum error of the cumulativeSum

criticalValues(length) Calculates the critical values for a hurst exponent for a given length
  Parameters:
    length: The length used for finding the average
  Returns: The critical value, upper critical value and lower critical value for a hurst exponent

slope(cumulativeSum, length) Calculates the hurst exponent slope measured from root mean sum, scaled to log log plot using linear regression
  Parameters:
    cumulativeSum: The cumulative sum array to regress and determine the average of.
    length: The length used for the hurst exponent sample size
  Returns: The slope of the hurst exponent

smooth(src, length) Smooths input using advanced linear regression
  Parameters:
    src: The series to smooth (e.g. hurst exponent slope)
    length: The length used to smooth
  Returns: The src smoothed according to the given length

exponent(src, hurstLength) Wrapper function to calculate the hurst exponent slope
  Parameters:
    src: The series used for returns calculation (e.g. close)
    hurstLength: The length used to calculate the hurst exponent (should be greater than 50)
  Returns: The src smoothed according to the given length
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.