PINE LIBRARY

GaussianDistribution

アップデート済
Library "GaussianDistribution"
This library defines a custom type `distr` representing a Gaussian (or other statistical) distribution.
It provides methods to calculate key statistical moments and scores, including mean, median, mode, standard deviation, variance, skewness, kurtosis, and Z-scores.
This library is useful for analyzing probability distributions in financial data.

Disclaimer:
I am not a mathematician, but I have implemented this library to the best of my understanding and capacity. Please be indulgent as I tried to translate statistical concepts into code as accurately as possible. Feedback, suggestions, and corrections are welcome to improve the reliability and robustness of this library.

mean(source, length)
  Calculate the mean (average) of the distribution
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
  Returns: Mean (μ)

stdev(source, length)
  Calculate the standard deviation (σ) of the distribution
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
  Returns: Standard deviation (σ)

skewness(source, length, mean, stdev)
  Calculate the skewness (γ₁) of the distribution
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
return Skewness (γ₁)

skewness(source, length)
  Overloaded skewness to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Skewness (γ₁)

mode(mean, stdev, skewness)
  Estimate mode - Most frequent value in the distribution (approximation based on skewness)
  Parameters:
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
    skewness (float): the skewness (γ₁) of the distribution
return Mode

mode(source, length)
  Overloaded mode to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Mode

median(mean, stdev, skewness)
  Estimate median - Middle value of the distribution (approximation)
  Parameters:
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
    skewness (float): the skewness (γ₁) of the distribution
return Median

median(source, length)
  Overloaded median to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Median

variance(stdev)
  Calculate variance (σ²) - Square of the standard deviation
  Parameters:
    stdev (float): the standard deviation (σ) of the distribution
return Variance (σ²)

variance(source, length)
  Overloaded variance to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Variance (σ²)

kurtosis(source, length, mean, stdev)
  Calculate kurtosis (γ₂) - Degree of "tailedness" in the distribution
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
return Kurtosis (γ₂)

kurtosis(source, length)
  Overloaded kurtosis to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Kurtosis (γ₂)

normal_score(source, mean, stdev)
  Calculate Z-score (standard score) assuming a normal distribution
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
return Z-Score

normal_score(source, length)
  Overloaded normal_score to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Z-Score

non_normal_score(source, mean, stdev, skewness, kurtosis)
  Calculate adjusted Z-score considering skewness and kurtosis
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    mean (float): the mean (average) of the distribution
    stdev (float): the standard deviation (σ) of the distribution
    skewness (float): the skewness (γ₁) of the distribution
    kurtosis (float): the "tailedness" in the distribution
return Z-Score

non_normal_score(source, length)
  Overloaded non_normal_score to calculate from source and length
  Parameters:
    source (float): Distribution source (typically a price or indicator series)
    length (int): Window length for the distribution (must be >= 30 for meaningful statistics)
return Z-Score

method init(this)
  Initialize all statistical fields of the `distr` type
  Namespace types: distr
  Parameters:
    this (distr)

method init(this, source, length)
  Overloaded initializer to set source and length
  Namespace types: distr
  Parameters:
    this (distr)
    source (float)
    length (int)

distr
  Custom type to represent a Gaussian distribution
  Fields:
    source (series float): Distribution source (typically a price or indicator series)
    length (series int): Window length for the distribution (must be >= 30 for meaningful statistics)
    mode (series float): Most frequent value in the distribution
    median (series float): Middle value separating the greater and lesser halves of the distribution
    mean (series float): μ (1st central moment) - Average of the distribution
    stdev (series float): σ or standard deviation (square root of the variance) - Measure of dispersion
    variance (series float): σ² (2nd central moment) - Squared standard deviation
    skewness (series float): γ₁ (3rd central moment) - Asymmetry of the distribution
    kurtosis (series float): γ₂ (4th central moment) - Degree of "tailedness" relative to a normal distribution
    normal_score (series float): Z-score assuming normal distribution
    non_normal_score (series float): Adjusted Z-score considering skewness and kurtosis
リリースノート
v2 Minor fixes
リリースノート
v3
gaussiandistributionKurtosis Indicatornon-normaldistributionnormaldistributionprobabilityskewnessstatisticalanalysisstatisticszscore

Pineライブラリ

TradingViewの精神に則り、作者はPineコードをオープンソースライブラリとして公開し、コミュニティの他のPineプログラマーが再利用できるようにしました。作者に敬意を表します!このライブラリを個人的に、または他のオープンソースの投稿で使用することができますが、このコードを投稿で再利用するには、ハウスルールに準拠する必要があります。

免責事項