Adaptive Bandpass Filter [Ehlers]

This is my latest bandpass filter - used to determine if a security is in a trend or cycle.
Now with an adaptive period setting! I use Ehlers in-phase & quadrature dominant cycle measurement ( IQ IFM) method to set the period dynamically.
This method favors longer periods which tend to produce smoother, albeit laggier bandpass oscillator plots. From my quick tests, I tend to have lag between 4 and 8 bars, depending on the Timeframe.
The lower timeframes tend to have more noise and thus produce more interfering frequencies that may cause lag.

  • Source: Select the data source to perform calc's on (close, open, etc...)
  • Period: Select the period to tune. Periods outside of this value will be attenuated (reduced)
  • Adaptive: Enable to have the I-Q IFM set the period for you (disables Period setting)
  • Bandpass Tolerance: Allow periods that are plus/minus the chosen period to pass.
  • Cycle Tolerance: Sensitivity of cycle mode. Lower values consider trends more frequent, higher values consider cycles more frequent.

Bandpass tolerance example: for instance, if this setting is 0.1 (10%) and Period is set to 20, then waves with a period of 18 - 22 will pass.

>How to read
  • Red line is the bandpass output, showing a lagged version of the dominant cycle representing the
  • Black lines are the upper and lower bounds for a cycle
  • Green Background indicates an uptrend
  • Red background indicates a downtrend
Skript med en öppen källkod

I sann TradingView-anda har författaren till detta skript publicerat det som öppen källkod, så att handlare kan förstå och verifiera det. Skål för författaren! Du kan använda den gratis men återanvändning av den här koden i en publikation regleras av våra Ordningsregler. Du kan göra den till favorit för att använda den i ett diagram.

Vill du använda det här skriptet i ett diagram?


wow, that looks amazing!
Shouldn't line 31 be V := V + delta_IQ ? There's clearly no reason for the delta_IQ series variable otherwise.