mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-23 21:18:04 +00:00
Refactor indicators to include "Ehlers" in names and descriptions for clarity
- Updated the name and description of the Hilbert Trendline (HTIT) to "Ehlers Hilbert Transform Instantaneous Trend (HTIT)". - Changed the name and description of the MESA Adaptive Moving Average (MAMA) to "Ehlers MESA Adaptive Moving Average". - Modified the Center of Gravity (CG) indicator to "Ehlers Center of Gravity (CG)". - Renamed the Detrended Synthetic Price (DSP) to "Ehlers Detrended Synthetic Price (DSP)". - Updated the Autocorrelation Periodogram (EACP) to "Ehlers Autocorrelation Periodogram (EACP)". - Changed the Homodyne Discriminator (HOMOD) to "Ehlers Homodyne Discriminator (HOMOD)". - Updated the Hilbert Transform Dominant Cycle Period and Phase indicators to include "Ehlers" in their names. - Renamed the Hilbert Transform Phasor Components to "Ehlers Hilbert Transform Phasor Components (HT_PHASOR)". - Updated the SineWave indicator to "Ehlers Hilbert Transform SineWave (HT_SINE)". - Changed the Phasor Analysis indicator to "Ehlers Hilbert Transform Phasor Components (HT_PHASOR)". - Updated the SSF-Based Detrended Synthetic Price to "Ehlers SSF Detrended Synthetic Price (SSFDSP)". - Renamed the Ultimate Channel to "Ehlers Ultimate Channel (UCHANNEL)". - Added new indicators: Moving Average Variable Period (MAVP), Ehlers Predictive Moving Average (PMA), Ehlers Reverse EMA (REVERSEEMA), and Ehlers Trendflex Indicator (TRENDFLEX). - Updated various SVG badges to reflect changes in classes, comments, source files, lines of code, methods, and public types.
This commit is contained in:
+10
-10
@@ -8,34 +8,34 @@ Signal processing filters adapted for financial time series. These are not indic
|
||||
|
||||
| Indicator | Full Name | Description |
|
||||
| :--- | :--- | :--- |
|
||||
| [AGC](agc/Agc.md) | Automatic Gain Control | Ehlers. Amplitude normalization via exponential peak tracking. |
|
||||
| [ALAGUERRE](alaguerre/ALaguerre.md) | Adaptive Laguerre Filter | Ehlers. Variable-alpha Laguerre from tracking-error normalization. |
|
||||
| [AGC](agc/Agc.md) | Ehlers Automatic Gain Control | Ehlers. Amplitude normalization via exponential peak tracking. |
|
||||
| [ALAGUERRE](alaguerre/ALaguerre.md) | Ehlers Adaptive Laguerre Filter | Ehlers. Variable-alpha Laguerre from tracking-error normalization. |
|
||||
| [BAXTERKING](baxterking/BaxterKing.md) | Baxter-King Band-Pass Filter | Symmetric FIR band-pass. Ideal for business cycle extraction. |
|
||||
| [CFITZ](cfitz/Cfitz.md) | Christiano-Fitzgerald Filter | Asymmetric full-sample band-pass. Optimal under random-walk assumption. |
|
||||
| [EDCF](edcf/Edcf.md) | Ehlers Distance Coefficient Filter | Nonlinear FIR. Distance-weighted smoothing adapts to local structure. |
|
||||
| [BESSEL](bessel/Bessel.md) | Bessel Filter | Maximally flat group delay. Best phase response. Minimal overshoot. |
|
||||
| [BILATERAL](bilateral/Bilateral.md) | Bilateral Filter | Edge-preserving smoothing. Adapts to local gradients. |
|
||||
| [BPF](bpf/Bpf.md) | BandPass Filter | 2nd-order IIR. Cascade of HP + LP. Extracts specific frequency band. |
|
||||
| [BUTTER](butter/Butter.md) | Butterworth Filter | Maximally flat frequency response. Classic IIR filter. |
|
||||
| [BUTTER](butter/Butter.md) | Ehlers Butterworth Filter | Maximally flat frequency response. Classic IIR filter. |
|
||||
| [CHEBY1](cheby1/Cheby1.md) | Chebyshev Type I | Steeper roll-off with passband ripple. Sharper cutoff than Butterworth. |
|
||||
| [CHEBY2](cheby2/Cheby2.md) | Chebyshev Type II | Equiripple stopband, monotonic passband. Better stopband rejection. |
|
||||
| [ELLIPTIC](elliptic/Elliptic.md) | Elliptic Filter | Equiripple both bands. Sharpest transition for given order. |
|
||||
| [GAUSS](gauss/Gauss.md) | Gaussian Filter | Bell-curve weighted smoothing. No overshoot. |
|
||||
| [HANN](hann/Hann.md) | Hann Filter | Hann window smoothing. Good spectral leakage control. |
|
||||
| [HP](hp/Hp.md) | Hodrick-Prescott | Causal trend/cycle decomposition. Regularization parameter λ controls smoothness. |
|
||||
| [HPF](hpf/Hpf.md) | High Pass Filter | Attenuates below cutoff. Isolates fast components. |
|
||||
| [HPF](hpf/Hpf.md) | Ehlers Highpass Filter | Attenuates below cutoff. Isolates fast components. |
|
||||
| [KALMAN](kalman/Kalman.md) | Kalman Filter | Recursive state estimation. Optimal under Gaussian assumptions. |
|
||||
| [LAGUERRE](laguerre/Laguerre.md) | Laguerre Filter | Ehlers. 4-element all-pass cascade. γ-controlled smoothing. |
|
||||
| [LAGUERRE](laguerre/Laguerre.md) | Ehlers Laguerre Filter | Ehlers. 4-element all-pass cascade. γ-controlled smoothing. |
|
||||
| [LMS](lms/Lms.md) | Least Mean Squares | Widrow-Hoff adaptive FIR. NLMS weight update. O(order) per bar. |
|
||||
| [RLS](rls/Rls.md) | Recursive Least Squares | Inverse correlation matrix. Faster convergence than LMS. O(order²) per bar. |
|
||||
| [LOESS](loess/Loess.md) | LOESS Smoothing | Local polynomial regression. Robust to outliers. |
|
||||
| [NOTCH](notch/Notch.md) | Notch Filter | Band-stop. Removes specific frequency (e.g., 60 Hz noise). |
|
||||
| [ONEEURO](oneeuro/OneEuro.md) | One Euro Filter | Speed-adaptive low-pass. Adaptive cutoff from signal derivative. |
|
||||
| [ROOFING](roofing/Roofing.md) | Roofing Filter | Ehlers. HP + SS cascade. Bandpass for cycle extraction. |
|
||||
| [ROOFING](roofing/Roofing.md) | Ehlers Roofing Filter | Ehlers. HP + SS cascade. Bandpass for cycle extraction. |
|
||||
| [SGF](sgf/Sgf.md) | Savitzky-Golay | Polynomial smoothing. Preserves higher moments (derivatives). |
|
||||
| [SPBF](spbf/Spbf.md) | Super Passband Filter | Ehlers. Wide-band bandpass via differenced EMAs with RMS envelope. |
|
||||
| [SSF](ssf/Ssf.md) | Super Smoother | Ehlers. 2-pole Butterworth variant. Standard cycle pre-filter. |
|
||||
| [USF](usf/Usf.md) | Ultra Smoother | Ehlers. 3-pole variant. More smoothing than SSF. |
|
||||
| [VOSS](voss/Voss.md) | Voss Predictive Filter | Ehlers. BPF + negative group delay predictor. Anticipatory cycle extraction. |
|
||||
| [SPBF](spbf/Spbf.md) | Ehlers Super Passband Filter | Ehlers. Wide-band bandpass via differenced EMAs with RMS envelope. |
|
||||
| [SSF](ssf/Ssf.md) | Ehlers Super Smoother Filter | Ehlers. 2-pole Butterworth variant. Standard cycle pre-filter. |
|
||||
| [USF](usf/Usf.md) | Ehlers Ultimate Smoother Filter | Ehlers. 3-pole variant. More smoothing than SSF. |
|
||||
| [VOSS](voss/Voss.md) | Ehlers Voss Predictive Filter | Ehlers. BPF + negative group delay predictor. Anticipatory cycle extraction. |
|
||||
| [WAVELET](wavelet/Wavelet.md) | Wavelet Denoising Filter | A trous Haar decomposition + MAD soft thresholding. Edge-preserving. |
|
||||
| [WIENER](wiener/Wiener.md) | Wiener Filter | Optimal linear filter. Minimizes MSE given signal/noise spectra. |
|
||||
|
||||
@@ -12,7 +12,7 @@ public class AgcIndicatorTests
|
||||
Assert.Equal(0.991, indicator.Decay);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("AGC - Automatic Gain Control", indicator.Name);
|
||||
Assert.Equal("AGC - Ehlers Automatic Gain Control", indicator.Name);
|
||||
Assert.True(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ public sealed class AgcIndicator : Indicator, IWatchlistIndicator
|
||||
{
|
||||
OnBackGround = true;
|
||||
SeparateWindow = true;
|
||||
Name = "AGC - Automatic Gain Control";
|
||||
Description = "Ehlers AGC: amplitude normalization via exponential peak tracking, applied after Roofing filter";
|
||||
Name = "AGC - Ehlers Automatic Gain Control";
|
||||
Description = "Ehlers Automatic Gain Control: amplitude normalization via exponential peak tracking, applied after Roofing filter";
|
||||
_series = new LineSeries(name: $"AGC {Decay:F3}", color: Color.Blue, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(_series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# AGC: Automatic Gain Control
|
||||
# AGC: Ehlers Automatic Gain Control
|
||||
|
||||
> "The purpose of the AGC is to normalize the amplitude of any indicator to unity." — John F. Ehlers, TASC January 2015
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2015 John F. Ehlers
|
||||
indicator("Automatic Gain Control (AGC)", "AGC", overlay=false)
|
||||
indicator("Ehlers Automatic Gain Control (AGC)", "AGC", overlay=false)
|
||||
|
||||
//@function Ehlers Automatic Gain Control — amplitude normalization via exponential peak tracking
|
||||
//@param source Series to normalize (must oscillate around zero — use a filter output, not raw price)
|
||||
|
||||
@@ -13,7 +13,7 @@ public class ALaguerreIndicatorTests
|
||||
Assert.Equal(5, indicator.MedianLength);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("ALAGUERRE - Adaptive Laguerre Filter (Ehlers)", indicator.Name);
|
||||
Assert.Equal("ALAGUERRE - Ehlers Adaptive Laguerre Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@ public class ALaguerreIndicator : Indicator, IWatchlistIndicator
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
SourceName = Source.ToString();
|
||||
Name = "ALAGUERRE - Adaptive Laguerre Filter (Ehlers)";
|
||||
Description = "Adaptive variant of Laguerre Filter with variable alpha from tracking-error normalization and median smoothing";
|
||||
Name = "ALAGUERRE - Ehlers Adaptive Laguerre Filter";
|
||||
Description = "Ehlers Adaptive Laguerre Filter: variable alpha from tracking-error normalization and median smoothing";
|
||||
Series = new LineSeries(name: $"ALaguerre {Length},{MedianLength}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(Series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# ALAGUERRE: Adaptive Laguerre Filter
|
||||
# ALAGUERRE: Ehlers Adaptive Laguerre Filter
|
||||
|
||||
> "The best filter is one that knows when to listen closely and when to smooth aggressively." -- John F. Ehlers (paraphrased)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2004 John F. Ehlers
|
||||
indicator("Adaptive Laguerre Filter (ALAGUERRE)", "ALAGUERRE", overlay=true)
|
||||
indicator("Ehlers Adaptive Laguerre Filter (ALAGUERRE)", "ALAGUERRE", overlay=true)
|
||||
|
||||
//@function Calculates Adaptive Laguerre Filter with variable alpha from tracking error
|
||||
//@param source Series to calculate Adaptive Laguerre filter from
|
||||
|
||||
@@ -12,7 +12,7 @@ public class ButterIndicatorTests
|
||||
|
||||
Assert.Equal(14, indicator.Period);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("BUTTER - Butterworth Filter", indicator.Name);
|
||||
Assert.Equal("BUTTER - Ehlers Butterworth Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ public class ButterIndicator : Indicator, IWatchlistIndicator
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
SourceName = Source.ToString();
|
||||
Name = "BUTTER - Butterworth Filter";
|
||||
Description = "A 2nd-order low-pass filter with maximally flat frequency response in the passband.";
|
||||
Name = "BUTTER - Ehlers Butterworth Filter";
|
||||
Description = "Ehlers Butterworth Filter: 2nd-order low-pass filter with maximally flat frequency response in the passband.";
|
||||
_series = new LineSeries(name: $"BUTTER {Period}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(_series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# BUTTER: Butterworth Filter
|
||||
# BUTTER: Ehlers Butterworth Filter
|
||||
|
||||
> "Maximally flat frequency response in the passband."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The MIT License (MIT)
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
indicator("Butterworth 2nd Order Filter (BUTTER)", "BUTTER", overlay=true)
|
||||
indicator("Ehlers Butterworth Filter (BUTTER)", "BUTTER", overlay=true)
|
||||
|
||||
//@function Calculates 2nd Order Butterworth Lowpass Filter
|
||||
//@param src Series to calculate Butterworth filter from
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# EDCF — Ehlers Distance Coefficient Filter
|
||||
# EDCF: Ehlers Distance Coefficient Filter
|
||||
|
||||
## Overview
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ public class HpfIndicatorTests
|
||||
Assert.Equal(40, indicator.Length);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("HPF - Highpass Filter (2-Pole)", indicator.Name);
|
||||
Assert.Equal("HPF - Ehlers Highpass Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ public class HpfIndicator : Indicator, IWatchlistIndicator
|
||||
{
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
Name = "HPF - Highpass Filter (2-Pole)";
|
||||
Description = "2-Pole Infinite Impulse Response (IIR) highpass filter.";
|
||||
Name = "HPF - Ehlers Highpass Filter";
|
||||
Description = "Ehlers Highpass Filter: 2-pole IIR highpass filter for cycle isolation and detrending.";
|
||||
_series = new LineSeries(name: $"HPF {Length}", color: IndicatorExtensions.Statistics, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(_series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# HPF - Highpass Filter (2-Pole)
|
||||
# HPF: Ehlers Highpass Filter
|
||||
|
||||
> "Noise is just signal you haven't figured out how to filter yet. Or maybe, it's the only signal that matters."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The MIT License (MIT)
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
indicator("Highpass Filter (2-Pole) (HPF)", "HPF", overlay=true)
|
||||
indicator("Ehlers Highpass Filter (HPF)", "HPF", overlay=true)
|
||||
|
||||
//@function Calculates 2-Pole Highpass Filter
|
||||
//@param src Series to calculate HPF from
|
||||
|
||||
@@ -12,7 +12,7 @@ public class LaguerreIndicatorTests
|
||||
Assert.Equal(0.8, indicator.Gamma);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("LAGUERRE - Laguerre Filter (Ehlers)", indicator.Name);
|
||||
Assert.Equal("LAGUERRE - Ehlers Laguerre Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ public class LaguerreIndicator : Indicator, IWatchlistIndicator
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
SourceName = Source.ToString();
|
||||
Name = "LAGUERRE - Laguerre Filter (Ehlers)";
|
||||
Description = "Four-element IIR filter with cascaded all-pass sections and gamma damping factor";
|
||||
Name = "LAGUERRE - Ehlers Laguerre Filter";
|
||||
Description = "Ehlers Laguerre Filter: four-element IIR filter with cascaded all-pass sections and gamma damping factor";
|
||||
Series = new LineSeries(name: $"Laguerre {Gamma:F2}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(Series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# LAGUERRE: Laguerre Filter
|
||||
# LAGUERRE: Ehlers Laguerre Filter
|
||||
|
||||
> "The problem with conventional filters is that they use unit delays. All-pass filters replace unit delays with frequency-dependent delays, and that changes everything." — John F. Ehlers
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2004 John F. Ehlers
|
||||
indicator("Laguerre Filter (LAGUERRE)", "LAGUERRE", overlay=true)
|
||||
indicator("Ehlers Laguerre Filter (LAGUERRE)", "LAGUERRE", overlay=true)
|
||||
|
||||
//@function Calculates Laguerre Filter using 4 cascaded all-pass IIR elements
|
||||
//@param source Series to calculate Laguerre filter from
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2004-2024 John F. Ehlers
|
||||
indicator("Roofing Filter (ROOFING)", "ROOFING", overlay=false)
|
||||
indicator("Ehlers Roofing Filter (ROOFING)", "ROOFING", overlay=false)
|
||||
|
||||
//@function Calculates Ehlers Roofing Filter (2-pole HPF → Super Smoother composite)
|
||||
//@param source Series to calculate Roofing Filter from
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2016 John F. Ehlers
|
||||
indicator("Super Passband Filter (SPBF)", "SPBF", overlay=false)
|
||||
indicator("Ehlers Super Passband Filter (SPBF)", "SPBF", overlay=false)
|
||||
|
||||
//@function Ehlers Super Passband Filter — wide-band bandpass via differenced z-transformed EMAs
|
||||
//@param source Series to filter
|
||||
|
||||
@@ -12,7 +12,7 @@ public class SsfIndicatorTests
|
||||
Assert.Equal(10, indicator.Period);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("SSF - Super Smooth Filter", indicator.Name);
|
||||
Assert.Equal("SSF - Ehlers Super Smoother Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ public sealed class SsfIndicator : Indicator, IWatchlistIndicator
|
||||
{
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
Name = "SSF - Super Smooth Filter";
|
||||
Description = "Ehlers Super Smooth Filter";
|
||||
Name = "SSF - Ehlers Super Smoother Filter";
|
||||
Description = "Ehlers Super Smoother Filter: 2-pole Butterworth lowpass with maximally flat passband response";
|
||||
_series = new LineSeries(name: $"SSF {Period}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(_series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# SSF: Ehlers Super Smooth Filter
|
||||
# SSF: Ehlers Super Smoother Filter
|
||||
|
||||
> "Noise is the enemy of the trend follower. The Super Smooth Filter is the silencer."
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
// Indicator algorithm (C) 2004-2024 John F. Ehlers
|
||||
indicator("Supersmooth Filter (SSF)", "SSF", overlay=true)
|
||||
indicator("Ehlers Super Smoother Filter (SSF)", "SSF", overlay=true)
|
||||
|
||||
//@function Calculates Supersmooth Lowpass Filter
|
||||
//@param source Series to calculate SSF from
|
||||
|
||||
@@ -12,7 +12,7 @@ public class UsfIndicatorTests
|
||||
Assert.Equal(20, indicator.Period);
|
||||
Assert.Equal(SourceType.Close, indicator.Source);
|
||||
Assert.True(indicator.ShowColdValues);
|
||||
Assert.Equal("USF - Ultimate Smoother Filter", indicator.Name);
|
||||
Assert.Equal("USF - Ehlers Ultimate Smoother Filter", indicator.Name);
|
||||
Assert.False(indicator.SeparateWindow);
|
||||
Assert.True(indicator.OnBackGround);
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ public sealed class UsfIndicator : Indicator, IWatchlistIndicator
|
||||
{
|
||||
OnBackGround = true;
|
||||
SeparateWindow = false;
|
||||
Name = "USF - Ultimate Smoother Filter";
|
||||
Description = "Ehlers Ultimate Smoother Filter";
|
||||
Name = "USF - Ehlers Ultimate Smoother Filter";
|
||||
Description = "Ehlers Ultimate Smoother Filter: zero-lag smoothing via high-pass subtraction from Super Smoother";
|
||||
_series = new LineSeries(name: $"USF {Period}", color: IndicatorExtensions.Averages, width: 2, style: LineStyle.Solid);
|
||||
AddLineSeries(_series);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Usf: Ehlers Ultimate Smoother Filter
|
||||
# USF: Ehlers Ultimate Smoother Filter
|
||||
|
||||
> "The Ultimate Smoother achieves superior smoothing by subtracting high-frequency components using a high-pass filter, resulting in zero lag in the passband."
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The MIT License (MIT)
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
indicator("Ultrasmooth Filter (USF)", "USF", overlay=true)
|
||||
indicator("Ehlers Ultimate Smoother Filter (USF)", "USF", overlay=true)
|
||||
|
||||
//@function Calculates Ultrasmooth Filter
|
||||
//@param src Series to calculate USF from
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// The MIT License (MIT)
|
||||
// © mihakralj
|
||||
//@version=6
|
||||
indicator("Voss Predictive Filter (VOSS)", "VOSS", overlay=false)
|
||||
indicator("Ehlers Voss Predictive Filter (VOSS)", "VOSS", overlay=false)
|
||||
|
||||
//@function Ehlers Voss Predictive Filter — negative group delay bandpass predictor
|
||||
//@param source Series to filter
|
||||
|
||||
Reference in New Issue
Block a user