ที่อัปเดต:
[blackcat] L2 Ehlers Roofing Filter Indicator

Level: 2
Background
John F. Ehlers introuced Roofing Filter Indicator in his "Cycle Analytics for Traders" chapter 7 on 2013.
Function
The roofing filter does an excellent job of using only the frequency components between its upper and lower critical periods. All that needs to be done to create an indicator from the roofing filter is to add more generality by allowing the high-pass and low-pass critical periods be supplied as indicator inputs. The two high-pass filters have been implemented as a single two-pole high-pass filter. The ideal time to buy is when the cycle is at a trough, and the ideal time to exit a long position or to sell short is when the cycle is at a peak. These conditions are flagged by the filter crossing itself delayed by one bar, and are included as part of the indicator.
Key Signal
Filt --> Roofing Filter Indicator fast line
Trigger --> Roofing Filter Indicator slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 43th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Background
John F. Ehlers introuced Roofing Filter Indicator in his "Cycle Analytics for Traders" chapter 7 on 2013.
Function
The roofing filter does an excellent job of using only the frequency components between its upper and lower critical periods. All that needs to be done to create an indicator from the roofing filter is to add more generality by allowing the high-pass and low-pass critical periods be supplied as indicator inputs. The two high-pass filters have been implemented as a single two-pole high-pass filter. The ideal time to buy is when the cycle is at a trough, and the ideal time to exit a long position or to sell short is when the cycle is at a peak. These conditions are flagged by the filter crossing itself delayed by one bar, and are included as part of the indicator.
Key Signal
Filt --> Roofing Filter Indicator fast line
Trigger --> Roofing Filter Indicator slow line
Pros and Cons
100% John F. Ehlers definition translation of original work, even variable names are the same. This help readers who would like to use pine to read his book. If you had read his works, then you will be quite familiar with my code style.
Remarks
The 43th script for Blackcat1402 John F. Ehlers Week publication.
Readme
In real life, I am a prolific inventor. I have successfully applied for more than 60 international and regional patents in the past 12 years. But in the past two years or so, I have tried to transfer my creativity to the development of trading strategies. Tradingview is the ideal platform for me. I am selecting and contributing some of the hundreds of scripts to publish in Tradingview community. Welcome everyone to interact with me to discuss these interesting pine scripts.
The scripts posted are categorized into 5 levels according to my efforts or manhours put into these works.
Level 1 : interesting script snippets or distinctive improvement from classic indicators or strategy. Level 1 scripts can usually appear in more complex indicators as a function module or element.
Level 2 : composite indicator/strategy. By selecting or combining several independent or dependent functions or sub indicators in proper way, the composite script exhibits a resonance phenomenon which can filter out noise or fake trading signal to enhance trading confidence level.
Level 3 : comprehensive indicator/strategy. They are simple trading systems based on my strategies. They are commonly containing several or all of entry signal, close signal, stop loss, take profit, re-entry, risk management, and position sizing techniques. Even some interesting fundamental and mass psychological aspects are incorporated.
Level 4 : script snippets or functions that do not disclose source code. Interesting element that can reveal market laws and work as raw material for indicators and strategies. If you find Level 1~2 scripts are helpful, Level 4 is a private version that took me far more efforts to develop.
Level 5 : indicator/strategy that do not disclose source code. private version of Level 3 script with my accumulated script processing skills or a large number of custom functions. I had a private function library built in past two years. Level 5 scripts use many of them to achieve private trading strategy.
Release Note
Add alertsRelease Note
OVERVIEW The L2 Ehlers Roofing Filter Indicator applies advanced filtering techniques to isolate market cycles and identify potential trend reversals. It combines high-pass and low-pass filtering to enhance signal clarity and reliability.FEATURES
• Adjustable high-pass (HPPeriod) and low-pass (LPPeriod) filter settings
• Dual-line visualization with Filt and Trigger lines
• Visual alerts through BUY/SELL labels
• Four types of divergence detection:
Regular Bullish
Hidden Bullish
Regular Bearish
Hidden Bearish • Configurable lookback periods and range settings • Alert conditions for all divergence types
HOW TO USE
Adjust LPPeriod and HPPeriod inputs based on market conditions
Monitor the Filt line relative to the Trigger line
Watch for crossover signals (BUY/SELL labels)
Use divergence alerts to confirm trading opportunities: • Configure lookback periods (Left/Right) • Set range limits (Min/Max) • Enable/disable specific divergence types
LIMITATIONS
• Results depend on proper parameter configuration
• May produce false signals during non-trending markets
• Best used in conjunction with other analysis tools
NOTES
• The indicator overlays the main chart by default
• Color coding helps distinguish between bullish (green) and bearish (red) signals
• Alerts can be customized through TradingView's alert system
Release Note
█ OVERVIEWA corrected, re-built implementation of John F. Ehlers' Roofing Filter: a low-lag oscillator with crossover BUY/SELL signals, four divergence types and a live status table. V2 restores the roofing step that the original was missing, so the line you trade is a real Roofing Filter rather than a high-pass plus a smoother.
█ CONCEPTS
The Roofing Filter is a phase-flattening filter built in three stages:
• A 2-pole Butterworth high-pass removes trend and DC, leaving only cyclic price components.
• A 2-pole super smoother follows those cycles with as little lag as possible.
• The roofing step measures the ripple left between the raw high-pass and the smoothed line, smooths that amplitude — the roof — and subtracts a fraction of it. This flattens the phase delay and makes turning points line up with price.
The earlier version stopped after stage two; V2 completes stage three and exposes the multiplier as an input. The oscillator is compared with a one-bar delayed copy of itself, called Trigger, and their crosses are the signal events.
█ HOW TO USE
1 — Add it to any symbol; it opens in its own pane, scaled in price units.
2 — Watch the yellow line cross the fuchsia line: an up-cross is a BUY, a down-cross is a SELL. Labels and background shading show the state in force.
3 — Confirm a cross with a divergence block before acting; divergences are confluence, not standalone entries.
4 — Lower LPPeriod for earlier turns and more noise, raise it for smoother swings; raise HPPeriod to keep slower cycles.
Input Parameters
• LPPeriod, 40, range 2-500: super-smoother length. HPPeriod, 80, range 2-1000: high-pass cutoff.
• Roofing Multiplier, 0.5: fraction of the roof that is subtracted; 0.5 is the classic Ehlers value, 0 disables roofing.
• Label offset, 0.15: BUY/SELL label distance as a share of the oscillator range.
• Pivot Lookback Left / Right, 5: pivot sensitivity. Min / Max Lookback Range, 5 / 60: gap allowed between the two compared pivots.
• Plot Bullish / Bearish / Hidden Bullish / Hidden Bearish: toggle the divergence families.
• Show labels, Show status table, Table position, Plot roofing envelope, Plot spread, Shade background, line colours.
█ FEATURES
• Roofing Filter oscillator with Trigger line and a fill that flips colour with the signal.
• Roofing diagnostics: raw high-pass, pre-roofing smoothed line, and a shaded band showing what the roof absorbs.
• Spread columns with the signed Filt minus Trigger distance, highlighted on the signal bar.
• Regular and hidden divergences with thick pivot segments and Bull, Bear, H Bull, H Bear labels.
• Status table: Filt, Trigger, spread, signal state, bars since signal, roof and high-pass values, divergence counts and ages, active parameters.
• Six alertconditions: LONG, SHORT and one per divergence type.
█ SIGNALS
• BUY label, green background: Filt crossed above Trigger — momentum turning up.
• SELL label, red background: Filt crossed below Trigger — momentum turning down.
• Bull and Bear blocks: price makes a new extreme while the filter does not — exhaustion.
• H Bull and H Bear blocks: continuation, price holds a higher low or a lower high while the filter goes deeper.
█ IMPLEMENTATION NOTES
Open source under the Mozilla Public License 2.0. Built on ta.crossover, ta.crossunder, ta.pivotlow, ta.pivothigh, ta.valuewhen and ta.barssince, each called once per bar in global scope so short-circuit evaluation cannot damage its history; na-safe guards keep the divergence logic quiet until a second pivot exists. Signals use closed-bar data only and do not repaint.
█ LIMITATIONS
• The roofing recursion needs history; the first few hundred bars of a short chart are unstable.
• Crossover signals are lagging by construction — the filter reduces lag, it does not remove it.
• Divergences are confirmed several bars after the pivot, so their labels appear late.
• Ranging markets produce whipsaw crosses; pair the filter with a trend or volatility filter.
█ NOTES
• Filter design follows John F. Ehlers, Rocket Science for Traders; the divergence engine follows the classic community pivot-divergence pattern.
• Feedback and bug reports are welcome in the comments.
═════════════════════════════════════════════════════════════════════════
For questions or feedback, use the comments section below.
Feel free to use and modify — attribution appreciated.
Don't miss out! The first and most important thing to do is to join my Discord chat now! Click here to start your adventure: discord.com/invite/ZTGpQJq My new github for more pine development soon: github.com/wxt-coder
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน
Don't miss out! The first and most important thing to do is to join my Discord chat now! Click here to start your adventure: discord.com/invite/ZTGpQJq My new github for more pine development soon: github.com/wxt-coder
คำจำกัดสิทธิ์ความรับผิดชอบ
ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมใน ข้อกำหนดการใช้งาน