Donchian Ribbon [UAlgo]Donchian Ribbon is a chart-overlay Donchian Channel ribbon that visualizes multiple lookback lengths at the same time. Instead of plotting a single Donchian Channel, the script builds a fixed stack of channels that increase in length and blends them into a clean, layered ribbon above and below price using progressive fills.
The goal is to make market structure and regime easier to read without clutter:
- When the ribbon expands and stays orderly (fast boundaries leading, slow boundaries following), it often reflects sustained range expansion and more directional flow.
- When the ribbon compresses and bands overlap frequently, it typically reflects consolidation, rotational behavior, and reduced clarity.
- The slowest channel provides the structural “outer frame” of the market’s recent range, while shorter channels react first and show how quickly the range is shifting.
This indicator is designed as a context tool. It does not attempt to “predict” direction by itself, but it gives a high-quality visual map of evolving highs/lows across multiple sensitivities so you can align entries, risk, and expectations with the current regime.
🔹 Features
1) Multi-Length Donchian Stack (Ribbon Engine)
The script constructs several Donchian Channels from a Base Length and a Step Length. Each band represents a different sensitivity level:
- Fast bands respond quickly to recent highs and lows.
- Slow bands respond more conservatively and define broader containment.
By stacking these lengths together, you can see short-term responsiveness and higher-level structure simultaneously.
2) Two-Sided Ribbon (Upper and Lower Envelopes)
The indicator visualizes both sides of the Donchian framework:
- Upper ribbon is built from stacked Donchian highs (highest highs per length).
- Lower ribbon is built from stacked Donchian lows (lowest lows per length).
This keeps interpretation intuitive: price pressing into the upper ribbon suggests pressure toward recent highs, while leaning into the lower ribbon suggests pressure toward recent lows.
3) Gradient Depth via Layered Fills (Clean Charts)
Instead of drawing many lines, the script fills the space between consecutive bands. Transparency is gradually adjusted from the fast band to the slow band, producing a smooth depth effect that stays readable even on busy charts.
Intermediate plots are intentionally hidden so the ribbon remains the main visual output.
4) Regime Readability (Expansion vs Compression)
Because each band has a different lookback length, the ribbon naturally communicates volatility and state:
- Expansion: spacing between fast and slow bands increases, commonly seen in stronger directional phases.
- Compression: spacing collapses and bands cluster, commonly seen in ranges, pauses, or choppy rotation.
This helps you quickly decide whether to treat price action as breakout-oriented, trend-continuation, or mean-reverting.
5) Trend Baseline Reference (Slow Midpoint)
A baseline is plotted using the midpoint of the slowest channel. This provides a stable reference that helps you judge whether price is operating in the upper or lower half of the broader range structure.
🔹 Calculations
1) Donchian High, Low, and Midpoint Per Band
Each Donchian band is computed from its own length:
- High = highest high over the lookback length
- Low = lowest low over the lookback length
- Mid = average of High and Low
id.high := ta.highest(id.length)
id.low := ta.lowest(id.length)
id.mid := math.avg(id.high, id.low)
2) Length Sequencing (Base Length + Step Length)
The indicator creates a fixed number of bands. Lengths are built as:
- Band 1: base_length
- Band 2: base_length + step_length
- Band 3: base_length + 2 * step_length
- ...
- Final band: base_length + (ribbon_count - 1) * step_length
This yields a consistent progression from fast to slow sensitivity.
int len = base_length + (i * step_length)
channels.push(DonchianChannel.new(len))
3) Iterative Updates with Arrays and Methods
All bands are stored in an array and updated every bar using a unified method call. This ensures every band follows identical rules and makes the logic scalable and maintainable.
for dc in channels
dc.update()
4) Upper Ribbon Construction (Layered Fills Between Highs)
The upper ribbon is created by filling between consecutive Donchian highs. Each layer uses the same upper tone with progressively stronger visibility toward the slow band.
fill(p_fast_high, p_mid1_high, color.new(col_upper, 90), "Ribbon Upper 1")
fill(p_mid1_high, p_mid2_high, color.new(col_upper, 80), "Ribbon Upper 2")
fill(p_mid2_high, p_mid3_high, color.new(col_upper, 70), "Ribbon Upper 3")
fill(p_mid3_high, p_slow_high, color.new(col_upper, 60), "Ribbon Upper 4")
5) Lower Ribbon Construction (Layered Fills Between Lows)
The lower ribbon is created by filling between consecutive Donchian lows with the lower tone, again using progressive transparency.
fill(p_fast_low, p_mid1_low, color.new(col_lower, 90), "Ribbon Lower 1")
fill(p_mid1_low, p_mid2_low, color.new(col_lower, 80), "Ribbon Lower 2")
fill(p_mid2_low, p_mid3_low, color.new(col_lower, 70), "Ribbon Lower 3")
fill(p_mid3_low, p_slow_low, color.new(col_lower, 60), "Ribbon Lower 4")
6) Trend Baseline (Slow Midpoint)
The baseline is the midpoint of the slowest Donchian band, plotted as a stable center reference for the broadest range framework.
plot(dc_slow.mid, "Trend Baseline",
color = color.from_gradient(0.5, 0, 1, col_lower, col_upper),
linewidth = 2)
7) Visualization Choice (Hidden Internals, Visible Structure)
To keep charts clean, most intermediate plots are hidden and the ribbon fills do the heavy lifting visually, while the slow boundaries remain visible as the outer frame.
p_fast_high = plot(dc_fast.high, "Fast High", color = color.new(col_upper, 80), display = display.none)
p_fast_low = plot(dc_fast.low, "Fast Low", color = color.new(col_lower, 80), display = display.none)
p_slow_high = plot(dc_slow.high, "Slow High", color = color.new(col_upper, 50))
p_slow_low = plot(dc_slow.low, "Slow Low", color = color.new(col_lower, 50))
Indicator

Rolling Liquidity Clusters Channel [LuxAlgo]The Rolling Liquidity Clusters Channel indicator identifies dynamic support and resistance zones by calculating levels that maximize candle wick touches while strictly avoiding intersections with candle bodies within a rolling window. This tool provides a unique perspective on liquidity clusters, highlighting price levels where historical rejection is most concentrated without being invalidated by price "closing" through them.
🔶 USAGE
The indicator plots a channel consisting of an Upper Level, a Lower Level, and a Mid Level. The space between these levels is filled with a vertical gradient to visually represent the strength of the liquidity zone.
Upper Level (Red): Represents a resistance zone where the most upper wicks are concentrated without any candle body in the lookback window crossing above it.
Lower Level (Green): Represents a support zone where the most lower wicks are concentrated without any candle body in the lookback window crossing below it.
Mid Level (Orange): Represents the equilibrium or average of the current liquidity channel.
Traders can use these levels to identify potential reversal points or areas of price consolidation. A breakout from the channel might indicate a shift in market structure as price moves beyond the most inclusive "non-broken" wick levels.
🔶 DETAILS
The script employs a specific constraint logic to ensure the levels represent true "untouched" liquidity:
🔹 Body-Crossing Constraint
Before identifying the wick touches, the script calculates the highest candle body high and lowest candle body low within the user-defined window. The resulting levels are guaranteed to stay outside of this "body zone," ensuring that the plotted levels represent prices that the market reached but failed to sustain via a close.
🔹 Maximizing Touches
To find the most significant level, the algorithm searches for the most inclusive price point. For the upper level, it identifies the lowest "high" that remains above all candle bodies. For the lower level, it identifies the highest "low" that remains below all candle bodies. This mathematical approach effectively finds the level where the most price action "clusters" via wicks.
🔹 Vertical Gradient Fills
The visual style uses a vertical gradient fill. The upper half fades from 90% transparency at the Upper Level (Red) to 100% transparency at the Mid Level. The lower half follows a similar logic, fading from the Lower Level (Green) toward the center. This creates a "glow" effect, emphasizing the outer boundaries where liquidity is highest.
🔶 SETTINGS
Window Size: The number of bars used for the rolling calculation. A larger window creates more stable, long-term levels, while a smaller window adapts quickly to recent price action.
Upper Level: Customize the color of the upper resistance level and its associated gradient fill.
Lower Level: Customize the color of the lower support level and its associated gradient fill.
Mid Level: Customize the color of the central equilibrium line.
Indicator

Indicator

Geometric Bias Oscillator [LuxAlgo]The Geometric Bias Oscillator indicator provides a normalized measure of market structure by comparing the cumulative magnitude of bullish and bearish segments derived from a simplified price path. It utilizes the Ramer-Douglas-Peucker (RDP) algorithm to filter out market noise, allowing traders to identify the underlying structural bias within a specific lookback window.
🔶 USAGE
The indicator oscillates between -100 and 100, where positive values indicate a dominant bullish structure and negative values indicate a dominant bearish structure. Unlike traditional oscillators that rely on raw price changes or moving averages, this tool focuses on the "weight" of simplified structural movements.
Traders can use the oscillator to:
Identify the prevailing trend bias based on structural significance rather than just closing prices.
Spot potential reversals when the oscillator crosses the zero line, signaling a shift in structural dominance.
Assess the strength of a trend; values near 100 or -100 suggest a highly directional market with very little structural retracement.
🔹 Visual Interpretation
The indicator features a dynamic gradient fill to provide better visual context. When the oscillator is above zero, a green gradient appears, with higher values showing increased intensity. Conversely, when below zero, a red gradient indicates bearish structural dominance. A hidden zero line serves as the central axis for these transitions.
🔶 DETAILS
The Geometric Bias Oscillator employs several advanced geometric concepts to determine market bias.
🔹 Ramer-Douglas-Peucker (RDP) Algorithm
The core of the calculation is the RDP algorithm, a line-simplification technique. It takes the price action over the defined "Window Size" and reduces it to a series of essential points. By eliminating minor price fluctuations (noise) that fall below a specific distance threshold, the algorithm reveals the primary "skeleton" of the market structure.
🔹 Coordinate Normalization
To ensure the simplification is consistent across different assets and volatility regimes, the script normalizes price coordinates using the Average True Range (ATR). Price values are divided by the ATR before the RDP distance calculations are performed. This ensures that the "ATR Multiplier" setting remains meaningful regardless of whether the asset is highly volatile or stable.
🔹 Structural Magnitude Calculation
Once the simplified structure is established, the script calculates the vertical distance (magnitude) of every segment in the path. These segments are categorized into bullish (upward) and bearish (downward) moves. The final oscillator value represents the percentage difference between the total bullish magnitude and the total bearish magnitude relative to the total structural movement.
🔶 SETTINGS
Window Size : The number of recent bars used to construct the structural path for the RDP algorithm.
ATR Multiplier : The sensitivity threshold for simplification. Higher values result in a more aggressive simplification, keeping only the most significant structural pivots.
ATR Length : The period used to calculate the ATR for price normalization.
Smoothing : Applies a Simple Moving Average to the final oscillator values to reduce jaggedness in the output.
Bullish Color : The color used for the oscillator and gradient when structural bias is positive.
Bearish Color : The color used for the oscillator and gradient when structural bias is negative.
Indicator

Auto Trend Drawing [LuxAlgo]The Auto Trend Drawing indicator summarizes price action into a smooth, continuous curve that highlights the primary market direction and structure.
It is mostly a fun and silly experiment in reproducing users attempts at drawing trends on the chart using the brush tool.
This indicator is subject to repainting and is displayed retrospectively based on the most recent price data.
🔶 USAGE
The Auto Trend Drawing tool provides a clean, visual representation of the current market "flow" by stripping away minor price noise and focusing on significant pivot points. Traders can use this indicator to quickly identify the prevailing trend, potential trend reversals, and the overall rhythm of the market.
Unlike standard trendlines that connect two specific points, this indicator creates a dynamic curve that adapts to the most significant price movements within a user-defined window.
🔹 Trend Identification
Bullish Flow: When the curve is sloping upward and the price generally stays above or near the curve's trajectory.
Bearish Flow: When the curve is sloping downward and the price remains below or near the curve's trajectory.
Consolidation: When the curve flattens out, indicating a lack of clear directional momentum.
🔶 DETAILS
The script employs a multi-step process to generate the trend curve:
Normalization: Price data is normalized using the Average True Range (ATR). This ensures that the simplification process remains consistent across different assets and timeframes regardless of their volatility.
Ramer-Douglas-Peucker (RDP) Algorithm: This algorithm identifies the most "important" anchor points in the price series by recursively simplifying the path. It removes points that deviate less than a certain threshold (set by the Simplification Multiplier) from a straight line.
Catmull-Rom Splines: Once the key anchor points are identified, the script uses Catmull-Rom spline interpolation to connect them. This creates a smooth, aesthetic curve that passes through every identified anchor point, providing a more "organic" look than jagged lines.
🔶 SETTINGS
Window Size: Determines the number of recent bars the indicator analyzes to build the curve.
Simplification Multiplier: Controls the sensitivity of the trend detection. Higher values filter out more noise, resulting in a smoother, more "macro" curve. Lower values allow the curve to follow price more closely.
ATR Length: The period used for the ATR normalization process.
Curve Tension: Adjusts how tightly the spline curve follows the anchor points. A value of 0.5 is centripetal, while higher or lower values change the curvature between points.
Curve Resolution: Sets the number of sub-points calculated between each anchor. Higher values result in a smoother-looking line.
Line Color: Changes the color of the trend curve.
Line Width: Adjusts the thickness of the displayed curve.
Indicator

Neighboring Price Bands [LuxAlgo]The Neighboring Price Bands indicator provides dynamic support and resistance levels based on the local statistical distribution of historical prices relative to the current market position. Unlike traditional volatility bands that rely on fixed standard deviations, this tool identifies "price neighbors" within a sorted historical buffer to determine where the market has previously found friction.
🔶 USAGE
The indicator helps traders identify potential reversal zones and breakout opportunities by analyzing the density of price action around the current level.
🔹 Support and Resistance
The bands act as flexible zones of interest. The upper (green) band represents a bullish boundary derived from historical prices slightly higher than the current price, while the lower (red) band represents a bearish boundary from prices slightly lower. When the price interacts with these bands, it is entering a zone where historical price density suggests a potential reaction.
🔹 Price Discovery & Breakouts
A unique feature of this tool is the "Discovery" mechanism. If the current price moves beyond the range of its historical "neighbors" (e.g., reaching a new multi-period high or low), the corresponding band will disappear, and a background highlight will appear.
Bullish Discovery: A green background highlight indicates the price is entering uncharted territory relative to the historical buffer, suggesting a strong bullish breakout.
Bearish Discovery: A red background highlight indicates the price is dropping below its local historical distribution, suggesting a strong bearish breakdown.
🔶 DETAILS
The script maintains a historical buffer of prices, which it constantly sorts to create a price distribution. For every new bar, the algorithm performs the following:
It locates the current price within the sorted distribution.
It identifies a specific number of "neighbors" (K) above and below that position.
It calculates a specific percentile within those neighbors to plot the bands.
Because the bands are derived from actual price frequency rather than a calculation like standard deviation (Bollinger Bands) or Average True Range (Keltner Channels), they adapt more specifically to "sticky" price levels where the market has historically spent time.
🔶 SETTINGS
Historical Buffer (Bars): The total number of past bars used to build the price distribution. A larger buffer includes more historical context, while a smaller buffer makes the bands more reactive to recent local ranges.
Neighboring Range (K): Determines how many samples from the sorted distribution are used to calculate the bands. A smaller K makes the bands tighter and more sensitive to the immediate price position.
Percentile: Controls the width of the bands within the neighbor groups. Higher values push the bands further away from the current price.
Smoothing: Applies an SMA to the resulting bands to reduce noise and provide a cleaner visual output.
Indicator

Indicator

Indicator

Indicator

Indicator

Isotonic Regression Oscillator [LuxAlgo]The Isotonic Regression Oscillator indicator aims to quantify the degree of trendiness and structural complexity in price movement by comparing non-decreasing and non-increasing fits. It uses the Pool Adjacent Violators Algorithm (PAVA) to determine the best-fitting monotonic sequence for a given period, providing a normalized oscillator that highlights the strength and direction of the underlying trend.
Note: The isotonic regression fit displayed on the price chart is subject to repainting and is displayed retrospectively to illustrate the most recent calculation window.
🔶 USAGE
The indicator consists of an oscillator oscillating between -100 and 100, and a visual fit line displayed on the price chart.
🔹 Interpretation
Positive Values: Indicate that a non-decreasing (bullish) fit has a lower Mean Squared Error (MSE) than a non-increasing fit. Higher values suggest a more complex, multi-step bullish structure.
Negative Values: Indicate that a non-increasing (bearish) fit has a lower MSE. Lower values suggest a more complex bearish structure.
Zero Crosses: A crossing of the zero line indicates a shift in the "best fit" direction, signaling a potential change in the dominant trend bias.
🔹 Fit Complexity
The magnitude of the oscillator is determined by the number of "pools" or steps in the regression fit. A value near 100 or -100 suggests a highly granular fit that closely follows the price movement, while values near 0 suggest a very simple, flat, or linear-like monotonic structure.
🔶 DETAILS
🔹 The PAVA Algorithm
Isotonic regression involves finding a series of non-decreasing (or non-increasing) values that are as close as possible to the original data points. The script implements the Pool Adjacent Violators Algorithm (PAVA). This algorithm works by iteratively averaging adjacent values that violate the monotonic constraint (e.g., in a non-decreasing fit, if a previous value is greater than the current value, they are pooled together and averaged).
🔹 MSE-Based Selection
For every bar, the indicator calculates two regressions: one forced to be non-decreasing and one forced to be non-increasing. It calculates the Mean Squared Error (MSE) for both. The fit with the lower MSE is selected as the representative model for the current price action.
🔹 Normalization
The oscillator value is normalized based on the number of unique "pools" (constant segments) found by the PAVA. The formula used is:
((Number of Pools - 1) / (Period - 1)) * 100
This scales the complexity of the trend into a readable range of 0 to 100 (or -100 for bearish fits).
🔶 SETTINGS
Period: The lookback window used to calculate the isotonic regression fits.
Source: The price data used for the calculations (defaults to Close).
🔹 Style
Bullish Color: The color used for the oscillator and fit line when the bullish fit is dominant.
Bearish Color: The color used for the oscillator and fit line when the bearish fit is dominant.
Fit Line Width: Controls the thickness of the polyline fit displayed on the chart.
Fit Line Style: Sets the visual style (Solid, Dashed, or Dotted) of the regression fit line.
Indicator

Isotonic Regression [LuxAlgo]The Isotonic Regression indicator provides a monotonic fit to price data, ensuring the resulting line is either non-decreasing or non-increasing over a specified lookback period. This tool is particularly useful for identifying underlying trends and significant price plateaus without the lagging or "overshooting" common in standard moving averages or linear regressions.
Note: This indicator calculates its values based on a historical lookback window, which means the regression line will repaint as new bars are added and the window shifts.
🔶 USAGE
Isotonic regression is used to find the best-fitting line to a set of data points under the constraint that the line must move in a specific direction (always up or always down). This creates a "staircase" effect where the model alternates between trending segments and flat plateaus.
🔹 Direction Modes
The indicator offers three ways to determine the fit direction:
Auto: Automatically detects the trend by comparing the start and end prices of the lookback period. If the end price is higher, it fits a non-decreasing line; otherwise, it fits a non-increasing line.
Non-Decreasing: Forces the fit to only move upwards or stay flat, ideal for analyzing bullish structures.
Non-Increasing: Forces the fit to only move downwards or stay flat, ideal for analyzing bearish structures.
🔹 Flat Period Extensions
One of the most powerful features of isotonic regression is the identification of "blocks" or price levels where the trend pauses. When the duration of such a plateau exceeds the Flat Period Threshold , the indicator extends a dashed horizontal line to the current bar, highlighting potential support or resistance levels derived from the regression model.
🔶 DETAILS
The script implements the Pool Adjacent Violators Algorithm (PAVA) , which is the standard method for computing isotonic regression.
The algorithm works by partitioning the data into "blocks." If a subsequent data point violates the monotonicity constraint (e.g., price drops in a "non-decreasing" fit), the algorithm pools the current block with the previous one and calculates a weighted average. This process repeats until the entire sequence is monotonic.
For performance efficiency, the indicator utilizes the polyline.new() function to render the regression line as a single continuous object rather than hundreds of individual line segments.
🔶 SETTINGS
Lookback Length: The number of bars used to calculate the isotonic fit.
Source: The price data used for the calculation (default is Close).
Direction: Sets the monotonicity constraint (Auto, Non-Decreasing, or Non-Increasing).
Flat Period Threshold: The minimum number of bars a price plateau must last to be highlighted with an extension line.
🔹 Style
Fit Bullish/Bearish: Colors for the regression line based on the detected trend.
Fit Style/Width: Controls the visual representation (Solid, Dashed, Dotted) and thickness of the main regression line.
Ext Bullish/Bearish: Colors for the flat period extension levels.
Ext Style/Width: Controls the visual representation and thickness of the plateau extensions. Indicator

Trend Pressure Prism [LuxAlgo]The Trend Pressure Prism indicator is a comprehensive trend-analysis tool that synthesizes momentum, market structure, and pullback quality into a single composite oscillator to identify high-conviction trading opportunities.
🔶 USAGE
The indicator operates as a "prism," refracting price action through three distinct lenses to determine the total pressure behind a market move. Users can monitor the central ribbon to gauge trend strength and the "Agreement" metric to identify how unified the underlying forces are.
🔹 Trend States & Conviction
The oscillator fluctuates between -100 and 100. When the ribbon enters the "Extreme Zones" (above 80 or below -80), the background glows, signaling a period of high conviction.
Bullish Conviction: High positive pressure with unified agreement among the three pillars.
Bearish Conviction: High negative pressure with unified agreement among the three pillars.
Exhaustion: Occurs when the pressure score remains high but agreement drops below 50%, suggesting a potential reversal or thinning liquidity.
🔹 Filtered Crossover signals
The indicator includes a Signal Line (EMA) that generates entry and exit cues. To ensure only high-quality opportunities are highlighted, signals are filtered by primary conditions:
Relative Volume (RVOL): Ensures the move is backed by institutional participation.
Agreement Filter: Requires a minimum level of harmony between momentum and structure.
Dynamic Sizing: Signals are plotted as circles on the ribbon. Their size and opacity scale based on volume—larger, solid circles represent high-volume breakouts, while smaller circles indicate standard filtered moves.
🔶 DETAILS
The script is built upon three core components that form the Composite Pressure Score:
Momentum Drive: Measures the aggression of price movement using a normalized Rate of Change.
Structural Alignment: Analyzes price position relative to fast and slow EMAs to ensure the trend has structural support.
Pullback Quality: Evaluates the health of retracements by analyzing where price sits within its recent range.
The Agreement metric calculates the mathematical harmony between these three components. High agreement suggests a "perfect storm" where all three factors point in the same direction, increasing the probability of a sustained move.
🔹 Dashboard Information
The on-screen dashboard provides a real-time summary of the market's technical state:
Current State: Identifies the market regime, such as "Bullish/Bearish Conviction," "Exhaustion" (divergent forces), or "Glass / Neutral" (low-conviction environments).
Action: Provides a suggested context based on the prism's logic. This includes "Bullish/Bearish Cross" for potential entries, "Hold" for trending environments with high agreement, and "Wait" for low-conviction periods.
Pressure Score: The numerical value of the composite oscillator (-100 to 100).
Agreement: A percentage representing how unified the three internal forces are. Higher percentages indicate stronger confluence.
🔶 SETTINGS
🔹 Calculation Settings
Lookback Period: Determines the window used for momentum, structure, and range calculations.
Prism Sensitivity: Controls how reactive the normalized scores are to price changes.
Min Signal RVOL: The volume threshold required to trigger a signal circle (e.g., 1.2 requires 20% above average volume).
Min Signal Agreement: The required harmony between the 3 pillars (0.0 to 1.0) for a signal to appear.
🔹 Visual Settings
Prism Opacity: Adjusts the transparency of the central ribbon and conviction glows.
Enable Dashboard: Toggles the on-screen information panel.
Position/Size: Controls the placement and scale of the dashboard UI.
Indicator

Proximal Range Filter [LuxAlgo]The Proximal Range Filter indicator provides a robust range/noise-filtering solution that utilizes an L1 soft-thresholding approach to determine market trends while minimizing lag and erratic price movements.
🔶 USAGE
The indicator is primarily used to identify the current trend direction and significant price shifts while ignoring minor market noise. It appears as a colored line on the price chart, transitioning between bullish and bearish states.
🔹 Trend Identification
Users can determine the current market sentiment by looking at the color of the filter line and the associated gradient fill:
A green line and fill indicate a bullish trend, suggesting that price is consistently overcoming the upper noise threshold.
A red line and fill indicate a bearish trend, suggesting that price is consistently breaking below the lower noise threshold.
🔹 Trend Switches
The indicator plots "Trend Switch Dots" at the specific point where a trend reversal is confirmed. These dots appear at the previous filter level to highlight the origin of the new trend direction. This visual cue helps traders identify the exact moment the filter "stepped" in a new direction.
🔹 Responsiveness and Volatility
By adjusting the inputs, traders can tailor the filter to different trading styles:
For high-volatility assets (like Crypto), increasing the ATR Multiplier can help filter out "fakeouts" that occur during consolidation.
In trending markets, a higher Adaptation Rate (μ) allows the filter to track price changes more aggressively once the noise threshold is exceeded, reducing lag.
A lower ATR Multiplier combined with a lower Adaptation Rate creates a more "stepped" filter, useful for identifying major support/resistance levels created by the filter's flat periods.
🔶 DETAILS
The core of this indicator is the L1 Proximal Filter logic. Unlike standard moving averages that react to every price tick, this filter uses a "Soft-Thresholding" mechanism to isolate meaningful price action from random volatility.
🔹 Calculation Logic
The filter operates through a specific prediction-adaptation cycle:
Noise Threshold : The script calculates a dynamic threshold using a 200-period ATR multiplied by the user-defined setting. This ensures the filter's sensitivity scales automatically with the asset's current volatility.
State Prediction : The algorithm predicts the next state based on the previous filtered value and the current velocity (the rate of change).
Adaptive Blending : The prediction is blended with the new incoming source data using the Adaptation Rate (μ). This creates a temporary "candidate" value for the filter.
Soft-Thresholding : The difference between the candidate value and the previous filter state is evaluated. If the absolute difference is less than the threshold, the velocity is set to zero (the filter remains flat). If it exceeds the threshold, the threshold value is subtracted from the absolute difference to calculate the "meaningful" signal.
This mathematical approach ensures that only price movements strong enough to overcome the statistical noise (the ATR threshold) result in a change to the filter's value.
🔹 Trend Switch Dots
The Trend Switch Dots are plotted with a -1 offset. This is because a trend change is only confirmed once the current bar's filter value moves relative to the previous bar. The dot marks the price level where the "breakout" from the previous noise range occurred.
🔶 SETTINGS
Source : The price data used for calculation (typically the Close price).
ATR Multiplier : Defines the noise threshold. Higher values require larger price movements to change the filter's value, resulting in a smoother output that ignores more "whipsaws."
Adaptation Rate (μ) : Controls how fast the internal prediction adapts to price changes. A value of 1.0 reacts most aggressively to new data, while lower values provide more smoothing during the adaptation phase.
Indicator

Singular Spectrum Decomposition [LuxAlgo]The Singular Spectrum Decomposition indicator is a powerful analytical tool that decomposes price action into distinct, interpretable components—Trend, Periodic cycles, and Noise—using the Singular Spectrum Analysis (SSA) methodology.
It provides traders with a clear view of underlying market structures and offers a jump-free, extrapolated trend forecast based on Linear Recurrence Relations (LRR).
Warning: This decomposition is displayed retrospectively ; historical values observed are subject to repainting .
🔶 USAGE
The indicator operates by analyzing a specific window of recent price data to extract its most significant internal dynamics. It splits the "messy" raw price into four visual layers:
Trend (Overlay): The primary low-frequency component, plotted directly on the price chart. This represents the core directional bias of the asset.
Long Term Periodic (P1): The most dominant cyclical component, typically representing major swings or seasonalities.
Short Term Periodic (P2): The second most dominant cycle, capturing faster oscillations and intermediate pullbacks.
Noise: The high-frequency residual data that lacks a consistent pattern, useful for identifying market volatility or "washout" periods.
🔹 Cycle Exhaustion (P1/P2 Extremes)
Traders can monitor the separate indicator pane to identify when cyclical components (P1 and P2) reach historical extremes. When the Long Term Periodic (P1) line begins to curve back toward the zero line after a prolonged extension, it often signals "cycle exhaustion," suggesting that the current swing is losing momentum and a reversal or consolidation may be imminent.
🔹 Trend-Forecast Confluence & Mean Reversion
The dashed Trend extrapolation acts as a projected path for the market's core bias. If the current market price is significantly far from the solid Trend line while the forecast indicates a flattening or reversal, traders can look for mean-reversion opportunities. A price returning to a rising Trend forecast confirms the trend's strength, while a price crossing through a flat Trend forecast suggests a structural shift.
🔹 Timing Entries with Dashboard Metrics
The "Average Period" displayed on the dashboard provides a mathematical blueprint for entry timing. For example, if the Short Term (P2) Average Period is 20 bars, a trader might look for long entries approximately 10 bars after a peak (the expected trough). By aligning these peak-to-trough measurements with the Trend's direction, users can improve the precision of their entries within a trending market.
🔹 Filtering Fakeouts with the Noise Component
The Noise component helps distinguish between high-conviction moves and market "static." A sharp price breakout accompanied by a relatively flat Noise component suggests a sustainable, structurally supported move. Conversely, if a breakout occurs while the Noise component is spiking aggressively, it may indicate a "washout" or a liquidity-driven fakeout that lacks a fundamental trend shift.
🔶 DETAILS
The script implements a full SSA pipeline: Embedding (creating a trajectory matrix), Singular Value Decomposition (via eigendecomposition of the covariance matrix), and Diagonal Averaging (reconstructed the time series).
🔹 Jump-Free Extrapolation
A common issue with LRR-based forecasts is a vertical "jump" at the connection point between historical data and the forecast. This tool solves this by calculating the relative deltas of the LRR projection and anchoring them to the final value of the smoothed SSA reconstruction. This ensures a seamless visual transition while maintaining the mathematical integrity of the projected trajectory.
🔹 Dashboard Metrics
The indicator includes a real-time dashboard that calculates the "Average Period" of the periodic components using zero-crossing detection. This allows traders to quantify the frequency of cycles (e.g., a 40-bar cycle vs. a 15-bar cycle) without manual measurement.
🔶 SETTINGS
Window Length (L): The embedding window. Larger values capture longer cycles and provide a smoother trend, but may increase lag in the decomposition.
Buffer Length (N): The number of recent bars used for the static decomposition.
Forecast Length: The number of bars to extrapolate the Trend component into the future.
Show Trend on Price: Toggles the visibility of the reconstructed trend line on the main chart.
Show Periodic/Noise: Toggles the visibility of the individual sub-components in the indicator pane.
Show Extrapolation: Enables or disables the dashed forecast line for the trend.
Dashboard Settings: Controls the visibility, position, and size of the metrics table.
Indicator

Volume Weighted Trend [QuantAlgo]🟢 Overview
The Volume Weighted Trend indicator identifies statistically significant trend changes by combining volume-weighted price analysis with volatility-based breakout bands. It calculates a Volume Weighted Moving Average (VWMA) as the central trend baseline, then creates dynamic upper and lower bands using Average True Range (ATR) multipliers to define normal volatility boundaries. When price breaks above the upper band or below the lower band, it signals a confirmed trend change, helping traders and investors identify directional shifts driven by both volume-weighted momentum and volatility expansion across different timeframes and markets.
🟢 How It Works
The indicator's core methodology lies in its dual-layer approach combining volume weighting with volatility filtering, where trend changes require both price direction and statistical significance:
vwma_basis = ta.vwma(close, vwma_length)
atr_value = ta.atr(vwma_length)
upper_band = vwma_basis + atr_value * atr_multiplier
lower_band = vwma_basis - atr_value * atr_multiplier
First, the script calculates the Volume Weighted Moving Average to establish a trend baseline that gives greater weight to periods with higher trading volume, ensuring the trend line reflects significant participation and genuine market conviction rather than low-volume noise.
Then, it measures the Average True Range over the same period to quantify current market volatility:
atr_value = ta.atr(vwma_length)
Next, dynamic volatility bands are constructed by adding and subtracting ATR-based buffers from the VWMA baseline, creating adaptive boundaries that expand during volatile conditions and contract during calm periods:
upper_band = vwma_basis + atr_value * atr_multiplier
lower_band = vwma_basis - atr_value * atr_multiplier
The trend state is then determined through breakout logic that requires price to exceed these volatility-adjusted boundaries:
if close > upper_band
trend_direction := 1
else if close < lower_band
trend_direction := -1
Finally, trend change detection identifies transitions between bullish and bearish states:
trend_turned_bullish = trend_direction == 1 and trend_direction != 1
trend_turned_bearish = trend_direction == -1 and trend_direction != -1
This creates a robust trend-following system that only signals directional changes when price makes statistically significant moves beyond normal volatility bounds, with volume weighting ensuring the trend reflects meaningful market activity rather than thin-volume spikes.
🟢 Signal Interpretation
▶ Bullish Trend (Price Above Upper Band): When price closes above the upper volatility band, the indicator switches to bullish mode with green/bullish coloring throughout all visual elements = Confirmed uptrend signal for trend-following long positions. The trend remains bullish until price breaks below the lower band, allowing traders to stay positioned during sustained upward momentum without premature exits on minor pullbacks within the band range.
▶ Bearish Trend (Price Below Lower Band): When price closes below the lower volatility band, the indicator switches to bearish mode with red/bearish coloring throughout all visual elements = Confirmed downtrend signal for trend-following short positions or long exit signals. The trend remains bearish until price breaks above the upper band, enabling traders to maintain directional bias through corrective moves that stay within the band boundaries.
▶ Neutral Zone (Price Between Bands): When price trades between the upper and lower volatility bands, the indicator maintains its previous trend direction = Continuation of existing trend during consolidation or normal volatility retracements. This design prevents whipsaws during sideways action by requiring price to make a significant move beyond opposite-side bands to trigger trend reversal, rather than flip-flopping on minor crosses of the VWMA center line.
🟢 Features
▶ Preconfigured Presets: Three optimized parameter sets for different trading approaches and timeframes. "Default" provides balanced trend detection for swing trading on 4-hour and daily charts, filtering noise effectively while capturing meaningful trend changes. "Fast Response" delivers quicker trend signals for intraday trading on 5-minute to 1-hour charts, with tighter bands triggering earlier on breakouts for active traders who can monitor positions closely. "Smooth Trend" focuses on major trend changes for position trading on daily to weekly timeframes, with wider bands filtering out minor fluctuations to identify only primary directional shifts.
▶ Built-in Alerts: Three alert conditions enable automated monitoring of trend changes without constant chart watching. "Bullish Trend Signal" triggers when the indicator switches to bullish mode after price breaks above the upper band, alerting for potential long entries. "Bearish Trend Signal" activates when the indicator switches to bearish mode after price breaks below the lower band, signaling potential short entries or long exits. "Trend Direction Changed" provides a combined alert for any trend transition regardless of direction, allowing traders to monitor both bullish and bearish opportunities with a single alert setup.
▶ Visual Customization: Six color presets (Classic, Aqua, Cosmic, Cyber, Neon, plus Custom) accommodate different chart backgrounds and aesthetic preferences, with coordinated bullish and bearish color schemes applied across all indicator elements. Optional neon glow effect creates layered visual emphasis around the central VWMA line with three overlapping plots at different transparencies, making the trend line more prominent and easier to track (ideal for charts with multiple indicators where visual distinction is important). Optional volatility ribbons display gradient fills between the VWMA and band boundaries, providing visual context for price position relative to breakout thresholds with adjustable band transparency (0-100%) to control prominence. Optional bar coloring tints price bars with trend-appropriate colors during bullish and bearish periods, enabling instant visual confirmation of trend state across multiple timeframes without switching between chart and indicator panels.
Indicator

Indicator

Swing Flow Indicator [ChartPrime]The Swing Flow Indicator is a trend-following indicator that uses pivot points to determine price direction and momentum. It calculates a midline from pivot highs and lows, and generates upper and lower bands to help visualize trend strength. The indicator adapts to changing market conditions, making it ideal for identifying trend strength, potential reversals, and periods of low momentum or sideways movement.
⯁ KEY FEATURES AND HOW TO USE
⯌ Midline with Dynamic Upper and Lower Bands :
The indicator plots a midline, calculated from pivot points, with upper and lower bands. During an uptrend, the lower band is displayed, while the upper band appears in a downtrend. This configuration helps traders visualize current trend direction and strength, making it easier to follow price flow.
Example of bands and trends visualization:
⯌ Trend Strength and Sideways Market Detection :
The indicator shows a label with an arrow and the percentage distance between the current price and the midline.
During an uptrend, if the price enters between the midline and the lower band, the arrow points to the right, signaling low momentum or a potential sideways market. Similarly, in a downtrend, if the price moves above the midline but below the upper band, the arrow points to the right. This feature helps traders detect low momentum periods and potential shifts in the market.
Low-momentum sideways market indicator on the chart:
⯌ Pivot Point Markers :
Traders can toggle pivot point markers on the chart to see significant high and low levels used to calculate the midline. These points can provide additional insight into market structure and potential areas of support and resistance.
Pivot points displayed on the chart as markers:
⯌ Trend Change Signals :
When the market trend changes, the indicator marks the chart with diamond icons and price labels at the level where the trend shifted. These markers help traders identify precise points of trend reversals, providing potential entry or exit signals in their strategy.
Example of trend change markers on the chart:
⯁ USER INPUTS
Length : Controls the number of bars used in the calculation of pivot points.
Bands Multiplier : Sets the multiplier for the distance between the midline and upper/lower bands.
Show High & Low Pivot Points : Toggle to display pivot points on the chart for a clearer view of market structure.
Color Customization : Allows users to customize colors for uptrend and downtrend bands.
⯁ CONCLUSION
The Swing Flow Indicator is a versatile tool for trend-following and market analysis, offering clear visual cues for trend direction, strength, and potential reversals. With features like dynamic trend bands, momentum labels, pivot point markers, and trend change signals, it equips traders to make informed decisions in dynamic market conditions. Indicator

Ehlers Super Smoother Trend Score [BackQuant]Ehlers Super Smoother Trend Score
Overview
Ehlers Super Smoother Trend Score is a regime and trend-strength indicator built on a signal-processing filter created by John F. Ehlers. Instead of smoothing price with a standard moving average (which is mathematically crude and prone to noise and aliasing), this indicator applies the Ehlers Super Smoother, a Butterworth-style low-pass filter designed specifically for market data. The filtered series is then scored for directional persistence across a configurable lookback window, producing an oscillator-like trend score that measures how consistently the smoothed trend is advancing or deteriorating.
This is not a simple “MA slope” tool. It is:
A proper low-pass filter (Super Smoother) to reduce noise while preserving structure.
A persistence score that converts the filtered trend into a quantitative regime signal.
A threshold framework that turns the score into long/short regime transitions with clean state logic.
Where the filter comes from (and why it matters)
John F. Ehlers is known for applying digital signal processing (DSP) techniques to technical analysis. Traditional moving averages are not designed as proper frequency-selective filters. They blur price, lag heavily, and can introduce distortions, especially when the market contains high-frequency components (noise) near the Nyquist limit (the maximum representable frequency in sampled data).
The Super Smoother is derived from a Butterworth low-pass filter design. Butterworth filters are engineered to have a maximally flat passband, meaning they smooth without introducing ripples in the filtered output. In trading terms:
Less “wavy” smoothing artifacts than many MA variants.
Better suppression of high-frequency noise.
Cleaner trend structure for downstream logic.
This script implements Ehlers’ recursive coefficient form, giving you a 2-pole (classic) or 3-pole (heavier) filter.
What “Super Smoother” actually is
The Super Smoother is a recursive IIR filter (Infinite Impulse Response). Unlike an SMA which averages a fixed window of past values, an IIR filter uses feedback from its own prior output values. That matters because it can achieve strong smoothing with less lag for a given “smoothness target.”
Conceptually:
Input: price series.
Output: filtered estimate of the “low-frequency” component (trend structure).
Mechanism: combine current input (or pre-filtered input) with previous filter outputs using coefficients derived from a chosen cutoff period.
The coefficients (c1–c4) are not arbitrary, they are computed from exponential decay and cosine terms based on the cutoff period. This is what makes it a real DSP filter rather than “just another MA.”
2-pole vs 3-pole behavior
2-pole (classic)
A standard Ehlers Super Smoother configuration. It offers a strong improvement over typical MAs in smoothness vs lag balance.
3-pole
Adds an additional feedback term (one more prior filtered state). This increases smoothing and noise rejection, but introduces slightly more lag. The advantage is a cleaner structural line, which often improves regime stability when the market is noisy or mean-reverting.
Anti-aliasing pre-filter step
Before applying the recursive formula, the script averages the current and previous price:
avg = (src + src ) / 2
This is a simple but important pre-filter that reduces high-frequency components that can alias into lower frequencies in sampled data. In practice, it helps stop “one-bar spikes” from contaminating the filter output as much.
Inputs and what they really control
Super Smoother Period (ssPeriod)
This is the cutoff period used in the coefficient derivation. It is not the same as “MA length,” but it behaves similarly in that:
Lower period = faster response, less smoothing, more sensitivity to noise.
Higher period = smoother output, better noise rejection, more lag.
Poles
Selects filter order:
2 poles = balanced default.
3 poles = smoother, more conservative.
Score Lookback Start/End
Defines the persistence scoring window. The script compares the current filtered value to many prior filtered values across that range. A longer range makes the score more “confidence-based” and slower to change, while a shorter range makes it more reactive.
Thresholds (Long/Short)
Turns the score into a regime classification:
Long threshold defines when bullish persistence is strong enough to be considered a trend regime.
Short threshold defines when persistence has deteriorated enough to signal a bearish transition.
How the trend score is computed
After filtering, the indicator computes a directional persistence score on the filtered series (not raw price). That distinction matters because you are scoring structure, not noise.
Mechanically:
For each i in the scoring window:
- If filt_now > filt , add +1
- Else add -1
Sum across the window to produce the score.
Interpretation:
High positive score means the filtered trend is consistently higher than many past points, persistent bullish structure.
Low or negative score means the filtered trend is not advancing, or is consistently below prior points, bearish structure.
Scores near the middle mean the filtered series is oscillating without clear persistence, chop or transition.
This is a persistence metric, not a slope metric. It does not care about one-bar direction, it cares about consistency relative to history.
Signal and state logic (why it stays clean)
The indicator uses state logic to prevent constant flip-flopping:
Long condition: score > long threshold.
Short condition: score crosses below short threshold (uses prevScore and current score).
That short logic is event-based, it triggers only on the breakdown transition, not on every bar below the threshold. Once a regime is set, it remains until a real threshold event forces change.
Signals are plotted only on regime flips:
Long marker when signal becomes +1 and prior was -1.
Short marker when signal becomes -1 and prior was +1.
This is designed for alerts and for clean backtesting interpretation.
Visual layers
The indicator can be used purely as a panel oscillator or as a structure overlay.
Pane
Trend Score line, colored by active regime.
Optional reference lines at long/short thresholds for fast regime reading.
On-chart (optional)
Super Smoother line plotted over price, colored by regime.
Optional candle painting and background shading to reflect active regime.
This lets you treat the filter as a dynamic trend structure line while using the score as the regime classifier.
How to interpret it properly
1) The Super Smoother line
This is the cleaned trend structure estimate:
When price respects the smoother line, trend structure is intact.
When price repeatedly chops through it, structure is weak or range-bound.
2) The score
This is the quantified persistence of that structure:
Rising score implies strengthening trend persistence.
Falling score implies deterioration, transition risk, or mean reversion.
Score compression often shows consolidation before a regime shift.
3) Threshold regimes
Above long threshold: bullish persistence regime, trend-following conditions.
Below short threshold: bearish regime transition, defensive or short-biased conditions.
Between thresholds: neutral/transition zone, where chop and fakeouts are common.
Practical use cases
Trend filter
Only take long setups when score is above the long threshold.
Reduce exposure or avoid trend trades in the neutral band.
Treat a breakdown through the short threshold as regime invalidation.
Trend quality assessment
High score = continuation environment.
Moderate score = trend exists but is fragile.
Low/negative score = distribution, downtrend, or unstable structure.
Trade management
Use the Super Smoother line as a structure reference for trailing risk.
Use score deterioration as an early warning before full regime flips.
Use regime flips as hard exits or bias changes.
Tuning guidelines
If you want fewer signals and cleaner regimes
Increase ssPeriod.
Use 3 poles.
Increase scoreEnd (longer scoring window).
If you want faster reaction
Decrease ssPeriod.
Use 2 poles.
Reduce the scoring window length.
Keep in mind: faster settings increase sensitivity to chop. The filter is good, but no filter removes the reality of mean reversion.
What makes this different from “just a smoothed MA score”
The difference is the filter quality. The Super Smoother is a proper low-pass filter with coefficients derived from DSP principles, designed to suppress high-frequency noise and avoid common smoothing artifacts. Scoring that filtered structure gives you a regime metric that is more stable and more meaningful than scoring raw price or scoring a basic MA that still carries a lot of aliasing and distortion.
Summary
Ehlers Super Smoother Trend Score combines a DSP-derived Butterworth-style Super Smoother filter with a directional persistence scoring model. The filter provides a clean, low-noise trend structure series, and the score quantifies how consistently that structure is advancing or deteriorating across a defined window. Threshold-based regime logic converts the score into clean trend states and alerts, making it a practical tool for trend filtering, regime detection, and structure-aware trade management. Indicator

Price Efficiency Ratio (PER) [SharpStrat]Price Efficiency Ratio (PER)
The Price Efficiency Ratio (PER) is built around a simple question: how efficiently is the market moving from its starting point to its current point?
Price often moves in indirect ways. Sometimes it travels cleanly in one direction with very little noise, and sometimes it spends more energy moving up and down than actually progressing. PER quantifies this behavior and turns it into a clear, readable number that identifies whether the market is behaving like a trend or a range.
To make the idea intuitive, imagine walking from point A to point B. If you walk straight, you arrive efficiently. If you zigzag, backtrack, or wander before reaching the same point, your total travel distance becomes much larger than the straight line distance. PER applies this exact idea to price movement.
How the Indicator Computes Efficiency
The indicator measures two distances over the selected lookback period:
Net Distance: This is the absolute distance between the closing price now and the closing price at the start of the lookback period. It represents how far the market has actually progressed.
Total Distance: This is the sum of every bar to bar price change within that same period. Every small rise, drop, spike, reversal, and retrace is included.
These two distances are then compared: PER = (Net Distance / Total Distance) × 100
The result is a 0-100% reading where:
HIGH values (above threshold) = Price moved efficiently in one direction = Trending
LOW values (below threshold) = Price zigzagged without net progress = Ranging
Understanding High PER vs Low PER
The easiest way to see what PER measures is by observing how price travels between two points. The image below shows a clean directional movement compared to a choppy, back and forth one.
On the left, the market moves steadily from point A to point B with only small interruptions. Most of the movement contributes directly toward the final destination. Because the total distance is close to the straight line distance, PER is high. This represents a trending environment where trend following tools typically perform well.
On the right, the market still reaches point B, but the path is filled with reversals. Price spends more time oscillating than progressing. Total distance becomes much larger than net distance, which produces a low PER. This represents a ranging or mean-reversion environment, where fading extremes and playing inside the range tends to be more appropriate.
In simple terms:
High PER means price is moving with intention and direction.
Low PER means price is moving inefficiently and indecisively.
How to Use PER
PER is not a signal generator by itself. It is a market regime classifier, and its strength lies in selecting the right strategy for the right environment.
When PER is above the threshold (Trending Environment)
Price is moving efficiently. Most bars contribute to the same directional bias. This is when trend following strategies excel. Examples include:
Breakouts
Pullback entries into trend direction
Moving average crossovers
In these situations, using mean-reversion is generally less effective.
When PER is below the threshold (Ranging / Mean-Reversion Environment)
Price is inefficient and oscillatory. The market wastes movement and fails to make directional progress. Examples include:
RSI overbought/oversold reversals
Bollinger Band bounces
Liquidity sweeps and reversals
Breakouts tend to fail more frequently in these conditions.
Example:
Below is a section of the S&P 500 on the daily timeframe showing both trending and ranging conditions, along with how PER responded to each.
This chart shows how PER naturally separates trending phases from ranging phases using objective efficiency rather than subjective chart reading. It demonstrates exactly how the indicator identifies regime changes and helps you understand what kind of behavior the market is currently showing.
Features & Settings
Dynamic vs Fixed Threshold
Threshold- Different markets and timeframes produce different typical PER values.
Fixed Threshold:
You choose the efficiency level manually. Useful if you trade the same instrument and know the PER levels that define a trend for it.
Dynamic Threshold:
The threshold is calculated from historical PER distribution.
This adapts automatically to each timeframe and each asset, aligning the threshold with what is normal for that chart. It reduces manual tuning and produces more consistent regime classification.
Smoothing Option
Raw PER can fluctuate rapidly on lower timeframes. Smoothing helps reveal the underlying efficiency trend more clearly.
Volume Weighted PER
A volume weighted mode is also included. When enabled, price movement occurring during high volume bars has more influence, making PER more meaningful on assets where volume impacts trend quality.
Information Box
The information box provides quick context, including the current PER value, the current regime (trending or ranging), and whether the threshold mode is fixed or dynamic. It is designed to make interpretation instant without additional settings or visual clutter.
Summary
PER will not tell you when to buy or sell. PER doesn't predict the future or generate signals. It simply tells you what kind of market you're in right now.
The value is in knowing when to apply trend strategies versus mean reversion strategies. A lot of traders already have good tools they just use them in the wrong conditions. PER helps you avoid that mistake. Use it as part of your overall analysis, not as a standalone system.
This indicator is open source and free. If you find it useful, a like or comment helps others discover it.
Risk Disclaimer: For educational purposes only. Trading involves risk. No indicator guarantees profits. Use proper risk management.
Indicator

Indicator

Indicator

Indicator
