adding missing validations

This commit is contained in:
Miha Kralj
2026-02-26 09:59:44 -08:00
parent 467a8c1cef
commit 9ab37c1200
231 changed files with 60015 additions and 302 deletions
+18
View File
@@ -156,6 +156,7 @@ Bounded indicators that oscillate around a centerline or between fixed extremes.
| [**DECO**](../lib/oscillators/deco/Deco.md) | Ehlers Decycler Oscillator | Dual HP bandpass cycle isolation |
| [**DPO**](../lib/oscillators/dpo/Dpo.md) | Detrended Price Oscillator | Displaced SMA trend removal |
| [**FISHER**](../lib/oscillators/fisher/Fisher.md) | Ehlers Fisher Transform | Gaussian-normalized price reversal |
| [**GATOR**](../lib/oscillators/gator/Gator.md) | Williams Gator Oscillator | Alligator line difference histograms (upper/lower) |
| [**IMI**](../lib/oscillators/imi/Imi.md) | Intraday Momentum Index | Candlestick RSI (0-100 oscillator) |
| [**INERTIA**](../lib/oscillators/inertia/Inertia.md) | Inertia | Linear regression residual |
| [**KDJ**](../lib/oscillators/kdj/Kdj.md) | KDJ Indicator | Enhanced Stochastic (J = 3K 2D) |
@@ -188,13 +189,17 @@ Indicators measuring trend strength, regime, and directional movement quality.
| [**CHOP**](../lib/dynamics/chop/Chop.md) | Choppiness Index | ATR sum vs range; trending vs choppy |
| [**DMX**](../lib/dynamics/dmx/Dmx.md) | Jurik DMX | Enhanced directional movement |
| [**DX**](../lib/dynamics/dx/Dx.md) | Directional Movement Index | Raw directional strength |
| [**GHLA**](../lib/dynamics/ghla/Ghla.md) | Gann High-Low Activator | SMA(High)/SMA(Low) alternating on crossover |
| [**HT_TRENDMODE**](../lib/dynamics/ht_trendmode/HtTrendmode.md) | Ehlers Hilbert Transform Trend vs Cycle Mode | Cycle vs trend regime detection |
| [**ICHIMOKU**](../lib/dynamics/ichimoku/Ichimoku.md) | Ichimoku Cloud | Multi-component trend system |
| [**IMPULSE**](../lib/dynamics/impulse/Impulse.md) | Elder Impulse System | EMA + MACD-H trend/momentum fusion |
| [**QSTICK**](../lib/dynamics/qstick/Qstick.md) | Qstick | Average close-open difference |
| [**PFE**](../lib/dynamics/pfe/Pfe.md) | Polarized Fractal Efficiency | Fractal path efficiency as trend strength |
| [**RAVI**](../lib/dynamics/ravi/Ravi.md) | Chande Range Action Verification Index | Dual-SMA divergence as trend strength |
| [**SUPER**](../lib/dynamics/super/Super.md) | SuperTrend | ATR-based trend bands |
| [**TTM_SQUEEZE**](../lib/dynamics/ttm_squeeze/TtmSqueeze.md) | TTM Squeeze | BB inside KC squeeze with momentum |
| [**TTM_TREND**](../lib/dynamics/ttm_trend/TtmTrend.md) | TTM Trend | Bar coloring by close vs midline |
| [**VHF**](../lib/dynamics/vhf/Vhf.md) | Vertical Horizontal Filter | Range / path ratio trend strength |
| [**VORTEX**](../lib/dynamics/vortex/Vortex.md) | Vortex Indicator | Uptrend/downtrend movement comparison |
### Momentum
@@ -237,6 +242,7 @@ Measures of price variability and range. Essential for position sizing and stop
| [**CCV**](../lib/volatility/ccv/Ccv.md) | Close-to-Close Volatility | Log-return standard deviation |
| [**CV**](../lib/volatility/cv/Cv.md) | Coefficient of Variation | StdDev / Mean ratio |
| [**CVI**](../lib/volatility/cvi/Cvi.md) | Chaikin Volatility | EMA change of H-L range |
| [**ETHERM**](../lib/volatility/etherm/Etherm.md) | Elder's Thermometer | Absolute bar range in ATR units |
| [**EWMA**](../lib/volatility/ewma/Ewma.md) | EWMA Volatility | Exponentially weighted variance |
| [**GKV**](../lib/volatility/gkv/Gkv.md) | Garman-Klass Volatility | OHLC-based efficiency estimator |
| [**HLV**](../lib/volatility/hlv/Hlv.md) | High-Low Volatility | Parkinson range-based estimator |
@@ -403,11 +409,23 @@ Mathematical transformations and derivative indicators. Building blocks for anal
| Indicator | Full Name | Notes |
| :-------- | :-------- | :---- |
| [**ACCEL**](../lib/numerics/accel/Accel.md) | Acceleration (2nd Derivative) | Change in slope |
| [**BETADIST**](../lib/numerics/betadist/Betadist.md) | Beta Distribution (CDF/PDF) | Rolling Beta CDF — probability normalized observation falls below threshold |
| [**BINOMDIST**](../lib/numerics/binomdist/Binomdist.md) | Binomial Distribution (CDF) | Rolling Binomial CDF — probability normalized observation falls below threshold |
| [**EXPDIST**](../lib/numerics/expdist/Expdist.md) | Exponential Distribution (CDF) | Rolling Exponential CDF — probability normalized observation falls below threshold |
| [**FDIST**](../lib/numerics/fdist/Fdist.md) | F-Distribution (CDF) | Rolling Fisher-Snedecor CDF — variance-ratio probability transform via regularized incomplete beta |
| [**GAMMADIST**](../lib/numerics/gammadist/Gammadist.md) | Gamma Distribution (CDF) | Rolling Gamma CDF — shape/scale-parameterized probability transform via regularized incomplete gamma |
| [**NORMDIST**](../lib/numerics/normdist/Normdist.md) | Normal Distribution (CDF) | Rolling Gaussian CDF — z-score normalized probability transform via erf approximation |
| [**POISSONDIST**](../lib/numerics/poissondist/Poissondist.md) | Poisson Distribution (CDF) | Rolling Poisson CDF — count-based probability transform via regularized incomplete gamma |
| [**TDIST**](../lib/numerics/tdist/Tdist.md) | Student's t-Distribution (CDF) | Rolling Student's t CDF — heavy-tailed probability transform via regularized incomplete beta |
| [**WEIBULLDIST**](../lib/numerics/weibulldist/Weibulldist.md) | Weibull Distribution (CDF) | Rolling Weibull CDF — two-parameter closed-form probability transform via pow + exp |
| [**CHANGE**](../lib/numerics/change/Change.md) | Percentage Change | Relative price movement |
| [**CWT**](../lib/numerics/cwt/Cwt.md) | Continuous Wavelet Transform | Morlet CWT magnitude at a specified scale — time-frequency decomposition |
| [**DWT**](../lib/numerics/dwt/Dwt.md) | Discrete Wavelet Transform | À trous Haar stationary DWT — multi-resolution approximation + detail, WarmupPeriod = 2^levels |
| [**EXPTRANS**](../lib/numerics/exptrans/Exptrans.md) | Exponential Transform | e^x for log-space reversal |
| [**HIGHEST**](../lib/numerics/highest/Highest.md) | Rolling Maximum | O(1) via monotonic deque |
| [**JERK**](../lib/numerics/jerk/Jerk.md) | Jerk (3rd Derivative) | Change in acceleration |
| [**LINEARTRANS**](../lib/numerics/lineartrans/Lineartrans.md) | Linear Transform | y = ax + b scaling |
| [**LOGNORMDIST**](../lib/numerics/lognormdist/Lognormdist.md) | Log-Normal Distribution | Log-normal CDF via min-max normalization |
| [**LOGTRANS**](../lib/numerics/logtrans/Logtrans.md) | Logarithmic Transform | Natural log for percentage analysis |
| [**LOWEST**](../lib/numerics/lowest/Lowest.md) | Rolling Minimum | O(1) via monotonic deque |
| [**NORMALIZE**](../lib/numerics/normalize/Normalize.md) | Min-Max Normalization | Scale to [0,1] via rolling min/max |
@@ -1,50 +0,0 @@
# Release Note: CCI WarmupPeriod — Static to Instance Migration
## Summary
`Cci.WarmupPeriod` has been changed from a **static** property to an **instance** property.
This allows each `Cci` instance to report the warmup period for its configured `period` parameter,
rather than a single hard-coded default.
## Breaking Change
Code that previously accessed `Cci.WarmupPeriod` as a static member will no longer compile:
```csharp
// ❌ Before (no longer compiles)
int warmup = Cci.WarmupPeriod;
```
## Migration
### Option A — Use the instance property (recommended)
```csharp
var cci = new Cci(period: 14);
int warmup = cci.WarmupPeriod; // returns 14
```
### Option B — Use the obsolete static accessor (temporary bridge)
A static `DefaultWarmupPeriod` property has been added and marked `[Obsolete]` to ease migration:
```csharp
// ⚠️ Compiles with a warning; will be removed in a future major version.
#pragma warning disable CS0618
int warmup = Cci.DefaultWarmupPeriod; // returns 20 (the default period)
#pragma warning restore CS0618
```
## Timeline
| Milestone | Action |
|-----------|--------|
| Current release | `Cci.DefaultWarmupPeriod` available as `[Obsolete]` static bridge |
| Next major version | `Cci.DefaultWarmupPeriod` will be removed |
## Related Changes
- **Ppo.Update(TSeries):** Fixed state synchronization — `_p_state = _state` is now
assigned after the batch loop, matching the pattern used in `Pmo.Update(TSeries)`.
- **Ppo.Batch(ReadOnlySpan):** Added `fastPeriod >= slowPeriod` guard to match the
constructor validation, ensuring invalid parameter combinations are rejected early.
+18
View File
@@ -63,6 +63,18 @@ No external reference exists. Implementation verified through unit tests, edge c
| **Bessel Filter** | [Bessel](../lib/filters/bessel/Bessel.md) | - | - | - | - |
| **Bessel-Weighted MA** | [Bwma](../lib/trends_FIR/bwma/Bwma.md) | - | - | - | - |
| **Beta Coefficient** | [Beta](../lib/statistics/beta/Beta.md) | ❔ | - | ✔️ | - |
| **Beta Distribution** | [Betadist](../lib/numerics/betadist/Betadist.md) | - | - | - | - |
| **Binomial Distribution** | [Binomdist](../lib/numerics/binomdist/Binomdist.md) | - | - | - | - |
| **Exponential Distribution** | [Expdist](../lib/numerics/expdist/Expdist.md) | - | - | - | - |
| **F-Distribution** | [Fdist](../lib/numerics/fdist/Fdist.md) | - | - | - | - |
| **Gamma Distribution** | [Gammadist](../lib/numerics/gammadist/Gammadist.md) | - | - | - | - |
| **Log-Normal Distribution** | [Lognormdist](../lib/numerics/lognormdist/Lognormdist.md) | - | - | - | - |
| **Normal Distribution** | [Normdist](../lib/numerics/normdist/Normdist.md) | - | - | - | - |
| **Poisson Distribution** | [Poissondist](../lib/numerics/poissondist/Poissondist.md) | - | - | - | - |
| **Student's t-Distribution** | [Tdist](../lib/numerics/tdist/Tdist.md) | - | - | - | - |
| **Weibull Distribution** | [Weibulldist](../lib/numerics/weibulldist/Weibulldist.md) | - | - | - | - |
| **Continuous Wavelet Transform** | [Cwt](../lib/numerics/cwt/Cwt.md) | - | - | - | - |
| **Discrete Wavelet Transform** | [Dwt](../lib/numerics/dwt/Dwt.md) | - | - | - | - |
| **Bias** | [Bias](../lib/momentum/bias/Bias.md) | - | - | - | - |
| **Bilateral Filter** | [Bilateral](../lib/filters/bilateral/Bilateral.md) | - | - | - | - |
| **Blackman Window MA** | [Blma](../lib/trends_FIR/blma/Blma.md) | - | - | - | - |
@@ -125,12 +137,15 @@ No external reference exists. Implementation verified through unit tests, edge c
| **Exponential Moving Average** | [Ema](../lib/trends_IIR/ema/Ema.md) | ✔️ | ✔️ | ✔️ | ✔️ |
| **Exponential Transformation** | Exptrans | - | - | - | - |
| **Exponential Weighted MA Volatility** | [Ewma](../lib/volatility/ewma/Ewma.md) | - | - | - | ❔ |
| **Elder's Thermometer** | [Etherm](../lib/volatility/etherm/Etherm.md) | - | - | - | - |
| **Extended Traditional Pivots** | [Pivotext](../lib/reversals/pivotext/Pivotext.md) | - | - | - | - |
| **Fibonacci Pivot Points** | Pivotfib | - | - | - | ❔ |
| **Ehlers Fisher Transform** | [Fisher](../lib/oscillators/fisher/Fisher.md) | - | ❔ | ❔ | ❔ |
| **Force Index** | [Efi](../lib/volume/efi/Efi.md) | - | - | ✔️ | ✔️ |
| **Fractal Chaos Bands** | [Fcb](../lib/channels/fcb/fcb.md) | - | - | ✔️ | ❔ |
| **Garman-Klass Volatility** | [Gkv](../lib/volatility/gkv/Gkv.md) | - | - | - | - |
| **Gator Oscillator** | [Gator](../lib/oscillators/gator/Gator.md) | - | - | - | - |
| **Gann High-Low Activator** | [Ghla](../lib/dynamics/ghla/Ghla.md) | - | - | - | - |
| **Gaussian Filter** | [Gauss](../lib/filters/gauss/Gauss.md) | - | - | - | ❔ |
| **Gaussian-Weighted MA** | Gwma | - | - | - | - |
| **Geometric Mean** | [Geomean](../lib/statistics/geomean/Geomean.md) | - | - | - | - |
@@ -227,6 +242,7 @@ No external reference exists. Implementation verified through unit tests, edge c
| **Percentage Price Oscillator** | Ppo | ✔️ | ✔️ | - | ✔️ |
| **Percentage Volume Oscillator** | [Pvo](../lib/volume/pvo/Pvo.md) | - | - | - | ❔ |
| **Percentile** | Percentile | - | - | - | - |
| **Polarized Fractal Efficiency** | [Pfe](../lib/dynamics/pfe/Pfe.md) | - | - | - | - |
| **Pivot Points** | [Pivot](../lib/reversals/pivot/Pivot.md) | - | - | - | ❔ |
| **Pivot Points (Camarilla)** | [Pivotcam](../lib/reversals/pivotcam/Pivotcam.md) | - | - | - | ❔ |
| **Pivot Points (DeMark)** | [Pivotdem](../lib/reversals/pivotdem/Pivotdem.md) | - | - | - | ❔ |
@@ -243,6 +259,7 @@ No external reference exists. Implementation verified through unit tests, edge c
| **Qstick Indicator** | Qstick | - | - | - | ❔ |
| **Quad Exponential MA** | [Qema](../lib/trends_IIR/qema/Qema.md) | - | - | - | - |
| **Quantile** | Quantile | - | - | - | - |
| **Range Action Verification Index** | [Ravi](../lib/dynamics/ravi/Ravi.md) | - | - | - | - |
| **Rate of acceleration; 3rd derivative** | [Jerk](../lib/numerics/jerk/Jerk.md) | - | - | - | - |
| **Rate of Change** | [Roc](../lib/momentum/roc/Roc.md) | - | ✔️ | ✔️ | ❔ |
| **Rate of change; 1st derivative** | [Slope](../lib/statistics/linreg/LinReg.md) | - | - | ✔️ | ❔ |
@@ -320,6 +337,7 @@ No external reference exists. Implementation verified through unit tests, edge c
| **Volume Weighted Accumulation/Distribution** | [Vwad](../lib/volume/vwad/Vwad.md) | - | - | - | - |
| **Volume Weighted Average Price** | [Vwap](../lib/volume/vwap/Vwap.md) | - | - | - | - |
| **Volume Weighted Moving Average** | [Vwma](../lib/volume/vwma/Vwma.md) | - | - | ✔️ | - |
| **Vertical Horizontal Filter** | [Vhf](../lib/dynamics/vhf/Vhf.md) | - | - | - | - |
| **Vortex Indicator** | Vortex | - | - | ✔️ | ❔ |
| **Ehlers Voss Predictive Filter** | [Voss](../lib/filters/voss/Voss.md) | - | - | - | ✔️ |
| **VWAP Bands** | [Vwapbands](../lib/channels/vwapbands/Vwapbands.md) | - | - | - | - |