PINE LIBRARY
업데이트됨 DistributionTest

Library "DistributionTest"
Comprehensive statistical distribution library for quantitative finance and trading applications.
Provides complete statistical functions including PDF, CDF, quantile (inverse CDF), survival functions, random sampling, and moment calculations for essential probability distributions.
All code has been verified (using AI) against authoritative mathematical sources, including:
- Wikipedia: en.wikipedia.org
- Wolfram MathWorld: mathworld.wolfram.com
- All formulas have been cross-validated for mathematical accuracy.
See: Distributions.UTests [Kabua] for extensive unit tests covering all functions and edge cases.
Supported Distributions:
Core Statistical Functions:
Object-Oriented Interface:
Pine Script®
Trading Applications by Use Case:
Distribution Selection Guide:
Important Limitations:
createNormal(mu, sigma)
Create Normal distribution N(μ, σ²)
Parameters:
mu (float): Mean parameter (location)
sigma (float): Standard deviation parameter (scale > 0)
Returns: Distribution Normal distribution instance
createUniform(min, max)
Create Uniform distribution U(min, max)
Parameters:
min (float): Minimum value (lower bound)
max (float): Maximum value (upper bound > min)
Returns: Distribution Uniform distribution instance
createTriangular(min, max, mode)
Create Triangular distribution
Parameters:
min (float): Minimum value (lower bound)
max (float): Maximum value (upper bound > min)
mode (float): Mode value (min ≤ mode ≤ max)
Returns: Distribution Triangular distribution instance
createBeta(alpha, beta)
Create Beta distribution Beta(α, β)
Parameters:
alpha (float): First shape parameter (α > 0)
beta (float): Second shape parameter (β > 0)
Returns: Distribution Beta distribution instance
createLogNormal(mu, sigma)
Create Log-Normal distribution
Parameters:
mu (float): Mean of underlying normal distribution (location)
sigma (float): Standard deviation of underlying normal distribution (scale > 0)
Returns: Distribution Log-Normal distribution instance
createStudentT(nu)
Create Student's t-distribution
Parameters:
nu (float): Degrees of freedom (ν > 0)
Returns: Distribution Student's t-distribution instance
createLaplace(mu, b)
Create Laplace distribution (Double Exponential)
Parameters:
mu (float): Location parameter (mean)
b (float): Scale parameter (b > 0)
Returns: Distribution Laplace distribution instance
createExponential(lambda)
Create Exponential distribution
Parameters:
lambda (float): Rate parameter (λ > 0)
Returns: Distribution Exponential distribution instance
createGamma(alpha, beta)
Create Gamma distribution
Parameters:
alpha (float): Shape parameter (α > 0)
beta (float): Scale parameter (β > 0)
Returns: Distribution Gamma distribution instance
method pdf(this, x)
Probability density function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float PDF value f(x)
method cdf(this, x)
Cumulative distribution function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float CDF value P(X ≤ x)
method quantile(this, p)
Quantile function - inverse CDF (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
p (float): Probability (0 < p < 1)
Returns: float Quantile value x such that P(X ≤ x) = p
method survival(this, x)
Survival function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float Survival value P(X > x) = 1 - F(x)
method sample(this, seed)
Random sampling (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
seed (int): Random seed for deterministic output
Returns: float Random sample from distribution
method mean(this)
Distribution mean (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Expected value E[X]
method variance(this)
Distribution variance (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Variance Var[X]
method stddev(this)
Distribution standard deviation (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Standard deviation σ = √Var[X]
method skewness(this)
Distribution skewness (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Skewness coefficient
method kurtosis(this)
Distribution kurtosis (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Kurtosis coefficient
method testProperties(this, numSamples, seed)
Test statistical properties of a distribution
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
numSamples (int): Number of samples to generate (default: 1000)
seed (int): Random seed for reproducible tests (default: 9999)
Returns: string Statistical summary for validation
Distribution
Distribution Core statistical distribution with polymorphic interface
Fields:
distributionType (series DistributionType): Type of statistical distribution
param1 (series float): First parameter (μ for Normal/LogNormal, min for Uniform/Triangular, α for Beta, ν for StudentT, μ for Laplace, λ for Exponential, α for Gamma)
param2 (series float): Second parameter (σ for Normal/LogNormal, max for Uniform/Triangular, β for Beta/Gamma, b for Laplace, unused for StudentT/Exponential)
param3 (series float): Third parameter (mode for Triangular, unused for others)
Comprehensive statistical distribution library for quantitative finance and trading applications.
Provides complete statistical functions including PDF, CDF, quantile (inverse CDF), survival functions, random sampling, and moment calculations for essential probability distributions.
All code has been verified (using AI) against authoritative mathematical sources, including:
- Wikipedia: en.wikipedia.org
- Wolfram MathWorld: mathworld.wolfram.com
- All formulas have been cross-validated for mathematical accuracy.
See: Distributions.UTests [Kabua] for extensive unit tests covering all functions and edge cases.
Supported Distributions:
- Normal: Gaussian distribution with mean (μ) and standard deviation (σ) - Foundation of MPT, CAPM, and traditional risk models (assumptions often violated by fat tails)
- Uniform: Continuous uniform distribution over [min, max] interval - Essential for Monte Carlo simulations and random sampling in trading systems
- Triangular: Triangular distribution with min, max, and mode parameters - Expert judgment modeling with optimistic/pessimistic/most likely scenarios
- Beta: Beta distribution with shape parameters α and β over [0,1] interval - Bayesian finance, mean reversion modeling, and proportion parameters (hit rates, portfolio weights)
- Log-Normal: Log-normal distribution for positive values (stock prices, volatility) - Black-Scholes options pricing foundation, ensures non-negative asset prices
- Student's t: Heavy-tailed distribution with degrees of freedom parameter - Heavy-tail VaR calculations, superior for extreme risk at >98.5% confidence levels
- Laplace: Double exponential distribution with location and scale parameters - Volatility modeling with sharp peaks and heavy tails for market regime changes
- Exponential: Exponential distribution for time-to-event modeling - Time-to-event modeling for trade duration and market microstructure analysis
- Gamma: Gamma distribution for extreme values and waiting times - Operational risk, aggregate loss modeling, and flexible skewed phenomena
Core Statistical Functions:
- PDF: Probability density function - likelihood of specific values
- CDF: Cumulative distribution function - probability of values ≤ x
- Quantile: Inverse CDF - critical for Value-at-Risk (VaR) calculations
- Survival: Tail probability function - probability of values > x
- Sample: Random number generation for Monte Carlo simulations
- Moments: Mean, variance, skewness, kurtosis for distribution characterization
Object-Oriented Interface:
import Kabua/Distributions/1 as dist
// Risk Management Examples
normal = dist.createNormal(0.0, 0.02) // 2% daily vol for basic VaR
studentt = dist.createStudentT(5.0) // Heavy-tailed returns for stress testing
var_95 = studentt.quantile(0.05) // 5% Value-at-Risk threshold
tail_risk = studentt.survival(2.0) // P(X > 2.0) extreme event probability
// Options Pricing Examples
lognormal = dist.createLogNormal(0.05, 0.2) // Stock with 5% drift, 20% vol
stock_price = lognormal.sample(1234) // Simulate future stock price
call_prob = lognormal.survival(110.0) // P(Stock > Strike) for call option
// Monte Carlo Backtesting
uniform = dist.createUniform(0.0, 1.0) // Random number generation
random_sequence = uniform.sample(1234) // Randomize trade order
// Expert Judgment Modeling
triangular = dist.createTriangular(0.8, 1.2, 1.0) // Price target: pessimistic/optimistic/most likely
expected_target = triangular.mean() // Expected price target
// Bayesian Analysis
beta = dist.createBeta(8.0, 2.0) // Success rate prior (80% hit rate)
hit_rate_sample = beta.sample(1234) // Sample hit rate for strategy
// Market Microstructure
exponential = dist.createExponential(0.1) // Trade arrival rate (10 trades/minute)
time_to_next_trade = exponential.sample(1234) // Time until next trade
Trading Applications by Use Case:
- Options Pricing: Log-Normal (Black-Scholes foundation)
- Risk Management: Student's t (VaR), Normal (traditional), Laplace (regime changes)
- Monte Carlo Simulation: Uniform (random generation), Normal (baseline scenarios)
- Uncertainty Modeling: Triangular (expert judgment), Beta (Bayesian priors)
- Market Microstructure: Exponential (trade timing), Gamma (event clustering)
- Portfolio Theory: Normal (MPT), Beta (mean reversion), Log-Normal (growth)
Distribution Selection Guide:
- Need non-negative values? → Log-Normal, Exponential, Gamma
- Modeling extreme events? → Student's t, Laplace, Gamma
- Expert judgment with bounds? → Triangular, Beta
- Traditional finance models? → Normal (with caveats)
- Random sampling/simulation? → Uniform (foundation)
- Time-to-event modeling? → Exponential, Gamma
- Bayesian analysis? → Beta, Normal (conjugate priors)
Important Limitations:
- Normal Distribution: Severely underestimates tail risk, assumes symmetric returns
- Log-Normal: Cannot model negative returns, assumes constant volatility
- Student's t: Symmetric (no skewness), infinite variance for low df
- Uniform: Unrealistic for actual return modeling, simulation foundation only
- Beta: Bounded to [0,1], may need scaling for real-world applications
- Triangular: Limited flexibility, requires expert bounds estimation
- Laplace: Sharp peak assumption may not fit all return distributions
- Exponential: Memoryless property may not reflect market clustering
- Gamma: Complex parameterization, may require calibration
createNormal(mu, sigma)
Create Normal distribution N(μ, σ²)
Parameters:
mu (float): Mean parameter (location)
sigma (float): Standard deviation parameter (scale > 0)
Returns: Distribution Normal distribution instance
createUniform(min, max)
Create Uniform distribution U(min, max)
Parameters:
min (float): Minimum value (lower bound)
max (float): Maximum value (upper bound > min)
Returns: Distribution Uniform distribution instance
createTriangular(min, max, mode)
Create Triangular distribution
Parameters:
min (float): Minimum value (lower bound)
max (float): Maximum value (upper bound > min)
mode (float): Mode value (min ≤ mode ≤ max)
Returns: Distribution Triangular distribution instance
createBeta(alpha, beta)
Create Beta distribution Beta(α, β)
Parameters:
alpha (float): First shape parameter (α > 0)
beta (float): Second shape parameter (β > 0)
Returns: Distribution Beta distribution instance
createLogNormal(mu, sigma)
Create Log-Normal distribution
Parameters:
mu (float): Mean of underlying normal distribution (location)
sigma (float): Standard deviation of underlying normal distribution (scale > 0)
Returns: Distribution Log-Normal distribution instance
createStudentT(nu)
Create Student's t-distribution
Parameters:
nu (float): Degrees of freedom (ν > 0)
Returns: Distribution Student's t-distribution instance
createLaplace(mu, b)
Create Laplace distribution (Double Exponential)
Parameters:
mu (float): Location parameter (mean)
b (float): Scale parameter (b > 0)
Returns: Distribution Laplace distribution instance
createExponential(lambda)
Create Exponential distribution
Parameters:
lambda (float): Rate parameter (λ > 0)
Returns: Distribution Exponential distribution instance
createGamma(alpha, beta)
Create Gamma distribution
Parameters:
alpha (float): Shape parameter (α > 0)
beta (float): Scale parameter (β > 0)
Returns: Distribution Gamma distribution instance
method pdf(this, x)
Probability density function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float PDF value f(x)
method cdf(this, x)
Cumulative distribution function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float CDF value P(X ≤ x)
method quantile(this, p)
Quantile function - inverse CDF (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
p (float): Probability (0 < p < 1)
Returns: float Quantile value x such that P(X ≤ x) = p
method survival(this, x)
Survival function (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
x (float): Value to evaluate
Returns: float Survival value P(X > x) = 1 - F(x)
method sample(this, seed)
Random sampling (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
seed (int): Random seed for deterministic output
Returns: float Random sample from distribution
method mean(this)
Distribution mean (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Expected value E[X]
method variance(this)
Distribution variance (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Variance Var[X]
method stddev(this)
Distribution standard deviation (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Standard deviation σ = √Var[X]
method skewness(this)
Distribution skewness (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Skewness coefficient
method kurtosis(this)
Distribution kurtosis (polymorphic dispatch)
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
Returns: float Kurtosis coefficient
method testProperties(this, numSamples, seed)
Test statistical properties of a distribution
Namespace types: Distribution
Parameters:
this (Distribution): Distribution instance
numSamples (int): Number of samples to generate (default: 1000)
seed (int): Random seed for reproducible tests (default: 9999)
Returns: string Statistical summary for validation
Distribution
Distribution Core statistical distribution with polymorphic interface
Fields:
distributionType (series DistributionType): Type of statistical distribution
param1 (series float): First parameter (μ for Normal/LogNormal, min for Uniform/Triangular, α for Beta, ν for StudentT, μ for Laplace, λ for Exponential, α for Gamma)
param2 (series float): Second parameter (σ for Normal/LogNormal, max for Uniform/Triangular, β for Beta/Gamma, b for Laplace, unused for StudentT/Exponential)
param3 (series float): Third parameter (mode for Triangular, unused for others)
릴리즈 노트
v2파인 라이브러리
진정한 트레이딩뷰 정신에 따라 작성자는 이 파인 코드를 오픈 소스 라이브러리로 공개하여 커뮤니티의 다른 파인 프로그래머들이 재사용할 수 있도록 했습니다. 작성자에게 건배! 이 라이브러리는 개인적으로 또는 다른 오픈 소스 출판물에서 사용할 수 있지만, 출판물에서 이 코드를 재사용하는 것은 하우스 룰의 적용을 받습니다.
면책사항
이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.
파인 라이브러리
진정한 트레이딩뷰 정신에 따라 작성자는 이 파인 코드를 오픈 소스 라이브러리로 공개하여 커뮤니티의 다른 파인 프로그래머들이 재사용할 수 있도록 했습니다. 작성자에게 건배! 이 라이브러리는 개인적으로 또는 다른 오픈 소스 출판물에서 사용할 수 있지만, 출판물에서 이 코드를 재사용하는 것은 하우스 룰의 적용을 받습니다.
면책사항
이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.