Add "Ehlers" prefix to 5 Ehlers indicators: SAM, PMA, ILRS, CTI, RVGI

Standardize naming convention so all Ehlers-originated indicators
have "Ehlers" in their display name across all documentation and
code surfaces:

- SAM: Smoothed Adaptive Momentum → Ehlers Smoothed Adaptive Momentum
- PMA: Predictive Moving Average → Ehlers Predictive Moving Average
- ILRS: Integral of LinReg Slope → Ehlers Integral of LinReg Slope
- CTI: Correlation Trend Indicator → Ehlers Correlation Trend Indicator
- RVGI: Relative Vigor Index → Ehlers Relative Vigor Index

Updated across: .md H1 titles, XML doc summaries, Quantower Name
properties, Quantower test assertions, _sidebar.md, lib/_index.md,
category _index.md files, docs/indicators.md, docs/validation.md.

Build: 0 warnings, 0 errors. All tests pass.
This commit is contained in:
Miha Kralj
2026-03-17 10:51:24 -07:00
parent 75bcc12529
commit 329b0657bc
27 changed files with 42 additions and 42 deletions
+2 -2
View File
@@ -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. |
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -4,7 +4,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
/// <summary>
/// ILRS: Integral of Linear Regression Slope
/// ILRS: Ehlers Integral of Linear Regression Slope
/// </summary>
/// <remarks>
/// Computes the linear regression slope over a rolling window, then accumulates
+1 -1
View File
@@ -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.*
@@ -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);
}
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Runtime.InteropServices;
namespace QuanTAlib;
/// <summary>
/// PMA: Predictive Moving Average
/// PMA: Ehlers Predictive Moving Average
/// </summary>
/// <remarks>
/// Ehlers' linear-extrapolation filter using dual WMA cascade.
+1 -1
View File
@@ -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.*
@@ -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);
}