diff --git a/_sidebar.md b/_sidebar.md
index 5d26445f..634f8da4 100644
--- a/_sidebar.md
+++ b/_sidebar.md
@@ -23,14 +23,14 @@
* [HANMA - Hanning MA](/lib/trends_FIR/hanma/Hanma.md)
* [HEND - Henderson Moving Average](/lib/trends_FIR/hend/Hend.md)
* [HMA - Hull MA](/lib/trends_FIR/hma/Hma.md)
- * [ILRS - Integral of LinReg Slope](/lib/trends_FIR/ilrs/Ilrs.md)
+ * [ILRS - Ehlers Integral of LinReg Slope](/lib/trends_FIR/ilrs/Ilrs.md)
* [KAISER - Kaiser Window MA](/lib/trends_FIR/kaiser/Kaiser.md)
* [LANCZOS - Lanczos (sinc) Window MA](/lib/trends_FIR/lanczos/Lanczos.md)
* [LSMA - Least Squares MA](/lib/trends_FIR/lsma/Lsma.md)
* [NLMA - Non-Lag MA](/lib/trends_FIR/nlma/Nlma.md)
* [NYQMA - Nyquist MA](/lib/trends_FIR/nyqma/Nyqma.md)
* [PARZEN - Parzen Window MA](/lib/trends_FIR/parzen/Parzen.md)
- * [PMA - Predictive Moving Average](/lib/trends_FIR/pma/Pma.md)
+ * [PMA - Ehlers Predictive Moving Average](/lib/trends_FIR/pma/Pma.md)
* [PWMA - Pascal Weighted MA](/lib/trends_FIR/pwma/Pwma.md)
* [QRMA - Quadratic Regression MA](/lib/trends_FIR/qrma/Qrma.md)
* [RAIN - Rainbow MA](/lib/trends_FIR/rain/Rain.md)
@@ -134,7 +134,7 @@
* [CFO - Chande Forecast Oscillator](/lib/oscillators/cfo/Cfo.md)
* [COPPOCK - Coppock Curve](/lib/oscillators/coppock/Coppock.md)
* [CRSI - Connors RSI](/lib/oscillators/crsi/Crsi.md)
- * [CTI - Correlation Trend Indicator](/lib/oscillators/cti/Cti.md)
+ * [CTI - Ehlers Correlation Trend Indicator](/lib/oscillators/cti/Cti.md)
* [DECO - Ehlers Decycler Oscillator](/lib/oscillators/deco/Deco.md)
* [DEM - DeMarker Oscillator](/lib/oscillators/dem/Dem.md)
* [DOSC - Derivative Oscillator](/lib/oscillators/dosc/Dosc.md)
@@ -160,7 +160,7 @@
* [QQE - Quantitative Qualitative Estimation](/lib/oscillators/qqe/Qqe.md)
* [REFLEX - Ehlers Reflex](/lib/oscillators/reflex/Reflex.md)
* [REVERSEEMA - Ehlers Reverse EMA](/lib/oscillators/reverseema/ReverseEma.md)
- * [RVGI - Relative Vigor Index](/lib/oscillators/rvgi/Rvgi.md)
+ * [RVGI - Ehlers Relative Vigor Index](/lib/oscillators/rvgi/Rvgi.md)
* [RRSI - Ehlers Rocket RSI](/lib/oscillators/rrsi/Rrsi.md)
* [SMI - Stochastic Momentum Index](/lib/oscillators/smi/Smi.md)
* [SQUEEZE - Squeeze Momentum](/lib/oscillators/squeeze/Squeeze.md)
@@ -220,7 +220,7 @@
* [ROCR - Rate of Change Ratio](/lib/momentum/rocr/Rocr.md)
* [RSI - Relative Strength Index](/lib/momentum/rsi/Rsi.md)
* [RSX - Jurik Relative Strength X](/lib/momentum/rsx/Rsx.md)
- * [SAM - Smoothed Adaptive Momentum](/lib/momentum/sam/Sam.md)
+ * [SAM - Ehlers Smoothed Adaptive Momentum](/lib/momentum/sam/Sam.md)
* [TSI - True Strength Index](/lib/momentum/tsi/Tsi.md)
* [VWMACD - Volume-Weighted MACD](/lib/momentum/vwmacd/Vwmacd.md)
* [VEL - Jurik Velocity](/lib/momentum/vel/Vel.md)
diff --git a/docs/indicators.md b/docs/indicators.md
index 55835dec..3f1a7ea6 100644
--- a/docs/indicators.md
+++ b/docs/indicators.md
@@ -51,14 +51,14 @@ Finite Impulse Response filters. Output depends only on a fixed window of inputs
| [**HANMA**](../lib/trends_FIR/hanma/Hanma.md) | Hanning Weighted MA | Cosine-based window |
| [**HEND**](../lib/trends_FIR/hend/Hend.md) | Henderson MA | Optimized for trend extraction, minimal distortion |
| [**HMA**](../lib/trends_FIR/hma/Hma.md) | Hull MA | Reduced lag via WMA differencing |
-| [**ILRS**](../lib/trends_FIR/ilrs/Ilrs.md) | Integral of LinReg Slope | Cumulative linear regression slope |
+| [**ILRS**](../lib/trends_FIR/ilrs/Ilrs.md) | Ehlers Integral of LinReg Slope | Cumulative linear regression slope |
| [**KAISER**](../lib/trends_FIR/kaiser/Kaiser.md) | Kaiser Window MA | Adjustable β for sidelobe control |
| [**LANCZOS**](../lib/trends_FIR/lanczos/Lanczos.md) | Lanczos (Sinc) Window MA | Optimal frequency-domain characteristics |
| [**LSMA**](../lib/trends_FIR/lsma/Lsma.md) | Least Squares MA | Linear regression endpoint |
| [**NLMA**](../lib/trends_FIR/nlma/Nlma.md) | Non-Lag MA | Damped cosine kernel FIR |
| [**NYQMA**](../lib/trends_FIR/nyqma/Nyqma.md) | Nyquist MA | Dual LWMA cascade FIR |
| [**PARZEN**](../lib/trends_FIR/parzen/Parzen.md) | Parzen Window MA | Piecewise cubic, good spectral leakage control |
-| [**PMA**](../lib/trends_FIR/pma/Pma.md) | Predictive Moving Average | Ehlers WMA cascade + extrapolation |
+| [**PMA**](../lib/trends_FIR/pma/Pma.md) | Ehlers Predictive Moving Average | WMA cascade + extrapolation |
| [**PWMA**](../lib/trends_FIR/pwma/Pwma.md) | Pascal Weighted MA | Binomial coefficient weights |
| [**QRMA**](../lib/trends_FIR/qrma/Qrma.md) | Quadratic Regression MA | Quadratic polynomial regression endpoint |
| [**RAIN**](../lib/trends_FIR/rain/Rain.md) | Rainbow MA | 10× cascaded SMA |
@@ -176,7 +176,7 @@ Bounded indicators that oscillate around a centerline or between fixed extremes.
| [**CFO**](../lib/oscillators/cfo/Cfo.md) | Chande Forecast Oscillator | Forecast error percentage |
| [**COPPOCK**](../lib/oscillators/coppock/Coppock.md) | Coppock Curve | Long-term momentum via weighted ROC sum |
| [**CRSI**](../lib/oscillators/crsi/Crsi.md) | Connors RSI | Composite RSI + streak RSI + percentile rank |
-| [**CTI**](../lib/oscillators/cti/Cti.md) | Correlation Trend Indicator | Linear regression correlation as trend strength |
+| [**CTI**](../lib/oscillators/cti/Cti.md) | Ehlers Correlation Trend Indicator | Linear regression correlation as trend strength |
| [**DECO**](../lib/oscillators/deco/Deco.md) | Ehlers Decycler Oscillator | Dual HP bandpass cycle isolation |
| [**DEM**](../lib/oscillators/dem/Dem.md) | DeMarker Oscillator | Bounded 0-1 comparing sequential highs/lows |
| [**DOSC**](../lib/oscillators/dosc/Dosc.md) | Derivative Oscillator | Double-smoothed RSI minus signal line |
@@ -201,7 +201,7 @@ Bounded indicators that oscillate around a centerline or between fixed extremes.
| [**QQE**](../lib/oscillators/qqe/Qqe.md) | Quantitative Qualitative Estimation | Smoothed RSI with dynamic volatility bands |
| [**REFLEX**](../lib/oscillators/reflex/Reflex.md) | Ehlers Reflex | Zero-centered reversal oscillator |
| [**REVERSEEMA**](../lib/oscillators/reverseema/ReverseEma.md) | Ehlers Reverse EMA | 8-stage cascaded Z-transform inversion oscillator |
-| [**RVGI**](../lib/oscillators/rvgi/Rvgi.md) | Relative Vigor Index | Open-close vs high-low ratio with smoothing |
+| [**RVGI**](../lib/oscillators/rvgi/Rvgi.md) | Ehlers Relative Vigor Index | Open-close vs high-low ratio with smoothing |
| [**SMI**](../lib/oscillators/smi/Smi.md) | Stochastic Momentum Index | Distance from range midpoint (K/D lines) |
| [**SQUEEZE**](../lib/oscillators/squeeze/Squeeze.md) | Squeeze Momentum | BB inside KC squeeze with momentum |
| [**STC**](../lib/oscillators/stc/Stc.md) | Schaff Trend Cycle | MACD + double Stochastic (0-100) |
@@ -269,7 +269,7 @@ Rate of change and velocity measurements. First derivatives of price.
| [**ROCR**](../lib/momentum/rocr/Rocr.md) | Rate of Change Ratio | Price ratio over N periods |
| [**RSI**](../lib/momentum/rsi/Rsi.md) | Relative Strength Index | Bounded 0-100 momentum |
| [**RSX**](../lib/momentum/rsx/Rsx.md) | Jurik RSX | Smoothed RSI variant |
-| [**SAM**](../lib/momentum/sam/Sam.md) | Smoothed Adaptive Momentum | Ehlers adaptive cycle momentum |
+| [**SAM**](../lib/momentum/sam/Sam.md) | Ehlers Smoothed Adaptive Momentum | Adaptive cycle momentum |
| [**TSI**](../lib/momentum/tsi/Tsi.md) | True Strength Index | Double-smoothed momentum oscillator |
| [**VEL**](../lib/momentum/vel/Vel.md) | Jurik Velocity | Adaptive velocity |
diff --git a/docs/validation.md b/docs/validation.md
index a96f35a7..8a7c7646 100644
--- a/docs/validation.md
+++ b/docs/validation.md
@@ -126,7 +126,7 @@ Next parity targets (highest impact):
| **Coppock Curve** | [Coppock](../lib/oscillators/coppock/Coppock.md) | - | - | - | - | ❔ |
| **Coral Trend Filter** | [Coral](../lib/trends_IIR/coral/Coral.md) | - | - | - | - | - |
| **Correlation** | [Correl](../lib/statistics/correl/Correl.md) | [✔️](../lib/statistics/correl/Correl.md#validation) | - | [✔️](../lib/statistics/correl/Correl.md#validation) | - | - |
-| **Correlation Trend Indicator** | [Cti](../lib/oscillators/cti/Cti.md) | - | - | - | - | ⚠️ |
+| **Ehlers Correlation Trend Indicator** | [Cti](../lib/oscillators/cti/Cti.md) | - | - | - | - | ⚠️ |
| **Cumulative Moving Average** | [Cma](../lib/statistics/cma/Cma.md) | - | - | - | - | - |
| **Decay Min-Max Channel** | [Decaychannel](../lib/channels/decaychannel/decaychannel.md) | - | - | - | - | - |
| **Ehlers Decycler** | [Decycler](../lib/trends_IIR/decycler/Decycler.md) | - | - | - | - | - |
@@ -325,7 +325,7 @@ Next parity targets (highest impact):
| **Schaff Trend Cycle** | [Stc](../lib/oscillators/stc/stc.md) | - | - | [✔️](../lib/oscillators/stc/stc.md#validation) | [⚠️](../lib/oscillators/stc/stc.md#validation "structural test only; Ooples STC uses different stochastic smoothing") | ❔ |
| **Simple Moving Average** | [Sma](../lib/trends_FIR/sma/Sma.md) | [✔️](../lib/trends_FIR/sma/Sma.md#validation) | [✔️](../lib/trends_FIR/sma/Sma.md#validation) | [✔️](../lib/trends_FIR/sma/Sma.md#validation) | [✔️](../lib/trends_FIR/sma/Sma.md#validation) | ⚠️ |
| **Sine-weighted MA** | [Sinema](../lib/trends_FIR/sinema/Sinema.md) | - | - | - | - | ⚠️ |
-| **Smoothed Adaptive Momentum** | [Sam](../lib/momentum/sam/Sam.md) | - | - | - | - | - |
+| **Ehlers Smoothed Adaptive Momentum** | [Sam](../lib/momentum/sam/Sam.md) | - | - | - | - | - |
| **Smoothed Moving Average** | [Rma](../lib/trends_IIR/rma/Rma.md) | - | - | [✔️](../lib/trends_IIR/rma/Rma.md#validation) | [✔️](../lib/trends_IIR/rma/Rma.md#validation) | ❔ |
| **SMI** | [Smi](../lib/oscillators/smi/Smi.md) | - | - | [⚠️](../lib/oscillators/smi/Smi.md#validation "structural test; different smoothing parameters") | [⚠️](../lib/oscillators/smi/Smi.md#validation "structural test only; Ooples SMI uses different double-smoothing") | ❔ |
| **Solar Activity Cycle** | [Solar](../lib/cycles/solar/Solar.md) | - | - | - | - | - |
diff --git a/lib/_index.md b/lib/_index.md
index 99aff5db..f897472c 100644
--- a/lib/_index.md
+++ b/lib/_index.md
@@ -82,7 +82,7 @@
| [COVARIANCE](statistics/covariance/Covariance.md) | Covariance | Statistics |
| [CRMA](trends_FIR/crma/Crma.md) | Cubic Regression MA | Trends (FIR) |
| [CRSI](oscillators/crsi/Crsi.md) | Connors RSI | Oscillators |
-| [CTI](oscillators/cti/Cti.md) | Correlation Trend Indicator | Oscillators |
+| [CTI](oscillators/cti/Cti.md) | Ehlers Correlation Trend Indicator | Oscillators |
| [CV](volatility/cv/Cv.md) | Coefficient of Variation | Volatility |
| [CVI](volatility/cvi/Cvi.md) | Chaikin Volatility | Volatility |
| [CWT](numerics/cwt/Cwt.md) | Continuous Wavelet Transform | Numerics |
@@ -165,7 +165,7 @@
| [ICHIMOKU](dynamics/ichimoku/Ichimoku.md) | Ichimoku Cloud | Dynamics |
| [IFFT](numerics/ifft/Ifft.md) | Inverse Fast Fourier Transform | Numerics |
| [III](volume/iii/Iii.md) | Intraday Intensity Index | Volume |
-| [ILRS](trends_FIR/ilrs/Ilrs.md) | Integral of LinReg Slope | Trends (FIR) |
+| [ILRS](trends_FIR/ilrs/Ilrs.md) | Ehlers Integral of LinReg Slope | Trends (FIR) |
| [IMI](oscillators/imi/Imi.md) | Intraday Momentum Index | Oscillators |
| [IMPULSE](dynamics/impulse/Impulse.md) | Elder Impulse System | Dynamics |
| [INERTIA](oscillators/inertia/Inertia.md) | Inertia | Oscillators |
@@ -263,7 +263,7 @@
| [PIVOTWOOD](reversals/pivotwood/Pivotwood.md) | Woodie's Pivot Points | Reversals |
| [PLUS_DI](dynamics/plusdi/PlusDi.md) | Plus Directional Indicator | Dynamics |
| [PLUS_DM](dynamics/plusdm/PlusDm.md) | Plus Directional Movement | Dynamics |
-| [PMA](trends_FIR/pma/Pma.md) | Predictive Moving Average | Trends (FIR) |
+| [PMA](trends_FIR/pma/Pma.md) | Ehlers Predictive Moving Average | Trends (FIR) |
| [PMO](momentum/pmo/Pmo.md) | Price Momentum Oscillator | Momentum |
| [POISSONDIST](numerics/poissondist/Poissondist.md) | Poisson Distribution | Numerics |
| [POLYFIT](statistics/polyfit/Polyfit.md) | Polynomial Fitting | Statistics |
@@ -308,11 +308,11 @@
| [RSX](momentum/rsx/Rsx.md) | Relative Strength Quality Index | Momentum |
| [RV](volatility/rv/Rv.md) | Realized Volatility | Volatility |
| [RVI](volatility/rvi/Rvi.md) | Relative Volatility Index | Volatility |
-| [RVGI](oscillators/rvgi/Rvgi.md) | Relative Vigor Index | Oscillators |
+| [RVGI](oscillators/rvgi/Rvgi.md) | Ehlers Relative Vigor Index | Oscillators |
| [RRSI](oscillators/rrsi/Rrsi.md) | Ehlers Rocket RSI | Oscillators |
| [RWMA](trends_FIR/rwma/Rwma.md) | Range Weighted MA | Trends (FIR) |
| [SAK](filters/sak/Sak.md) | Ehlers Swiss Army Knife | Filters |
-| [SAM](momentum/sam/Sam.md) | Smoothed Adaptive Momentum | Momentum |
+| [SAM](momentum/sam/Sam.md) | Ehlers Smoothed Adaptive Momentum | Momentum |
| [SAR](reversals/sar/Sar.md) | Parabolic Stop And Reverse | Reversals |
| [SAREXT](reversals/sarext/Sarext.md) | Parabolic SAR Extended | Reversals |
| [SDCHANNEL](channels/sdchannel/Sdchannel.md) | Standard Deviation Channel | Channels |
diff --git a/lib/momentum/_index.md b/lib/momentum/_index.md
index 61c2d166..8e370228 100644
--- a/lib/momentum/_index.md
+++ b/lib/momentum/_index.md
@@ -22,7 +22,7 @@ Momentum indicators measure the velocity and acceleration of price changes. Unli
| [RS](rs/Rs.md) | Price Relative Strength | Performance ratio between two assets. |
| [RSI](rsi/Rsi.md) | Relative Strength Index | Speed and change of price movements, bounded 0-100. |
| [RSX](rsx/Rsx.md) | Relative Strength Quality Index | Noise-free RSI using cascaded IIR filters, zero lag at turning points. |
-| [SAM](sam/Sam.md) | Smoothed Adaptive Momentum | Ehlers. Hilbert Transform cycle detection + adaptive momentum + Super Smoother output. |
+| [SAM](sam/Sam.md) | Ehlers Smoothed Adaptive Momentum | Ehlers. Hilbert Transform cycle detection + adaptive momentum + Super Smoother output. |
| [TSI](tsi/Tsi.md) | True Strength Index | Double-smoothed momentum oscillator. |
| [VEL](vel/Vel.md) | Jurik Velocity | Market acceleration via PWMA vs WMA differential. |
| [VWMACD](vwmacd/Vwmacd.md) | Volume-Weighted MACD | VWMA-based MACD with signal line and histogram. Volume-aware momentum. |
diff --git a/lib/momentum/sam/Sam.Quantower.cs b/lib/momentum/sam/Sam.Quantower.cs
index bd373754..c36ad523 100644
--- a/lib/momentum/sam/Sam.Quantower.cs
+++ b/lib/momentum/sam/Sam.Quantower.cs
@@ -31,7 +31,7 @@ public class SamIndicator : Indicator, IWatchlistIndicator
public SamIndicator()
{
- Name = "SAM - Smoothed Adaptive Momentum";
+ Name = "SAM - Ehlers Smoothed Adaptive Momentum";
Description = "Ehlers adaptive momentum oscillator using Hilbert Transform cycle detection and Super Smoother";
SeparateWindow = true;
OnBackGround = false;
diff --git a/lib/momentum/sam/Sam.cs b/lib/momentum/sam/Sam.cs
index 4715554d..d539dbdd 100644
--- a/lib/momentum/sam/Sam.cs
+++ b/lib/momentum/sam/Sam.cs
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
///
-/// SAM: Smoothed Adaptive Momentum - Ehlers adaptive momentum oscillator that
+/// SAM: Ehlers Smoothed Adaptive Momentum - adaptive momentum oscillator that
/// measures price change over the dominant cycle period, then smooths with a
/// 2-pole Super Smoother filter.
///
diff --git a/lib/momentum/sam/Sam.md b/lib/momentum/sam/Sam.md
index 351c948c..6e5b5078 100644
--- a/lib/momentum/sam/Sam.md
+++ b/lib/momentum/sam/Sam.md
@@ -1,4 +1,4 @@
-# SAM: Smoothed Adaptive Momentum
+# SAM: Ehlers Smoothed Adaptive Momentum
> *Smoothed adaptive momentum adjusts its sensitivity to volatility, amplifying signals in trending regimes and dampening them in noise.*
diff --git a/lib/momentum/sam/tests/Sam.Quantower.Tests.cs b/lib/momentum/sam/tests/Sam.Quantower.Tests.cs
index 47b8d8be..b95bb323 100644
--- a/lib/momentum/sam/tests/Sam.Quantower.Tests.cs
+++ b/lib/momentum/sam/tests/Sam.Quantower.Tests.cs
@@ -13,7 +13,7 @@ public class SamIndicatorTests
Assert.Equal(8, indicator.Cutoff);
Assert.Equal(SourceType.Close, indicator.Source);
Assert.True(indicator.ShowColdValues);
- Assert.Equal("SAM - Smoothed Adaptive Momentum", indicator.Name);
+ Assert.Equal("SAM - Ehlers Smoothed Adaptive Momentum", indicator.Name);
Assert.True(indicator.SeparateWindow);
Assert.False(indicator.OnBackGround);
}
diff --git a/lib/oscillators/_index.md b/lib/oscillators/_index.md
index 2c650a46..15ec5ab3 100644
--- a/lib/oscillators/_index.md
+++ b/lib/oscillators/_index.md
@@ -15,7 +15,7 @@ Oscillators fluctuate above and below a centerline or within bounded ranges. Use
| [CFO](cfo/Cfo.md) | Chande Forecast Oscillator | Percentage difference between price and linear regression forecast. Also known as FOSC. |
| [COPPOCK](coppock/Coppock.md) | Coppock Curve | Long-term momentum via weighted sum of ROC periods. Buy signals only. |
| [CRSI](crsi/Crsi.md) | Connors RSI | Composite of RSI, streak RSI, and percentile rank. Mean-reversion. |
-| [CTI](cti/Cti.md) | Correlation Trend Indicator | Linear regression correlation coefficient as trend strength. |
+| [CTI](cti/Cti.md) | Ehlers Correlation Trend Indicator | Linear regression correlation coefficient as trend strength. |
| [DECO](deco/Deco.md) | Ehlers Decycler Oscillator | Dual HP bandpass isolating intermediate-frequency market cycles. |
| [DEM](dem/Dem.md) | DeMarker Oscillator | Bounded 0-1 oscillator comparing sequential highs and lows. |
| [DOSC](dosc/Dosc.md) | Derivative Oscillator | Double-smoothed RSI minus signal line. Momentum acceleration. |
@@ -41,7 +41,7 @@ Oscillators fluctuate above and below a centerline or within bounded ranges. Use
| [QQE](qqe/Qqe.md) | Quantitative Qualitative Estimation | Smoothed RSI with dynamic volatility bands. |
| [REFLEX](reflex/Reflex.md) | Ehlers Reflex | Ehlers zero-centered reversal oscillator using super smoother with normalized sum-of-differences. |
| [REVERSEEMA](reverseema/ReverseEma.md) | Ehlers Reverse EMA | 8-stage cascaded Z-transform inversion subtracts EMA lag, producing zero-centered oscillator signal. |
-| [RVGI](rvgi/Rvgi.md) | Relative Vigor Index | Open-close vs high-low ratio with SMA smoothing. Measures conviction. |
+| [RVGI](rvgi/Rvgi.md) | Ehlers Relative Vigor Index | Open-close vs high-low ratio with SMA smoothing. Measures conviction. |
| [RRSI](rrsi/Rrsi.md) | Ehlers Rocket RSI | Fisher Transform of Super Smoother–filtered RSI. Sharp cyclic reversal signals. |
| [SMI](smi/Smi.md) | Stochastic Momentum Index | Distance from range midpoint. More sensitive than classic Stochastic. |
| [SQUEEZE](squeeze/Squeeze.md) | Squeeze | BB width < KC width indicates consolidation. Breakout imminent. |
diff --git a/lib/oscillators/cti/Cti.Quantower.cs b/lib/oscillators/cti/Cti.Quantower.cs
index 936ca6d4..a8c1925b 100644
--- a/lib/oscillators/cti/Cti.Quantower.cs
+++ b/lib/oscillators/cti/Cti.Quantower.cs
@@ -29,7 +29,7 @@ public sealed class CtiIndicator : Indicator, IWatchlistIndicator
{
OnBackGround = true;
SeparateWindow = true;
- Name = "CTI - Correlation Trend Indicator";
+ Name = "CTI - Ehlers Correlation Trend Indicator";
Description = "Pearson correlation between price and a perfect linear time index";
_series = new LineSeries("CTI", Color.Yellow, 2, LineStyle.Solid);
diff --git a/lib/oscillators/cti/Cti.cs b/lib/oscillators/cti/Cti.cs
index 245cbeb1..a012f151 100644
--- a/lib/oscillators/cti/Cti.cs
+++ b/lib/oscillators/cti/Cti.cs
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
///
-/// CTI: Correlation Trend Indicator (Ehlers, TASC 2020)
+/// CTI: Ehlers Correlation Trend Indicator
///
///
/// Measures the Pearson correlation coefficient between the price series and a
diff --git a/lib/oscillators/cti/Cti.md b/lib/oscillators/cti/Cti.md
index 0dd37178..52f9a0ae 100644
--- a/lib/oscillators/cti/Cti.md
+++ b/lib/oscillators/cti/Cti.md
@@ -1,4 +1,4 @@
-# CTI: Correlation Trend Indicator
+# CTI: Ehlers Correlation Trend Indicator
> *Correlation trend indicator measures the linear correlation between price and a perfect trend line — how orderly is the move.*
diff --git a/lib/oscillators/cti/tests/Cti.Quantower.Tests.cs b/lib/oscillators/cti/tests/Cti.Quantower.Tests.cs
index 7977a7bb..acc3df2e 100644
--- a/lib/oscillators/cti/tests/Cti.Quantower.Tests.cs
+++ b/lib/oscillators/cti/tests/Cti.Quantower.Tests.cs
@@ -13,7 +13,7 @@ public sealed class CtiIndicatorTests
Assert.Equal(20, indicator.Period);
Assert.Equal(SourceType.Close, indicator.Source);
Assert.True(indicator.ShowColdValues);
- Assert.Equal("CTI - Correlation Trend Indicator", indicator.Name);
+ Assert.Equal("CTI - Ehlers Correlation Trend Indicator", indicator.Name);
Assert.True(indicator.SeparateWindow);
Assert.True(indicator.OnBackGround);
}
diff --git a/lib/oscillators/rvgi/Rvgi.Quantower.cs b/lib/oscillators/rvgi/Rvgi.Quantower.cs
index e68ce75d..cfeab970 100644
--- a/lib/oscillators/rvgi/Rvgi.Quantower.cs
+++ b/lib/oscillators/rvgi/Rvgi.Quantower.cs
@@ -27,7 +27,7 @@ public sealed class RvgiIndicator : Indicator, IWatchlistIndicator
{
OnBackGround = true;
SeparateWindow = true;
- Name = "RVGI - Relative Vigor Index";
+ Name = "RVGI - Ehlers Relative Vigor Index";
Description = "Dual-output oscillator comparing closing strength to the full bar range, smoothed via 4-tap SWMA and averaged over a period. RVGI > 0 in uptrends, < 0 in downtrends.";
_rvgiLine = new LineSeries("RVGI", Color.Yellow, 2, LineStyle.Solid);
diff --git a/lib/oscillators/rvgi/Rvgi.cs b/lib/oscillators/rvgi/Rvgi.cs
index c34d13cf..28f4df4b 100644
--- a/lib/oscillators/rvgi/Rvgi.cs
+++ b/lib/oscillators/rvgi/Rvgi.cs
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
///
-/// RVGI: Relative Vigor Index
+/// RVGI: Ehlers Relative Vigor Index
///
///
/// Dual-output oscillator built in four stages:
diff --git a/lib/oscillators/rvgi/Rvgi.md b/lib/oscillators/rvgi/Rvgi.md
index a6106dbc..323effb7 100644
--- a/lib/oscillators/rvgi/Rvgi.md
+++ b/lib/oscillators/rvgi/Rvgi.md
@@ -1,4 +1,4 @@
-# RVGI: Relative Vigor Index
+# RVGI: Ehlers Relative Vigor Index
> *Relative Vigor Index compares the close-open range to the high-low range, measuring conviction in each bar's direction.*
diff --git a/lib/oscillators/rvgi/tests/Rvgi.Quantower.Tests.cs b/lib/oscillators/rvgi/tests/Rvgi.Quantower.Tests.cs
index 0cbc797e..efeac173 100644
--- a/lib/oscillators/rvgi/tests/Rvgi.Quantower.Tests.cs
+++ b/lib/oscillators/rvgi/tests/Rvgi.Quantower.Tests.cs
@@ -12,7 +12,7 @@ public sealed class RvgiIndicatorTests
Assert.Equal(10, indicator.Period);
Assert.True(indicator.ShowColdValues);
- Assert.Equal("RVGI - Relative Vigor Index", indicator.Name);
+ Assert.Equal("RVGI - Ehlers Relative Vigor Index", indicator.Name);
Assert.True(indicator.SeparateWindow);
Assert.True(indicator.OnBackGround);
}
diff --git a/lib/trends_FIR/_index.md b/lib/trends_FIR/_index.md
index 45cc5e42..09dad821 100644
--- a/lib/trends_FIR/_index.md
+++ b/lib/trends_FIR/_index.md
@@ -18,14 +18,14 @@ Finite Impulse Response (FIR) trend indicators. These use fixed-length windows w
| [HANMA](hanma/Hanma.md) | Hanning MA | Hanning (raised cosine). Zero at edges. Smooth roll-off. |
| [HEND](hend/Hend.md) | Henderson MA | Henderson window. Optimized for trend extraction. Minimal distortion. |
| [HMA](hma/Hma.md) | Hull MA | Reduced lag via weighted average differencing. Can overshoot. |
-| [ILRS](ilrs/Ilrs.md) | Integral of Linear Regression Slope | Cumulative linear regression slope. Smooth trend tracking. |
+| [ILRS](ilrs/Ilrs.md) | Ehlers Integral of Linear Regression Slope | Cumulative linear regression slope. Smooth trend tracking. |
| [KAISER](kaiser/Kaiser.md) | Kaiser Window MA | Kaiser-Bessel window. Adjustable β parameter for sidelobe control. |
| [LANCZOS](lanczos/Lanczos.md) | Lanczos (Sinc) Window MA | Windowed sinc function. Optimal frequency-domain characteristics. |
| [LSMA](lsma/Lsma.md) | Least Squares MA | Linear regression endpoint. Extrapolates trend. |
| [NLMA](nlma/Nlma.md) | Non-Lag MA | Damped cosine kernel convolution. Near-zero lag FIR. |
| [NYQMA](nyqma/Nyqma.md) | Nyquist MA | Dual LWMA cascade. Nyquist-compliant FIR smoothing. |
| [PARZEN](parzen/Parzen.md) | Parzen (de la Vallée-Poussin) Window MA | Parzen window. Piecewise cubic. Good spectral leakage control. |
-| [PMA](pma/Pma.md) | Predictive Moving Average | Ehlers predictive filter combining WMA cascade with linear extrapolation. |
+| [PMA](pma/Pma.md) | Ehlers Predictive Moving Average | Ehlers predictive filter combining WMA cascade with linear extrapolation. |
| [PWMA](pwma/Pwma.md) | Pascal Weighted MA | Pascal's triangle coefficients. Binomial distribution weights. |
| [QRMA](qrma/Qrma.md) | Quadratic Regression MA | Quadratic polynomial regression endpoint. Captures curvature. |
| [RAIN](rain/Rain.md) | Rainbow MA | 10× cascaded SMA. Extreme smoothing via FIR convolution. |
diff --git a/lib/trends_FIR/ilrs/Ilrs.Quantower.cs b/lib/trends_FIR/ilrs/Ilrs.Quantower.cs
index 9d935752..8036183d 100644
--- a/lib/trends_FIR/ilrs/Ilrs.Quantower.cs
+++ b/lib/trends_FIR/ilrs/Ilrs.Quantower.cs
@@ -31,7 +31,7 @@ public sealed class IlrsIndicator : Indicator, IWatchlistIndicator
{
OnBackGround = true;
SeparateWindow = false;
- Name = "ILRS - Integral of Linear Regression Slope";
+ Name = "ILRS - Ehlers Integral of Linear Regression Slope";
Description = "Cumulative sum of rolling linear regression slope (Ehlers)";
_series = new LineSeries(name: $"ILRS {Period}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
AddLineSeries(_series);
diff --git a/lib/trends_FIR/ilrs/Ilrs.cs b/lib/trends_FIR/ilrs/Ilrs.cs
index 8a477a6c..cb4d7f38 100644
--- a/lib/trends_FIR/ilrs/Ilrs.cs
+++ b/lib/trends_FIR/ilrs/Ilrs.cs
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
///
-/// ILRS: Integral of Linear Regression Slope
+/// ILRS: Ehlers Integral of Linear Regression Slope
///
///
/// Computes the linear regression slope over a rolling window, then accumulates
diff --git a/lib/trends_FIR/ilrs/Ilrs.md b/lib/trends_FIR/ilrs/Ilrs.md
index 679ea7a3..177018d2 100644
--- a/lib/trends_FIR/ilrs/Ilrs.md
+++ b/lib/trends_FIR/ilrs/Ilrs.md
@@ -1,4 +1,4 @@
-# ILRS: Integral of Linear Regression Slope
+# ILRS: Ehlers Integral of Linear Regression Slope
> *John Ehlers took the slope of a regression line, integrated it, and got a smoother trend follower. Differentiate to find direction, integrate to find position. Calculus: still useful after 300 years.*
diff --git a/lib/trends_FIR/ilrs/tests/Ilrs.Quantower.Tests.cs b/lib/trends_FIR/ilrs/tests/Ilrs.Quantower.Tests.cs
index f8f242e8..92d12a8c 100644
--- a/lib/trends_FIR/ilrs/tests/Ilrs.Quantower.Tests.cs
+++ b/lib/trends_FIR/ilrs/tests/Ilrs.Quantower.Tests.cs
@@ -12,7 +12,7 @@ public class IlrsIndicatorTests
Assert.Equal(14, indicator.Period);
Assert.Equal(SourceType.Close, indicator.Source);
Assert.True(indicator.ShowColdValues);
- Assert.Equal("ILRS - Integral of Linear Regression Slope", indicator.Name);
+ Assert.Equal("ILRS - Ehlers Integral of Linear Regression Slope", indicator.Name);
Assert.False(indicator.SeparateWindow);
Assert.True(indicator.OnBackGround);
}
diff --git a/lib/trends_FIR/pma/Pma.Quantower.cs b/lib/trends_FIR/pma/Pma.Quantower.cs
index d66a052b..a22f1c3a 100644
--- a/lib/trends_FIR/pma/Pma.Quantower.cs
+++ b/lib/trends_FIR/pma/Pma.Quantower.cs
@@ -33,7 +33,7 @@ public override string SourceCodeLink => "https://github.com/mihakralj/QuanTAlib
OnBackGround = true;
SeparateWindow = false;
_sourceName = Source.ToString();
- Name = "PMA - Predictive Moving Average";
+ Name = "PMA - Ehlers Predictive Moving Average";
Description = "Ehlers Predictive Moving Average";
_series = new LineSeries(name: $"PMA {Period}", color: Color.Yellow, width: 2, style: LineStyle.Solid);
_triggerSeries = new LineSeries(name: "Trigger", color: Color.Orange, width: 1, style: LineStyle.Solid);
diff --git a/lib/trends_FIR/pma/Pma.cs b/lib/trends_FIR/pma/Pma.cs
index 3021668d..5b3a7781 100644
--- a/lib/trends_FIR/pma/Pma.cs
+++ b/lib/trends_FIR/pma/Pma.cs
@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
///
-/// PMA: Predictive Moving Average
+/// PMA: Ehlers Predictive Moving Average
///
///
/// Ehlers' linear-extrapolation filter using dual WMA cascade.
diff --git a/lib/trends_FIR/pma/Pma.md b/lib/trends_FIR/pma/Pma.md
index 3acde0fd..779b766d 100644
--- a/lib/trends_FIR/pma/Pma.md
+++ b/lib/trends_FIR/pma/Pma.md
@@ -1,4 +1,4 @@
-# PMA: Predictive Moving Average
+# PMA: Ehlers Predictive Moving Average
> *John Ehlers looked at WMA's lag and said: 'What if we just extrapolated it away?' The result is a moving average that actually tries to predict where price is going, not where it has been.*
diff --git a/lib/trends_FIR/pma/tests/Pma.Quantower.Tests.cs b/lib/trends_FIR/pma/tests/Pma.Quantower.Tests.cs
index d5d62d26..45bd0425 100644
--- a/lib/trends_FIR/pma/tests/Pma.Quantower.Tests.cs
+++ b/lib/trends_FIR/pma/tests/Pma.Quantower.Tests.cs
@@ -12,7 +12,7 @@ public class PmaIndicatorTests
Assert.Equal(7, indicator.Period);
Assert.Equal(SourceType.Close, indicator.Source);
Assert.True(indicator.ShowColdValues);
- Assert.Equal("PMA - Predictive Moving Average", indicator.Name);
+ Assert.Equal("PMA - Ehlers Predictive Moving Average", indicator.Name);
Assert.False(indicator.SeparateWindow);
Assert.True(indicator.OnBackGround);
}