Rolling Segment [LuxAlgo]The Rolling Segment indicator provides a dynamic, trend-following reference line that adapts its slope and direction based on price volatility and distance from the market.
🔶 USAGE
The indicator is designed to filter out minor price fluctuations while remaining responsive to significant trend shifts. It appears as a continuous segmented line on the chart, changing color based on the current trend (Green for bullish, Red for bearish).
A gradient fill is applied between the price and the segment to visualize the "stretch" or deviation of the current price action from the trend line. This visual aid helps traders identify when price is moving in lockstep with the trend versus when it is overextending.
🔹 Reversal Signals
The indicator identifies trend reversals when the distance between the price and the segment exceeds a user-defined ATR-based threshold. These reversals are marked on the chart with triangle labels:
A bullish triangle (▲) appears below the segment when a new uptrend begins. A bearish triangle (▼) appears above the segment when a new downtrend begins.
🔹 Speed Modes
The segment operates in two speed modes: "Fast" and "Slow." When price moves significantly away from the segment (crossing the Fast Threshold), the indicator switches to a faster slope to catch up with the momentum. When price is closer to the segment, it maintains a slower, more stable slope to avoid premature trend changes during consolidation.
🔶 MARKET INTERPRETATION
The Rolling Segment acts as a measure of trend health. Because the slope is derived from the Average True Range (ATR), the "speed" of the line is normalized to the asset's current volatility.
Trend Momentum: When the price stays consistently above a green segment (or below a red one) without triggering the "Fast" mode, it indicates a stable, sustainable trend. Price Exhaustion: A sudden jump into "Fast" mode often highlights a surge in momentum. If the price continues to stretch significantly beyond the segment even in fast mode, it may signal an overextended move prone to mean reversion. Consolidation: Horizontal or shallow segments indicate a period where the market is lacking a clear directional driver relative to its recent volatility.
🔶 DETAILS
The core of the script relies on a state-machine logic that governs a unique slope-freezing mechanism. Unlike traditional moving averages that recalculate every bar based on shifting data, this indicator calculates a linear slope and "freezes" it until a specific state change occurs.
The state is defined by the combination of Trend Direction and Speed Mode . The ATR value used to calculate the slope is only updated when:
A trend reversal is detected (Price crosses the Reverse Threshold). The distance between price and the segment crosses the "Fast Threshold," triggering a shift in speed mode. The initial calculation begins at the start of the data series.
By freezing the slope, the indicator produces perfectly linear segments. This mathematical intuition ensures that the reference line moves at a constant "volatility-adjusted rate" per bar, providing a cleaner visual representation of trend momentum and making it easier to spot price exhaustion when the market deviates too far from this constant rate.
🔶 SETTINGS
🔹 Slopes
Fast Slope Length: The period used to determine the slope speed when the price is trending strongly. Lower values result in a steeper, more aggressive slope. Slow Slope Length: The period used to determine the slope speed during standard market conditions. Higher values create a flatter, more trailing segment.
🔹 ATR Settings
ATR Length: The lookback period for the Average True Range calculation, which scales the slope and thresholds to current market volatility.
🔹 Thresholds
Fast Slope Threshold (ATR Multiplier): The distance (in ATR units) the price must reach from the segment to trigger the "Fast" slope mode. Reverse Threshold (ATR Multiplier): The distance (in ATR units) the price must cross against the current trend to trigger a reversal and change the segment direction. Indicator

Indicator

Indicator

Indicator

Indicator

Synthetic IV Rank [UAlgo]Synthetic IV Rank is a volatility analysis indicator that creates a practical proxy for IV Rank when direct options implied volatility data is not available. Instead of reading an options chain, the script estimates a synthetic volatility series from price action using a Yang Zhang style historical volatility model, then normalizes that value into a 0 to 100 rank across a user defined lookback window.
This makes the tool especially useful for traders who want an IV Rank style workflow on instruments or markets where true implied volatility is unavailable, limited, or inconsistent. The indicator can be used on stocks, indices, forex, commodities, and crypto, with a dedicated Crypto Mode for annualization based on 365 days.
The script is built as a separate pane indicator and focuses on clear regime awareness. It plots a smooth IV Rank line, adds visual threshold references for high and low volatility zones, and shows a live status label on the most recent bar with both the current rank and the raw synthetic volatility value. The overall design makes it suitable for fast regime checks, mean reversion context, premium selling style filters, and volatility expansion monitoring.
Important note: This is a synthetic IV Rank approximation based on historical price volatility. It is not a substitute for true options implied volatility from an options chain.
🔹 Features
🔸 1) Synthetic IV Rank Using a Yang Zhang Style Volatility Model
The indicator estimates volatility from price data using a Yang Zhang style framework, then converts that estimate into an IV Rank style percentile scale. This gives users an IV Rank like signal even when broker feeds do not provide options implied volatility.
🔸 2) Engine Based Design with Structured Inputs
The script uses a custom VolatilityEngine type to organize the core calculation parameters:
hv_length for volatility estimation length
lookback_length for IV Rank normalization window
annual_factor for market specific annualization
This structure makes the logic easier to maintain and extend.
🔸 3) Stock and Crypto Annualization Modes
The engine supports two annualization conventions through a simple input toggle:
252 day convention for traditional markets
365 day convention for crypto markets
This is a practical detail because the same raw volatility process can produce different annualized values depending on the asset class.
🔸 4) Robust IV Rank Normalization with Safe Fallback
The script computes IV Rank by comparing the current synthetic volatility value against the lowest and highest values over the selected lookback period. If the range collapses to zero, the script safely assigns a neutral rank of 50 instead of causing a division issue.
This improves reliability in flat or low variance periods.
🔸 5) Clear Regime Visualization
The indicator includes a strong visual layout designed for quick interpretation:
A main IV Rank line
A mid reference line at 50
High and low threshold markers at 80 and 20
Gradient fills that visually emphasize extreme zones
This helps users recognize volatility regime shifts at a glance.
🔸 6) Dynamic Last Bar Status Labels
On the latest bar, the script prints a compact status label that shows:
Current IV Rank value
Regime label such as EXTREME FEAR, COMPLACENCY, or NEUTRAL
It also adds a secondary information label showing the raw Yang Zhang synthetic volatility percentage. This gives both normalized context and raw measurement at the same time.
🔸 7) Practical Regime Classification
The script uses simple but effective thresholds for regime tagging:
Above 80 signals elevated volatility conditions
Below 20 signals compressed volatility conditions
Between 20 and 80 is treated as neutral
These thresholds align with common IV Rank style interpretation used in discretionary and systematic workflows.
🔹 Calculations
1) Engine Initialization
On the first bar, the script initializes the custom volatility engine and stores:
The Yang Zhang calculation length
The IV Rank lookback window
The annualization factor based on asset class mode
If Crypto Mode is enabled, the annual factor uses the square root of 365. Otherwise it uses the square root of 252.
2) Synthetic Volatility Source Series
The indicator computes a Yang Zhang style historical volatility estimate from OHLC data. The model combines multiple variance components so it can capture more market behavior than a simple close to close volatility series.
The script calculates:
A first variance component labeled as overnight in the comments
An open to close variance component
A Rogers Satchell style intraday variance component from high, low, open, and close relationships
3) First Variance Component (Commented as Overnight)
In the current implementation, the first component is built from the logarithmic return of close / close , and its rolling variance is measured over the user defined length.
This is important to note because the code comments describe an overnight style component, while the actual formula uses consecutive closes in the current version.
4) Open to Close Variance Component
The script computes the logarithmic open to close return log(close / open) and then applies a rolling variance over the selected length. This measures intrabar movement relative to the bar open.
5) Rogers Satchell Intraday Variance Component
To improve intraday variance estimation, the script calculates a Rogers Satchell style daily variance term using four logarithmic relationships derived from high, low, open, and close. It then smooths this with a rolling simple average across the same volatility length.
This component is useful because it incorporates more intrabar range information than a simple close based measure.
6) Yang Zhang Weighting Factor
The script computes a weighting coefficient k that depends on the volatility length. This weight balances the contribution of the open to close variance and the Rogers Satchell component in the final combined variance.
The implementation follows the standard Yang Zhang style weighting formula shown in the script comments.
7) Combined Synthetic Volatility and Annualization
After computing the variance components, the script combines them into a single Yang Zhang style variance estimate, takes the square root to obtain volatility, and annualizes the result with the engine annual factor. The final synthetic volatility value is expressed as a percentage.
In practical terms, this output is the raw volatility series that the script later converts into Synthetic IV Rank.
8) IV Rank Calculation
The IV Rank logic measures where the current synthetic volatility sits relative to its historical range over the selected lookback:
It finds the lowest synthetic volatility in the lookback window
It finds the highest synthetic volatility in the lookback window
It scales the current value to a 0 to 100 rank
If the lookback range is flat, the script assigns 50.0 as a neutral fallback.
This normalization step is what makes the output behave like an IV Rank style regime indicator rather than a raw volatility plot.
9) Regime State Classification
On the latest bar, the script assigns a text state from the current IV Rank:
EXTREME FEAR when rank is above 80
COMPLACENCY when rank is below 20
NEUTRAL otherwise
The label color also changes with the state, which improves visual scanning.
10) Visual Layer Logic
The visualization includes:
A plotted IV Rank line
Hidden boundary plots for fill anchors
Visible threshold markers at 80 and 20
A midpoint reference line at 50
Gradient fills for high volatility and low volatility zones
The fill logic visually intensifies as the IV Rank moves deeper into an extreme zone, helping users identify volatility compression and expansion phases quickly.
11) What This Indicator Represents in Practice
This script is best understood as a normalized historical volatility regime tool designed to mimic the workflow of IV Rank when direct implied volatility data is not available. It is excellent for context filtering and regime awareness, but it should not be interpreted as a true options market implied volatility feed. Indicator

True Baseline Median SuperTrendTrue Baseline Median SuperTrend (TBM SuperTrend) | MisinkoMaster
True Baseline Median SuperTrend is a volatility-adaptive trend indicator designed to refine traditional SuperTrend logic by introducing a volatility-filtered baseline and median-based smoothing techniques.
Instead of relying on a fixed midpoint calculation, TBM SuperTrend dynamically constructs its baseline from structurally significant price observations, then applies layered median smoothing to reduce noise while preserving trend integrity.
The result is a cleaner, more stable trend-following tool that reacts to meaningful shifts in volatility and directional pressure without excessive whipsaws.
Core Philosophy
Most SuperTrend-style indicators anchor their bands to a simple price midpoint and apply an ATR-based offset. While effective, this approach can be overly sensitive during volatile consolidations.
TBM SuperTrend improves this structure by:
• Building a volatility-qualified baseline
• Filtering insignificant price movements
• Applying median smoothing instead of simple averaging
• Retaining ATR-based adaptive band distance
This creates a trend structure that prioritizes meaningful price expansion over random noise.
Key Features
Volatility-qualified baseline construction
Median-smoothed upper and lower bands
ATR-based adaptive volatility envelope
Dynamic trend state detection
Automatic candle coloring
Clear long and short transition labels
Reduced whipsaw behavior compared to standard SuperTrend
Works across intraday and higher timeframes
Designed for trend continuation and breakout frameworks
How It Works (Conceptual)
The indicator operates in three structural layers:
Volatility Measurement
Market volatility is assessed using an ATR-based structure.
Baseline Construction
Instead of averaging all recent prices, the script filters price samples based on volatility conditions. Only structurally relevant bars contribute to the baseline calculation. This ensures that the baseline reflects meaningful movement rather than passive drift.
Median Smoothing
Both the volatility-adjusted bands and the baseline structure undergo median smoothing. Median smoothing is less sensitive to outliers than standard averaging, which helps stabilize the trend line during erratic price spikes.
After the adaptive bands are constructed, price interaction with those bands determines directional bias:
• Price closing above the upper threshold confirms bullish trend state
• Price closing below the lower threshold confirms bearish trend state
Internal implementation details remain proprietary in the protected version.
Trend Logic Explained
Bullish State
When price maintains strength above the adaptive upper boundary, the indicator confirms a long bias. The trailing structure shifts beneath price, acting as dynamic support.
Bearish State
When price closes below the adaptive lower boundary, the indicator confirms a short bias. The trailing structure shifts above price, acting as dynamic resistance.
State transitions occur only when decisive boundary breaks happen, helping reduce false flips.
Visual Components
Trend Lines
Only the active directional band is displayed, reducing clutter and emphasizing current bias.
Shaded Volatility Zone
A filled region between price and the active band visually highlights trend dominance.
Long / Short Labels
Clear on-chart labels mark confirmed trend transitions.
Candle Coloring
Price candles automatically reflect current trend state for immediate visual recognition.
Inputs Overview
Source
Defines the price series used for baseline construction.
ATR Length
Controls the volatility lookback period.
True Baseline Length
Determines the window used for constructing the volatility-qualified baseline.
Factor
Adjusts the volatility multiplier that expands or contracts the adaptive bands.
Median Period
Controls the median smoothing strength applied to the bands.
Lower values increase responsiveness.
Higher values improve stability and reduce noise.
Why Median Smoothing Matters
Traditional smoothing methods (like EMA or SMA) can be distorted by sharp price spikes. Median-based smoothing reduces the impact of extreme values, making TBM SuperTrend particularly effective in:
• Crypto markets
• High-volatility equities
• News-driven instruments
• Lower timeframe trading
This improves structural consistency during sudden volatility expansions.
Best Use Cases
Trend-following systems
Breakout confirmation
Pullback entries within established trends
Trailing stop framework
Directional bias filtering
Volatility-adaptive strategy design
Parameter Tuning Guidance
Shorter ATR Length
→ Faster adaptation
→ More sensitivity
→ Suitable for intraday trading
Longer ATR Length
→ Smoother volatility structure
→ Better for swing trading
Higher Factor
→ Wider bands
→ Fewer signals
→ Stronger trend confirmation
Lower Factor
→ Tighter bands
→ Earlier entries
→ More reversals
Longer Median Period
→ Smoother band structure
→ Reduced whipsaws
Shorter Median Period
→ Faster reaction
→ More sensitivity to shifts
Practical Strategy Integration
Use TBM SuperTrend as:
• Primary directional filter
• Trailing stop mechanism
• Confirmation layer for breakout systems
• Bias alignment tool across multiple timeframes
It performs best when combined with momentum confirmation or volume expansion tools.
Summary
True Baseline Median SuperTrend enhances traditional SuperTrend logic by introducing volatility-qualified baseline construction and median smoothing for structural stability.
The result is a cleaner, more adaptive trend tool that prioritizes meaningful price movement while minimizing noise. It is well suited for traders seeking a disciplined, volatility-aware trend framework that remains robust across changing market conditions. Indicator

LOWESS Channel & Extrapolation [LuxAlgo]The LOWESS Channel & Extrapolation indicator calculates a Locally Weighted Scatterplot Smoothing (LOWESS) curve to define a non-linear trend and projects it into future bars using local regression slopes. It provides a dynamic channel based on the standard deviation of residuals, helping traders identify overextended price levels and potential mean-reversion points.
The LOWESS Channel & Extrapolation indicator is subject to repainting and displayed retrospectively.
🔶 USAGE
This tool is primarily designed for trend analysis and identifying exhaustion points. Because the LOWESS algorithm recalculates based on the most recent data window, the entire historical curve can adjust, making it a powerful tool for backtesting and analyzing past market structures rather than for real-time signal generation without confirmation.
🔹 Trend Identification
The central fit line represents the smoothed local trend. When the curve is sloping upward, the local market sentiment is considered bullish; conversely, a downward slope indicates bearish sentiment.
🔹 Overbought/Oversold Conditions
The dashed outer channels represent a volatility-adjusted boundary. When price moves outside these boundaries, it is statistically overextended relative to the local trend, often preceding a move back toward the mid-line.
🔹 Extrapolation
The indicator extends the most recent local regression slope into the future. This provides a "path of least resistance" projection based on the current momentum of the smoothed curve.
🔶 DETAILS
The LOWESS (Locally Weighted Scatterplot Smoothing) algorithm works by performing a separate weighted linear regression for every data point in the window.
It uses a "tricube" weighting function, which ensures that data points closer to the focal point have a higher influence on the fit than points further away. This results in a curve that is much more flexible than a simple moving average and can adapt to complex price cycles without the lag associated with traditional filters.
The channel width is determined by calculating the Standard Deviation of the residuals (the difference between the actual price and the LOWESS fit). This ensures the channel expands during high volatility and contracts during consolidation.
🔶 SETTINGS
Length : Determines the number of historical observations used to fit the LOWESS curve. Larger values result in a smoother, more macro trend. Span : The fraction of data points used for each local regression. A higher span (closer to 1.0) creates a smoother line, while a lower span allows the curve to follow price more tightly. Channel Multiplier : Multiplier applied to the standard deviation of residuals to define the distance of the upper and lower bands from the mid-line. Extrapolation Bars : The number of bars to project the current trend into the future. Fit Color : Sets the color and transparency of the central LOWESS line. Channel Color : Sets the color of the dashed outer bands and the background fill. Line Width : Adjusts the thickness of the central fit line. Indicator

Price Simplification [LuxAlgo]The Price Simplification indicator provides a streamlined representation of price action by reducing complex market movements into essential trend segments using the Ramer-Douglas-Peucker (RDP) algorithm.
This indicator calculates its output based on a fixed window of historical data. Consequently, the line segments are displayed retrospectively and are subject to repainting as new bars develop and the calculation window shifts.
🔶 USAGE
The indicator is designed to help traders identify the core structure of price movement by filtering out "noise"—small fluctuations that do not significantly impact the overall trend. By simplifying the price into a series of connected segments, it becomes easier to visualize support/resistance levels, trend slopes, and market geometry.
Users can adjust the level of simplification to suit their needs:
A lower ATR Multiplier will result in a line that follows price closely, capturing more minor swings.
A higher ATR Multiplier will produce a more aggressive simplification, highlighting only the most significant market turns.
🔹 Extension Line
The script includes an "Extend Last Segment" feature. When enabled, it projects the trajectory of the final simplified segment into the future using a dashed line. This projection begins one bar after the most recent data point, providing a visual guide for the current price momentum without overlapping the historical simplification.
🔶 DETAILS
The core logic of this tool relies on the Ramer-Douglas-Peucker (RDP) algorithm, a classic algorithm used in computer graphics and cartography to reduce the number of points in a curve.
The algorithm works through an iterative process:
It starts with a line segment connecting the first and last points of the lookback window.
It identifies the point between these two ends that is furthest from the segment (perpendicular distance).
If this maximum distance is greater than a specified threshold, that point is kept as a "key point," and the algorithm splits the segment into two parts, repeating the process for each.
If no point is further than the threshold, all intermediate points are discarded, and the segment remains a straight line.
To ensure the simplification remains consistent across different assets and timeframes, the script normalizes price coordinates using the Average True Range (ATR) . This means the threshold for keeping a point is relative to the current market volatility rather than a fixed price value.
🔶 SETTINGS
Window Size : The number of recent bars used to apply the RDP algorithm to.
ATR Multiplier : The sensitivity of the simplification. Higher values lead to fewer segments and a simpler line.
ATR Length : The period used to calculate the ATR for price normalization.
Line Color : The color of the simplified polyline.
Line Width : The thickness of the polyline and extension.
Extend Last Segment : When enabled, projects the slope of the final segment forward as a dashed line starting one bar after the last point.
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

Laguerre Filter [BackQuant]Laguerre Filter
Overview
The Laguerre Filter is a powerful trend-following tool designed to smooth price action while maintaining responsiveness to market changes. It is based on the Laguerre recursive filter, which is a type of signal processing filter that adapts to both the current price dynamics and the underlying trend. The Laguerre Filter can be seen as a method to reduce market noise, enabling traders to more easily identify the strength and direction of trends while minimizing lag.
The Laguerre Filter is well-suited for markets with varying volatility levels, offering a smoother representation of price action without the delay associated with traditional moving averages. By dynamically adjusting to price movements, the Laguerre Filter provides a more adaptive and reliable signal compared to simpler smoothing techniques.
What is the Laguerre Filter?
The Laguerre Filter is derived from the Laguerre polynomial, which is used in signal processing for smooth filtering of data. The Laguerre filter is a recursive filter, meaning that each new value is calculated based on both the current price data and previous values, with a weighting system that allows it to adapt to market conditions. This recursive nature helps reduce the impact of short-term fluctuations, enabling the filter to focus on the underlying trend.
The Laguerre filter uses a feedback mechanism, where the input signal (price data) is smoothed iteratively. This iterative process helps avoid the lag that is typically associated with traditional moving averages while still capturing the overall trend direction.
The filter is designed to have:
Adaptive behavior: It reacts quickly to significant price changes while ignoring minor fluctuations.
Reduced noise: By filtering out random short-term price movements, it provides a clearer view of the underlying trend.
Customizability: Traders can adjust the filter’s sensitivity through user inputs, making it adaptable to different market conditions.
Core Calculation Methodology
The core of the Laguerre Filter lies in its recursive calculation:
Each new value is calculated using the previous value along with the current price input.
The recursive formula is governed by two key parameters: the damping factor (gamma) and the order of the filter (number of Laguerre elements).
The damping factor controls how responsive the filter is to changes in price. A higher gamma value makes the filter smoother but introduces more lag, while a lower gamma value makes it more reactive to price changes but can introduce more noise.
The order defines how many Laguerre elements are used in the calculation. A higher order results in a smoother output but with more delay, while a lower order provides a faster response but less smoothing.
The filter works by weighting previous values with a binomial weighting system, which assigns more weight to recent values and less weight to older values. This creates a dynamic smoothing effect that adapts to price volatility, ensuring that the filter is neither too slow nor too noisy.
Signal Logic and Trend Detection
The Laguerre Filter continuously evaluates the strength and direction of the trend by comparing the current smoothed value to the previous value:
If the current value is greater than the previous value, the trend is considered bullish, and the filter will signal a long condition.
If the current value is less than the previous value, the trend is considered bearish, and the filter will signal a short condition.
The trend detection logic is based on the recursive nature of the filter, which smooths price movements over time. This allows the filter to capture the broader trend while minimizing the influence of short-term price fluctuations.
The trend state is also visually represented by color-coding:
Green color represents an uptrend (bullish condition).
Red color represents a downtrend (bearish condition).
Neutral (white) indicates no clear trend direction.
This color-coding helps traders easily identify the prevailing trend and decide whether to enter or exit trades based on the trend's strength.
Laguerre Filter Behavior and Performance
The performance of the Laguerre Filter can be influenced by several factors:
Gamma (Damping Factor): A higher gamma value results in a smoother filter but increases lag. A lower gamma value allows for a faster response but may introduce more noise, making it more reactive to smaller price changes.
Filter Order: The order determines how many Laguerre elements are used in the filter calculation. A higher order provides more smoothing but increases lag, while a lower order results in a quicker response but less smoothing.
The sweet spot for gamma is typically between 0.7 and 0.85, where the filter offers a good balance between smoothness and responsiveness. The filter order is usually set to 4 for classic Laguerre filtering, but higher orders can be used for more smoothing if needed.
The Laguerre Filter’s performance shines in markets with sustained trends, where the filter can effectively capture and represent the underlying direction without excessive lag. It is particularly useful in volatile markets, as it helps smooth out noise while providing a clear picture of the trend.
Visual Presentation
The Laguerre Filter provides a dynamic, color-coded line that follows the trend direction. This line can be displayed alongside price data to visually highlight the market trend. In addition to the main Laguerre line, several visual enhancements can be applied:
Gradient fill between the price and the Laguerre Filter line, providing a visual cue for bullish or bearish market conditions.
Candle coloring to reflect the current trend, making it easier to spot trend reversals or confirmations directly on the chart.
Background shading to visually highlight areas of strong trend or consolidation.
Edge glow effect that highlights trend boundaries, making it easy to spot key levels of support or resistance.
These visual elements enhance the usability of the Laguerre Filter, allowing traders to quickly assess the market trend and make informed decisions.
Practical Use Cases
1) Trend Following
The Laguerre Filter is ideal for trend-following strategies. By using the filter to identify the prevailing trend, traders can:
Enter long positions when the Laguerre Filter turns bullish (green).
Enter short positions when the Laguerre Filter turns bearish (red).
By aligning trades with the dominant trend, traders can improve their chances of success.
2) Trend Strength Assessment
The Laguerre Filter can also be used to assess the strength of the trend:
A rising Laguerre value indicates a strengthening uptrend.
A falling Laguerre value indicates a strengthening downtrend.
A flattening Laguerre value signals weakening momentum or consolidation.
This information can be used to adjust position sizing or to decide when to enter or exit a trade.
3) Trade Management
The Laguerre Filter can also assist in trade management:
Use the Laguerre line as a trailing stop for long positions in an uptrend.
Scale out of positions as the Laguerre value begins to flatten or reverse.
Use the Laguerre Filter to avoid trades when the market is in consolidation or lacks a clear trend.
Tuning Guidelines
The Laguerre Filter can be adjusted for different market conditions using the following parameters:
Gamma (Damping Factor): Adjust for the desired level of responsiveness versus smoothness. Typical values range from 0.7 to 0.85.
Filter Order: Adjust to control the level of smoothing. The default value of 4 is a good starting point, but higher orders can be used for smoother filters.
Summary
The Laguerre Filter is a versatile and adaptive trend-following indicator that smooths price data and reduces noise, making it easier to identify and follow trends. By using recursive smoothing techniques and adjustable parameters, the Laguerre Filter provides an accurate representation of market conditions with minimal lag. It is especially useful in volatile markets where traditional moving averages may fail to capture the underlying trend. With its color-coded trend detection, gradient fills, and customizable settings, the Laguerre Filter is a powerful tool for traders looking to stay aligned with the prevailing market direction.
Indicator

Universal Adaptive Tracking🙏🏻 Behold, this is UAT (Universal Adaptive Tracker) , with less words imma proceed how it compares with alternatives:
^^ comparison with non-adaptive quadratic regression (purple line), that has higher overshoots, less precision
^^ comparison with JMA and its adaptive gain. JMA’s gain is heavily limited, while UAT’s negative and positive gains are soft-saturated with p-order Möbius transform
This drop is inspired by, dedicated to, and made will all love towards Jurik Research , who retired in October 2k21. When some1 steps out, some1 has to step in, and that time it’s me (again xd). But there’s some history u gotta know:
Some history u gotta know:
In ~2008 dudes from forexfactory reverse engineered Jurik Moving Average
In late 1990s dudes from Jurik Research approximated the best possible adaptive tracking filter for evolution of prices via engineering miracles
Today in 2k26, me I'm gonna present to you the real mathematical objects/entities behind JMA top-edge engineered approximates. You will prolly be even more happy now then all the dem together back then.
Why all this?
When we talk about object tracking stuff, e.g. air defense, drones, missiles, projectiles, prices, etc, it all comes down to adaptive control and (Position & Velocity & Acceleration) aka PVA state space models (the real stuff many of you count as DSP ).
Why? Cuz while position (P) : (mean), or position & velocity (PV) : (linear regression) are stable enough in dem own ways, Position & Velocity & Acceleration (PVA) : (quadratic regression+) require adaptivity do be stable. And real world stuff needs PVA, due to non-linearity for starters.
So that’s why. If your goal is Really smoothing and no lag, u gotta go there. I see a lot of folks are crazy with it and want it, so here is it, for y’all. And good news, this is perfect for your favorite Moving Windows.
How to use it
The upper study:
The final filter (main state): just as you use other fast smoothers, MAs, etc, you know better than me here
You can also turn in volatility bands in script’s style settings, these do not require any adjustments
Finally, you can turn on, in the same place, separate trackers each based on negative and positive volatility exclusively. When both are almost equal, that indicates stability & persistence in markets. May sound like it’s nothing important, but I've never seen anything like it before. Also, if you'd allow your our inner mental gym hero gloriously arise, you can argue that these 2 separate trackers represent 2 fair prices (one for sellers, one for buyers). All better then 1 imaginary fair price for both (forget about it)
The lower study:
The lower study: you can analyze streams of upward of downward volatilities separately. This is incredibly powerful
You can also turn these off and turn on neg & pos intensities, and use them as trend detector, when each or both cross 1.5 (naturally neutral) threshold.
^^ Upper study with expected typical and maximum volatility bands turned On
...
The method explained
What you got in the end is non-linear, adaptive, lighting fast when needed and slow when required price tracking. All built upon real math entities/objects, not a brilliantly engineered approximation of them. No parameters to optimize, data tells it all.
... It all starts from a process model, in our cause this is...
MFPM (Mechanical Feedback Price Model)
Doesn’t make gaussian assumptions like most quant mainstream tech, accepts that innovations are Laplace “at best”, relies in L inf and L0 spaces.
I created this model neither trynna fit non-fitting ARMA / variants, nor trynna be silly assuming that price state evolution and markets are random.
Theory behind it: if no new volume comes, then price evolution would be simply guided by the feedback based on previous trading activity, pushing prices towards the midrange between 2 latest datapoints, being the main force behind so called “pullbacks” and reason why most pullbacks end just a bit past 50% of a move.
This is the Real mechanical feedback based mean reversion, that is always there in the markets no matter what, think of it as a background process that is always there, and fresh new volume deviates prices away from it. Btw, this can also be expressed as AR2 with both phis = 0.5 .
Then I separate positive and negative innovations from this model and process them separately, reflecting the asymmetry between buy and sell forces, smth that most forget. Both of these follow exponential distribution . Each stream has its own memory so here we use recursive operators . We track maximum innovations (differences between real and expected datapoints) with exponentially decaying damping factor, and keep tracking typical innovation, with the same factor.
Then we calculate what’s called in lovely audio engineering as “ crest factor ”, the difference is we don’t do RMS and stuff. But hey again we work with laplace innovations, so we keep things in L0 and L inf spirit. Then we go a couple of steps further, making this crest factor truly relative (resolution agnostic), and then, most importantly, we apply a natural saturation on it based on p-order Möbius transform, but not with arbitrary p and L, but guided by informational limits of the data. These final "intensity" parameters are what we need next to make our object tracking adaptive.
Extended Beta(2, 2) Window
This is imo the main part of this. Looking at tapering windows in DSP and how wavelets are made from derivatives of PDF functions of probability distributions, I figured that why use just one derivative? That made me come up with Universal Moving Average , that combines PDF and CDF of Beta(2, 2) distribution . And that is fine for P (position) tracking model.
Here we need PVA (position & velocity & acceleration). We can realize that everything starts from PDF, and by adding derivatives and anti-derivatives of it as factors of final window weights, we can create smth truly unique, a weightset that is non-arbitrary and naturally provides response alike quadratic regression does, But, naturally smoothed.
Why do I consider this a discovery, a primordial math object? Because x^2 itself and Beta(2, 2) based on it are the only primitives, esp out of all these dozens of DSP tapering windows, that provide you a finite amount of derivatives. You can keep differentiating Hann window until the kingdom f come, while Welch window aka Beta(2, 2) has a natural stopping point, because the 3rd derivative is 0, so we can’t use it. Symmetrically, we do 2 steps up from PDF, getting 1st and second anti-derivatives. What’s lovely, symmetrically, 3rd antiderivative even tho exist, it stops making any sense. 2nd one still makes sense, it’s smth like “potential” of probability distribution, not really discussed in mainstream open access sources.
Finally, the last part is to introduce adaptivity using these intensity exponents we’ve calculated with MFPM. We do 2 separate trackers, one using the negative intensity exponent, another one uses positive intensity exponent.
And at the end, even tho using both together is cool, the final state estimate is calculated simply as the state which intensity has higher.
^^ impulse response of our final kernel with fixed (non adaptive) intensity exponents: 1 (blue) and 2 (red). You see it's all about phase
…
And that’s all folks.
…
Actually no …
Last, not least, is the ability to add additional innovation weight to the kernel:
^^ Weighting by innovations “On”. Provides incredible tracking precision, paid with smoothness. I think this screenshot, showing what happened after the gap, and how the tracker managed to react, explains it all.
...
Live Long and Prosper, all good PulseWire
∞ Indicator

Indicator

Indicator

Kalman Absorption/Distribution Tracker 3-State EKFQuant-Grade Institutional Flow: 3-State EKF Absorption Tracker
SUMMARY
An advanced, open-source implementation of a 3-State Extended Kalman Filter (EKF) designed to track institutional Order Flow. By analyzing 1-second intrabar microstructure data, this script estimates the true Position, Velocity, and Volatility of the Cumulative Volume Delta (CVD), revealing hidden Absorption and Distribution events in real-time.
INTRODUCTION: THE SIGNAL AMIDST THE NOISE
In the world of technical analysis, noise is the enemy. Traditional indicators rely on Moving Averages (SMA, EMA) to smooth out price and volume data. The problem is the "Lag vs. Noise" paradox: to get a smooth signal, you must accept lag; to get a fast signal, you must accept noise.
This indicator solves that paradox by introducing aerospace-grade mathematics to the PulseWire community: The 3-State Extended Kalman Filter (EKF).
Unlike moving averages that blindly average past data, a Kalman Filter is a probabilistic state-space model. It constantly predicts where the order flow "should" be, compares it to the actual measurement, and updates its internal model based on the calculated uncertainty of the market.
This script is not just another volume oscillator. It is a full microstructure analysis engine that digests intrabar data (down to 1-second resolution) to track the true intent of "Smart Money" while filtering out the noise of retail chop.
THE INNOVATION: WHY 3 STATES?
Most Kalman Filters found in public libraries are "1-State" (tracking price only) or occasionally "2-State" (tracking price and velocity). This script introduces a highly advanced 3-State EKF.
The filter tracks three distinct variables simultaneously in a feedback loop:
State 1: Position (The True CVD)
This is the noise-filtered estimate of the Cumulative Volume Delta. It represents the actual inventory accumulation of aggressive buyers versus sellers, stripped of random noise.
State 2: Velocity (The Momentum)
This tracks the rate of change of the order flow. Is buying accelerating? Is selling pressure fading even as price drops? This provides a leading signal before the cumulative value even turns.
State 3: Volatility (The Adaptive Regime)
This is the game-changer. The filter estimates the current volatility of the order flow (Log-Volatility). In high-volatility environments (like news events), the filter automatically widens its uncertainty bands (Covariance) and reacts faster. In low-volatility environments (chop), it tightens up and ignores minor fluctuations.
THE LOGIC: DETECTING ABSORPTION AND DISTRIBUTION
The core philosophy of this indicator is based on Wyckoff Logic: Effort vs. Result.
-- Effort: Represented by the CVD (Buying/Selling pressure).
-- Result: Represented by Price Movement.
When these two diverge, we have an actionable signal. The script uses the EKF Velocity state to detect these moments:
Absorption (Bullish)
This occurs when the EKF detects high negative Velocity (aggressive selling), but Price refuses to drop. The "Smart Money" is absorbing the sell orders via limit buys. The indicator highlights this as a Blue Event in the dashboard.
Distribution (Bearish)
This occurs when the EKF detects high positive Velocity (aggressive buying), but Price refuses to rise. Limit sellers are capping the market. The indicator highlights this as an Orange Event.
TECHNICAL DEEP DIVE: UNDER THE HOOD
For the developers and quants, here is how the Pine Script is architected using the "type" and "method" features of Pine Script v5.
1. Data Ingestion (Microstructure)
The script uses "request.security_lower_tf" to pull intrabar data regardless of your chart timeframe. This allows the script to see "inside" the bar. A 5-minute candle might look green, but the microstructure might reveal that 80% of the volume was selling absorption at the wick. This script sees that.
2. Tick Classification
Standard CVD assumes that if Price Close is greater than Price Open, all volume is buying. This is often flawed. This script offers three modes of tick handling, including a "High-Low Distribution" method that statistically apportions volume based on where the tick closed relative to its high and low.
3. The EKF Mathematics
The script implements the standard Extended Kalman Filter equations manually. It calculates the Jacobian matrix to handle the non-linear relationship between volatility and price. The "Process Noise Matrix" (Q) is dynamically scaled by the Volatility State. This means the mathematics of the indicator literally "breathe" with the market conditions—expanding during expansion and contracting during consolidation.
THE DASHBOARD & VISUALS:
The indicator features a professional-grade HUD (Heads Up Display) located on the chart table.
-- EKF State Vector: Displays the real-time Position, Velocity, and Volatility values derived from the matrix.
-- Ease of Movement (Wyckoff): Calculates how much price moves per 1,000 contracts of CVD. For example, if Price moves +5 points per 1k Buy CVD, but only -2 points per 1k Sell CVD, the "Path of Least Resistance" is clearly UP.
-- Session State: Tracks cumulative confirmed Bullish vs. Bearish events for Today, Yesterday, and the Day Before (3-Day Profile).
-- Bias Summary: An algorithmic conclusion telling you if the day is "Confirmed Bullish," "Accumulating," or "Neutral."
HOW TO TRADE THIS INDICATOR
Strategy A: The Reversal (Absorption Play)
Look for price making a Lower Low.
Look for the EKF Velocity (Histogram) to be Deep Red (High Selling Pressure).
Watch the Dashboard "Absorption" count increase.
SIGNAL: When EKF Velocity crosses back toward zero and turns grey/green, the absorption is complete. This indicates sellers are exhausted and limit buyers have control.
Strategy B: The Trend Continuation (Ease of Movement)
Check the Dashboard "Ease of Movement" section.
If "Price per +1K CVD" is significantly higher than "Price per -1K CVD", buyers are efficient.
Wait for a pullback where EKF Velocity hits the "Neutral Zone" (Gray).
SIGNAL: Enter Long when Velocity ticks positive again, aligning with the dominant Ease of Movement stats.
CONFIGURATION GUIDE:
Because this is a quant-grade tool, the settings allow for fine-tuning the physics of the filter.
-- Velocity Decay: Controls how fast momentum resets to zero. Set high (0.98) for trending markets, or lower (0.85) for mean-reverting chop.
-- Volatility Persistence: Controls how "sticky" volatility regimes are.
-- Process Noise: Increase this if the filter feels too laggy; decrease it if the filter feels too jittery (noisy).
-- Measurement Noise: Increase this to trust the Mathematical Model more than the Price Data (smoother output).
WHY OPEN SOURCE?
Complex statistical filtering is often sold behind closed doors in expensive "Black Box" algorithms. By releasing this 3-State EKF open source, the goal is to raise the standard of development on PulseWire.
I encourage the community to inspect the code, specifically the "ekf_update_3state" function, to understand how matrix operations can be simulated in Pine Script to create adaptive, self-correcting indicators. And also update me for improvements.
DISCLAIMER:
This tool analyzes microstructure volume data. It requires a subscription plan that supports Intrabar inspection (Premium/Pro recommended for best results). Past performance of the Kalman Filter logic does not guarantee future results. Volume analysis is subjective and should be used as part of a comprehensive strategy.
SUGGESTED SETTINGS
-- Timeframe: Works best on 1m, 3m, or 5m charts (Intrabar data is fetched from 1S).
-- Asset Class: Highly effective on Futures (ES, NQ, BTC) and high-volume Forex/Crypto pairs where volume data is reliable.
-- Background: Dark mode recommended for Dashboard visibility.
WHAT IS A KALMAN FILTER?
Imagine driving a car into a tunnel where your GPS signal is lost.
Prediction: Your car knows its last speed (Velocity) and position. It predicts where you are every second inside the tunnel.
Update: When you exit the tunnel, the GPS connects again. The system compares where it thought you were versus where the satellite says you are.
Correction: It corrects your position and updates its estimate of your speed.
Now apply this to trading:
-- The Tunnel: Market Noise, wicks, and Fake-outs.
-- The Car: The True Market Trend.
-- This Indicator: The navigation system that tells you where the market actually is, ignoring the noise of the tunnel.
Enjoy the indicator and trade safe!
Dr. Jay Desai
(Investment Management & Derivatives Area, Gujarat University)
Indicator

EDUVEST QQE Grade System - S/A/B/C Signal ClassificationEDUVEST QQE Grade System - S/A/B/C Signal Classification
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ ORIGINALITY
This indicator introduces a unique grading system (S/A/B/C) for QQE signals, combining traditional QQE analysis with SMC (Smart Money Concepts) price zones and trading session filters. Unlike standard QQE indicators that show all signals equally, this version classifies signals by quality to help traders focus on the highest probability setups.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ WHAT IT DOES
- Generates BUY/SELL signals with S/A/B/C grade classification
- Automatically detects asset type and applies optimized QQE factors
- Integrates SMC price zones (support/resistance) for grade enhancement
- Filters signals by trading session time
- Displays real-time session and market status
Grade Hierarchy:
- S (Gold/Orange): Signal near SMC zone + active trading hours - Highest quality
- A (Green/Red): Score 70+ during trading hours - High quality
- B (Darker): Score 50-69 during trading hours - Medium quality
- C (Gray, small): Outside trading hours or weak signal - Low quality
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ HOW IT WORKS
【QQE Core Calculation】
The QQE (Quantitative Qualitative Estimation) is calculated as:
1. RSI with configurable period (default: 14)
2. EMA smoothing of RSI (Smoothing Factor: 5)
3. Dynamic bands using Wilder's smoothing: RSI ± (ATR of RSI × QQE Factor)
QQE Factor is auto-adjusted per asset:
- USD/JPY: 4.238
- EUR/USD: 3.8
- Gold (XAU/USD): 8.0
- NASDAQ/US100: 9.0
【Signal Generation】
- BUY: QQE line crosses above its trailing stop (QQExlong == 1)
- SELL: QQE line crosses below its trailing stop (QQExshort == 1)
【Internal Scoring System】
Score components (0-100):
- Signal Base: +25 points when signal occurs
- QQE Strength: +10 to +20 based on RSI distance from 50
- Volatility: +15 (optimal ATR ratio 1.1-2.0), -10 (low volatility)
- Volume Confirmation: +10 (high volume), -5 (low volume)
- Session Bonus: +5 during London/NY sessions
- Base: +20 points
【Grade Assignment】
- Grade S: Signal near user-defined SMC price zone (within tolerance %) AND during trading hours
- Grade A: Internal score >= 70 AND during trading hours
- Grade B: Internal score >= 50 AND during trading hours
- Grade C: Outside trading hours OR score < 50
【SMC Price Zone Integration】
Users can set support/resistance levels for each asset. When price is within the tolerance percentage of these levels, signals are upgraded to S-grade, indicating confluence with institutional price levels.
【Trading Session Filter】
Configurable active trading hours (JST timezone):
- Default: 15:00 - 01:00 JST (London + NY overlap)
- Signals outside this window receive C-grade
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ HOW TO USE
【Recommended Settings】
- Timeframe: 15M, 1H, 4H
- Best on: USD/JPY, EUR/USD, Gold, NASDAQ
- Focus on: S and A grade signals
【Trading Strategy】
- S-Grade (Gold/Orange): Highest conviction - consider larger position
- A-Grade (Green/Red): Strong signal - standard position
- B-Grade: Valid but use additional confirmation
- C-Grade: Avoid or use minimal size
【Setting Up SMC Zones】
1. Identify key support/resistance on higher timeframe
2. Input prices in SMC Price Settings
3. Adjust tolerance % (default: 0.15%)
4. S-grade appears when signal occurs near these levels
【Info Panel】
Top-right panel shows:
- Asset name and detection mode (Auto/Manual)
- Current session (Tokyo/London/NY)
- Trading hours status
- SMC zone proximity
【Alert Setup】
1. Enable alerts in settings
2. Create alert with "Any alert() function call"
3. Alerts include grade, price, and session info
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ SETTINGS
Basic Settings:
- Enable Alerts: Turn on/off notifications
- Time Filter: Activate trading hour filter
- Start/End Hour: Define active trading window (JST)
QQE Settings:
- RSI Period: RSI calculation period
- RSI Smoothing: EMA smoothing factor
- Auto QQE Factor: Auto-detect optimal factor per asset
- Manual QQE Factor: Override when auto is disabled
SMC Price Settings:
- Support/Resistance levels for each asset
- Tolerance %: How close to SMC line for S-grade
Display Settings:
- Grade Only: Hide QQE lines, show only signals
- Show SMC Lines: Display support/resistance on chart
- Show Debug: Display asset detection info
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ CREDITS
QQE concept originally developed by John Ehlers.
SMC (Smart Money Concepts) integration and grading system by EduVest.
License: Mozilla Public License 2.0 Indicator

Filtered TEMA CrossoverFiltered Dual TEMA Crossover
This indicator is a trend-following tool based on the classic Dual Triple Exponential Moving Average (TEMA) Crossover strategy, enhanced with two robust filters: the Chop Index and the Average Directional Index (ADX).
The TEMA is known for its low lag and high responsiveness, making the crossover an effective signal for trend reversals. However, trading TEMA crossovers during sideways, choppy markets often leads to false signals. This is where the filters come in.
Key Features
▪️Dual TEMA Crossover: Plots two customizable TEMA lines (Fast and Slow) for clear visualization of the primary trend direction.
▪️Intelligent Signal Filtering: Buy and Sell signals are generated only when the market confirms it is in a trending state, thanks to two integrated filters:
➖Chop Index Filter: Blocks signals when the market is detected as sideways or consolidating (Chop Index reading above a user-defined threshold).
➖ADX Filter: Ensures signals are only taken when the trend strength is sufficient (ADX reading above a user-defined minimum threshold).
▪️Customizable Signals: Full control over the signal shapes (Arrows, Triangles, etc.), colors, text, and size.
How to Use It
Use the Filtered Dual TEMA Crossover to enter positions on trend continuation or reversal while dramatically reducing exposure to low-quality, whipsawing signals common in non-trending environments.
Before the filters:
After the filters:
Minimize Noise. Maximize Clarity. Trade the Trend. Indicator

TASC 2025.12 The One Euro Filter█ OVERVIEW
This script implements the One Euro filter, developed by Georges Casiez, Nicolas Roussel, and Daniel Vogel, and adapted by John F. Ehlers in his article "Low-Latency Smoothing" from the December 2025 edition of the TASC Traders' Tips . The original creators gave the filter its name to suggest that it is cheap and efficient, like something one might purchase for a single Euro.
█ CONCEPTS
The One Euro filter is an EMA-based low-pass filter that adapts its smoothing factor (alpha) based on the absolute values of smoothed rates of change in the source series. It was designed to filter noisy, high-frequency signals in real time with low latency. Ehlers simplifies the filter for market analysis by calculating alpha in terms of bar periods rather than time and frequency, because periods are naturally intuitive for a discrete financial time series.
In his article, Ehlers demonstrates how traders can apply the adaptive One Euro filter to a price series for simple low-latency smoothing. Additionally, he explains that traders can use the filter as a smoothed oscillator by applying it to a high-pass filter. In essence, similar to other low-pass filters, traders can apply the One Euro filter to any custom source to derive a smoother signal with reduced noise and low lag.
This script applies the One Euro filter to a specified source series, and it applies the filter to a two-pole high-pass filter or other oscillator, depending on the selected "Osc type" option. By default, it displays the filtered source series on the main chart pane, and it shows the oscillator and its filtered series in a separate pane.
█ INPUTS
Source: The source series for the first filter and the selected oscillator.
Min period: The minimum cutoff period for the smoothing calculation.
Beta: Controls the responsiveness of the filter. The filter adds the product of this value and the smoothed source change to the minimum period to determine the filter's smoothing factor. Larger values cause more significant changes in the maximum cutoff period, resulting in a smoother response.
Osc type: The type of oscillator to calculate for the pane display. By default, the indicator calculates a high-pass filter. If the selected type is "None", the indicator displays the "Source" series and its filtered result in a separate pane rather than showing the filter on the main chart. With this setting, users can pass plotted values from another indicator and view the filtered result in the pane.
Period: The length for the selected oscillator's calculation.
Indicator

ADX Trend Strength Filter + TRAMA [DotGain]Summary
Are you tired of trading trend signals, only to get stopped out in volatile, sideways chop?
The ADX Trend Strength Filter (ADX TSF) is designed to solve this exact problem. It is a comprehensive trend-following system that only generates signals when a trend not only has the right direction and momentum, but also sufficient strength.
This indicator filters out weak or indecisive market phases (the "chop") and will only color the bars Green or Red when all conditions for a strong, confirmed trend are met.
⚙️ Core Components and Logic
The ADX TSF relies on a triple-filter logic to generate a clear trade signal:
Trend Filter (TRAMA): A TRAMA (Trending Adaptive Moving Average) is used as the main trendline. This adaptive average automatically adjusts to market volatility, acting as a dynamic support/resistance level.
Price > TRAMA = Bullish
Price < TRAMA = Bearish
Momentum Filter (RSI Crossover): Momentum is measured by a crossover of two moving averages of the RSI (a fast EMA and a slow SMA). This confirms whether the momentum is pointing in the same direction as the trend.
Strength Filter (ADX): This is the most important filter. A signal is only considered valid if the ADX (Average Directional Index) is above a defined threshold (Default: 30). This ensures the trend has sufficient strength.
🚦 How to Read the Indicator
The indicator has three states, displayed directly as bar colors on your chart:
🟩 GREEN BARS (Strong Uptrend) All three conditions are met:
Price is above the TRAMA.
RSI momentum is bullish (Fast MA > Slow MA).
ADX is above 30 (Strong trend is present).
🟥 RED BARS (Strong Downtrend) All three conditions are met:
Price is below the TRAMA.
RSI momentum is bearish (Fast MA < Slow MA).
ADX is above 30 (Strong trend is present).
🟧 ORANGE BARS (Neutral / Caution) This state appears if any of the following conditions are true:
Weak Trend: The ADX is below 30. The market is in consolidation or a sideways phase. (This is the primary filter!)
Indecision: The price is caught in the "Neutral Zone" between the TRAMA and the 200 SMA.
Visual Elements
Bar Colors: (Green/Red/Orange) Show the current trend status.
TRAMA (Orange Line): Your primary adaptive trendline.
200 SMA (White Line): Serves as a reference for the long-term trend.
Orange Background (Fill): Fills the area between the TRAMA and SMA to visually highlight the "Neutral Zone."
Key Benefit
The goal of the ADX TSF is to keep traders out of weak, unpredictable markets and help them participate only in strong, momentum-confirmed trends.
Have fun :)
Disclaimer
This "Buy The F*cking Dip" (BTFD) indicator is provided for informational and educational purposes only. It does not, and should not be construed as, financial, investment, or trading advice.
The signals generated by this tool (both "Buy" and "Sell") are the result of a specific set of algorithmic conditions. They are not a direct recommendation to buy or sell any asset. All trading and investing in financial markets involves substantial risk of loss. You can lose all of your invested capital.
Past performance is not indicative of future results. The signals generated may produce false or losing trades. The creator (© DotGain) assumes no liability for any financial losses or damages you may incur as a result of using this indicator.
You are solely responsible for your own trading and investment decisions. Always conduct your own research (DYOR) and consider your personal risk tolerance before making any trades. Indicator

Kalman VWAP Filter [BackQuant]Kalman VWAP Filter
A precision-engineered price estimator that fuses Kalman filtering with the Volume-Weighted Average Price (VWAP) to create a smooth, adaptive representation of fair value. This hybrid model intelligently balances responsiveness and stability, tracking trend shifts with minimal noise while maintaining a statistically grounded link to volume distribution.
If you would like to see my original Kalman Filter, please find it here:
Concept overview
The Kalman VWAP Filter is built on two core ideas from quantitative finance and control theory:
Kalman filtering — a recursive Bayesian estimator used to infer the true underlying state of a noisy system (in this case, fair price).
VWAP anchoring — a dynamic reference that weights price by traded volume, representing where the majority of transactions have occurred.
By merging these concepts, the filter produces a line that behaves like a "smart moving average": smooth when noise is high, fast when markets trend, and self-adjusting based on both market structure and user-defined noise parameters.
How it works
Measurement blend : Combines the chosen Price Source (e.g., close or hlc3) with either a Session VWAP or a Rolling VWAP baseline. The VWAP Weight input controls how much the filter trusts traded volume versus price movement.
Kalman recursion : Each bar updates an internal "state estimate" using the Kalman gain, which determines how much to trust new observations vs. the prior state.
Noise parameters :
Process Noise controls agility — higher values make the filter more responsive but also more volatile.
Measurement Noise controls smoothness — higher values make it steadier but slower to adapt.
Filter order (N) : Defines how many parallel state estimates are used. Larger orders yield smoother output by layering multiple one-dimensional Kalman passes.
Final output : A refined price trajectory that captures VWAP-adjusted fair value while dynamically adjusting to real-time volatility and order flow.
Why this matters
Most smoothing techniques (EMA, SMA, Hull) trade off lag for smoothness. Kalman filtering, however, adaptively rebalances that tradeoff each bar using probabilistic weighting, allowing it to follow market state changes more efficiently. Anchoring it to VWAP integrates microstructure context — capturing where liquidity truly lies rather than only where price moves.
Use cases
Trend tracking : Color-coded candle painting highlights shifts in slope direction, revealing early trend transitions.
Fair value mapping : The line represents a continuously updated equilibrium price between raw price action and VWAP flow.
Adaptive moving average replacement : Outperforms static MAs in variable volatility regimes by self-adjusting smoothness.
Execution & reversion logic : When price diverges from the Kalman VWAP, it may indicate short-term imbalance or overextension relative to volume-adjusted fair value.
Cross-signal framework : Use with standard VWAP or other filters to identify convergence or divergence between liquidity-weighted and state-estimated prices.
Parameter guidance
Process Noise : 0.01–0.05 for swing traders, 0.1–0.2 for intraday scalping.
Measurement Noise : 2–5 for normal use, 8+ for very smooth tracking.
VWAP Weight : 0.2–0.4 balances both price and VWAP influence; 1.0 locks output directly to VWAP dynamics.
Filter Order (N) : 3–5 for reactive short-term filters; 8–10 for smoother institutional-style baselines.
Interpretation
When price > Kalman VWAP and slope is positive → bullish pressure; buyers dominate above fair value.
When price < Kalman VWAP and slope is negative → bearish pressure; sellers dominate below fair value.
Convergence of price and Kalman VWAP often signals equilibrium; strong divergence suggests imbalance.
Crosses between Kalman VWAP and the base VWAP can hint at shifts in short-term vs. long-term liquidity control.
Summary
The Kalman VWAP Filter blends statistical estimation with market microstructure awareness, offering a refined alternative to static smoothing indicators. It adapts in real time to volatility and order flow, helping traders visualize balance, transition, and momentum through a lens of probabilistic fair value rather than simple price averaging.
Indicator

Renko BandsThis is renko without the candles, just the endpoint plotted as a line with bands around it that represent the brick size. The idea came from thinking about what renko actually gives you once you strip away the visual brick format. At its core, renko is a filtered price series that only updates when price moves a fixed amount, which means it's inherently a trend-following mechanism with built-in noise reduction. By plotting just the renko price level and surrounding it with bands at the brick threshold distances, you get something that works like regular volatility bands while still behaving as a trend indicator.
The center line is the current renko price, which trails actual price based on whichever brick sizing method you've selected. When price moves enough to complete a brick in the renko calculation, the center line jumps to the new brick level. The bands sit at plus and minus one brick size from that center line, showing you exactly how far price needs to move before the next brick would form. This makes the bands function as dynamic breakout levels. When price touches or crosses a band, you know a new renko brick is forming and the trend calculation is updating.
What makes this cool is the dual-purpose nature. You can use it like traditional volatility bands where the outer edges represent boundaries of normal price movement, and breaks beyond those boundaries signal potential trend continuation or exhaustion. But because the underlying calculation is renko rather than standard deviation or ATR around a moving average, the bands also give you direct insight into trend state. When the center line is rising consistently and price stays near the upper band, you're in a clean uptrend. When it's falling and price hugs the lower band, downtrend. When the center line is flat and price is bouncing between both bands, you're ranging.
The three brick sizing methods work the same way as standard renko implementations. Traditional sizing uses a fixed price range, so your bands are always the same absolute distance from the center line. ATR-based sizing calculates brick range from historical volatility, which makes the bands expand and contract based on the ATR measurement you chose at startup. Percentage-based sizing scales the brick size with price level, so the bands naturally widen as price increases and narrow as it decreases. This automatic scaling is particularly useful for instruments that move proportionally rather than in fixed increments.
The visual simplicity compared to full renko bricks makes this more practical for overlay use on your main chart. Instead of trying to read brick patterns in a separate pane or cluttering your price chart with boxes and lines, you get a single smoothed line with two bands that convey the same information about trend state and momentum. The center line shows you the filtered trend direction, the bands show you the threshold levels, and the relationship between price and the bands tells you whether the current move has legs or is stalling out.
From a trend-following perspective, the renko line naturally stays flat during consolidation and only moves when directional momentum is strong enough to complete bricks. This built-in filter removes a lot of the whipsaw that affects moving averages during choppy periods. Traditional moving averages continue updating with every bar regardless of whether meaningful directional movement is happening, which leads to false signals when price is just oscillating. The renko line only responds to sustained moves that meet the brick size threshold, so it tends to stay quiet when price is going nowhere and only signals when something is actually happening.
The bands also serve as natural stop-loss or profit-target references since they represent the distance price needs to move before the trend calculation changes. If you're long and the renko line is rising, you might place stops below the lower band on the theory that if price falls far enough to reverse the renko trend, your thesis is probably invalidated. Conversely, the upper band can mark levels where you'd expect the current brick to complete and potentially see some consolidation or pullback before the next brick forms.
What this really highlights is that renko's value isn't just in the brick visualization, it's in the underlying filtering mechanism. By extracting that mechanism and presenting it in a more traditional band format, you get access to renko's trend-following properties without needing to commit to the brick chart aesthetic or deal with the complications of overlaying brick drawings on a time-based chart. It's renko after all, so you get the trend filtering and directional clarity that makes renko useful, but packaged in a way that integrates more naturally with standard technical analysis workflows. Indicator

IIR One-Pole Price Filter [BackQuant]IIR One-Pole Price Filter
A lightweight, mathematically grounded smoothing filter derived from signal processing theory, designed to denoise price data while maintaining minimal lag. It provides a refined alternative to the classic Exponential Moving Average (EMA) by directly controlling the filter’s responsiveness through three interchangeable alpha modes: EMA-Length , Half-Life , and Cutoff-Period .
Concept overview
An IIR (Infinite Impulse Response) filter is a type of recursive filter that blends current and past input values to produce a smooth, continuous output. The "one-pole" version is its simplest form, consisting of a single recursive feedback loop that exponentially decays older price information. This makes it both memory-efficient and responsive , ideal for traders seeking a precise balance between noise reduction and reaction speed.
Unlike standard moving averages, the IIR filter can be tuned in physically meaningful terms (such as half-life or cutoff frequency) rather than just arbitrary periods. This allows the trader to think about responsiveness in the same way an engineer or physicist would interpret signal smoothing.
Why use it
Filters out market noise without introducing heavy lag like higher-order smoothers.
Adapts to various trading speeds and time horizons by changing how alpha (responsiveness) is parameterized.
Provides consistent and mathematically interpretable control of smoothing, suitable for both discretionary and algorithmic systems.
Can serve as the core component in adaptive strategies, volatility normalization, or trend extraction pipelines.
Alpha Modes Explained
EMA-Length : Classic exponential decay with alpha = 2 / (L + 1). Equivalent to a standard EMA but exposed directly for fine control.
Half-Life : Defines the number of bars it takes for the influence of a price input to decay by half. More intuitive for time-domain analysis.
Cutoff-Period : Inspired by analog filter theory, defines the cutoff frequency (in bars) beyond which price oscillations are heavily attenuated. Lower periods = faster response.
Formula in plain terms
Each bar updates as:
yₜ = yₜ₋₁ + alpha × (priceₜ − yₜ₋₁)
Where alpha is the smoothing coefficient derived from your chosen mode.
Smaller alpha → smoother but slower response.
Larger alpha → faster but noisier response.
Practical application
Trend detection : When the filter line rises, momentum is positive; when it falls, momentum is negative.
Signal timing : Use the crossover of the filter vs its previous value (or price) as an entry/exit condition.
Noise suppression : Apply on volatile assets or lower timeframes to remove flicker from raw price data.
Foundation for advanced filters : The one-pole IIR serves as a building block for multi-pole cascades, adaptive smoothers, and spectral filters.
Customization options
Alpha Scale : Multiplies the final alpha to fine-tune aggressiveness without changing the mode’s core math.
Color Painting : Candles can be painted green/red by trend direction for visual clarity.
Line Width & Transparency : Adjust the visual intensity to integrate cleanly with your charting style.
Interpretation tips
A smooth yet reactive line implies optimal tuning — minimal delay with reduced false flips.
A sluggish line suggests alpha is too small (increase responsiveness).
A noisy, twitchy line means alpha is too large (increase smoothing).
Half-life tuning often feels more natural for aligning filter speed with price cycles or bar duration.
Summary
The IIR One-Pole Price Filter is a signal smoother that merges simplicity with mathematical rigor. Whether you’re filtering for entry signals, generating trend overlays, or constructing larger multi-stage systems, this filter delivers stability, clarity, and precision control over noise versus lag, an essential tool for any quantitative or systematic trading approach.
Indicator

Volume Based Sampling [BackQuant]Volume Based Sampling
What this does
This indicator converts the usual time-based stream of candles into an event-based stream of “synthetic” bars that are created only when enough trading activity has occurred . You choose the activity definition:
Volume bars : create a new synthetic bar whenever the cumulative number of shares/contracts traded reaches a threshold.
Dollar bars : create a new synthetic bar whenever the cumulative traded dollar value (price × volume) reaches a threshold.
The script then keeps an internal ledger of these synthetic opens, highs, lows, closes, and volumes, and can display them as candles, plot a moving average calculated over the synthetic closes, mark each time a new sample is formed, and optionally overlay the native time-bars for comparison.
Why event-based sampling matters
Markets do not release information on a clock: activity clusters during news, opens/closes, and liquidity shocks. Event-based bars normalize for that heteroskedastic arrival of information: during active periods you get more bars (finer resolution); during quiet periods you get fewer bars (coarser resolution). Research shows this can reduce microstructure pathologies and produce series that are closer to i.i.d. and more suitable for statistical modeling and ML. In particular:
Volume and dollar bars are a common event-time alternative to time bars in quantitative research and are discussed extensively in Advances in Financial Machine Learning (AFML). These bars aim to homogenize information flow by sampling on traded size or value rather than elapsed seconds.
The Volume Clock perspective models market activity in “volume time,” showing that many intraday phenomena (volatility, liquidity shocks) are better explained when time is measured by traded volume instead of seconds.
Related market microstructure work on flow toxicity and liquidity highlights that the risk dealers face is tied to information intensity of order flow, again arguing for activity-based clocks.
How the indicator works (plain English)
Choose your bucket type
Volume : accumulate volume until it meets a threshold.
Dollar Bars : accumulate close × volume until it meets a dollar threshold.
Pick the threshold rule
Dynamic threshold : by default, the script computes a rolling statistic (mean or median) of recent activity to set the next bucket size. This adapts bar size to changing conditions (e.g., busier sessions produce more frequent synthetic bars).
Fixed threshold : optionally override with a constant target (e.g., exactly 100,000 contracts per synthetic bar, or $5,000,000 per dollar bar).
Build the synthetic bar
While a bucket fills, the script tracks:
o_s: first price of the bucket (synthetic open)
h_s: running maximum price (synthetic high)
l_s: running minimum price (synthetic low)
c_s: last price seen (synthetic close)
v_s: cumulative native volume inside the bucket
d_samples: number of native bars consumed to complete the bucket (a proxy for “how fast” the threshold filled)
Emit a new sample
Once the bucket meets/exceeds the threshold, a new synthetic bar is finalized and stored. If overflow occurs (e.g., a single native bar pushes you past the threshold by a lot), the code will emit multiple synthetic samples to account for the extra activity.
Maintain a rolling history efficiently
A ring buffer can overwrite the oldest samples when you hit your Max Stored Samples cap, keeping memory usage stable.
Compute synthetic-space statistics
The script computes an SMA over the last N synthetic closes and basic descriptors like average bars per synthetic sample, mean and standard deviation of synthetic returns, and more. These are all in event time , not clock time.
Inputs and options you will actually use
Data Settings
Sampling Method : Volume or Dollar Bars.
Rolling Lookback : window used to estimate the dynamic threshold from recent activity.
Filter : Mean or Median for the dynamic threshold. Median is more robust to spikes.
Use Fixed? / Fixed Threshold : override dynamic sizing with a constant target.
Max Stored Samples : cap on synthetic history to keep performance snappy.
Use Ring Buffer : turn on to recycle storage when at capacity.
Indicator Settings
SMA over last N samples : moving average in synthetic space . Because its index is sample count, not minutes, it adapts naturally: more updates in busy regimes, fewer in quiet regimes.
Visuals
Show Synthetic Bars : plot the synthetic OHLC candles.
Candle Color Mode :
Green/Red: directional close vs open
Volume Intensity: opacity scales with synthetic size
Neutral: single color
Adaptive: graded by how large the bucket was relative to threshold
Mark new samples : drop a small marker whenever a new synthetic bar prints.
Comparison & Research
Show Time Bars : overlay the native time-based candles to visually compare how the two sampling schemes differ.
How to read it, step by step
Turn on “Synthetic Bars” and optionally overlay “Time Bars.” You will see that during high-activity bursts, synthetic bars print much faster than time bars.
Watch the synthetic SMA . Crosses in synthetic space can be more meaningful because each update represents a roughly comparable amount of traded information.
Use the “Avg Bars per Sample” in the info table as a regime signal. Falling average bars per sample means activity is clustering, often coincident with higher realized volatility.
Try Dollar Bars when price varies a lot but share count does not; they normalize by dollar risk taken in each sample. Volume Bars are ideal when share count is a better proxy for information flow in your instrument.
Quant finance background and citations
Event time vs. clock time : Easley, López de Prado, and O’Hara advocate measuring intraday phenomena on a volume clock to better align sampling with information arrival. This framing helps explain volatility bursts and liquidity droughts and motivates volume-based bars.
Flow toxicity and dealer risk : The same authors show how adverse selection risk changes with the intensity and informativeness of order flow, further supporting activity-based clocks for modeling and risk management.
AFML framework : In Advances in Financial Machine Learning , event-driven bars such as volume, dollar, and imbalance bars are presented as superior sampling units for many ML tasks, yielding more stationary features and fewer microstructure distortions than fixed time bars. ( Alpaca )
Practical use cases
1) Regime-aware moving averages
The synthetic SMA in event time is not fooled by quiet periods: if nothing of consequence trades, it barely updates. This can make trend filters less sensitive to calendar drift and more sensitive to true participation.
2) Breakout logic on “equal-information” samples
The script exposes simple alerts such as breakout above/below the synthetic SMA . Because each bar approximates a constant amount of activity, breakouts are conditioned on comparable informational mass, not arbitrary time buckets.
3) Volatility-adaptive backtests
If you use synthetic bars as your base data stream, most signal rules become self-paced : entry and exit opportunities accelerate in fast markets and slow down in quiet regimes, which often improves the realism of slippage and fill modeling in research pipelines (pair this indicator with strategy code downstream).
4) Regime diagnostics
Avg Bars per Sample trending down: activity is dense; expect larger realized ranges.
Return StdDev (synthetic) rising: noise or trend acceleration in event time; re-tune risk.
Interpreting the info panel
Method : your sampling choice and current threshold.
Total Samples : how many synthetic bars have been formed.
Current Vol/Dollar : how much of the next bucket is already filled.
Bars in Bucket : native bars consumed so far in the current bucket.
Avg Bars/Sample : lower means higher trading intensity.
Avg Return / Return StdDev : return stats computed over synthetic closes .
Research directions you can build from here
Imbalance and run bars
Extend beyond pure volume or dollar thresholds to imbalance bars that trigger on directional order flow imbalance (e.g., buy volume minus sell volume), as discussed in the AFML ecosystem. These often further homogenize distributional properties used in ML. alpaca.markets
Volume-time indicators
Re-compute classical indicators (RSI, MACD, Bollinger) on the synthetic stream. The premise is that signals are updated by traded information , not seconds, which may stabilize indicator behavior in heteroskedastic regimes.
Liquidity and toxicity overlays
Combine synthetic bars with proxies of flow toxicity to anticipate spread widening or volatility clustering. For instance, tag synthetic bars that surpass multiples of the threshold and test whether subsequent realized volatility is elevated.
Dollar-risk parity sampling for portfolios
Use dollar bars to align samples across assets by notional risk, enabling cleaner cross-asset features and comparability in multi-asset models (e.g., correlation studies, regime clustering). AFML discusses the benefits of event-driven sampling for cross-sectional ML feature engineering.
Microstructure feature set
Compute duration in native bars per synthetic sample , range per sample , and volume multiple of threshold as inputs to state classifiers or regime HMMs . These features are inherently activity-aware and often predictive of short-horizon volatility and trend persistence per the event-time literature. ( Alpaca )
Tips for clean usage
Start with dynamic thresholds using Median over a sensible lookback to avoid outlier distortion, then move to Fixed thresholds when you know your instrument’s typical activity scale.
Compare time bars vs synthetic bars side by side to develop intuition for how your market “breathes” in activity time.
Keep Max Stored Samples reasonable for performance; the ring buffer avoids memory creep while preserving a rolling window of research-grade data.
Indicator
