- LTMA (Linear Trend Moving Average): Introduces a predictive moving average using dual cascaded EMAs for trend estimation. - MCNMA (McNicholl EMA): Implements a zero-lag TEMA using a cascaded EMA structure for enhanced responsiveness. - NLMA (Non-Lag Moving Average): Utilizes a damped cosine kernel to achieve reduced lag in moving averages. - NMA (Natural Moving Average): Adapts smoothing based on volatility profiles using a square-root kernel. - NYQMA (Nyquist Moving Average): Applies the Nyquist-Shannon theorem to prevent aliasing in cascaded moving averages. - RAIN (Rainbow Moving Average): Combines multiple SMA layers with weighted averages for multi-scale smoothing. - TRAMA (Trend Regularity Adaptive Moving Average): Adapts smoothing based on the frequency of new highs and lows in price data.
5.1 KiB
FDIST: F-Distribution CDF
The F-Distribution CDF transforms a min-max normalized price into the cumulative distribution function of the F-distribution (Fisher-Snedecor distribution), producing an output in [0, 1]. The F-distribution arises as the ratio of two chi-squared random variables divided by their respective degrees of freedom, making it the natural distribution for variance ratio tests. By mapping normalized price through the regularized incomplete beta function with parameters tied to degrees of freedom d_1 and d_2, FDIST provides a probabilistic ranking that is asymmetric: the CDF shape changes qualitatively depending on whether d_1 < d_2, d_1 = d_2, or d_1 > d_2, giving traders control over the nonlinear response curve.
Historical Context
The F-distribution was developed independently by George Snedecor (1934) and Ronald Fisher (1924), though Fisher's earlier work on variance ratios laid the theoretical foundation. The distribution is named in Fisher's honor by Snedecor. Its primary statistical application is the F-test for comparing variances of two populations, and it forms the backbone of ANOVA (Analysis of Variance), one of the most widely used statistical procedures.
In financial applications, the F-distribution appears in variance ratio tests (Lo and MacKinlay, 1988) used to test the random walk hypothesis. The CDF form used here repurposes the distribution's shape as a nonlinear mapping: with equal degrees of freedom (d_1 = d_2), the CDF is approximately symmetric around 0.5; with d_1 \gg d_2, the curve shifts left (more probability mass near zero); with d_1 \ll d_2, it shifts right. This parameter-controlled asymmetry distinguishes FDIST from simpler sigmoid-like transformations.
The implementation uses the same Lanczos log-gamma and Lentz continued fraction machinery as BETADIST, since the F-distribution CDF reduces to a regularized incomplete beta function through a variable substitution.
Architecture and Physics
The computation follows a three-phase pipeline:
Phase 1: Min-max normalization scans period bars to find extrema, then maps the current source to x \in [0, 1]. Zero-range defaults to 0.5.
Phase 2: Variable transformation converts the normalized value x to the beta function argument:
t = \frac{d_1 \cdot x}{d_1 \cdot x + d_2}
This maps x \in [0, \infty) to t \in [0, 1), which is the domain of the regularized incomplete beta function. Since input x is already in [0, 1], the effective range of t is [0, d_1/(d_1 + d_2)].
Phase 3: Regularized incomplete beta evaluates I_t(d_1/2, d_2/2) using the Lentz continued fraction algorithm. The implementation includes a reflection step when x > (a+1)/(a+b+2) to ensure the continued fraction converges from the faster side. Convergence typically requires 10-20 iterations to reach \epsilon = 10^{-10}.
Shared infrastructure: The lnGamma() function uses the Lanczos approximation with g = 7 and 9 coefficients, identical to the implementation in BETADIST and other distribution indicators. The betaReg() continued fraction is likewise shared.
Mathematical Foundation
The F-distribution with d_1 numerator and d_2 denominator degrees of freedom has PDF:
f(x; d_1, d_2) = \frac{1}{B(d_1/2, d_2/2)} \cdot \left(\frac{d_1}{d_2}\right)^{d_1/2} \cdot \frac{x^{d_1/2 - 1}}{(1 + d_1 x / d_2)^{(d_1+d_2)/2}}
The CDF is expressed via the regularized incomplete beta function:
F(x; d_1, d_2) = I_t\!\left(\frac{d_1}{2}, \frac{d_2}{2}\right), \quad t = \frac{d_1 x}{d_1 x + d_2}
where the regularized incomplete beta function is:
I_x(a, b) = \frac{B(x; a, b)}{B(a, b)} = \frac{1}{B(a, b)} \int_0^x t^{a-1}(1-t)^{b-1}\,dt
Lentz continued fraction for I_x(a, b):
I_x(a,b) = \frac{x^a (1-x)^b}{a \cdot B(a,b)} \cdot \cfrac{1}{1 + \cfrac{d_1}{1 + \cfrac{d_2}{1 + \cdots}}}
with convergents d_m defined by the even/odd recurrence involving a, b, and x.
Parameter constraints: period > 0, d_1 > 0, d_2 > 0. Output is bounded [0, 1].
FDIST(source, period, d1, d2):
// Phase 1: min-max normalization
min_val = min(source[0..period-1])
max_val = max(source[0..period-1])
range = max_val - min_val
x = range > 0 ? (source - min_val) / range : 0.5
// Phase 2: variable transformation
safe_x = max(0, x)
t = d1 * safe_x / (d1 * safe_x + d2)
// Phase 3: regularized incomplete beta via Lentz CF
return betaReg(t, d1/2, d2/2)
Resources
- Fisher, R.A. "On a Distribution Yielding the Error Functions of Several Well Known Statistics." Proc. International Mathematical Congress, Toronto, 1924.
- Snedecor, G.W. "Calculation and Interpretation of Analysis of Variance and Covariance." Collegiate Press, 1934.
- Press, W.H. et al. "Numerical Recipes: The Art of Scientific Computing." 3rd edition, Cambridge University Press, 2007. Chapter 6.4 (Incomplete Beta Function).
- Lo, A. & MacKinlay, A.C. "Stock Market Prices Do Not Follow Random Walks: Evidence from a Simple Specification Test." Review of Financial Studies, 1988.
- Lentz, W.J. "Generating Bessel Functions in Mie Scattering Calculations Using Continued Fractions." Applied Optics, 1976.