TASC 2025.01 Linear Predictive Filters█ OVERVIEW
This script implements a suite of tools for identifying and utilizing dominant cycles in time series data, as introduced by John Ehlers in the "Linear Predictive Filters And Instantaneous Frequency" article featured in the January 2025 edition of TASC's Traders' Tips . Dominant cycle information can help traders adapt their indicators and strategies to changing market conditions.
█ CONCEPTS
Conventional technical indicators and strategies often rely on static, unchanging parameters, which may fail to account for the dynamic nature of market data. In his article, John Ehlers applies digital signal processing principles to address this issue, introducing linear predictive filters to identify cyclic information for adapting indicators and strategies to evolving market conditions.
This approach treats market data as a complex series in the time domain. Analyzing the series in the frequency domain reveals information about its cyclic components. To reduce the impact of frequencies outside a range of interest and focus on a specific range of cycles, Ehlers applies second-order highpass and lowpass filters to the price data, which attenuate or remove wavelengths outside the desired range. This band-limited analysis isolates specific parts of the frequency spectrum for various trading styles, e.g., longer wavelengths for position trading or shorter wavelengths for swing trading.
After filtering the series to produce band-limited data, Ehlers applies a linear predictive filter to predict future values a few bars ahead. The filter, calculated based on the techniques proposed by Lloyd Griffiths, adaptively minimizes the error between the latest data point and prediction, successively adjusting its coefficients to align with the band-limited series. The filter's coefficients can then be applied to generate an adaptive estimate of the band-limited data's structure in the frequency domain and identify the dominant cycle.
█ USAGE
This script implements the following tools presented in the article:
Griffiths Predictor
This tool calculates a linear predictive filter to forecast future data points in band-limited price data. The crosses between the prediction and signal lines can provide potential trade signals.
Griffiths Spectrum
This tool calculates a partial frequency spectrum of the band-limited price data derived from the linear predictive filter's coefficients, displaying a color-coded representation of the frequency information in the pane.
Griffiths Dominant Cycle
This tool compares the cyclic components within the partial spectrum and identifies the frequency with the highest power, i.e., the dominant cycle . Traders can use this dominant cycle information to tune other indicators and strategies, which may help promote better alignment with dynamic market conditions.
Notes on parameters
Bandpass boundaries:
In the article, Ehlers recommends an upper bound of 125 bars or higher to capture longer-term cycles for position trading. He recommends an upper bound of 40 bars and a lower bound of 18 bars for swing trading. If traders use smaller lower bounds, Ehlers advises a minimum of eight bars to minimize the potential effects of aliasing.
Data length:
The Griffiths predictor can use a relatively small data length, as autocorrelation diminishes rapidly with lag. However, for optimal spectrum and dominant cycle calculations, the length must match or exceed the upper bound of the bandpass filter. Ehlers recommends avoiding excessively long lengths to maintain responsiveness to shorter-term cycles.
Ehlers
Ehlers Loops [BigBeluga]The Ehlers Loops indicator is based on the concepts developed by John F. Ehlers, which provide a visual representation of the relationship between price and volume dynamics. This tool helps traders predict future market movements by observing how price and volume data interact within four distinct quadrants of the loop, each representing different combinations of price and volume directions. The unique structure of this indicator provides insights into the strength and direction of market trends, offering a clearer perspective on price behavior relative to volume.
🔵 KEY FEATURES & USAGE
● Four Price-Volume Quadrants:
The Ehlers Loops chart consists of four quadrants:
+Price & +Volume (top-right) – Typically indicates a bullish continuation in the market.
-Price & +Volume (bottom-right) – Generally shows a bearish continuation.
+Price & -Volume (top-left) – Typically indicates an exhaustion of demand with a potential reversal.
-Price & -Volume (bottom-left) – Indicates exhaustion of supply and near trend reversal.
By watching how symbols move through these quadrants over time, traders can assess shifts in momentum and volume flow.
● Price and Volume Scaling in Standard Deviations:
Both price and volume data are individually filtered using HighPass and SuperSmoother filters, which transform them into band-limited signals with zero mean. This scaling allows traders to view data in terms of its deviation from the average, making it easier to spot abnormal movements or trends in both price and volume.
● Loops Trajectories with Tails:
The loops draw a trail of price and volume dynamics over time, allowing traders to observe historical price-volume interactions and predict future movements based on the curvature and direction of the rotation.
● Price & Volume Histograms:
On the right side of the chart, histograms for each symbol provide a summary of the most recent price and volume values. These histograms allow traders to easily compare the strength and direction of multiple assets and evaluate market conditions at a glance.
● Flexible Symbol Display & Customization:
Traders can select up to five different symbols to be displayed within the Ehlers Loops. The settings also allow customization of symbol size, colors, and visibility of the histograms. Additionally, traders can adjust the LPPeriod and HPPeriod to change the smoothness and lag of the loops, with a shorter LPPeriod offering more responsiveness and a longer HPPeriod emphasizing longer-term trends.
🔵 USAGE
🔵 SETTINGS
Low pass Period: default is 10 to
obtain minimum lag with just a little smoothing.
High pass Period: default is 125 (half of the year if Daily timeframe) to capture the longer term moves.
🔵 CONCLUSION
The Ehlers Loops indicator offers a visually rich and highly customizable way to observe price and volume dynamics across multiple assets. By using band-limited signals and scaling data into standard deviations, traders gain a powerful tool for identifying market trends and predicting future movements. Whether you're tracking short-term fluctuations or long-term trends, Ehlers Loops can help you stay ahead of the market by offering key insights into the relationship between price and volume.
TASC 2024.11 Ultimate Strength Index█ OVERVIEW
This script implements the Ultimate Strength Index (USI) indicator, introduced by John Ehlers in his article titled "Ultimate Strength Index (USI)" from the November 2024 edition of TASC's Traders' Tips . The USI is a modified version of Wilder's original Relative Strength Index (RSI) that incorporates Ehlers' UltimateSmoother lowpass filter to produce an output with significantly reduced lag.
█ CONCEPTS
Many technical indicators, including the RSI, lag due to their heavy reliance on historical data. John Ehlers reformulated the RSI to substantially reduce lag by applying his UltimateSmoother filter to upward movements ( strength up - SU ) and downward movements ( strength down - SD ) in the time series, replacing the standard process of smoothing changes with rolling moving averages (RMAs). Ehlers' recent works, covered in our recent script publications, have shown that the UltimateSmoother is an effective alternative to other classic averages, offering notably less lag in its response.
Ehlers also modified the RSI formula to produce an index that ranges from -1 to +1 instead of 0 to 100. As a result, the USI indicates bullish conditions when its value moves above 0 and bearish conditions when it falls below 0.
The USI retains many of the strengths of the traditional RSI while offering the advantage of reduced lag. It generally uses a larger lookback window than the conventional RSI to achieve similar behavior, making it suitable for trend trading with longer data lengths. When applied with shorter lengths, the USI's peaks and valleys tend to align closely with significant turning points in the time series, making it a potentially helpful tool for timing swing trades.
█ CALCULATIONS
The first step in the USI's calculation is determining each bar's strength up (SU) and strength down (SD) values. If the current bar's close exceeds the previous bar's, the calculation assigns the difference to SU. Otherwise, SU is zero. Likewise, if the current bar's close is below the previous bar's, it assigns the difference to SD. Otherwise, SD is zero.
Next, instead of the RSI's typical smoothing process, the USI's calculation applies the UltimateSmoother to the short-term average SU and SD values, reducing high-frequency chop in the series with low lag.
Finally, this formula determines the USI value:
USI = ( Ult (SU) − Ult (SD)) / ( Ult (SU) + Ult (SD)),
where Ult (SU) and Ult (SD) are the smoothed average strength up and strength down values.
Smooth Cloud [BigBeluga]This trend-following indicator, called Smooth Cloud, is built on top of a SuperSmoother Filter of John Ehlers with small modification.
It consists of three smoothed lines—Fast, Middle, and Slow—that together form a cloud. These lines are based on different periods, helping traders analyze market changes over different timeframes (fast, mid, and slow). The indicator offers a color-coded visual cloud to depict trend direction, along with a detailed dashboard that shows the positioning of the lines, whether they are rising or falling, and their price levels.
🔵 IDEA
The Smooth Cloud indicator is designed to help traders quickly assess the market trend by using three smoothed lines with varying periods. The lines represent fast, mid, and slow market changes, and their relative positioning provides a clear view of trend shifts. The dashboard gives a more granular view by showing if the lines are rising or falling individually, without comparing them to each other, providing insights into potential trend changes before they are fully formed. The color-coded cloud further enhances the visual experience by allowing traders to see trend direction at a glance, making it easier to spot major and minor shifts in the market.
🔵 KEY FEATURES & USAGE
◉ Three Smoothed Lines (Fast, Mid, Slow):
The indicator consists of three smoothed lines, each representing a different periods. The Fast line reacts more quickly to price changes, while the Slow line reacts more slowly, allowing traders to capture both short-term and long-term trend information. The lines are based on different lengths, and their positioning relative to each other helps determine market direction.
◉ Color-Coded Cloud:
The cloud formed between the lines is color-coded to indicate trend direction. When the Fast line is above the Slow line, it signals an upward trend, and the cloud is green. When the Fast line is below the Slow line, the cloud turns red, indicating a downward trend. This color coding makes it easy to spot the overall trend direction visually without having to analyze the lines in detail.
◉ Dashboard for Line Positioning and Trend Direction:
A dashboard in the top right corner of the chart shows the positioning of the Fast, Middle, and Slow lines relative to each other. It displays arrows for each line to indicate whether the line is above or below the other lines. For exae determines its trend direction based on its position to mid line — if it's above, an upward arrow is displayed, and if it's below mid line, a downward arrow is shown.mple, if the Fast line is above the Slow line, the dashboard shows an upward arrow for the Fast line. The Slow lin
Up trend:
Up trend shift:
Down trend shift:
Down Trend:
◉ Rising and Falling Detection:
The dashboard also tracks whether the lines are rising or falling based solely on their own values. If a line rises or falls consistently over three bars, the dashboard shows an upward or downward arrow under the "Rising or Falling" section. This feature provides additional insight into the market's momentum, allowing traders to spot potential trend reversals more quickly.
◉ Price Levels for Fast, Middle, and Slow Lines:
The dashboard includes the price levels for the Fast, Middle, and Slow lines, displayed at the bottom. These levels give traders a quick reference for where the lines are currently positioned relative to the price, adding further context to the trend information displayed.
◉ Fast Signals:
The fast signals are diplayed when fast line crosses slow line. Gree arrows up shows fast line crossed over slow and when arrow down fast line crossed under slow one.
🔵 CUSTOMIZATION
Length Input: You can adjust the length parameter, which affects the smoothing period for the lines. A shorter length makes the lines react more quickly to price changes, while a longer length provides a smoother, more gradual response.
Source Input: The indicator uses the hl2 source (the average of the high and low prices), but you can change this to another source to better suit your trading strategy.
Signals Type: Select between "Fast" and "Slow". Fast signals - is interaction of fast and slow lines. Slow signals is interaction of mid and slow lines
Related script:
Ehlers Band-Pass FilterHeyo,
This indicator is an original translation from Ehlers' book "Cycle Analytics for Traders Advanced".
First, I describe the indicator as usual and later you can find a very insightful quote of the book.
Key Features
Signal Line: Represents the output of the band-pass filter, highlighting the dominant cycle in the data.
Trigger Line: A leading indicator derived from the signal line, providing early signals for potential market reversals.
Dominant Cycle: Measures the dominant cycle period by counting the number of bars between zero crossings of the band-pass filter output.
Calculation:
The band-pass filter is implemented using a combination of high-pass and low-pass filters.
The filter's parameters, such as period and bandwidth, can be adjusted to tune the filter to specific market cycles.
The signal line is normalized using an Automatic Gain Control (AGC) to provide consistent amplitude regardless of price swings.
The trigger line is derived by applying a high-pass filter to the signal line, creating a leading
waveform.
Usage
The indicator is effective in identifying peaks and valleys in the market data.
It works best in cyclic market conditions and may produce false signals during trending periods.
The dominant cycle measurement helps traders understand the prevailing market cycle length, aiding in better decision-making.
Quoted from the Book
Band-Pass Filters
“A little of the data narrowly passed,” said Tom broadly.
Perhaps the least appreciated and most underutilized filter in technical analysis is the band-pass filter. The band-pass filter simultaneously diminishes the amplitude at low frequencies, qualifying it as a detrender, and diminishes the amplitude at high frequencies, qualifying it as a data smoother.
It passes only those frequency components from input to output in which the trader is interested. The filtering produced by a band-pass filter is superior because the rejection in the stop bands is related to its bandwidth. The degree of rejection of undesired frequency components is called selectivity. The band-stop filter is the dual of the band-pass filter. It rejects a band of frequency components as a notch at the output and passes all other frequency components virtually unattenuated. Since the bandwidth of the deep rejection in the notch is relatively narrow and since the spectrum of market cycles is relatively broad due to systemic noise, the band-stop filter has little application in trading.
Measuring the Cycle Period
The band-pass filter can be used as a relatively simple measurement of the dominant cycle.
A cycle is complete when the waveform crosses zero two times from the last zero crossing. Therefore, each successive zero crossing of the indicator marks a half cycle period. We can establish the dominant cycle period as twice the spacing between successive zero crossings.
When we measure the dominant cycle period this way, it is best to widen the pass band of the band-pass filter to avoid distorting the measurement simply due to the selectivity of the filter. Using an input bandwidth of 0.7 produces an octave-wide pass band. For example, if the center period of the filter is 20 and the relative bandwidth is 0.7, the bandwidth is 14. That means the pass band of the filter extends from 13-bar periods to 27-bar periods.
That is, roughly an octave exists because the longest period is twice the shortest period of the pass band. It is imperative that a high-pass filter is tuned one octave below the half-bandwidth edge of the band-pass filter to ensure a nominal zero mean of the filtered output. Without a zero mean, the zero crossings can have a substantial error.
Since the measurement of the dominant cycle can vary dramatically from zero crossing to zero
crossing, the code limits the change between measurements to be no more than 25 percent.
While measuring the changing dominant cycle period via zero crossings of the band-pass waveform is easy, it is not necessarily the most accurate method.
Best regards,
simwai
Good Luck with your trading! 🙌
TASC 2024.09 Precision Trend Analysis█ OVERVIEW
This script introduces an approach for detecting and confirming trends in price series based on digital signal processing principles, as presented by John Ehlers in the "Precision Trend Analysis" article from the September 2024 edition of TASC's Traders' Tips .
█ CONCEPTS
Traditional trend-following indicators, such as moving averages , are lowpass filters that pass low-frequency components in a series and remove high-frequency components. Because lowpass filters preserve lengthy cycles in the data while attenuating shorter cycles, such filters have unavoidable lag that impacts the timeliness of trading signals.
In his article, John Ehlers presents an alternative approach that combines two highpass filters with different lengths to remove undesired high-frequency content via cancellation . Highpass filters have nearly zero lag. As such, the resulting trend indicator from this approach is very responsive to changes in the price series, with peaks and valleys that closely align with those of the price data. The indicator signifies an uptrend when its value is positive (i.e., above the balance point) and a downtrend when it is negative.
Subsequently, John Ehlers demonstrates that one can use the trend indicator's rate of change (ROC) to determine the onset of new trend movements. The ROC is zero at peaks and valleys in the trend indicator. Therefore, when the ROC crosses above zero, it signifies the onset or continuation of an uptrend. Likewise, the ROC crossing below zero indicates the onset or continuation of a downtrend. Note, however, that because the ROC does not preserve lower-frequency information, it can produce whipsaw trading signals in sideways or continuously trending price series.
This script implements both the trend indicator and its ROC along with the following on-chart signals:
• Green and red arrows that indicate the possible onset or continuation of an uptrend and downtrend, respectively
• Bar and plot colors that signify the sign (direction) of the trend indicator
█ CALCULATIONS
The math behind the trend indicator comes from digital filter design principles. The first step applies a digital highpass filter that attenuates long cycles with periods above the user-specified critical period. The default value is 250 bars, representing roughly one year for instruments such as stocks on the daily timeframe. The next step applies a highpass filter with a shorter period (40 bars by default). The difference between these filters determines the trend indicator, which preserves cyclic components between 40 and 250 bars by default while attenuating and eliminating others. The ROC represents the scaled one-bar difference in the trend indicator.
ICT Balanced Price Range [TradingFinder] BPR | FVG + IFVG🔵 Introduction
The ICT Balanced Price Range (BPR) indicator is a valuable tool that helps traders identify key areas on price charts where a balance between buyers and sellers is established. These zones can serve as critical points for potential price reversals or continuations.
🟣 Bullish Balanced Price Range
A Bullish BPR forms when a buying pressure zone (Bullish FVG) overlaps with a Bullish Inversion FVG. This overlap indicates a high probability of price moving upwards, making it a crucial area for traders to consider.
🟣 Bearish Balanced Price Range
Similarly, a Bearish BPR is created when a selling pressure zone (Bearish FVG) overlaps with a Bearish Inversion FVG. This zone is often seen as a key area where the price is likely to move downward.
🔵 How to Use
🟣 Identifying the Balanced Price Range (BPR)
To identify the Balanced Price Range (BPR), you must first locate two Fair Value Gaps (FVGs) on the price chart. One FVG should be on the sell side, and the other on the buy side. When these two FVGs horizontally oppose each other, the area where they overlap is recognized as the Balanced Price Range (BPR).
This BPR zone is highly sensitive to price movements due to the combination of two FVGs, often leading to strong market reactions. As the price approaches this area, the likelihood of a significant market move increases, making it a prime target for professional traders.
🟣 Bullish Balanced Price Range (Bullish BPR)
To effectively trade using a Bullish BPR, begin by identifying a bullish market structure and searching for bullish Price Delivery Arrays (PD Arrays). Once the market structure shifts to bullish in a lower time frame, locate a Bullish FVG within the Discount Zone that overlaps with a Bearish FVG.
Mark this overlapping zone and wait for the price to test it before executing a buy trade. Alternatively, you can set a Buy Limit order with a stop loss below the recent swing low and target profits based on higher time frame liquidity draws.
🟣 Bearish Balanced Price Range (Bearish BPR)
For bearish trades, start by identifying a bearish market structure and look for bearish PD Arrays. After the market structure shifts to bearish in a lower time frame, identify a Bearish FVG within the Discount Zone that overlaps with a Bullish FVG. Mark this overlapping zone and execute a sell trade when the price tests it.
You can also use a Sell Limit order with a stop loss above the recent swing high and target profits according to higher time frame liquidity draws.
🔵 Settings
🟣 Global Settings
Show All Inversion FVG & IFVG : If disabled, only the most recent FVG & IFVG will be displayed.
FVG & IFVG Validity Period (Bar) : Determines the maximum duration (in number of candles) that the FVG and IFVG remain valid.
Switching Colors Theme Mode : Includes three modes: "Off", "Light", and "Dark". "Light" mode adjusts colors for light mode use, "Dark" mode adjusts colors for dark mode use, and "Off" disables color adjustments.
🟣 Display Settings
Show Bullish BPR : Toggles the display of demand-related boxes.
Show Bearish BPR : Toggles the display of supply-related boxes.
Mitigation Level BPR : Options include "Proximal", "Distal", or "50 % OB" modes, which you can choose based on your needs. The "50 % OB" line is the midpoint between distal and proximal.
Show Bullish IFVG : Toggles the display of demand-related boxes.
Show Bearish IFV G: Toggles the display of supply-related boxes.
Mitigation Level FVG and IFVG : Options include "Proximal", "Distal", or "50 % OB" modes, which you can choose based on your needs. The "50 % OB" line is the midpoint between distal and proximal.
🟣 Logic Settings
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filters :
Very Aggressive Filter : Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filter : Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter : Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filte r: Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
🟣 Alert Settings
Alert Inversion FVG Mitigation : Enables alerts for Inversion FVG mitigation.
Message Frequency : Determines the frequency of alerts. Options include 'All' (every function call), 'Once Per Bar' (first call within the bar), and 'Once Per Bar Close' (final script execution of the real-time bar). Default is 'Once per Bar'.
Show Alert Time by Time Zone : Configures the time zone for alert messages. Default is 'UTC'.
Display More Info : Provides additional details in alert messages, including price range, date, hour, and minute. Set to 'Off' to exclude this information.
🔵 Conclusion
The ICT Balanced Price Range is a powerful and reliable tool for identifying key points on price charts. This strategy can be applied across various time frames and serves as a complementary tool alongside other indicators and technical analysis methods.
The most crucial aspect of utilizing this strategy effectively is correctly identifying FVGs and their overlapping areas, which comes with practice and experience.
Inversion Fair Value Gaps [TradingFinder] IFVG ICT Signal| Alert🔵 Introduction
🟣 Inversion Fair Value Gap (IFVG)
An ICT Inversion Fair Value Gap, or reverse FVG, occurs when a fair value gap fails to hold its price, resulting in the price moving beyond and breaking the gap. This situation marks the initial change in price momentum.
Generally, prices respect fair value gaps and continue in their trend direction. However, when a fair value gap is breached, it transforms into an inversion fair value gap, signaling a potential short-term reversal or a subsequent change in direction.
🔵 How to Use
🟣 Identifying an Inversion Fair Value Gap
To spot an IFVG, you must first identify a fair value gap.
Inversion fair value gaps can be categorized into two types :
🟣 Bullish Inversion Fair Value Gap
A bullish IFVG occurs when a bearish fair value gap is invalidated by the price closing above it.
Steps to identify it :
Identify a bearish fair value gap.
When the price closes above this gap, it becomes a bullish inversion fair value gap.
This gap acts as a support level, pushing the price upwards and indicating a shift in momentum from sellers to buyers.
🟣 Bearish Inversion Fair Value Gap
A bearish IFVG happens when a bullish fair value gap fails, with the price closing below it.
Steps to identify it :
Identify a bullish fair value gap.
When the price closes below this gap, it becomes a bearish inversion fair value gap.
This gap acts as a resistance level, pushing the price downwards and indicating a shift in momentum from buyers to sellers.
🔵 Settings
🟣 Global Settings
Show All Inversion FVG: If disabled, only the most recent FVG will be displayed.
IFVG Validity Period (Bar): Determines the maximum duration (in number of candles) that the FVG and IFVG remain valid.Switching Colors Theme Mode: Includes three modes: "Off", "Light", and "Dark". "Light" mode adjusts colors for light mode use, "Dark" mode adjusts colors for dark mode use, and "Off" disables color adjustments.
🟣 Logic Settings
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filters :
Very Aggressive Filter : Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filte r: Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter : Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filter : Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
Mitigation Level FVG and IFVG : Options include "Proximal", "Distal", or "50 % OB" modes, which you can choose based on your needs. The "50 % OB" line is the midpoint between distal and proximal.
🟣 Display Settings
Show Bullish IFVG : Toggles the display of demand-related boxes.
Show Bearish IFVG : Toggles the display of supply-related boxes.
🟣 Alert Settings
Alert Inversion FVG Mitigation : Enables alerts for Inversion FVG mitigation.
Message Frequency : Determines the frequency of alerts. Options include 'All' (every function call), 'Once Per Bar' (first call within the bar), and 'Once Per Bar Close' (final script execution of the real-time bar). Default is 'Once per Bar'.
Show Alert Time by Time Zone : Configures the time zone for alert messages. Default is 'UTC'.
Display More Info : Provides additional details in alert messages, including price range, date, hour, and minute. Set to 'Off' to exclude this information.
Order Blocks & Breaker Blocks [TradingFinder] Signals + Alerts🔵 Introduction
Order Block and Breaker Block, are powerful tools in technical analysis. By understanding these concepts, traders can enhance their ability to predict potential price reversals and continuations, leading to more effective trading strategies.
Using historical price action, volume analysis, and candlestick patterns, traders can identify key areas where institutional activities influence market movements.
🟣 Demand Order Block and Supply Breaker Block
Demand Order Block : A Demand Order Block is formed when the price succeeds in breaking the previous high pivot.
Supply Breaker Block : A Supply Breaker Block is formed when the price succeeds in breaking the Demand Order Block. As a result, the Order Block changes its role and turns from the role of price support to resistance.
🟣 Supply Order Block and Demand Breaker Block
Supply Order Block : A Supply Order Block is formed when the price succeeds in breaking the previous low pivot.
Demand Breaker Block : A Demand Breaker Block is formed when the price succeeds in breaking the Supply Order Block. As a result, the Order Block changes its role and turns from the role of price resistance to support.
🔵 How to Use
🟣 Order Blocks (Supply and Demand)
Order blocks are zones where the likelihood of a price reversal is higher. In demand zones, buying opportunities arise, while in supply zones, selling opportunities can be explored.
The "Refinement" feature allows you to adjust the width of the order block to fit your trading strategy. There are two modes in the "Order Block Refine" feature: "Aggressive" and "Defensive." The primary difference between these modes is the width of the order block.
For risk-averse traders, the "Defensive" mode is ideal as it offers a lower loss limit and a higher reward-to-risk ratio.
Conversely, for traders who are willing to take more risks, the "Aggressive" mode is more suitable. This mode, with its wider order block width, caters to those who prefer entering trades at higher prices.
🟣 Breaker Blocks (Supply and Demand)
Trading based on breaker blocks is the same as order blocks and the price in these zones is likely to be reversed.
🔵 Setting
🟣 Global Setting
Pivot Period of Order Blocks Detector : Enter the desired pivot period to identify the Order Block.
Order Block Validity Period (Bar) : You can specify the maximum time the Order Block remains valid based on the number of candles from the origin.
Mitigation Level Order Block : Determining the basic level of a Order Block. When the price hits the basic level, the Order Block due to mitigation.
Mitigation Level Breaker Block : Determining the basic level of a Breaker Block. When the price hits the basic level, the Breaker Block due to mitigation.
Switching Colors Theme Mode : Three modes "Off", "Light" and "Dark" are included in this parameter. "Light" mode is for color adjustment for use in "Light Mode".
"Dark" mode is for color adjustment for use in "Dark Mode" and "Off" mode turns off the color adjustment function and the input color to the function is the same as the output color.
🟣 Order Block Display
Show All Order Block : If it is turned off, only the last Order Block will be displayed.
Demand Main Order Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
Supply Main Order Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
🟣 Breaker Block Display
Show All Breaker Block : If it is turned off, only the last Breaker Block will be displayed.
Demand Main Breaker Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
Supply Main Breaker Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
🟣 Order Block Refinement
Refine Order Blocks : Enable or disable the refinement feature. Mode selection.
🟣 Alert
Alert Name : The name of the alert you receive.
Alert Demand OB Mitigation :
On / Off
Alert Demand BB Mitigation :
On / Off
Alert Supply OB Mitigation :
On / Off
Alert Supply BB Mitigation :
On / Off
Message Frequency :
This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone :
The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
Display More Info :
Displays information about the price range of the order blocks (Zone Price) and the date, hour, and minute under "Display More Info".
If you do not want this information to appear in the received message along with the alert, you should set it to "Off".
ICT Setup 01 [TradingFinder] FVG + Liquidity Sweeps/Hunt Alerts🔵 Introduction
The ICT (Inner Circle Trader) style of trading involves analyzing the behavior of market participants and market makers to identify areas where fake buy and sell activities occur. This trading style helps retail traders align with market maker behavior and avoid falling into market traps.
A key aspect of the ICT strategy is focusing on liquidity hunts. This involves searching for trading opportunities in areas of the market with low liquidity or where other traders have little activity. The ICT method leverages market inefficiencies and weaknesses, allowing traders to profit from small price movements that might go unnoticed by others.
In "ICT Setup 01," our focus is on these liquidity areas and stop hunts that form in Fair Value Gaps (FVGs). Trading within FVGs, combined with confirmations from "Hunts" and "Sweeps," can enhance trader performance.
🔵 How to Use
The presence of Fair Value Gaps (FVGs) in the market indicates rapid, powerful movements likely caused by the influx of smart money. When the price returns to these levels, a market reaction is expected.
Combining this with the complex and deceptive behavior of smart money—such as "Liquidity Sweeps" and "Stop Hunts"—forms an ICT-based price action setup that we expect to perform well.
Components of "ICT Setup 01" :
● Fair Value Gap (FVG)
● Premium and Discount
● Hunts / Sweeps
Whenever the price returns to an FVG area and reacts in such a way that only the wicks of the candles remain in the area and the candle bodies are outside the FVG, the first condition for creating the setup is met.
If subsequent candles hunt the wick that has penetrated the deepest into the FVG, a buy or sell signal is issued. In the format where hunting is based on Sweeps, penetrations that extend even outside the area are considered signals, provided they do not form a body within the area.
Additionally, a refining system exists for cases where a candle body forms in the area, optimizing the proximal levels of the FVG.
Bullish Setup :
Bearish Setup :
🔵 Features and Settings of "ICT Setup 01"
You can Find out more in Setting :
● FVG Detector Multiplier Factor
● FVG Validity Period
● Level in Low-Risk Zone
● Issuing Signals Method
● Number of Signals Allowed from a Zone
● Signal after Hunts/Sweeps
● How Many Hunts/Sweeps
● Show or Hide
● Alert Sender
FVG Detector Multiplier Factor :
This feature allows you to determine the size of the moves forming the FVGs based on the ATR (Average True Range). The default value is 1 to identify the majority of setups. You can increase this value according to the symbol and market you are trading in to achieve better results.
FVG Validity Period :
This shows the validity period of an FVG based on the number of candles. By default, an FVG area is valid for up to 15 candles. However, you can increase or decrease this period.
Level in Low-Risk Zone :
This feature helps reduce your risk. The method works by identifying the entire length of the three candles forming the FVG and dividing it into two equal areas. The upper area is "Premium," and the lower area is "Discount." To reduce risk, it is better for "Demand FVG" to be in the "Discount" and "Supply FVG" in the "Premium." This feature is off by default.
Issuing Signals Method :
This feature allows you to specify whether the hunt should occur only within the FVG area or if the wicks can extend outside the area.
If set to "Hunts," only signals where the wicks are within the area are issued, and the area loses its validity if the wicks extend outside.
In "Sweeps" mode, wicks can extend outside the area as long as they do not form a body within the area.
Number of Signals Allowed from a Zone :
This feature allows you to specify how many valid signals can be issued from one area.
Signal after Hunts/Sweeps :
In markets or symbols with a tendency for frequent stop hunts, this feature allows you to specify how many hunts should occur before you receive a signal to avoid receiving potentially failed signals.
How Many Hunts/Sweeps :
Enter the number of hunts you want to set for the "Signal after Hunts/Sweeps" feature here.
Show or Hide :
The number of setups formed may be very large, and displaying all of them on the chart can be distracting and messy. By default, only the last setup is displayed, but if you want to see all setups, you can turn on the relevant options.
Alert Sender :
You cannot constantly monitor multiple charts to identify trading opportunities. Using the alert sending feature can save time and improve performance.
Alerts Name : Customize the alert name to your preference.
Message Frequency : Determines the frequency of alert messages. Options include 'All' (triggers every time the function is called), 'Once Per Bar' (triggers only on the first call within the bar), and 'Once Per Bar Close' (triggers only on the final script execution of the real-time bar upon closure). The default is 'Once per Bar.'
Show Alert Time by Time Zone : Configure the alert messages to reflect any chosen time zone. For instance, input 'UTC+1' for London time. The default is 'UTC.'
By configuring these settings, traders can effectively utilize ICT setups to improve their trading strategies and outcomes.
TASC 2024.05 Ultimate Channels and Ultimate Bands█ OVERVIEW
This script, inspired by the "Ultimate Channels and Ultimate Bands" article from the May 2024 edition of TASC's Traders' Tips , showcases the application of the UltimateSmoother by John Ehlers as a lag-reduced alternative to moving averages in indicators based on Keltner channels and Bollinger Bands®.
█ CONCEPTS
The UltimateSmoother , developed by John Ehlers, is a digital smoothing filter that provides minimal lag compared to many conventional smoothing filters, e.g., moving averages . Since this filter can provide a viable replacement for moving averages with reduced lag, it can potentially find broader applications in various technical indicators that utilize such averages.
This script explores its use as the smoothing filter in Keltner channels and Bollinger Bands® calculations, which traditionally rely on moving averages. By substituting averages with the UltimateSmoother function, the resulting channels or bands respond more quickly to fluctuations with substantially reduced lag.
Users can customize the script by selecting between the Ultimate channel or Ultimate bands and adjusting their parameters, including lookback lengths and band/channel width multipliers, to fine-tune the results.
█ CALCULATIONS
The calculations the Ultimate channels and Ultimate bands use closely resemble those of their conventional counterparts.
Ultimate channel:
Apply the Ultimate smoother to the `close` time series to establish the basis (center) value.
Calculate the smooth true range (STR) by applying the UltimateSmoother function with a user-specified length instead of a rolling moving average, thus replacing the conventional average true range (ATR). Users can adjust the final STR value using the "Width multiplier" input in the script's settings.
Calculate the upper channel value by adding the multiplied STR to the basis calculated in the first step, and calculate the lower channel value by subtracting the multiplied STR from the basis.
Ultimate bands:
Apply the Ultimate smoother to the `close` time series to establish the basis (center) value.
Calculate the width of the bands by finding the square root of the average of individual squared deviations over the specified length, then multiplying the result by the "Width multiplier" input value.
Calculate the upper band by adding the resulting width to the basis from the first step, and calculate the lower band by subtracting the width from the basis.
TASC 2024.04 The Ultimate Smoother█ 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.
Leading T3Hello Fellas,
Here, I applied a special technique of John F. Ehlers to make lagging indicators leading. The T3 itself is usually not realling the classic lagging indicator, so it is not really needed, but I still publish this indicator to demonstrate this technique of Ehlers applied on a simple indicator.
The indicator does not repaint.
In the following picture you can see a comparison of normal T3 (purple) compared to a 2-bar "leading" T3 (gradient):
The range of the gradient is:
Bottom Value: the lowest slope of the last 100 bars -> green
Top Value: the highest slope of the last 100 bars -> purple
Ehlers Special Technique
John Ehlers did develop methods to make lagging indicators leading or predictive. One of these methods is the Predictive Moving Average, which he introduced in his book “Rocket Science for Traders”. The concept is to take a difference of a lagging line from the original function to produce a leading function.
The idea is to extend this concept to moving averages. If you take a 7-bar Weighted Moving Average (WMA) of prices, that average lags the prices by 2 bars. If you take a 7-bar WMA of the first average, this second average is delayed another 2 bars. If you take the difference between the two averages and add that difference to the first average, the result should be a smoothed line of the original price function with no lag.
T3
To compute the T3 moving average, it involves a triple smoothing process using exponential moving averages. Here's how it works:
Calculate the first exponential moving average (EMA1) of the price data over a specific period 'n.'
Calculate the second exponential moving average (EMA2) of EMA1 using the same period 'n.'
Calculate the third exponential moving average (EMA3) of EMA2 using the same period 'n.'
The formula for the T3 moving average is as follows:
T3 = 3 * (EMA1) - 3 * (EMA2) + (EMA3)
By applying this triple smoothing process, the T3 moving average is intended to offer reduced noise and improved responsiveness to price trends. It achieves this by incorporating multiple time frames of the exponential moving averages, resulting in a more accurate representation of the underlying price action.
Thanks for checking this out and give a boost, if you enjoyed the content.
Best regards,
simwai
---
Credits to @loxx
Adaptive Fisherized Z-scoreHello Fellas,
It's time for a new adaptive fisherized indicator of me, where I apply adaptive length and more on a classic indicator.
Today, I chose the Z-score, also called standard score, as indicator of interest.
Special Features
Advanced Smoothing: JMA, T3, Hann Window and Super Smoother
Adaptive Length Algorithms: In-Phase Quadrature, Homodyne Discriminator, Median and Hilbert Transform
Inverse Fisher Transform (IFT)
Signals: Enter Long, Enter Short, Exit Long and Exit Short
Bar Coloring: Presents the trade state as bar colors
Band Levels: Changes the band levels
Decision Making
When you create such a mod you need to think about which concepts are the best to conclude. I decided to take Inverse Fisher Transform instead of normalization to make a version which fits to a fixed scale to avoid the usual distortion created by normalization.
Moreover, I chose JMA, T3, Hann Window and Super Smoother, because JMA and T3 are the bleeding-edge MA's at the moment with the best balance of lag and responsiveness. Additionally, I chose Hann Window and Super Smoother because of their extraordinary smoothing capabilities and because Ehlers favours them.
Furthermore, I decided to choose the half length of the dominant cycle instead of the full dominant cycle to make the indicator more responsive which is very important for a signal emitter like Z-score. Signal emitters always need to be faster or have the same speed as the filters they are combined with.
Usage
The Z-score is a low timeframe scalper which works best during choppy/ranging phases. The direction you should trade is determined by the last trend change. E.g. when the last trend change was from bearish market to bullish market and you are now in a choppy/ranging phase confirmed by e.g. Chop Zone or KAMA slope you want to do long trades.
Interpretation
The Z-score indicator is a momentum indicator which shows the number of standard deviations by which the value of a raw score (price/source) is above or below the mean value of what is being observed or measured. Easily explained, it is almost the same as Bollinger Bands with another visual representation form.
Signals
B -> Buy -> Z-score crosses above lower band
S -> Short -> Z-score crosses below upper band
BE -> Buy Exit -> Z-score crosses above 0
SE -> Sell Exit -> Z-score crosses below 0
If you were reading till here, thank you already. Now, follows a bunch of knowledge for people who don't know the concepts I talk about.
T3
The T3 moving average, short for "Tim Tillson's Triple Exponential Moving Average," is a technical indicator used in financial markets and technical analysis to smooth out price data over a specific period. It was developed by Tim Tillson, a software project manager at Hewlett-Packard, with expertise in Mathematics and Computer Science.
The T3 moving average is an enhancement of the traditional Exponential Moving Average (EMA) and aims to overcome some of its limitations. The primary goal of the T3 moving average is to provide a smoother representation of price trends while minimizing lag compared to other moving averages like Simple Moving Average (SMA), Weighted Moving Average (WMA), or EMA.
To compute the T3 moving average, it involves a triple smoothing process using exponential moving averages. Here's how it works:
Calculate the first exponential moving average (EMA1) of the price data over a specific period 'n.'
Calculate the second exponential moving average (EMA2) of EMA1 using the same period 'n.'
Calculate the third exponential moving average (EMA3) of EMA2 using the same period 'n.'
The formula for the T3 moving average is as follows:
T3 = 3 * (EMA1) - 3 * (EMA2) + (EMA3)
By applying this triple smoothing process, the T3 moving average is intended to offer reduced noise and improved responsiveness to price trends. It achieves this by incorporating multiple time frames of the exponential moving averages, resulting in a more accurate representation of the underlying price action.
JMA
The Jurik Moving Average (JMA) is a technical indicator used in trading to predict price direction. Developed by Mark Jurik, it’s a type of weighted moving average that gives more weight to recent market data rather than past historical data.
JMA is known for its superior noise elimination. It’s a causal, nonlinear, and adaptive filter, meaning it responds to changes in price action without introducing unnecessary lag. This makes JMA a world-class moving average that tracks and smooths price charts or any market-related time series with surprising agility.
In comparison to other moving averages, such as the Exponential Moving Average (EMA), JMA is known to track fast price movement more accurately. This allows traders to apply their strategies to a more accurate picture of price action.
Inverse Fisher Transform
The Inverse Fisher Transform is a transform used in DSP to alter the Probability Distribution Function (PDF) of a signal or in our case of indicators.
The result of using the Inverse Fisher Transform is that the output has a very high probability of being either +1 or –1. This bipolar probability distribution makes the Inverse Fisher Transform ideal for generating an indicator that provides clear buy and sell signals.
Hann Window
The Hann function (aka Hann Window) is named after the Austrian meteorologist Julius von Hann. It is a window function used to perform Hann smoothing.
Super Smoother
The Super Smoother uses a special mathematical process for the smoothing of data points.
The Super Smoother is a technical analysis indicator designed to be smoother and with less lag than a traditional moving average.
Adaptive Length
Length based on the dominant cycle length measured by a "dominant cycle measurement" algorithm.
Happy Trading!
Best regards,
simwai
---
Credits to
@cheatcountry
@everget
@loxx
@DasanC
@blackcat1402
Goertzel Adaptive JMA T3Hello Fellas,
The Goertzel Adaptive JMA T3 is a powerful indicator that combines my own created Goertzel adaptive length with Jurik and T3 Moving Averages. The primary intention of the indicator is to demonstrate the new adaptive length algorithm by applying it on bleeding-edge MAs.
It is useable like any moving average, and the new Goertzel adaptive length algorithm can be used to make own indicators Goertzel adaptive.
Used Adaptive Length Algorithms
Normalized Goertzel Power: This uses the normalized power of the Goertzel algorithm to compute an adaptive length without the special operations, like detrending, Ehlers uses for his DFT adaptive length.
Ehlers Mod: This uses the Goertzel algorithm instead of the DFT, originally used by Ehlers, to compute a modified version of his original approach, which sticks as close as possible to the original approach.
Scoring System
The scoring system determines if bars are red or green and collects them.
Then, it goes through all collected red and green bars and checks how big they are and if they are above or below the selected MA. It is positive when green bars are under MA or when red bars are above MA.
Then, it accumulates the size for all positive green bars and for all positive red bars. The same happens for negative green and red bars.
Finally, it calculates the score by ((positiveGreenBars + positiveRedBars) / (negativeGreenBars + negativeRedBars)) * 100 with the scale 0–100.
Signals
Is the price above MA? -> bullish market
Is the price below MA? -> bearish market
Usage
Adjust the settings to reach the highest score, and enjoy an outstanding adaptive MA.
It should be useable on all timeframes. It is recommended to use the indicator on the timeframe where you can get the highest score.
Now, follows a bunch of knowledge for people who don't know about the concepts used here.
T3
The T3 moving average, short for "Tim Tillson's Triple Exponential Moving Average," is a technical indicator used in financial markets and technical analysis to smooth out price data over a specific period. It was developed by Tim Tillson, a software project manager at Hewlett-Packard, with expertise in Mathematics and Computer Science.
The T3 moving average is an enhancement of the traditional Exponential Moving Average (EMA) and aims to overcome some of its limitations. The primary goal of the T3 moving average is to provide a smoother representation of price trends while minimizing lag compared to other moving averages like Simple Moving Average (SMA), Weighted Moving Average (WMA), or EMA.
To compute the T3 moving average, it involves a triple smoothing process using exponential moving averages. Here's how it works:
Calculate the first exponential moving average (EMA1) of the price data over a specific period 'n.'
Calculate the second exponential moving average (EMA2) of EMA1 using the same period 'n.'
Calculate the third exponential moving average (EMA3) of EMA2 using the same period 'n.'
The formula for the T3 moving average is as follows:
T3 = 3 * (EMA1) - 3 * (EMA2) + (EMA3)
By applying this triple smoothing process, the T3 moving average is intended to offer reduced noise and improved responsiveness to price trends. It achieves this by incorporating multiple time frames of the exponential moving averages, resulting in a more accurate representation of the underlying price action.
JMA
The Jurik Moving Average (JMA) is a technical indicator used in trading to predict price direction. Developed by Mark Jurik, it’s a type of weighted moving average that gives more weight to recent market data rather than past historical data.
JMA is known for its superior noise elimination. It’s a causal, nonlinear, and adaptive filter, meaning it responds to changes in price action without introducing unnecessary lag. This makes JMA a world-class moving average that tracks and smooths price charts or any market-related time series with surprising agility.
In comparison to other moving averages, such as the Exponential Moving Average (EMA), JMA is known to track fast price movement more accurately. This allows traders to apply their strategies to a more accurate picture of price action.
Goertzel Algorithm
The Goertzel algorithm is a technique in digital signal processing (DSP) for efficient evaluation of individual terms of the Discrete Fourier Transform (DFT). It's particularly useful when you need to compute a small number of selected frequency components. Unlike direct DFT calculations, the Goertzel algorithm applies a single real-valued coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. This makes it more numerically efficient when computing a small number of selected frequency components¹.
Discrete Fourier Transform
The Discrete Fourier Transform (DFT) is a mathematical technique used in signal processing to convert a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency . The DFT provides a frequency domain representation of the original input sequence .
Usage of DFT/Goertzel In Adaptive Length Algorithms
Adaptive length algorithms are automated trading systems that can dynamically adjust their parameters in response to real-time market data. This adaptability enables them to optimize their trading strategies as market conditions fluctuate. Both the Goertzel algorithm and DFT can be used in these algorithms to analyze market data and detect cycles or patterns, which can then be used to adjust the parameters of the trading strategy.
The Goertzel algorithm is more efficient than the DFT when you need to compute a small number of selected frequency components. However, for covering a full spectrum, the Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms.
I hope this can help you somehow.
Thanks for reading, and keep it up.
Best regards,
simwai
---
Credits to:
@ClassicScott
@yatrader2
@cheatcountry
@loxx
FVG Detector [TradingFinder] Fair Value Gap-Imbalance-Mitigated🔵 Introduction
When the market makes a strong move in the form of a "Marubozu" or "Spike" candlestick and consecutive candles move without a retracement, the maximum place where a "FVG" or "Fair Value Gap" is created.
🔵 Definition
To describe this precisely, whenever a move occurs where the current candle does not cover the body of the previous and subsequent candles, a fair value gap is created.
Important : The significant point is that, because there is no equilibrium between buyers and sellers in these conditions, and market power is in the hands of buyers or sellers, the market is likely to move towards these areas.
An example of "FVG" in a price increase where we expect buying on the return to it.
An example of "FVG" in a downward trend where the market will move towards it in a downward direction.
🔵 How to Use
🟣 Bearish FVG
In a downward trend, "orange boxes" are drawn, which are the same and can act as "support" zones along the downward path, and we expect the price to continue its downward trend on return.
🟣 Bullish FVG
In an upward trend, "green boxes" are drawn, which are . They act exactly like support in the upward path, and we expect the price to continue its upward trend on return.
🟣 Auxiliary Definitions
Imbalance : As mentioned above, market power is in the hands of one of the two sides, buyers or sellers, and a non-equilibrium zone is created. It may be completed in whole or in part in subsequent price movements.
Mitigated : If the price returns to the "FVG" area and fills it, we call it "Mitigated," and most "pending" or "profit and loss limits" positions are executed. We will not have a specific reaction on the return of the price.
🔵 Settings
Very Aggressive : In addition to the initial condition, another condition is added. For an upward FVG, the maximum price of the last candle should be larger than the middle candle's maximum price. Similarly, for a downward FVG, the minimum price of the last candle should be smaller than the middle candle's minimum price. In this mode, a very small number of FVGs are eliminated.
Aggressive : In addition to the conditions of the Very Aggressive mode, in this mode, the size of the middle candle should not be small. In this mode, a larger number of FVGs are eliminated.
Defensive : In addition to the conditions of the Very Aggressive mode, in this mode, the size of the middle candle should be relatively large, and the majority of it should be made up of the body. Additionally, to identify upward FVGs, the second and third candles must be positive, and to identify downward FVGs, the second and third candles must be negative. In this mode, a large number of FVGs are eliminated, leaving only those with suitable quality.
Very Defensive : In addition to the conditions of the Defensive mode, the first and third candles should not be very small-bodied doji candles. In this mode, the majority of FVGs are filtered out, leaving only the highest quality ones.
🔵 Features
Show Demand FVG : Displays demand-related boxes, which can be "off" and "on."
Show Supply FVG : Displays supply-related boxes along the path, and can be turned "off" and "on."
🔵 Indicator Advantages
In this indicator, I have implemented 4 types of "filters" that allow you to select one based on the trading symbol, timeframe, etc. From "Very Aggressive" to "Very Defensive" mode, it is possible to select.
In most indicators, all FVGs are displayed, and the chart becomes full of lines. But this unique feature allows the trader to manage the drawing of boxes.
Rocket RSI from John EhlersWhat is Rocket RSI
Welles Wilder's original description of the relative strength index (RSI) in his 1978 New Concepts In Technical Trading Systems specified a calculation period of 14 days. This requirement led him on a 40-year quest to find the right length of data for calculating indicators and trading strategy rules. Many technicians touched on RSI and explained its applications. In this study we will obtain a more flexible and easier to interpret formulation (of the indicator). We will also estimate the algorithm to properly handle a statistical approach to technical analysis. Start with RSI Here is the original definition of the RSI indicator:
RSI = 100 - 100 / (1 + RS)
RS = Average gain from downtime over the specified time period / Average loss from downtime over the specified time period My first observation is that the factor of 100 is insignificant. Second, there is no need for averages because we take the ratio of closes (CU) to closes (CD) and if we accumulate the wins and losses independently, the averages emerge. Therefore We will only accumulate CU and CD. He can then write the RSI equation as:
RSI = 1 – 1 / (1 + CU / CD)
If he use a little algebra to put everything on a common denominator on the right side of the equation, the indicator equation becomes:
RSI = CU / (CU + CD)
In this formulation, if CU accumulation is zero, the RSI value is zero, and if CD accumulation is zero, the RSI value is 1. If you reduce the price action to its primitive level as a sine wave, it is easy to see that this RSI only has CU going from valley to peak and only CD going from peak to valley. This RSI follows the shape of the sine wave between these two limits. However, the sine wave oscillates between -1 and +1, not between 0 and +1. If we multiply the above equation by 2 and then subtract 1, we can make the RSI have the same swing limits as the sine wave. the product is as follows:
RSI = 2*CU / (CU + CD) – 1
Again, using a little algebra to put the right-hand side of the equation on a common denominator, the equation develops like this:
MyRSI = (CU – CD) / (CU + CD)
Again, the vertical scale of the RocketRSI indicator is in standard deviations. For example, -2 means it is two standard deviations below the mean. Since exceeding two standard deviations in the Gaussian probability distribution occurs in only 2.4% of the results
Because we are using the momentum of the dominant cycle period, the spike where the indicator falls below -2 provides a surgically precise timing signal to enter a long position. Similarly, exceeding the +2 standard deviation level is a timing signal to exit a long position or return to a short position. Therefore using the RocketRSI indicator is relatively intuitive. The only concern is whether a dominant cycle is present in the data, setting the indicator to half the dominant cycle period, and whether smoothing causes lag.
DETERMINING CYCLICAL TURNING POINTS
When you insert the chart you see an example of what the RocketRSI indicator looks like. Here you see that RocketRSI precisely displays cyclical turning points as statistical events. Cator can be applied. I used RS Length 10 because according to Ehlers, stocks and stock indexes usually have a more or less monthly cycle (about 20 bars). A cursory examination of Figure 2 shows that negative increases in the indicator correspond to excellent buying opportunities, while positive increases correspond to excellent selling opportunities. Exceeding +/- 2 on the indicator scale indicates that a cyclical reversal is a high probability event.
Order Blocks Finder [TradingFinder] Major OB | Supply and Demand🔵 Introduction
Drawing all order blocks on the path, especially in range-bound or channeling markets, fills the chart with lines, making it confusing rather than providing the trader with the best entry and exit points.
🔵 Reason for Indicator Creation
For traders familiar with market structure and only need to know the main accumulation points (best entry or exit points), and primary order blocks that act as strong sources of power.
🟣 Important Note
All order blocks, both ascending and descending, are identified and displayed on the chart when the structure of "BOS" or "CHOCH" is broken, which can also be identified with "MSS."
🔵 How to Use
When the indicator is installed, it plots all order blocks (active order blocks) and continues until the price reaches them. This continuation happens in boxes to have a better view in the TradingView chart.
Green Range : Ascending order blocks where we expect a price increase in these areas.
Red Range : Descending order blocks where we expect a price decrease in these areas.
🔵 Settings
Order block refine setting : When Order block refine is off, the supply and demand zones are the entire length of the order block (Low to High) in their standard state and cannot be improved. If you turn on Order block refine, supply and demand zones will improve using the error correction algorithm.
Refine type setting : Improving order blocks using the error correction algorithm can be done in two ways: Defensive and Aggressive. In the Aggressive method, the largest possible range is considered for order blocks.
🟣 Important
The main advantage of the Aggressive method is minimizing the loss of stops, but due to the widening of the supply or demand zone, the reward-to-risk ratio decreases significantly. The Aggressive method is suitable for individuals who take high-risk trades.
In the Defensive method, the range of order blocks is minimized to their standard state. In this case, fewer stops are triggered, and the reward-to-risk ratio is maximized in its optimal state. It is recommended for individuals who trade with low risk.
Show high level setting : If you want to display major high levels, set show high level to Yes.
Show low level setting : If you want to display major low levels, set show low level to Yes.
🔵 How to Use
The general view of this indicator is as follows.
When the price approaches the range, wait for the price reaction to confirm it, such as a pin bar or divergence.
If the price passes with a strong candle (spike), especially after a long-range or at the beginning of sessions, a powerful event is happening, and it is outside the credibility level.
An Example of a Valid Zone
An Example of Breakout and Invalid Zone. (My suggestion is not to use pending orders, especially when the market is highly volatile or before and after news.)
After reaching this zone, expect the price to move by at least the minimum candle that confirmed it or a price ceiling or floor.
🟣 Important : These factors can be more accurately measured with other trend finder indicators provided.
🔵 Auxiliary Tools
There is much talk about not using trend lines, candlesticks, Fibonacci, etc., in the web space. However, our suggestion is to create and use tools that can help you profit from this market.
• Fibonacci Retracement
• Trading Sessions
• Candlesticks
🔵 Advantages
• Plotting main OBs without additional lines;
• Suitable for timeframes M1, M5, M15, H1, and H4;
• Effective in Tokyo, Sydney, and London sessions;
• Plotting the main ceiling and floor to help identify the trend.
Rotation Cycles GraphRotation Cycles Graph Indicator
Overview:
The Rotation Cycles Graph Indicator is designed to visualize rotation cycles in financial markets. It aims to provide insights into shifts between various market phases, including growth, weakening, recovery, and contraction, allowing traders to potentially identify changing market dynamics.
Key Components:
Z-Score Calculation:
The indicator employs Z-score calculation to normalize data and identify deviations from the mean. This is instrumental in understanding the current state of the market relative to its historical behavior.
Ehlers Loop Visualization:
The Ehlers Loop function generates a visual representation of rotation cycles. It utilizes x and y coordinates on the chart to represent market conditions. These coordinates determine the position and categorization of the market state.
Table Visualization:
At the bottom of the chart, a table categorizes market conditions based on x and y values. This table serves as a reference to understand the current market phase.
Customizable Parameters:
The indicator offers users the flexibility to adjust several parameters:
Length and Smoothness: Users can set the length and smoothness parameters for the Z-score calculation, allowing for customization based on the market's volatility.
Graph Settings: Parameters such as bar scale, graph position, and the length of the tail for visualization can be fine-tuned to suit individual preferences.
Understanding Coordinates:
The x and y coordinates plotted on the chart represent specific market conditions. Interpretation of these coordinates aids in recognizing shifts in market behavior.
This screenshot shows visual representation behind logic of X and Y and their rotation cycles
Here is an example how rotation marker moved from growing to weakening and to the contraction quad, during a big market crush:
Note:
This indicator is a visualization tool and should be used in conjunction with other analytical methods for comprehensive market analysis.
Understanding the context and nuances of market dynamics is essential for accurate interpretation of the Rotation Cycles Graph Indicator.
Big thanks to @PineCodersTASC for their indicator, what I used as a reference
Ehlers Combo Strategy🚀 Presenting the Enhanced Ehlers Combo Strategy 🚀
Hello Traders! 👋 I'm thrilled to share the latest version of the Ehlers Combo Strategy v2.0. This powerful algorithm combines Ehlers Elegant Oscillator, Decycler, Instantaneous Trendline, Spearman Rank, and introduces the Signal to Noise Ratio for even more precise trading signals.
📊 Strategy Highlights:
Ehlers Elegant Oscillator: Captures market momentum and turning points.
Ehlers Decycler: Filters out market noise for clearer trend signals.
Instantaneous Trendline: Offers a dynamic view of the market trend.
Spearman Rank: Analyzes market rank correlations for enhanced insights.
Signal to Noise Ratio (SNR): Filters out noise for more accurate signals.
💡 Key Features & Customizations:
Adaptive Length: Enable adaptive length based on the market's current conditions.
SNR Threshold: Set your desired SNR threshold for filtering signals.
Exit Length: Define the length for exit signals.
📈 Trading Signals:
Long Entry: Elegant Oscillator and Decycler cross above 0, source crosses above Decycler, source is greater than an increasing Instantaneous Trendline, Spearman Rank is positive, and SNR exceeds the threshold.
Long Exit: Source crosses below the Instantaneous Trendline after entering a long position.
Short Entry: Elegant Oscillator and Decycler cross below 0, source crosses below Decycler, source is less than a decreasing Instantaneous Trendline, Spearman Rank is negative, and SNR exceeds the threshold.
Short Exit: Source crosses above the Instantaneous Trendline after entering a short position.
📊 Insights & Enhancements:
Dynamic Length: The strategy adapts its length dynamically based on market conditions.
Improved SNR: Signal to Noise Ratio ensures better filtering of signals.
Enhanced Visualization: The Elegant Oscillator now features improved color coding for a clearer interpretation.
🚨 Disclaimer:
Trading involves risk, and this script should be used judiciously. It's not a guaranteed profit machine, but with careful use, it can be a valuable addition to your toolkit.
Feel free to backtest, tweak, and make it your own! Let's conquer the markets together! 💪📈
🚀✨ Happy Trading! ✨🚀
---
🙌 Credits:
A big shoutout to the original contributors:
@blackcat1402
@cheatcountry
@DasanC
[Excalibur] Ehlers AutoCorrelation Periodogram ModifiedKeep your coins folks, I don't need them, don't want them. If you wish be generous, I do hope that charitable peoples worldwide with surplus food stocks may consider stocking local food banks before stuffing monetary bank vaults, for the crusade of remedying the needs of less than fortunate children, parents, elderly, homeless veterans, and everyone else who deserves nutritional sustenance for the soul.
DEDICATION:
This script is dedicated to the memory of Nikolai Dmitriyevich Kondratiev (Никола́й Дми́триевич Кондра́тьев) as tribute for being a pioneering economist and statistician, paving the way for modern econometrics by advocation of rigorous and empirical methodologies. One of his most substantial contributions to the study of business cycle theory include a revolutionary hypothesis recognizing the existence of dynamic cycle-like phenomenon inherent to economies that are characterized by distinct phases of expansion, stagnation, recession and recovery, what we now know as "Kondratiev Waves" (K-waves). Kondratiev was one of the first economists to recognize the vital significance of applying quantitative analysis on empirical data to evaluate economic dynamics by means of statistical methods. His understanding was that conceptual models alone were insufficient to adequately interpret real-world economic conditions, and that sophisticated analysis was necessary to better comprehend the nature of trending/cycling economic behaviors. Additionally, he recognized prosperous economic cycles were predominantly driven by a combination of technological innovations and infrastructure investments that resulted in profound implications for economic growth and development.
I will mention this... nation's economies MUST be supported and defended to continuously evolve incrementally in order to flourish in perpetuity OR suffer through eras with lasting ramifications of societal stagnation and implosion.
Analogous to the realm of economics, aperiodic cycles/frequencies, both enduring and ephemeral, do exist in all facets of life, every second of every day. To name a few that any blind man can naturally see are: heartbeat (cardiac cycles), respiration rates, circadian rhythms of sleep, powerful magnetic solar cycles, seasonal cycles, lunar cycles, weather patterns, vegetative growth cycles, and ocean waves. Do not pretend for one second that these basic aforementioned examples do not affect business cycle fluctuations in minuscule and monumental ways hour to hour, day to day, season to season, year to year, and decade to decade in every nation on the planet. Kondratiev's original seminal theories in macroeconomics from nearly a century ago have proven remarkably prescient with many of his antiquated elementary observations/notions/hypotheses in macroeconomics being scholastically studied and topically researched further. Therefore, I am compelled to honor and recognize his statistical insight and foresight.
If only.. Kondratiev could hold a pocket sized computer in the cup of both hands bearing the TradingView logo and platform services, I truly believe he would be amazed in marvelous delight with a GARGANTUAN smile on his face.
INTRODUCTION:
Firstly, this is NOT technically speaking an indicator like most others. I would describe it as an advanced cycle period detector to obtain market data spectral estimates with low latency and moderate frequency resolution. Developers can take advantage of this detector by creating scripts that utilize a "Dominant Cycle Source" input to adaptively govern algorithms. Be forewarned, I would only recommend this for advanced developers, not novice code dabbling. Although, there is some Pine wizardry introduced here for novice Pine enthusiasts to witness and learn from. AI did describe the code into one super-crunched sentence as, "a rare feat of exceptionally formatted code masterfully balancing visual clarity, precision, and complexity to provide immense educational value for both programming newcomers and expert Pine coders alike."
Understand all of the above aforementioned? Buckle up and proceed for a lengthy read of verbose complexity...
This is my enhanced and heavily modified version of autocorrelation periodogram (ACP) for Pine Script v5.0. It was originally devised by the mathemagician John Ehlers for detecting dominant cycles (frequencies) in an asset's price action. I have been sitting on code similar to this for a long time, but I decided to unleash the advanced code with my fashion. Originally Ehlers released this with multiple versions, one in a 2016 TASC article and the other in his last published 2013 book "Cycle Analytics for Traders", chapter 8. He wasn't joking about "concepts of advanced technical trading" and ACP is nowhere near to his most intimidating and ingenious calculations in code. I will say the book goes into many finer details about the original periodogram, so if you wish to delve into even more elaborate info regarding Ehlers' original ACP form AND how you may adapt algorithms, you'll have to obtain one. Note to reader, comparing Ehlers' original code to my chimeric code embracing the "Power of Pine", you will notice they have little resemblance.
What you see is a new species of autocorrelation periodogram combining Ehlers' innovation with my fascinations of what ACP could be in a Pine package. One other intention of this script's code is to pay homage to Ehlers' lifelong works. Like Kondratiev, Ehlers is also a hardcore cycle enthusiast. I intend to carry on the fire Ehlers envisioned and I believe that is literally displayed here as a pleasant "fiery" example endowed with Pine. With that said, I tried to make the code as computationally efficient as possible, without going into dozens of more crazy lines of code to speed things up even more. There's also a few creative modifications I made by making alterations to the originating formulas that I felt were improvements, one of them being lag reduction. By recently questioning every single thing I thought I knew about ACP, combined with the accumulation of my current knowledge base, this is the innovative revision I came up with. I could have improved it more but decided not to mind thrash too many TV members, maybe later...
I am now confident Pine should have adequate overhead left over to attach various indicators to the dominant cycle via input.source(). TV, I apologize in advance if in the future a server cluster combusts into a raging inferno... Coders, be fully prepared to build entire algorithms from pure raw code, because not all of the built-in Pine functions fully support dynamic periods (e.g. length=ANYTHING). Many of them do, as this was requested and granted a while ago, but some functions are just inherently finicky due to implementation combinations and MUST be emulated via raw code. I would imagine some comprehensive library or numerous authored scripts have portions of raw code for Pine built-ins some where on TV if you look diligently enough.
Notice: Unfortunately, I will not provide any integration support into member's projects at all. I have my own projects that require way too much of my day already. While I was refactoring my life (forgoing many other "important" endeavors) in the early half of 2023, I primarily focused on this code over and over in my surplus time. During that same time I was working on other innovations that are far above and beyond what this code is. I hope you understand.
The best way programmatically may be to incorporate this code into your private Pine project directly, after brutal testing of course, but that may be too challenging for many in early development. Being able to see the periodogram is also beneficial, so input sourcing may be the "better" avenue to tether portions of the dominant cycle to algorithms. Unique indication being able to utilize the dominantCycle may be advantageous when tethering this script to those algorithms. The easiest way is to manually set your indicators to what ACP recognizes as the dominant cycle, but that's actually not considered dynamic real time adaption of an indicator. Different indicators may need a proportion of the dominantCycle, say half it's value, while others may need the full value of it. That's up to you to figure that out in practice. Sourcing one or more custom indicators dynamically to one detector's dominantCycle may require code like this: `int sourceDC = int(math.max(6, math.min(49, input.source(close, "Dominant Cycle Source"))))`. Keep in mind, some algos can use a float, while algos with a for loop require an integer.
I have witnessed a few attempts by talented TV members for a Pine based autocorrelation periodogram, but not in this caliber. Trust me, coding ACP is no ordinary task to accomplish in Pine and modifying it blessed with applicable improvements is even more challenging. For over 4 years, I have been slowly improving this code here and there randomly. It is beautiful just like a real flame, but... this one can still burn you! My mind was fried to charcoal black a few times wrestling with it in the distant past. My very first attempt at translating ACP was a month long endeavor because PSv3 simply didn't have arrays back then. Anyways, this is ACP with a newer engine, I hope you enjoy it. Any TV subscriber can utilize this code as they please. If you are capable of sufficiently using it properly, please use it wisely with intended good will. That is all I beg of you.
Lastly, you now see how I have rasterized my Pine with Ehlers' swami-like tech. Yep, this whole time I have been using hline() since PSv3, not plot(). Evidently, plot() still has a deficiency limited to only 32 plots when it comes to creating intense eye candy indicators, the last I checked. The use of hline() is the optimal choice for rasterizing Ehlers styled heatmaps. This does only contain two color schemes of the many I have formerly created, but that's all that is essentially needed for this gizmo. Anything else is generally for a spectacle or seeing how brutal Pine can be color treated. The real hurdle is being able to manipulate colors dynamically with Merlin like capabilities from multiple algo results. That's the true challenging part of these heatmap contraptions to obtain multi-colored "predator vision" level indication. You now have basic hline() food for thought empowerment to wield as you can imaginatively dream in Pine projects.
PERIODOGRAM UTILITY IN REAL WORLD SCENARIOS:
This code is a testament to the abilities that have yet to be fully realized with indication advancements. Periodograms, spectrograms, and heatmaps are a powerful tool with real-world applications in various fields such as financial markets, electrical engineering, astronomy, seismology, and neuro/medical applications. For instance, among these diverse fields, it may help traders and investors identify market cycles/periodicities in financial markets, support engineers in optimizing electrical or acoustic systems, aid astronomers in understanding celestial object attributes, assist seismologists with predicting earthquake risks, help medical researchers with neurological disorder identification, and detection of asymptomatic cardiovascular clotting in the vaxxed via full body thermography. In either field of study, technologies in likeness to periodograms may very well provide us with a better sliver of analysis beyond what was ever formerly invented. Periodograms can identify dominant cycles and frequency components in data, which may provide valuable insights and possibly provide better-informed decisions. By utilizing periodograms within aspects of market analytics, individuals and organizations can potentially refrain from making blinded decisions and leverage data-driven insights instead.
PERIODOGRAM INTERPRETATION:
The periodogram renders the power spectrum of a signal, with the y-axis representing the periodicity (frequencies/wavelengths) and the x-axis representing time. The y-axis is divided into periods, with each elevation representing a period. In this periodogram, the y-axis ranges from 6 at the very bottom to 49 at the top, with intermediate values in between, all indicating the power of the corresponding frequency component by color. The higher the position occurs on the y-axis, the longer the period or lower the frequency. The x-axis of the periodogram represents time and is divided into equal intervals, with each vertical column on the axis corresponding to the time interval when the signal was measured. The most recent values/colors are on the right side.
The intensity of the colors on the periodogram indicate the power level of the corresponding frequency or period. The fire color scheme is distinctly like the heat intensity from any casual flame witnessed in a small fire from a lighter, match, or camp fire. The most intense power would be indicated by the brightest of yellow, while the lowest power would be indicated by the darkest shade of red or just black. By analyzing the pattern of colors across different periods, one may gain insights into the dominant frequency components of the signal and visually identify recurring cycles/patterns of periodicity.
SETTINGS CONFIGURATIONS BRIEFLY EXPLAINED:
Source Options: These settings allow you to choose the data source for the analysis. Using the `Source` selection, you may tether to additional data streams (e.g. close, hlcc4, hl2), which also may include samples from any other indicator. For example, this could be my "Chirped Sine Wave Generator" script found in my member profile. By using the `SineWave` selection, you may analyze a theoretical sinusoidal wave with a user-defined period, something already incorporated into the code. The `SineWave` will be displayed over top of the periodogram.
Roofing Filter Options: These inputs control the range of the passband for ACP to analyze. Ehlers had two versions of his highpass filters for his releases, so I included an option for you to see the obvious difference when performing a comparison of both. You may choose between 1st and 2nd order high-pass filters.
Spectral Controls: These settings control the core functionality of the spectral analysis results. You can adjust the autocorrelation lag, adjust the level of smoothing for Fourier coefficients, and control the contrast/behavior of the heatmap displaying the power spectra. I provided two color schemes by checking or unchecking a checkbox.
Dominant Cycle Options: These settings allow you to customize the various types of dominant cycle values. You can choose between floating-point and integer values, and select the rounding method used to derive the final dominantCycle values. Also, you may control the level of smoothing applied to the dominant cycle values.
DOMINANT CYCLE VALUE SELECTIONS:
External to the acs() function, the code takes a dominant cycle value returned from acs() and changes its numeric form based on a specified type and form chosen within the indicator settings. The dominant cycle value can be represented as an integer or a decimal number, depending on the attached algorithm's requirements. For example, FIR filters will require an integer while many IIR filters can use a float. The float forms can be either rounded, smoothed, or floored. If the resulting value is desired to be an integer, it can be rounded up/down or just be in an integer form, depending on how your algorithm may utilize it.
AUTOCORRELATION SPECTRUM FUNCTION BASICALLY EXPLAINED:
In the beginning of the acs() code, the population of caches for precalculated angular frequency factors and smoothing coefficients occur. By precalculating these factors/coefs only once and then storing them in an array, the indicator can save time and computational resources when performing subsequent calculations that require them later.
In the following code block, the "Calculate AutoCorrelations" is calculated for each period within the passband width. The calculation involves numerous summations of values extracted from the roofing filter. Finally, a correlation values array is populated with the resulting values, which are normalized correlation coefficients.
Moving on to the next block of code, labeled "Decompose Fourier Components", Fourier decomposition is performed on the autocorrelation coefficients. It iterates this time through the applicable period range of 6 to 49, calculating the real and imaginary parts of the Fourier components. Frequencies 6 to 49 are the primary focus of interest for this periodogram. Using the precalculated angular frequency factors, the resulting real and imaginary parts are then utilized to calculate the spectral Fourier components, which are stored in an array for later use.
The next section of code smooths the noise ridden Fourier components between the periods of 6 and 49 with a selected filter. This species also employs numerous SuperSmoothers to condition noisy Fourier components. One of the big differences is Ehlers' versions used basic EMAs in this section of code. I decided to add SuperSmoothers.
The final sections of the acs() code determines the peak power component for normalization and then computes the dominant cycle period from the smoothed Fourier components. It first identifies a single spectral component with the highest power value and then assigns it as the peak power. Next, it normalizes the spectral components using the peak power value as a denominator. It then calculates the average dominant cycle period from the normalized spectral components using Ehlers' "Center of Gravity" calculation. Finally, the function returns the dominant cycle period along with the normalized spectral components for later external use to plot the periodogram.
POST SCRIPT:
Concluding, I have to acknowledge a newly found analyst for assistance that I couldn't receive from anywhere else. For one, Claude doesn't know much about Pine, is unfortunately color blind, and can't even see the Pine reference, but it was able to intuitively shred my code with laser precise realizations. Not only that, formulating and reformulating my description needed crucial finesse applied to it, and I couldn't have provided what you have read here without that artificial insight. Finding the right order of words to convey the complexity of ACP and the elaborate accompanying content was a daunting task. No code in my life has ever absorbed so much time and hard fricking work, than what you witness here, an ACP gem cut pristinely. I'm unveiling my version of ACP for an empowering cause, in the hopes a future global army of code wielders will tether it to highly functional computational contraptions they might possess. Here is ACP fully blessed poetically with the "Power of Pine" in sublime code. ENJOY!
Gaussian Fisher Transform Price Reversals - FTRHello Traders !
Looking for better trading results ?
"This indicator shows you how to identify price reversals in a timely manner." John F. Ehlers
Introduction :
The Gaussian Fisher Transform Price Reversals indicator, dubbed FTR for short, is a stat based price reversal detection indicator inspired by and based on the work of the electrical engineer now private trader John F. Ehlers.
The Fisher Transform :
It is a common assumption that prices have a gaussian / normal probability density function(PDF), i.e. a sample of n close prices would be normally distributed if the probability of observing a price value say at any given standard deviation range is equal to that probability in the case of the normal distribution, e.g. 68% off all samples fell within one standard deviation around the mean, which is what we would expect if the data was normal.
However Price Action is not normally distributed and thus can not be conventionally interpreted in this way, Formally the Fisher Transform, transforms the distribution of bounded ranging price action (were price action takes values in a range from -1 to 1) into that of a normal distribution, alternatively it may be said the Fisher Transform changes the PDF of any waveform so that the transformed output has n approximately Gaussian PDF, It does so through the following equations. taken directly from the work of John F. Ehlers - Using The Fisher Transform
By substituting price data in the above formulas, bounded ranging price actions (over a given user defined period lookback - this determines the range price ranges in, see the Intermediate formula above) distribution is transformed to that in the normal case. This means when the input, the Intermediate ,(the Midpoint - see formula above) approaches either limit within the range the outputs are greatly amplified, this amplification accentuates /puts more weight on the larger deviations or limits within the range, conversely when price action is varying round the mean of the range the output is approximately equal to unity (the input is approximately equal to the input, the intermediate)
The inputs (Intermediates) are converted to normal outputs and the nonlinear Transfer of the Fisher Transform with varying senesitivity's (gammas) can be seen in the graph / image above. Although sensitivity adjustments are not currently available in this script (I forgot to add it) the outputs may be greatly amplified as gamma (the coefficient of the Fisher Transformation - see Fish equation) approaches 1. the purple line show this graphically, as a higher gamma leads to a greater amplification than in the standard case (the red line which is the standard fisher transformation, the black plot is the Fish with a gamma of 1, which is unity sensativity)
Reversal plots and Breakouts :
- Support lines are plotted with their corresponding Fish value when there is a crossover of the Fish and Fish SMA <= a given standard deviation of Fish
- Resistance lines are plotted with their corresponding Fish value when there is a crossunder of the Fish and Fish SMA >= a given standard deviation of Fish
- Reversals are these support and resistance line plots
Breakouts and Volume bars :
Breakouts cause the reversal lines to break (when the high/low is above the resistance/support), Breakouts are more "high quality" when they occur conditional on high volume, the highlighted bars represent volume standard deviations ranging from -3 to 3. When breakouts occure on high volume this may be a sign of the continutaion of the trend (reversals would signify the start of a new trend).
Hope you enjoy, Happy Trading !
(be sure to rocket the script if you liked it, this helps me know which of my scripts are the most useful)
TASC 2023.04 Undersampled Double MA█ OVERVIEW
TASC's April 2023 edition of Traders' Tips features an article entitled "Just Ignore Them: Undersampling The Data As A Smoothing Technique" by John Ehlers, which explores a method for reducing noise through data sampling. This script implements the article's proposed Undersampled Double MA indicator.
█ CONCEPTS
The conventional approach to reducing the impact of noise in the market data on trading rules is to use smoothing filters like moving averages. However, John Ehlers suggests that changing the sample rate of the datastream is a simple and effective way to smooth the data and reduce noise. Specifically, he argues that undersampling the data removes high-frequency components contributing to noisiness. Notably, the elimination of these components produces less lag than that of conventional smoothing filters.
The Undersampled Double MA indicator implemented in this script represents a practical application of smoothing with undersampling. It samples the data at a given rate (for instance, once every five bars, as suggested by Ehlers), then processes the resulting data using a Hann window filter with two different periods, producing two smooth data streams that traders can use in the same way as the combination of two conventional moving averages of different lengths (i.e., fast and slow MAs).
█ CALCULATIONS
The script samples data once every N th bar (by default, N = 5) and smooths the undersampled data with 6-period and 12-period Hann filters, which it plots on the main chart. Users can adjust the sampling period and the periods of each Hann filter to their liking from the inputs in the script settings.