TradingView
PineCodersTASC
Mar 14, 2024 11:20 PM

TASC 2024.04 The Ultimate Smoother 

GOLD (US$/OZ)TVC

Description

█ OVERVIEW

This script presents an implementation of the digital smoothing filter introduced by John Ehlers in his article "The Ultimate Smoother" from the April 2024 edition of TASC's Traders' Tips.


█ CONCEPTS

The UltimateSmoother preserves low-frequency swings in the input time series while attenuating high-frequency variations and noise. The defining input parameter of the UltimateSmoother is the critical period, which represents the minimum wavelength (highest frequency) in the filter's pass band. In other words, the filter attenuates or removes the amplitudes of oscillations at shorter periods than the critical period.

According to Ehlers, one primary advantage of the UltimateSmoother is that it maintains zero lag in its pass band and minimal lag in its transition band, distinguishing it from other conventional digital filters (e.g., moving averages). One can apply this smoother to various input data series, including other indicators.


█ CALCULATIONS

Ehlers derived the UltimateSmoother using inspiration from the design principles he learned from his experience with analog filters, as described in the original publication. On a technical level, the UltimateSmoother's unique response involves subtracting a high-pass response from an all-pass response. At very low frequencies (lengthy periods), where the high-pass filter response has virtually no amplitude, the subtraction yields a frequency and phase response practically equivalent to the input data. At other frequencies, the subtraction achieves filtration through cancellation due to the close similarities in response between the high-pass filter and the input data.
Comments
dMLTquant
Looks interesting but I don't have time for this now. I am leaving this comment here hoping that the TradingView team will see it and finally give us bookmarks (or some sort of read later system) 🙏
apdusp
just to differentiate visually ups and downs of the indicator, I substituted to my copy the last code line (after the "Plotting" comment) with the following:

uss = UltimateSmoother(sourceInput, periodInput)
trend = uss>uss[1] ? color.new(#00ffff,0) : color.new(#ffff00,0)
plot(uss, 'US', trend, 2)
Wen2TradeOfficial
Ooooo pretty 🔥🔥🔥
More