HEMA Trend Levels [AlgoAlpha]OVERVIEW
This script plots two Hull-EMA (HEMA) curves to define a color-coded dynamic trend zone and generate context-aware breakout levels, allowing traders to easily visualize prevailing momentum and identify high-probability breakout retests. The script blends smoothed price tracking with conditional box plotting, delivering both trend-following and mean-reversion signals within one system. It is designed to be simple to read visually while offering nuanced trend shifts and test confirmations.
█ CONCEPTS
The Hull-EMA (HEMA) is a hybrid moving average combining the responsiveness of short EMAs with the smoothness of longer ones. It applies layered smoothing: first by subtracting a full EMA from a half-length EMA (doubling the short EMA's weight), and then by smoothing the result again with the square root of the original length. This process reduces lag while maintaining clarity in direction changes. In this script, two HEMAs—fast and slow—are used to define the trend structure and trigger events when they cross. These crossovers generate "trend shift boxes"—temporary support or resistance zones drawn immediately after trend transitions—to detect price retests in the new direction. When price cleanly retests these levels, the script marks them as confirmations with triangle symbols, helping traders isolate better continuation setups. Color-coded bars further enhance visual interpretation: bullish bars when price is above both HEMAs, bearish when below, and neutral (gray) when indecisive.
█ FEATURES
Bullish and bearish bar coloring based on price and HEMA alignment.
Box plotting at each crossover (bullish or bearish) to create short-term decision zones.
Real-time test detection: price must cleanly test and bounce from box levels to be considered valid.
Multiple alert conditions: crossover alerts, test alerts, and trend continuation alerts.
█ USAGE
Use this indicator on any time frame and asset. Adjust HEMA lengths to match your trading style—shorter lengths for scalping or intraday, longer for swing trading. The shaded area between HEMAs helps visually define the current trend. Watch for crossovers: a bullish crossover plots a green support box just below price, and a bearish one plots a red resistance box just above. These zones act as short-term decision points. When price returns to test a box and confirms with strong rejection (e.g., closes above for bullish or below for bearish), a triangle symbol is plotted. These tests can signal strong trend continuation. For traders looking for clean entries, combining the crossover with a successful retest improves reliability. Alerts can be enabled for all key signals: trend shift, test confirmations, and continuation conditions, making it suitable for automated setups or discretionary traders tracking multiple charts.
Meanreversion
Multi-Anchored Linear Regression Channels [TANHEF]█ Overview:
The 'Multi-Anchored Linear Regression Channels ' plots multiple dynamic regression channels (or bands) with unique selectable calculation types for both regression and deviation. It leverages a variety of techniques, customizable anchor sources to determine regression lengths, and user-defined criteria to highlight potential opportunities.
Before getting started, it's worth exploring all sections, but make sure to review the Setup & Configuration section in particular. It covers key parameters like anchor type, regression length, bias, and signal criteria—essential for aligning the tool with your trading strategy.
█ Key Features:
⯁ Multi-Regression Capability:
Plot up to three distinct regression channels and/or bands simultaneously, each with customizable anchor types to define their length.
⯁ Regression & Deviation Methods:
Regressions Types:
Standard: Uses ordinary least squares to compute a simple linear trend by averaging the data and deriving a slope and endpoints over the lookback period.
Ridge: Introduces L2 regularization to stabilize the slope by penalizing large coefficients, which helps mitigate multicollinearity in the data.
Lasso: Uses L1 regularization through soft-thresholding to shrink less important coefficients, yielding a simpler model that highlights key trends.
Elastic Net: Combines L1 and L2 penalties to balance coefficient shrinkage and selection, producing a robust weighted slope that handles redundant predictors.
Huber: Implements the Huber loss with iteratively reweighted least squares (IRLS) and EMA-style weights to reduce the impact of outliers while estimating the slope.
Least Absolute Deviations (LAD): Reduces absolute errors using iteratively reweighted least squares (IRLS), yielding a slope less sensitive to outliers than squared-error methods.
Bayesian Linear: Merges prior beliefs with weighted data through Bayesian updating, balancing the prior slope with data evidence to derive a probabilistic trend.
Deviation Types:
Regressive Linear (Reverse): In reverse order (recent to oldest), compute weighted squared differences between the data and a line defined by a starting value and slope.
Progressive Linear (Forward): In forward order (oldest to recent), compute weighted squared differences between the data and a line defined by a starting value and slope.
Balanced Linear: In forward order (oldest to newest), compute regression, then pair to source data in reverse order (newest to oldest) to compute weighted squared differences.
Mean Absolute: Compute weighted absolute differences between each data point and its regression line value, then aggregate them to yield an average deviation.
Median Absolute: Determine the weighted median of the absolute differences between each data point and its regression line value to capture the central tendency of deviations.
Percent: Compute deviation as a percentage of a base value by multiplying that base by the specified percentage, yielding symmetric positive and negative deviations.
Fitted: Compare a regression line with high and low series values by computing weighted differences to determine the maximum upward and downward deviations.
Average True Range: Iteratively compute the weighted average of absolute differences between the data and its regression line to yield an ATR-style deviation measure.
Bias:
Bias: Applies EMA or inverse-EMA style weighting to both Regression and/or Deviation, emphasizing either recent or older data.
⯁ Customizable Regression Length via Anchors:
Anchor Types:
Fixed: Length.
Bar-Based: Bar Highest/Lowest, Volume Highest/Lowest, Spread Highest/Lowest.
Correlation: R Zero, R Highest, R Lowest, R Absolute.
Slope: Slope Zero, Slope Highest, Slope Lowest, Slope Absolute.
Indicator-Based: Indicators Highest/Lowest (ADX, ATR, BBW, CCI, MACD, RSI, Stoch).
Time-Based: Time (Day, Week, Month, Quarter, Year, Decade, Custom).
Session-Based: Session (Tokyo, London, New York, Sydney, Custom).
Event-Based: Earnings, Dividends, Splits.
External: Input Source Highest/Lowest.
Length Selection:
Maximum: The highest allowed regression length (also fixed value of “Length” anchor).
Minimum: The shortest allowed length, ensuring enough bars for a valid regression.
Step: The sampling interval (e.g., 1 checks every bar, 2 checks every other bar, etc.). Increasing the step reduces the loading time, most applicable to “Slope” and “R” anchors.
Adaptive lookback:
Adaptive Lookback: Enable to display regression regardless of too few historical bars.
⯁ Selecting Bias:
Bias applies separately to regression and deviation.
Positive values emphasize recent data (EMA-style), negative invert, and near-zero maintains balance. (e.g., a length 100, bias +1 gives the newest price ~7× more weight than the oldest).
It's best to apply bias to both (regression and deviation) or just the deviation. Biasing only regression may distort deviation visually, while biasing both keeps their relationship intuitive. Using bias only for deviation scales it without altering regression, offering unique analysis.
⯁ Scale Awareness:
Supports linear and logarithmic price scaling, the regression and deviations adjust accordingly.
⯁ Signal Generation & Alerts:
Customizable entry/exit signals and alerts, detailed in the dedicated section below.
⯁ Visual Enhancements & Real-World Examples:
Optional on-chart table display summarizing regression input criteria (display type, anchor type, source, regression type, regression bias, deviation type, deviation bias, deviation multiplier) and key calculated metrics (regression length, slope, Pearson’s R, percentage position within deviations, etc.) for quick reference.
█ Understanding R (Pearson Correlation Coefficient):
Pearson’s R gauges data alignment to a straight-line trend within the regression length:
Range: R varies between –1 and +1.
R = +1 → Perfect positive correlation (strong uptrend).
R = 0 → No linear relationship detected.
R = –1 → Perfect negative correlation (strong downtrend).
This script uses Pearson’s R as an anchor, adjusting regression length to target specific R traits. Strong R (±1) follows the regression channel, while weak R (0) shows inconsistency.
█ Understanding the Slope:
The slope is the direction and rate at which the regression line rises or falls per bar:
Positive Slope (>0): Uptrend – Steeper means faster increase.
Negative Slope (<0): Downtrend – Steeper means sharper drop.
Zero or Near-Zero Slope: Sideways – Indicating range-bound conditions.
This script uses highest and lowest slope as an anchor, where extremes highlight strong moves and trend lines, while values near zero indicate sideways action and possible support/resistance.
█ Setup & Configuration:
Whether you’re new to this script or want to quickly adjust all critical parameters, the panel below shows the main settings available. You can customize everything from the anchor type and maximum length to the bias, signal conditions, and more.
Scale (select Log Scale for logarithmic, otherwise linear scale).
Display (regression channel and/or bands).
Anchor (how regression length is determined).
Length (control bars analyzed):
• Max – Upper limit.
• Min – Prevents regression from becoming too short.
• Step – Controls scanning precision; increasing Step reduces load time.
Regression:
• Type – Calculation method.
• Bias – EMA-style emphasis (>0=new bars weighted more; <0=old bars weighted more).
Deviation:
• Type – Calculation method.
• Bias – EMA-style emphasis (>0=new bars weighted more; <0=old bars weighted more).
• Multiplier - Adjusts Upper and Lower Deviation.
Signal Criteria:
• % (Price vs Deviation) – (0% = lower deviation, 50% = regression, 100% = upper deviation).
• R – (0 = no correlation, ±1 = perfect correlation; >0 = +slope, <0 = -slope).
Table (analyze table of input settings, calculated results, and signal criteria).
Adaptive Lookback (display regression while too few historical bars).
Multiple Regressions (steps 2 to 7 apply to #1, #2, and #3 regressions).
█ Signal Generation & Alerts:
The script offers customizable entry and exit signals with flexible criteria and visual cues (background color, dots, or triangles). Alerts can also be triggered for these opportunities.
Percent Direction Criteria:
(0% = lower deviation, 50% = regression line, 100% = upper deviation)
Above %: Triggers if price is above a specified percent of the deviation channel.
Below %: Triggers if price is below a specified percent of the deviation channel.
(Blank): Ignores the percent‐based condition.
Pearson's R (Correlation) Direction Criteria:
(0 = no correlation, ±1 = perfect correlation; >0 = positive slope, <0 = negative slope)
Above R / Below R: Compares the correlation to a threshold.
Above│R│ / Below│R│: Uses absolute correlation to focus on strength, ignoring direction.
Zero to R: Checks if R is in the 0-to-threshold range.
(Blank): Ignores correlation-based conditions.
█ User Tips & Best Practices:
Choose an anchor type that suits your strategy, “Bar Highest/Lowest” automatically spots commonly used regression zones, while “│R│ Highest” targets strong linear trends.
Consider enabling or disabling the Adaptive Lookback feature to ensure you always have a plotted regression if your chart doesn’t meet the maximum-length requirement.
Use a small Step size (1) unless relying on R-correlation or slope-based anchors as the are time-consuming to calculate. Larger steps speed up calculations but reduce precision.
Fine-tune settings such as lookback periods, regression bias, and deviation multipliers, or trend strength. Small adjustments can significantly affect how channels and signals behave.
To reduce loading time , show only channels (not bands) and disable signals, this limits calculations to the last bar and supports more extreme criteria.
Use the table display to monitor anchor type, calculated length, slope, R value, and percent location at a glance—especially if you have multiple regressions visible simultaneously.
█ Conclusion:
With its blend of advanced regression techniques, flexible deviation options, and a wide range of anchor types, this indicator offers a highly adaptable linear regression channeling system. Whether you're anchoring to time, price extremes, correlation, slope, or external events, the tool can be shaped to fit a variety of strategies. Combined with customizable signals and alerts, it may help highlight areas of confluence and support a more structured approach to identifying potential opportunities.
LinearRegressionLibrary "LinearRegression"
Calculates a variety of linear regression and deviation types, with optional emphasis weighting. Additionally, multiple of slope and Pearson’s R calculations.
calcSlope(_src, _len, _condition)
Calculates the slope of a linear regression over the specified length.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The length of the lookback period for the linear regression.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast for efficiency.
Returns: (float) The slope of the linear regression.
calcReg(_src, _len, _condition)
Calculates a basic linear regression, returning y1, y2, slope, and average.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) An array of 4 values: .
calcRegStandard(_src, _len, _emphasis, _condition)
Calculates an Standard linear regression with optional emphasis.
Parameters:
_src (float) : (series float) The source data series.
_len (int) : (int) The length of the lookback period.
_emphasis (float) : (float) The emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRegRidge(_src, _len, lambda, _emphasis, _condition)
Calculates a ridge regression with optional emphasis.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
lambda (float) : (float) The ridge regularization parameter.
_emphasis (float) : (float) The emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRegLasso(_src, _len, lambda, _emphasis, _condition)
Calculates a Lasso regression with optional emphasis.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
lambda (float) : (float) The Lasso regularization parameter.
_emphasis (float) : (float) The emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcElasticNetLinReg(_src, _len, lambda1, lambda2, _emphasis, _condition)
Calculates an Elastic Net regression with optional emphasis.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
lambda1 (float) : (float) L1 regularization parameter (Lasso).
lambda2 (float) : (float) L2 regularization parameter (Ridge).
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRegHuber(_src, _len, delta, iterations, _emphasis, _condition)
Calculates a Huber regression using Iteratively Reweighted Least Squares (IRLS).
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
delta (float) : (float) Huber threshold parameter.
iterations (int) : (int) Number of IRLS iterations.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRegLAD(_src, _len, iterations, _emphasis, _condition)
Calculates a Least Absolute Deviations (LAD) regression via IRLS.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
iterations (int) : (int) Number of IRLS iterations for LAD.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRegBayesian(_src, _len, priorMean, priorSpan, sigma, _emphasis, _condition)
Calculates a Bayesian linear regression with optional emphasis.
Parameters:
_src (float) : (float) The source data series.
_len (int) : (int) The length of the lookback period.
priorMean (float) : (float) The prior mean for the slope.
priorSpan (float) : (float) The prior variance (or span) for the slope.
sigma (float) : (float) The assumed standard deviation of residuals.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: (float ) .
calcRFromLinReg(_src, _len, _slope, _average, _y1, _condition)
Calculates the Pearson correlation coefficient (R) based on linear regression parameters.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_average (float) : (float) The average value of the source data series.
_y1 (float) : (float) The starting point (y-intercept of the oldest bar) for the linear regression.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast for efficiency.
Returns: (float) The Pearson correlation coefficient (R) adjusted for the direction of the slope.
calcRFromSource(_src, _len, _condition)
Calculates the correlation coefficient (R) using a specified length and source data.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The length of the lookback period.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast for efficiency.
Returns: (float) The correlation coefficient (R).
calcSlopeLengthZero(_src, _len, _minLen, _step, _condition)
Identifies the length at which the slope is flattest (closest to zero).
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length to consider (minimum of 2).
_minLen (int) : (int) The minimum length to start from (cannot exceed the max length).
_step (int) : (int) The increment step for lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length at which the slope is flattest.
calcSlopeLengthHighest(_src, _len, _minLen, _step, _condition)
Identifies the length at which the slope is highest.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length at which the slope is highest.
calcSlopeLengthLowest(_src, _len, _minLen, _step, _condition)
Identifies the length at which the slope is lowest.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length at which the slope is lowest.
calcSlopeLengthAbsolute(_src, _len, _minLen, _step, _condition)
Identifies the length at which the absolute slope value is highest.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length at which the absolute slope value is highest.
calcRLengthZero(_src, _len, _minLen, _step, _condition)
Identifies the length with the lowest absolute R value.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length with the lowest absolute R value.
calcRLengthHighest(_src, _len, _minLen, _step, _condition)
Identifies the length with the highest R value.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length with the highest R value.
calcRLengthLowest(_src, _len, _minLen, _step, _condition)
Identifies the length with the lowest R value.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length with the lowest R value.
calcRLengthAbsolute(_src, _len, _minLen, _step, _condition)
Identifies the length with the highest absolute R value.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The maximum lookback length (minimum of 2).
_minLen (int) : (int) The minimum length to start from.
_step (int) : (int) The step for incrementing lengths.
_condition (bool) : (bool) Flag to enable calculation. Set to true to calculate on every bar; otherwise, set to barstate.islast.
Returns: (int) The length with the highest absolute R value.
calcDevReverse(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates the regressive linear deviation in reverse order, with optional emphasis on recent data.
Parameters:
_src (float) : (float) The source data.
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The y-intercept (oldest bar) of the linear regression.
_inputDev (float) : (float) The input deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevForward(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates the progressive linear deviation in forward order (oldest to most recent bar), with optional emphasis.
Parameters:
_src (float) : (float) The source data array, where _src is oldest and _src is most recent.
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The y-intercept of the linear regression (value at the most recent bar, adjusted by slope).
_inputDev (float) : (float) The input deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevBalanced(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates the balanced linear deviation with optional emphasis on recent or older data.
Parameters:
_src (float) : (float) Source data array, where _src is the most recent and _src is the oldest.
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The y-intercept of the linear regression (value at the oldest bar).
_inputDev (float) : (float) The input deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevMean(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates the mean absolute deviation from a forward-applied linear trend (oldest to most recent), with optional emphasis.
Parameters:
_src (float) : (float) The source data array, where _src is the most recent and _src is the oldest.
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The y-intercept (oldest bar) of the linear regression.
_inputDev (float) : (float) The input deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevMedian(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates the median absolute deviation with optional emphasis on recent data.
Parameters:
_src (float) : (float) The source data array (index 0 = oldest, index _len - 1 = most recent).
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The y-intercept (oldest bar) of the linear regression.
_inputDev (float) : (float) The deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns:
calcDevPercent(_y1, _inputDev, _condition)
Calculates the percent deviation from a given value and a specified percentage.
Parameters:
_y1 (float) : (float) The base value from which to calculate deviation.
_inputDev (float) : (float) The deviation percentage.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevFitted(_len, _slope, _y1, _emphasis, _condition)
Calculates the weighted fitted deviation based on high and low series data, showing max deviation, with optional emphasis.
Parameters:
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The Y-intercept (oldest bar) of the linear regression.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcDevATR(_src, _len, _slope, _y1, _inputDev, _emphasis, _condition)
Calculates an ATR-style deviation with optional emphasis on recent data.
Parameters:
_src (float) : (float) The source data (typically close).
_len (int) : (int) The length of the lookback period.
_slope (float) : (float) The slope of the linear regression.
_y1 (float) : (float) The Y-intercept (oldest bar) of the linear regression.
_inputDev (float) : (float) The input deviation multiplier.
_emphasis (float) : (float) Emphasis factor: 0 for equal weight; >0 emphasizes recent bars; <0 emphasizes older bars.
_condition (bool) : (bool) Flag to enable calculation (true = calculate).
Returns: A 2-element tuple: .
calcPricePositionPercent(_top, _bot, _src)
Calculates the percent position of a price within a linear regression channel. Top=100%, Bottom=0%.
Parameters:
_top (float) : (float) The top (positive) deviation, corresponding to 100%.
_bot (float) : (float) The bottom (negative) deviation, corresponding to 0%.
_src (float) : (float) The source price.
Returns: (float) The percent position within the channel.
plotLinReg(_len, _y1, _y2, _slope, _devTop, _devBot, _scaleTypeLog, _lineWidth, _extendLines, _channelStyle, _colorFill, _colUpLine, _colDnLine, _colUpFill, _colDnFill)
Plots the linear regression line and its deviations, with configurable styles and fill.
Parameters:
_len (int) : (int) The lookback period for the linear regression.
_y1 (float) : (float) The starting y-value of the regression line.
_y2 (float) : (float) The ending y-value of the regression line.
_slope (float) : (float) The slope of the regression line (used to determine line color).
_devTop (float) : (float) The top deviation to add to the line.
_devBot (float) : (float) The bottom deviation to subtract from the line.
_scaleTypeLog (bool) : (bool) Use a log scale if true; otherwise, linear scale.
_lineWidth (int) : (int) The width of the plotted lines.
_extendLines (string) : (string) How lines should extend (none, left, right, both).
_channelStyle (string) : (string) The style of the channel lines (solid, dashed, dotted).
_colorFill (bool) : (bool) Whether to fill the space between the top and bottom deviation lines.
_colUpLine (color) : (color) Line color when slope is positive.
_colDnLine (color) : (color) Line color when slope is negative.
_colUpFill (color) : (color) Fill color when slope is positive.
_colDnFill (color) : (color) Fill color when slope is negative.
Gap-Down ReversalThis indicator is designed to identify potential reversal opportunities following gap-down opens, based on statistical principles and observed market behavior. (Use only stocks.)
📈 What It Does?
The script calculates standard deviation of daily log (logarithm) returns over a user-defined period (default: 90 days). It then detects when the opening price gaps down significantly (beyond a user-defined Z-score threshold, default: 1.0), potentially indicating an overreaction in the market.
When such a condition is met, the indicator plots (at the open) a green triangle below the bar, signaling a potential area where mean reversion may occur.
🧠 Why Gap-Downs Might Reverse?
This indicator is based on well-studied market behaviors:
Panic Selling: Many traders and investors react emotionally to overnight news, “tweets“ leading to excessive selling at the open.
Liquidity Imbalances: Institutional traders often delay large buy orders, allowing early price movements to be exaggerated.
Lack of Stock-Specific News: Many gap-downs happen due to broad market movements rather than stock-specific bad news.
These events can lead to temporary mispricings, which often mean revert once rational price discovery resumes.
📚 A similar mean-reversion concept is discussed in Ernest P. Chan’s book, " Algorithmic Trading: Winning Strategies and Their Rationale " (2013).
⚙️ How It Works
Standard Deviation Length: Determines the historical volatility used for calculating significant gaps.
Z-Score Threshold: Defines how large the gap-down must be (relative to volatility) to trigger a signal.
Gap-Down Return: Measured from today’s open vs. yesterday’s low.
⚠️ Important Note
This indicator is designed for use in normal market conditions. It may produce unreliable signals during extreme volatility events, such as black swan scenarios, flash crashes, or major macroeconomic shocks. During such periods, market dynamics deviate from statistical norms, and price behavior may not revert as expected.
This script is for educational and informational purposes only.
Range Breakout Signals [AlgoAlpha]OVERVIEW
This script detects range-bound market conditions and breakout signals using a combination of volatility compression and volume imbalance analysis. It identifies zones where price consolidates within a defined range and highlights potential breakout points with visual markers. Traders can use this to spot market transitions from ranging to trending phases, aiding in decision-making for breakout strategies.
CONCEPTS
The script measures volatility by comparing the ratio of the simple moving average (SMA) of price movements to their median value. When volatility drops below a threshold, the script assumes a range-bound market. It then tracks the cumulative volume of buying and selling pressure to assess breakout strength. The approach is based on the idea that market consolidation often precedes strong moves, and volume distribution can provide clues on the breakout direction.
FEATURES
Range Detection : Uses a volatility filter to identify low-volatility zones and marks them on the chart with shaded boxes.
Volume Imbalance Analysis : Evaluates cumulative up and down volume over a confirmation period to assess directional bias.
Breakout Signals : When price exits a detected range, the script plots breakout markers. A ▲ symbol indicates a bullish breakout, and a ▼ symbol indicates a bearish breakout. Additional "+" markers indicate strong volume imbalance favoring the breakout direction.
Adaptive Timeframe Volume Analysis : The script dynamically adjusts its volume calculation based on the chart’s timeframe, ensuring reliable signal generation across different trading conditions.
Alerts : Notifies traders when a new range is detected or when a breakout occurs, allowing for automated monitoring.
USAGE
Traders can use this script to identify potential trade setups by entering positions when price breaks out of a detected range. For breakout confirmation, traders can look at volume imbalance cues—bullish breakouts with strong buying volume may indicate sustained moves, while weak volume breakouts may lead to false signals. This script is particularly useful for breakout traders, range traders seeking to fade breakouts, and those looking to automate trade alerts in volatile markets.
Advanced Momentum Scanner [QuantAlgo]Introducing the Advanced Momentum Scanner by QuantAlgo , a sophisticated technical indicator that leverages multiple EMA combinations, momentum metrics, and adaptive visualization techniques to provide deep insights into market trends and momentum shifts. It is particularly valuable for those looking to identify high-probability trading and investing opportunities based on trend changes and momentum shifts across any market and timeframe.
🟢 Technical Foundation
The Advanced Momentum Scanner utilizes sophisticated trend analysis techniques to identify market momentum and trend direction. The core strategy employs a multi-layered approach with four different EMA periods:
Ultra-Fast EMA for quick trend changes detection
Fast EMA for short-term trend analysis
Mid EMA for intermediate confirmation
Slow EMA for long-term trend identification
For momentum detection, the indicator implements a Rate of Change (RoC) calculation to measure price momentum over a specified period. It further enhances analysis by incorporating RSI readings, volatility measurements through ATR, and optional volume confirmation. When these elements align, the indicator generates various trading signals based on the selected sensitivity mode.
🟢 Key Features & Signals
1. Multi-Period Trend Identification
The indicator combines multiple EMAs of different lengths to provide comprehensive trend analysis within the same timeframe, displaying the information through color-coded visual elements on the chart.
When an uptrend is detected, chart elements are colored with the bullish theme color (default: green/teal).
Similarly, when a downtrend is detected, chart elements are colored with the bearish theme color (default: red).
During neutral or indecisive periods, chart elements are colored with a neutral gray color, providing clear visual distinction between trending and non-trending market conditions.
This visualization provides immediate insights into underlying trend direction without requiring separate indicators, helping traders and investors quickly identify the market's current state.
2. Trend Strength Information Panel
The trend panel operates in three different sensitivity modes (Conservative, Aggressive, and Balanced), each affecting how the indicator processes and displays market information.
The Conservative mode prioritizes signal reliability over frequency, showing only strong trend movements with high conviction levels.
The Aggressive mode detects early trend changes, providing more frequent signals but potentially more false positives.
The Balanced mode offers a middle ground with moderate signal frequency and reliability.
Regardless of the selected mode, the panel displays:
Current trend direction (UPTREND, DOWNTREND, or NEUTRAL)
Trend strength percentage (0-100%)
Early detection signals when applicable
The active sensitivity mode
This comprehensive approach helps traders and investors:
→ Assess the strength and reliability of current market trends
→ Identify early potential trend changes before full confirmation
→ Make more informed trading and investing decisions based on trend context
3. Customizable Visualization Settings
This indicator offers extensive visual customization options to suit different trading/investing styles and preferences:
Display options:
→ Fully customizable uptrend, downtrend, and neutral colors
→ Color-coded price bars showing trend direction
→ Dynamic gradient bands visualizing potential trend channels
→ Optional background coloring based on trend intensity
→ Adjustable transparency levels for all visual elements
These visualization settings can be fine-tuned through the indicator's interface, allowing traders and investors to create a personalized chart environment that emphasizes the most relevant information for their strategy.
The indicator also features a comprehensive alert system with notifications for:
New trend formations (uptrend, downtrend, neutral)
Early trend change signals
Momentum threshold crossovers
Other significant market conditions
Alerts can be delivered through TradingView's notification system, making it easy to stay informed of important market developments even when you are away from the charts.
🟢 Practical Usage Tips
→ Trend Analysis and Interpretation: The indicator visualizes trend direction and strength directly on the chart through color-coding and the information panel, allowing traders and investors to immediately identify the current market context. This information helps in assessing the potential for continuation or reversal.
→ Signal Generation Strategies: The indicator generates potential trading signals based on trend direction, momentum confirmation, and selected sensitivity mode. Users can choose between Conservative (fewer but more reliable signals), Balanced (moderate approach), or Aggressive (more frequent but potentially less reliable signals).
→ Multi-Period Trend Assessment: Through its layered EMA approach, the indicator enables users to understand trend conditions across different lookback periods within the same timeframe. This helps in identifying the dominant trend and potential turning points.
🟢 Pro Tips
Adjust EMA periods based on your timeframe:
→ Lower values for shorter timeframes and more frequent signals
→ Higher values for higher timeframes and more reliable signals
Fine-tune sensitivity mode based on your trading style:
→ "Conservative" for position trading/long-term investing and fewer false signals
→ "Balanced" for swing trading/medium-term investing with moderate signal frequency
→ "Aggressive" for scalping/day trading and catching early trend changes
Look for confluence between components:
→ Strong trend strength percentage and direction in the information panel
→ Overall market context aligning with the expected direction
Use for multiple trading approaches:
→ Trend following during strong momentum periods
→ Counter-trend trading at band extremes during overextension
→ Early trend change detection with sensitivity adjustments
→ Stop loss placement using dynamic bands
Combine with:
→ Volume indicators like the Volume Delta & Order Block Suite for additional confirmation
→ Support/resistance analysis for strategic entry/exit points
→ Multiple timeframe analysis for broader market context
Wyckoff Event Detection [Alpha Extract]Wyckoff Event Detection
A powerful and intelligent indicator designed to detect key Wyckoff events in real time, helping traders analyze market structure and anticipate potential trend shifts. Using volume and price action, this script automatically identifies distribution and accumulation phases, providing traders with valuable insights into market behavior.
🔶 Phase-Based Detection
Utilizes a phase detection algorithm that evaluates price and volume conditions to identify accumulation (bullish) and distribution (bearish) events. This method ensures the script effectively captures major market turning points and avoids noise.
🔶 Multi-Factor Event Recognition
Incorporates multiple event conditions, including upthrusts, selling climaxes, and springs, to detect high-probability entry and exit points. Each event is filtered through customizable sensitivity settings, ensuring precise detection aligned with different trading styles.
🔶 Customizable Parameters
Fine-tune event detection with adjustable thresholds for volume, price movement, trend strength, and event spacing. These inputs allow traders to personalize the script to match their strategy and risk tolerance.
// === USER INPUTS ===
i_volLen = input.int(20, "Volume MA Length", minval=1)
i_priceLookback = input.int(20, "Price Pattern Lookback", minval=5)
i_lineLength = input.int(15, "Line Length", minval=5)
i_labelSpacing = input.int(5, "Minimum Label Spacing (bars)", minval=1, maxval=20)
❓How It Works
🔶 Event Identification
The script scans for key Wyckoff events by analyzing volume spikes, price deviations, and trend shifts within a user-defined lookback period. It categorizes events into bullish (accumulation) or bearish (distribution) structures and plots them directly on the chart.
// === EVENT DETECTION ===
volMA = ta.sma(volume, i_volLen)
highestHigh = ta.highest(high, i_priceLookback)
lowestLow = ta.lowest(low, i_priceLookback)
🔶 Automatic Filtering & Cleanup
Unconfirmed or weak signals are filtered out using customizable strength multipliers and volume thresholds. Events that do not meet the minimum conditions are discarded to keep the chart clean and informative.
🔶 Phase Strength Analysis
The script continuously tracks bullish and bearish event counts to determine whether the market is currently in an accumulation, distribution, or neutral phase. This allows traders to align their strategies accordingly.
🔶 Visual Alerts & Labels
Detects and labels key Wyckoff events directly on the chart, providing immediate insights into market conditions:
- PSY (Preliminary Supply) and UT (Upthrust) for distribution phases.
- PS (Preliminary Support) and SC (Selling Climax) for accumulation phases.
- Labels adjust dynamically to avoid chart clutter and improve readability.
🔶 Entry & Exit Optimization
By highlighting supply and demand imbalances, the script assists traders in identifying optimal entry and exit points. Wyckoff concepts such as springs and upthrusts provide clear trade signals based on market structure.
🔶 Trend Confirmation & Risk Management
Observing how price reacts to detected events helps confirm trend direction and potential reversals. Traders can place stop-loss and take-profit levels based on Wyckoff phase analysis, ensuring strategic trade execution.
🔶 Table-Based Market Analysis (Table)
A built-in table summarizes:
- Market Phase: Accumulation, Distribution, or Neutral.
- Strength of Phase: Weak, Moderate, or Strong.
- Price Positioning: Whether price is near support, resistance, or in a trading range.
- Supply/Demand State: Identifies whether the market is supply or demand dominant.
🔶 Why Choose Wyckoff Market Phases - Alpha Extract?
This indicator offers a systematic approach to understanding market mechanics through the lens of Wyckoff's time-tested principles. By providing clear and actionable insights into market phases, it empowers traders to make informed decisions, enhancing both confidence and performance in various trading environments.
Liquidity Depth [AlgoAlpha]OVERVIEW
This script visualizes market liquidity by identifying key price levels where significant volume has transacted. It highlights zones of high buying and selling interest, helping traders understand where liquidity is accumulating and how price may respond to these areas. By dynamically tracking volume at highs and lows, the script builds a real-time liquidity profile, making it a powerful tool for identifying potential support and resistance levels.
CONCEPTS
Liquidity depth analysis helps traders determine how price interacts with supply and demand at different levels. The script processes historical volume data to distinguish between high-liquidity and low-liquidity zones. It assigns transparency levels to plotted lines , ensuring that more relevant liquidity areas stand out visually. The script adds a profile to show the depth of liquidity (derived from historical volume data) for levels above and below the current price
FEATURES
Liquidity Levels: Tracks liquidity levels based on volume concentration at price high and lows.
Volume-Based Transparency: More significant liquidity levels are displayed with higher visibility, showing their significance.
Interpolation: interpolates the bullish and bearish liquidity depth at a user defined range away from the price, helping in comparing the liquidity amounts between bullish and bearish.
Depth Profile: Allows traders to visualize depth of liquidity in a more quantitative and clearer way than the liquidity levels/list]
USAGE
This indicator is best used to track liquidity levels and potential price reaction areas. Traders can adjust the Liquidity Lookback setting to analyze past liquidity levels over different historical periods. The Profile Resolution setting controls the granularity of liquidity depth visualization, with higher values providing more detail. The script can be applied across different timeframes, from intraday scalping to swing trading analysis. The plotted liquidity zones provide traders with insights into where price may encounter strong support, resistance, or potential liquidity-driven reversals.
Uptrick: Time Based ReversionIntroduction
The Uptrick: Time Based Reversion indicator is designed to provide a comprehensive view of market momentum and potential trend shifts by combining multiple moving averages, a streak-based trend analysis system, and adaptive color visualization. It helps traders identify strong trends, spot potential reversals, and make more informed trading decisions.
Purpose
The primary goal of this indicator is to assist traders in distinguishing between sustained market movements and short-lived fluctuations. By evaluating how price behaves relative to its moving averages, and by measuring consecutive streaks above or below these averages, the indicator highlights areas where trends are likely to continue or lose momentum.
Overview
Uptrick: Time Based Reversion calculates one or more moving averages of price data and then tracks the number of consecutive bars (streaks) above or below these averages. This streak-based detection provides insight into whether a trend is gaining strength or nearing a potential reversal point. The indicator offers:
• Multiple moving average types (SMA, EMA, WMA)
• Optional second and third moving average layers for additional smoothing of first moving average
• A streak detection system to quantify trend intensity
• A dynamic color scheme that changes with streak strength
• Optional buy and sell signals for potential trade entries and exits
• A ribbon mode that applies moving averages to Open, High, Low, and Close prices for a more detailed visualization of overall trend alignment
Originality and Uniqueness
Unlike traditional moving average indicators, Uptrick: Time Based Reversion incorporates a streak measurement system to detect trend strength. This approach helps clarify whether a price movement is merely a quick fluctuation or part of a longer-lasting trend. Additionally, the optional ribbon mode extends this logic to Open, High, Low, and Close prices, creating a layered and intuitive visualization that shows complete trend alignment.
Inputs and Features
1. Enable Ribbon Mode
This input lets you activate or deactivate the ribbon display of multiple moving averages. When enabled, the script plots moving averages for the Open, High, Low, and Close prices and uses color fills to show whether these four data points are collectively above or below their respective moving averages.
2. Color Scheme Selection
Users can choose from several predefined color schemes, such as Default, Emerald, Crimson, Sapphire, Gold, Purple, Teal, Orange, Gray, Lime, or Aqua. Each scheme assigns distinct bullish, bearish and neutral colors..
3. Show Buy/Sell Signals
The indicator can display buy or sell signals based on its streak analysis logic. These signals appear as markers on the chart, indicating a “Safe Uptrend” (buy) or “Safe Downtrend” (sell).
4. Moving Average Types and Lengths
• First MA Type and Length: Choose SMA, EMA, or WMA along with a customizable period.
• Second and Third MA Types and Lengths: You can optionally stack additional moving averages for further smoothing, each with its own customizable type and period.
5. Streak Threshold Multiplier
This numeric input determines how strong a streak must be before the script considers it a “safe” trend. A higher multiplier requires a longer or more intense streak for a buy or sell signal.
6. Dynamic Transparency Calculation
The color intensity adapts to the streak’s strength. Longer streaks increase the transparency of the opposing color, making the current dominant color stand out. This feature ensures that a vigorous uptrend or downtrend is visually distinct from short-lived or weaker moves.
7. Ribbon Moving Averages
In ribbon mode, the script calculates moving averages for the Open, High, Low, and Close prices. Each of these is optionally smoothed again if the second and/or third moving average layers are active. The final result is a ribbon of moving averages that helps confirm whether the market is uniformly aligned above or below these key reference points.
Calculation Methodology
1. Initial Moving Average
The script calculates the first moving average (SMA, EMA, or WMA) of the closing price over a user-defined period.
2. Optional Secondary and Tertiary Averages
If selected, the script then applies a second and/or third smoothing step. Each of these steps can be a different type of moving average (SMA, EMA, or WMA) with its own period length.
3. Streak Detection
The indicator counts consecutive bars above or below the smoothed moving average. A running total (streakUp or streakDown) increments with every bar that remains above or below that average.
4. Reversion Intensity
The script compares the current streak value to its own average (calculated over the final chosen period). This ratio determines whether the streak is nearing a likely reversion or is strong enough to continue.
5. Color Assignment and Signals
The indicator calculates color transparency based on streak intensity. Buy and sell signals appear when the streak meets or exceeds the threshold multiplier, indicating a safe uptrend or downtrend.
Color Schemes and Visualization
This indicator offers multiple predefined color sets. Each scheme specifies a unique bullish color, bearish color and neutral color. The script automatically varies transparency to highlight strong trends and fade weaker ones, making it visually clear when a trend is intensifying or losing momentum.
Smoothing Techniques
By allowing up to three layers of moving average smoothing, the indicator accommodates different trading styles. A single layer provides faster reactions to market changes, while more layers reduce noise at the cost of slower responsiveness. Traders can choose the right balance between responsiveness and stability for their strategy, whether it is short-term scalping or long-term trend following.
Why It Combines Specific Smoothing Techniques
The Uptrick: Time Based Reversion indicator strategically combines specific smoothing techniques—SMA, EMA, and WMA—to leverage their complementary strengths. The SMA provides stable and consistent trend identification by equally weighting all data points, while the EMA emphasizes recent price movements, allowing quicker responses to market changes. WMA enhances sensitivity to recent price shifts, which helps in detecting subtle momentum changes early. By integrating these methods in layers, the indicator effectively balances responsiveness with stability, helping traders clearly identify genuine trend changes while filtering out short-term noise and false signals.
Ribbon Mode
If Open, High, Low, and Close prices remain above or below their respective moving averages consistently, the script colors the bars fully bullish or bearish. When the data points are mixed, a neutral color is applied. This mode provides a thorough perspective on whether the entire price range is aligned in one direction or showing conflicting signals.
Summary
Uptrick: Time Based Reversion combines multiple moving averages, streak detection, and dynamic color adjustments to help traders identify significant trends and potential reversal areas. Its flexibility allows it to be used either in a simpler form, with one moving average and streak analysis, or in a more advanced configuration with ribbon mode that charts multiple smoothed averages for a deeper understanding of price alignment. By adapting color intensities based on streak strength and providing optional buy/sell signals, this indicator delivers a clear and flexible tool suited to various trading strategies.
Disclaimer
This indicator is designed as an analysis aid and does not guarantee profitable trades. Past performance does not indicate future success, and market conditions can change unexpectedly. Users are advised to employ proper risk management and thoroughly evaluate trades before taking positions. Use this indicator as part of a broader strategy, not as a sole decision-making tool.
IBS (Internal Bar Strength) Trading Strategy for SPY and NDQImplementation by AlgoTradeKit
Overview
The IBS Trading Strategy is a daily bars long-only trading system, based on the concept of Internal Bar Strength (IBS). The strategy aims to identify potential reversals by monitoring how the previous bar’s close positions itself within its high-low range. It is suitable for stock and US indices. The default parameters are optimized for SPY/SPX and NDQ/QQQ
Strategy Concept
The Internal Bar Strength (IBS) is calculated using the formula:
IBS = (Previous Close - Previous Low) / (Previous High - Previous Low)
This value always lies between 0 and 1. An IBS value below 0.2 is typically interpreted as an oversold condition, while a value above 0.9 suggests an overbought state.
Trading Rules
- Long Entry :
- Condition 1 : IBS is below the user-defined entry threshold (default is 0.2).
- Condition 2 : The current price is above an N-period Exponential Moving Average (EMA) (default period is 252).
- Note : You can disable the EMA condition by setting the EMA period to 0.
- Long Exit
- The position is closed when IBS rises above the user-defined exit threshold (default is 0.9).
Customization Options
- IBS Entry Threshold : Adjust to set the sensitivity for entering a long trade based on oversold conditions.
- IBS Exit Threshold : Customize to define the exit point when the market becomes overbought.
- EMA Period : Set the lookback period for the EMA to align with your trend bias; disable this condition by setting the period to 0.
Risk Management & Trading Considerations
- Designed for daily charts, the strategy captures higher timeframe trends and minimizes noise.
- The entry and exit conditions are straightforward, aiming to avoid over-trading while letting clear signals dictate trade management.
- Always use proper risk management techniques and test the strategy thoroughly on historical data and in a simulated environment before applying it in live markets.
Disclaimer
This strategy is for educational and informational purposes only and does not constitute financial advice. Trading involves risk, and past performance is not indicative of future results. Always conduct your own research and consider your risk tolerance before making any trades.
3 Red / 3 Green Strategy with Volatility CheckStrategy Name: 3 Red / 3 Green Strategy with Volatility Check by AlgoTradeKit
Overview
This long-only strategy is designed for daily bars on NASDAQ (or similar instruments) and combines simple price action with a volatility filter. It “tells it like it is” – enter when the market shows weakness, but only in sufficiently volatile conditions, and exit either on signs of a reversal or after a set number of days.
Entry Conditions
- Price Action :
Enter a long position when there are 3 consecutive red days (each day's close is below its open).
- Volatility Filter :
The entry is allowed only if the current ATR (Average True Range) calculated over the specified ATR Period (default 12) is greater than its 30-day simple moving average. This ensures the market has enough volatility to justify the trade.
Exit Conditions
- Reversal Signal :
Exit the long position when 3 consecutive green days occur (each day's close is above its open), signaling a potential reversal.
- Time Limit :
Regardless of market conditions, any open trade is closed if it reaches the Maximum Trade Duration (default 22 days). This helps limit exposure during stagnant or unfavorable market conditions.
- You can toggle the three-green-day exit if you want to isolate the time-based exit.
Input Parameters
- Maximum Trade Duration (days): Default is 22 days.
- ATR Period: Default is 12.
- Use 3 Green Days Exit: Toggle to enable or disable the three-green-day exit condition.
How It Works
1. Entry: The strategy monitors daily price action for 3 consecutive down days. When this occurs and if the market is volatile enough (current ATR > 30-day ATR average), it opens a long position.
2. Exit: The position is closed if the price action reverses with 3 consecutive up days or if the trade has been open for the maximum allowed duration - i.e. use it on daily chart.
Risk Management
- The built-in maximum trade duration prevents trades from lingering too long in a non-trending or consolidating market.
- The volatility filter helps ensure that trades are only taken when there is sufficient price movement, potentially increasing the odds of a meaningful move.
Disclaimer
This strategy is provided “as is” without any warranties. It is essential to backtest and validate the performance on your specific instrument and market conditions before deploying live capital. Trading involves significant risk, and you should adjust parameters to match your risk tolerance.
Test and tweak this strategy to see if it fits your trading style and market conditions. Happy trading!
Liquidity Sweep Filter [AlgoAlpha]Unlock a deeper understanding of market liquidity with the Liquidity Sweep Filter by AlgoAlpha. This indicator identifies liquidity sweeps, highlighting key price levels where large liquidations have occurred. By visualizing major and minor liquidation events, traders can better anticipate potential reversals and market structure shifts, making this an essential tool for those trading in volatile conditions.
Key Features :
🔍 Liquidity Sweep Detection – Identifies and highlights areas where liquidity has been swept, distinguishing between major and minor liquidation events.
📊 Volume Profile Integration – Displays a volume profile overlay, helping traders spot high-activity price zones where the market is likely to react.
📈 Trend-Based Filtering – Utilizes an adaptive trend detection algorithm to refine liquidity sweeps based on market direction, reducing noise.
🎨 Customizable Visualization – Modify colors, thresholds, and display settings to tailor the indicator to your trading style.
🔔 Alerts for Liquidity Sweeps & Trend Changes – Stay ahead of the market by receiving alerts when significant liquidity events or trend shifts occur.
How to Use:
🛠 Add the Indicator : Add the Liquidity Sweep Filter to your chart and configure the settings based on your preferred sensitivity. Adjust the major sweep threshold to filter out smaller moves.
📊 Analyze Liquidity Zones and trend direction : Look for liquidation levels where large buy or sell stops have been triggered. Major sweeps indicate strong reactions, while minor sweeps show gradual liquidity absorption. You can also see which levels are high in liquidity by the transparency of the levels.
🔔 Set-Up Alerts : Use the in-built alerts so you don't miss a trading opportunity
How It Works :
The Liquidity Sweep Filter detects liquidity events by tracking swing highs and lows (defined as a pivot where neighboring candles are lower/higher than it) where traders are likely to have placed stop-loss orders. It evaluates volume and price action, marking areas where liquidity has been absorbed by the market. Additionally, the integrated trend filter ensures that only relevant liquidity sweeps are highlighted based on market direction, lows in an uptrend and highs in a downtrend. The trend filter works by calculating a basis, and defining trend shifts when the closing price crosses over the upper or lower bands.The included volume profile further enhances analysis by displaying key trading zones where price may react.
[SHORT ONLY] 10 Bar Low Pullback█ STRATEGY DESCRIPTION
The "10 Bar Low Pullback" strategy is a contrarian short trading system designed to capture pullbacks after a new 10‐bar low is made. it identifies a potential short opportunity when the current bar’s low breaks below the lowest low of the previous 10 bars, provided that the bar exhibits strong internal momentum as measured by its IBS value. An optional trend filter further refines entries by requiring that the close is below a 200-period EMA.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) measures where the closing price falls within the high-low range of a bar. It is calculated as:
ibs = (close - low) / (high - low)
- Low IBS (≤ 0.2): Indicates the close is near the bar's low, suggesting oversold conditions.
- High IBS (≥ 0.8): Indicates the close is near the bar's high, suggesting overbought conditions.
█ SIGNAL GENERATION
1. SHORT ENTRY
A Short Signal is triggered when:
The current bar’s low is below the lowest low of the past X bars (default: 10).
The bar’s IBS is greater than the specified threshold (default: 0.85).
The signal occurs within the defined trading window (between Start Time and End Time).
If the EMA Filter is enabled, the close must be below the 200-period EMA.
2. EXIT CONDITION
An exit Signal is generated when the current close falls below the previous bar’s low (close < low ), indicating a potential bearish reversal and prompting the strategy to close its short position.
█ ADDITIONAL SETTINGS
Lookback Period: Defines the number of bars (default is 10) over which the lowest low is calculated.
IBS Threshold: Sets the minimum required IBS value (default is 0.85) to qualify as a pullback.
Trading Window: Trades are only executed between the user-defined Start Time and End Time.
EMA Filter (Optional): When enabled, short entries are only considered if the current close is below the 200-period EMA, with the EMA period being adjustable (default is 200).
█ PERFORMANCE OVERVIEW
Designed for shorting opportunities, this strategy aims to capture pullbacks following an aggressive 10-bar low break.
It leverages a combination of a lookback low and IBS measurement to identify overextended bullish moves that may revert.
The optional EMA filter helps confirm a bearish market environment by ensuring the price remains under the trend line.
Suitable for use on various assets, including stocks and ETFs, on daily or similar timeframes.
Backtesting and parameter optimization are recommended to tailor the strategy to specific market conditions.
[SHORT ONLY] ATR Sell the Rip Mean Reversion Strategy█ STRATEGY DESCRIPTION
The "ATR Sell the Rip Mean Reversion Strategy" is a contrarian system that targets overextended price moves on stocks and ETFs. It calculates an ATR‐based trigger level to identify shorting opportunities. When the current close exceeds this smoothed ATR trigger, and if the close is below a 200-period EMA (if enabled), the strategy initiates a short entry, aiming to profit from an anticipated corrective pullback.
█ HOW IS THE ATR SIGNAL BAND CALCULATED?
This strategy computes an ATR-based signal trigger as follows:
Calculate the ATR
The strategy computes the Average True Range (ATR) using a configurable period provided by the user:
atrValue = ta.atr(atrPeriod)
Determine the Threshold
Multiply the ATR by a predefined multiplier and add it to the current close:
atrThreshold = close + atrValue * atrMultInput
Smooth the Threshold
Apply a Simple Moving Average over a specified period to smooth out the threshold, reducing noise:
signalTrigger = ta.sma(atrThreshold, smoothPeriodInput)
█ SIGNAL GENERATION
1. SHORT ENTRY
A Short Signal is triggered when:
The current close is above the smoothed ATR signal trigger.
The trade occurs within the specified trading window (between Start Time and End Time).
If the EMA filter is enabled, the close must also be below the 200-period EMA.
2. EXIT CONDITION
An exit Signal is generated when the current close falls below the previous bar’s low (close < low ), indicating a potential bearish reversal and prompting the strategy to close its short position.
█ ADDITIONAL SETTINGS
ATR Period: The period used to calculate the ATR, allowing for adaptability to different volatility conditions (default is 20).
ATR Multiplier: The multiplier applied to the ATR to determine the raw threshold (default is 1.0).
Smoothing Period: The period over which the raw ATR threshold is smoothed using an SMA (default is 10).
Start Time and End Time: Defines the time window during which trades are allowed.
EMA Filter (Optional): When enabled, short entries are only executed if the current close is below the 200-period EMA, confirming a bearish trend.
█ PERFORMANCE OVERVIEW
This strategy is designed for use on the Daily timeframe, targeting stocks and ETFs by capitalizing on overextended price moves.
It utilizes a dynamic, ATR-based trigger to identify when prices have potentially peaked, setting the stage for a mean reversion short entry.
The optional EMA filter helps align trades with broader market trends, potentially reducing false signals.
Backtesting is recommended to fine-tune the ATR multiplier, smoothing period, and EMA settings to match the volatility and behavior of specific markets.
[SHORT ONLY] Consecutive Bars Above MA Strategy█ STRATEGY DESCRIPTION
The "Consecutive Bars Above MA Strategy" is a contrarian trading system aimed at exploiting overextended bullish moves in stocks and ETFs. It monitors the number of consecutive bars that close above a chosen short-term moving average (which can be either a Simple Moving Average or an Exponential Moving Average). Once the count reaches a preset threshold and the current bar’s close exceeds the previous bar’s high within a designated trading window, a short entry is initiated. An optional EMA filter further refines entries by requiring that the current close is below the 200-period EMA, helping to ensure that trades are taken in a bearish environment.
█ HOW ARE THE CONSECUTIVE BULLISH COUNTS CALCULATED?
The strategy utilizes a counter variable, `bullCount`, to track consecutive bullish bars based on their relation to the short-term moving average. Here’s how the count is determined:
Initialize the Counter
The counter is initialized at the start:
var int bullCount = na
Bullish Bar Detection
For each bar, if the close is above the selected moving average (either SMA or EMA, based on user input), the counter is incremented:
bullCount := close > signalMa ? (na(bullCount) ? 1 : bullCount + 1) : 0
Reset on Non-Bullish Condition
If the close does not exceed the moving average, the counter resets to zero, indicating a break in the consecutive bullish streak.
█ SIGNAL GENERATION
1. SHORT ENTRY
A short signal is generated when:
The number of consecutive bullish bars (i.e., bars closing above the short-term MA) meets or exceeds the defined threshold (default: 3).
The current bar’s close is higher than the previous bar’s high.
The signal occurs within the specified trading window (between Start Time and End Time).
Additionally, if the EMA filter is enabled, the entry is only executed when the current close is below the 200-period EMA.
2. EXIT CONDITION
An exit signal is triggered when the current close falls below the previous bar’s low, prompting the strategy to close the short position.
█ ADDITIONAL SETTINGS
Threshold: The number of consecutive bullish bars required to trigger a short entry (default is 3).
Trading Window: The Start Time and End Time inputs define when the strategy is active.
Moving Average Settings: Choose between SMA and EMA, and set the MA length (default is 5), which is used to assess each bar’s bullish condition.
EMA Filter (Optional): When enabled, this filter requires that the current close is below the 200-period EMA, supporting entries in a downtrend.
█ PERFORMANCE OVERVIEW
This strategy is designed for stocks and ETFs and can be applied across various timeframes.
It seeks to capture mean reversion by shorting after a series of bullish bars suggests an overextended move.
The approach employs a contrarian short entry by waiting for a breakout (close > previous high) following consecutive bullish bars.
The adjustable moving average settings and optional EMA filter allow for further optimization based on market conditions.
Comprehensive backtesting is recommended to fine-tune the threshold, moving average parameters, and filter settings for optimal performance.
[SHORT ONLY] Consecutive Close>High[1] Mean Reversion Strategy█ STRATEGY DESCRIPTION
The "Consecutive Close > High " Mean Reversion Strategy is a contrarian daily trading system for stocks and ETFs. It identifies potential shorting opportunities by counting consecutive days where the closing price exceeds the previous day's high. When this consecutive day count reaches a predetermined threshold, and if the close is below a 200-period EMA (if enabled), a short entry is triggered, anticipating a corrective pullback.
█ HOW ARE THE CONSECUTIVE BULLISH COUNTS CALCULATED?
The strategy uses a counter variable called `bullCount` to track how many consecutive bars meet a bullish condition. Here’s a breakdown of the process:
Initialize the Counter
var int bullCount = 0
Bullish Bar Detection
Every time the close exceeds the previous bar's high, increment the counter:
if close > high
bullCount += 1
Reset on Bearish Bar
When there is a clear bearish reversal, the counter is reset to zero:
if close < low
bullCount := 0
█ SIGNAL GENERATION
1. SHORT ENTRY
A Short Signal is triggered when:
The count of consecutive bullish closes (where close > high ) reaches or exceeds the defined threshold (default: 3).
The signal occurs within the specified trading window (between Start Time and End Time).
2. EXIT CONDITION
An exit Signal is generated when the current close falls below the previous bar’s low (close < low ), prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Threshold: The number of consecutive bullish closes required to trigger a short entry (default is 3).
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
EMA Filter (Optional): When enabled, short entries are only triggered if the current close is below the 200-period EMA.
█ PERFORMANCE OVERVIEW
This strategy is designed for Stocks and ETFs on the Daily timeframe and targets overextended bullish moves.
It aims to capture mean reversion by entering short after a series of consecutive bullish closes.
Further optimization is possible with additional filters (e.g., EMA, volume, or volatility).
Backtesting should be used to fine-tune the threshold and filter settings for specific market conditions.
[SHORT ONLY] Internal Bar Strength (IBS) Mean Reversion Strategy█ STRATEGY DESCRIPTION
The "Internal Bar Strength (IBS) Strategy" is a mean-reversion strategy designed to identify trading opportunities based on the closing price's position within the daily price range. It enters a short position when the IBS indicates overbought conditions and exits when the IBS reaches oversold levels. This strategy is Short-Only and was designed to be used on the Daily timeframe for Stocks and ETFs.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) measures where the closing price falls within the high-low range of a bar. It is calculated as:
IBS = (Close - Low) / (High - Low)
- Low IBS (≤ 0.2) : Indicates the close is near the bar's low, suggesting oversold conditions.
- High IBS (≥ 0.8) : Indicates the close is near the bar's high, suggesting overbought conditions.
█ SIGNAL GENERATION
1. SHORT ENTRY
A Short Signal is triggered when:
The IBS value rises to or above the Upper Threshold (default: 0.9).
The Closing price is greater than the previous bars High (close>high ).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
An exit Signal is generated when the IBS value drops to or below the Lower Threshold (default: 0.3). This prompts the strategy to exit the position.
█ ADDITIONAL SETTINGS
Upper Threshold: The IBS level at which the strategy enters trades. Default is 0.9.
Lower Threshold: The IBS level at which the strategy exits short positions. Default is 0.3.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for Stocks and ETFs markets and performs best when prices frequently revert to the mean.
The strategy can be optimized further using additional conditions such as using volume or volatility filters.
It is sensitive to extreme IBS values, which help identify potential reversals.
Backtesting results should be analyzed to optimize the Upper/Lower Thresholds for specific instruments and market conditions.
Range Filtered Trend Signals [AlgoAlpha]Introducing the Range Filtered Trend Signals , a cutting-edge trading indicator designed to detect market trends and ranging conditions with high accuracy. This indicator leverages a combination of Kalman filtering and Supertrend analysis to smooth out price fluctuations while maintaining responsiveness to trend shifts. By incorporating volatility-based range filtering, it ensures traders can differentiate between trending and ranging conditions effectively, reducing false signals and enhancing trade decision-making.
:key: Key Features
:white_check_mark: Kalman Filter Smoothing – Minimizes market noise while preserving trend clarity.
:bar_chart: Supertrend Integration – A dynamic trend-following mechanism for spotting reversals.
:fire: Volatility-Based Range Detection – Detects trending vs. ranging conditions with precision.
:art: Color-Coded Trend Signals – Instantly recognize bullish, bearish, and ranging market states.
:gear: Customizable Inputs – Fine-tune Kalman parameters, Supertrend settings, and color themes to match your strategy.
:bell: Alerts for Trend Shifts – Get real-time notifications when market conditions change!
:tools: How to Use
Add the Indicator – Click the star icon to add it to your TradingView favorites.
Analyze Market Conditions – Observe the color-coded signals and range boundaries to identify trend strength and direction.
Use Alerts for Trade Execution – Set alerts for trend shifts and market conditions to stay ahead without constantly monitoring charts.
:mag: How It Works
The Kalman filter smooths price fluctuations by dynamically adjusting its weighting based on market volatility. It helps remove noise while keeping the signal reactive to trend changes. The Supertrend calculation is then applied to the filtered price data, providing a robust trend-following mechanism. To enhance signal accuracy, a volatility-weighted range filter is incorporated, creating upper and lower boundaries that define trend conditions. When price breaks out of these boundaries, the indicator confirms trend continuation, while signals within the range indicate market consolidation. Traders can leverage this tool to enhance trade timing, filter false breakouts, and identify optimal entry/exit zones.
Enhanced Momentum Divergence Radar+ [Alpha Extract]Enhanced Momentum Divergence Radar+
The AE's Enhanced Momentum Divergence Radar+ is designed to detect momentum shifts and divergence patterns, helping traders identify potential trend reversals and continuation points. By normalizing momentum readings and applying divergence detection, it enhances market timing for entries and exits.
🔶 CALCULATION
The indicator calculates normalized momentum using a combination of Detrended Price Oscillator (DPO) and volatility-adjusted smoothing techniques. It highlights overbought and oversold conditions while identifying bullish and bearish divergences.
Core Calculation:
ATR-based volatility adjustment ensures dynamic sensitivity.
DPO is derived from the price minus a simple moving average (SMA) to isolate cyclical movements.
Momentum score is normalized using historical max values for consistent scaling.
Thresholds are dynamically adjusted based on average absolute momentum.
dpo = close - ma
sd = (dpo / volatility) * 100
normalizedSD = sd / maxAbsSD
The momentum score is plotted as a histogram, where:
Green bars indicate strong upward momentum.
Red bars indicate strong downward momentum.
Neutral values fade into gray.
🔶 DETAILS
📊 Visual Features:
Histogram bars dynamically color-coded based on momentum strength.
Threshold bands provide reference points for overbought and oversold levels.
Divergence markers (Bullish/Bearish & Hidden Bullish/Bearish) highlight key reversal signals.
🛠 How Divergences Work:
Bullish Divergence (𝓞𝓢): Price makes a lower low while momentum makes a higher low.
Bearish Divergence (𝓞𝓑): Price makes a higher high while momentum makes a lower high.
Hidden Divergences confirm trend continuations rather than reversals.
📌 Example of Divergence Logic:
bullishDiv = (low == priceLow) and (sd > momentumLow)
bearishDiv = (high == priceHigh) and (sd < momentumHigh)
🔶 EXAMPLES
📍 The chart below illustrates price reacting to momentum divergences, identifying potential tops and bottoms before major price moves.
📌 Example snapshots:
A bullish divergence leading to a reversal in price.
A bearish divergence marking the beginning of a downtrend.
🔶 SETTINGS
🔹 Customization Options:
Lookback Period: Adjusts sensitivity to market cycles.
Smoothing Period: Controls signal clarity.
Color Options: Enables bar coloring based on momentum strength.
Divergence Sensitivity: Choose to display hidden divergences.
Price Step Channel [BigBeluga]Price Step Channel is designed to provide a structured look at price trends through a dynamic step line channel, highlighting trend direction and volatility boundaries.
🔵 Key Features:
Step Line with Boundaries: The central step line adjusts with price movements, creating upper and lower boundaries based on price volatility. The channel is green during uptrends and red during downtrends, visually signaling the trend’s direction.
Fakeout Markers: "✖" markers identify potential fakeouts—moments when the price breaches the channel boundary without confirming a trend change. These markers help you spot possible mean reversion points.
Dynamic Boundary Labels: Labels at the end of the channel show the price levels of the upper and lower boundaries. In uptrends, the upper label turns green; in downtrends, the lower label turns red, providing an instant read on the trend's direction.
Customizable Display: You can toggle off the boundaries and labels for a cleaner view, focusing only on the step line and its color-coded trend signals.
🔵 When to Use:
Price Step Channel is ideal for traders looking to follow structured trends with defined volatility boundaries. The step line and color-coded channel provide clear trend insights, while the fakeout markers and customizable display options enhance flexibility in different market conditions. Whether you’re focusing on clean trend signals or detailed boundary interactions, this tool adapts to your style.
Fibonacci Volume Profiles [AlgoAlpha]Unlock a deeper understanding of price action with the Fibonacci Volume Profiles indicator by AlgoAlpha! This powerful tool blends Fibonacci retracement levels with customizable volume profiles, helping traders identify high-probability areas of support, resistance, and accumulation. Designed for both continuous dynamic levels and custom time periods, this indicator is a must-have for traders seeking confluence in market structure analysis.
🔑 Key Features
📈 Dual Mode Selection : Choose between Continuous Fibonacci levels, which adapt dynamically to pivots, or a Custom Period mode, where you set your own start and end points.
📊 Integrated Volume Profile : Visualize volume distributions at key Fibonacci retracement levels, revealing areas of strong buying/selling interest.
🎨 Customizable Colors & Transparency : Adjust Fibonacci level colors, fill zones, and profile transparency for a visually clear experience.
🔍 Profile Resolution & Scaling : Control the number of price levels and width of the volume profile for detailed market insights.
🛠 Extendable Levels : Optionally extend Fibonacci levels to the right of the chart for better visualization of future price interaction.
📌 How to Use
Add the Indicator: Click on the star icon to add it to your favorites and apply it to your TradingView chart.
Analyze The Market: Observe how price interacts with Fibonacci levels alongside the volume profile to confirm support/resistance zones. Switch between custom range or continuous mode to align the tool with your trading style.
⚙️ How It Works
The indicator calculates pivot highs/lows dynamically (or uses user-defined time periods) to plot Fibonacci retracement levels. It then builds a volume profile by analyzing historical volume data, grouping it into price bins to highlight volume-heavy zones. The Point of Control (PoC) is identified as the level with the highest traded volume, acting as a key price magnet. The color-coded Fibonacci levels help traders spot retracement zones, while the volume profile confirms strength or weakness in those areas.
AE - ATR Exhaustion ChannelAE - ATR Exhaustion Channel
📈 Overview
Identify Exhaustion Zones & Trend Breakouts with ATR Precision!
The AE - ATR Exhaustion Channel is a powerful volatility-based trading tool that combines an averaged SMA with ATR bands to dynamically highlight potential trend exhaustion zones. It provides real-time breakout detection by marking when price moves beyond key volatility bands, helping traders spot overextensions and reversals with ease.
🔑 Key Features
✔️ ATR-SMA Hybrid Channel: Uses an averaged SMA as the core trend filter while incorporating adaptive ATR-based bands for precise volatility tracking.
✔️ Dynamic Exhaustion Markers: Marks red crosses when price exceeds the upper band and green crosses when price drops below the lower band.
✔️ Customizable ATR Sensitivity: Adjust the ATR multiplier and length settings to fine-tune band sensitivity based on market conditions.
✔️ Clear Channel Visualization: A gray SMA midpoint and a blue-filled ATR band zone make it easy to track market structure.
📚 How It Works
1️⃣ Averaged SMA Calculation: The script calculates an averaged SMA over a user-defined range (min/max period). This smooths out short-term fluctuations while preserving trend direction.
2️⃣ ATR Band Construction: The ATR value (adjusted by a multiplier) is added to/subtracted from the SMA to form dynamic upper and lower volatility bands.
3️⃣ Exhaustion Detection:
If high > upper ATR band, a red cross is plotted (potential overextension).
If low < lower ATR band, a green cross is plotted (potential reversal zone).
4️⃣ Filled ATR Channel: The area between the upper and lower bands is shaded blue, providing a visual trading range.
🎨 Customization & Settings
⚙️ ATR Length – Adjusts the ATR calculation period (default: 14).
⚙️ ATR Multiplier – Scales the ATR bands for tighter or wider volatility tracking (default: 0.8, adjustable in 0.1 steps).
⚙️ SMA Range (Min/Max Length) – Defines the period range for calculating the averaged SMA (default: 5-20).
⚙️ Rolling Lookback Length – Controls how far back the high/low comparison is calculated (default: 50 bars).
🚀 Practical Usage
📌 Spotting Exhaustion Zones – Look for red/green markers appearing outside the ATR bands, signaling potential trend exhaustion and possible reversal opportunities.
📌 Breakout Confirmation – Price consistently breaching the upper band with momentum could indicate continuation, while repeated touches without strong closes may hint at reversal zones.
📌 Trend Reversal Signals – Watch for green markers below the lower band in uptrends (buy signals) and red markers above the upper band in downtrends (sell signals).
🔔 Alerts & Notifications
📢 Set Alerts for Exhaustion Signals!
Traders can configure alerts to trigger when price breaches the ATR bands, allowing for instant notifications when volatility-based exhaustion is detected.
📊 Example Scenarios
✔ Trend Exhaustion in Overextended Moves – A series of red crosses near resistance may indicate a short opportunity.
✔ Trend Exhaustion in Overextended Moves – A series of red crosses near resistance may indicate an opportunity to open a short trade.
✔ Volatility Compression Breakouts – If price consolidates within the ATR bands and suddenly breaks out, it could signify a momentum shift.
✔ Reversal Catching in Trending Markets – Spot potential trend reversals by looking for green markers below the ATR bands in bullish markets.
🌟 Why Choose AE - ATR Exhaustion Channel?
Trade with Confidence. Spot Volatility. Catch Breakouts.
The AE - ATR Exhaustion Channel is an essential tool for traders looking to identify trend exhaustion, detect breakouts, and manage volatility effectively. Whether you're trading stocks, crypto, or forex, this ATR-SMA hybrid system provides clear visual cues to help you stay ahead of market moves.
✅ Customizable to Fit Any Market
✅ Combines Volatility & Trend Analysis
✅ Easy-to-Use with Instant Breakout Detection
Adaptive Resonance Oscillator [AlgoAlpha]Introducing the Adaptive Resonance Oscillator , an advanced momentum-based oscillator designed to dynamically adjust to changing market conditions. This innovative indicator detects market frequency through a Hilbert Transform approach, adapting in real-time to identify overbought and oversold conditions with improved accuracy. With built-in divergence detection, trend analysis, and customizable smoothing, this tool is perfect for traders looking to refine their entries and exits based on adaptive oscillation mechanics.
🚀 Key Features :
🔹 Adaptive Frequency Detection – Uses Hilbert Transform principles to dynamically determine market cycle length for precise oscillator calculation.
⚙️ Customizable Smoothing – Option to apply a Hull Moving Average (HMA) for enhanced signal clarity.
📈 Divergence Detection – Identifies bullish and bearish divergences with visual markers, helping traders spot early trend reversals.
🟢 Overbought & Oversold Signals – Highlights extreme momentum conditions with adjustable thresholds.
🔔 Real-Time Alerts – Get notified for crossovers, divergences, and strong trend shifts directly on your TradingView chart.
🎨 Fully Customizable Appearance – Modify colors, divergence sensitivity, and smoothing options to fit your trading style.
🛠 How to Use :
Add the Adaptive Resonance Oscillator to your TradingView chart by clicking the ★ to favorite it.
Monitor the Charts , switch between smoothed and I smoothed modes to identify trend and price swings, use divergences and reversal signals for potential entry/exits.
Set alerts for bullish/bearish crossovers and divergence signals to stay ahead of market moves.
⚙ How It Works :
The indicator begins by applying a Hilbert Transform frequency estimation to the price series, identifying the dominant market cycle length. This is used to calculate a period for the RSI that matches its resonant frequency with the dominant market frequency, dynamically adjusting the Oscillator. The oscillator then applies an optional Hull Moving Average (HMA) smoothing for signal refinement. Additionally, the indicator scans for bullish and bearish divergences by comparing oscillator movements against price action, plotting signals accordingly. When overbought/oversold conditions or divergence events occur, alerts are triggered to notify the trader in real time.