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.
Trend Analysis
Nef33-Volume Footprint ApproximationDescription of the "Volume Footprint Approximation" Indicator
Purpose
The "Volume Footprint Approximation" indicator is a tool designed to assist traders in analyzing market volume dynamics and anticipating potential trend changes in price. It is inspired by the concept of a volume footprint chart, which visualizes the distribution of trading volume across different price levels. However, since TradingView does not provide detailed intrabar data for all users, this indicator approximates the behavior of a footprint chart by using available volume and price data (open, close, volume) to classify volume as buy or sell, calculate volume delta, detect imbalances, and generate trend change signals.
The indicator is particularly useful for identifying areas of high buying or selling activity, imbalances between supply and demand, delta divergences, and potential reversal points in the market. It provides specific signals for bullish and bearish trend changes, making it suitable for traders looking to trade reversals or confirm trends.
How It Works
The indicator uses volume and price data from each candlestick to perform the following calculations:
Volume Classification:
Classifies the volume of each candlestick as "buy" or "sell" based on price movement:
If the closing price is higher than the opening price (close > open), the volume is classified as "buy."
If the closing price is lower than the opening price (close < open), the volume is classified as "sell."
If the closing price equals the opening price (close == open), it compares with the previous close to determine the direction:
If the current close is higher than the previous close, it is classified as "buy."
If the current close is lower than the previous close, it is classified as "sell."
If the current close equals the previous close, the classification from the previous bar is used.
Delta Calculation:
Calculates the volume delta as the difference between buy volume and sell volume (buyVolume - sellVolume).
A positive delta indicates more buy volume; a negative delta indicates more sell volume.
Imbalance Detection:
Identifies imbalances between buy and sell volume:
A buy imbalance occurs when buy volume exceeds sell volume by a defined percentage (default is 300%).
A sell imbalance occurs when sell volume exceeds buy volume by the same percentage.
Delta Divergence Detection:
Positive Delta Divergence: Occurs when the price is falling (for at least 2 bars) but the delta is increasing or becomes positive, indicating that buyers are entering despite the price decline.
Negative Delta Divergence: Occurs when the price is rising (for at least 2 bars) but the delta is decreasing or becomes negative, indicating that sellers are entering despite the price increase.
Trend Change Signals:
Bullish Signal (trendChangeBullish): Generated when the following conditions are met:
There is a positive delta divergence.
The delta has moved from a negative value (e.g., -500) to a positive value (e.g., +200) over the last 3 bars.
There is a buy imbalance.
The price is near a historical support level (approximated as the lowest low of the last 50 bars).
Bearish Signal (trendChangeBearish): Generated when the following conditions are met:
There is a negative delta divergence.
The delta has moved from a positive value (e.g., +500) to a negative value (e.g., -200) over the last 3 bars.
There is a sell imbalance.
The price is near a historical resistance level (approximated as the highest high of the last 50 bars).
Visual Elements
The indicator is displayed in a separate panel below the price chart (overlay=false) and includes the following elements:
Volume Histograms:
Buy Volume: Represented by a green histogram. Shows the volume classified as "buy."
Sell Volume: Represented by a red histogram. Shows the volume classified as "sell."
Note: The histograms overlap, and the last plotted histogram (red) takes visual precedence, meaning the sell volume may cover the buy volume if it is larger.
Delta Line:
Delta Volume: Represented by a blue line. Shows the difference between buy and sell volume.
A line above zero indicates more buy volume; a line below zero indicates more sell volume.
A dashed gray horizontal line marks the zero level for easier interpretation.
Imbalance Backgrounds:
Buy Imbalance: Light green background when buy volume exceeds sell volume by the defined percentage.
Sell Imbalance: Light red background when sell volume exceeds buy volume by the defined percentage.
Divergence Backgrounds:
Positive Delta Divergence: Lime green background when a positive delta divergence is detected.
Negative Delta Divergence: Fuchsia background when a negative delta divergence is detected.
Trend Change Signals:
Bullish Signal: Green label with the text "Bullish Trend Change" when the conditions for a bullish trend change are met.
Bearish Signal: Red label with the text "Bearish Trend Change" when the conditions for a bearish trend change are met.
Information Labels:
Below each bar, a label displays:
Total Vol: The total volume of the bar.
Delta: The delta volume value.
Alerts
The indicator generates the following alerts:
Positive Delta Divergence: "Positive Delta Divergence Detected! Price is falling, but delta is increasing."
Negative Delta Divergence: "Negative Delta Divergence Detected! Price is rising, but delta is decreasing."
Bullish Trend Change Signal: "Bullish Trend Change Signal! Positive Delta Divergence, Delta Rise, Buy Imbalance, and Near Support."
Bearish Trend Change Signal: "Bearish Trend Change Signal! Negative Delta Divergence, Delta Drop, Sell Imbalance, and Near Resistance."
These alerts can be configured in TradingView to receive real-time notifications.
Adjustable Parameters
The indicator allows customization of the following parameters:
Imbalance Threshold (%): The percentage required to detect an imbalance between buy and sell volume (default is 300%).
Lookback Period for Divergence: Number of bars to look back for detecting price and delta trends (default is 2 bars).
Support/Resistance Lookback Period: Number of bars to look back for identifying historical support and resistance levels (default is 50 bars).
Delta High Threshold (Bearish): Minimum delta value 2 bars ago for the bearish signal (default is +500).
Delta Low Threshold (Bearish): Maximum delta value in the current bar for the bearish signal (default is -200).
Delta Low Threshold (Bullish): Maximum delta value 2 bars ago for the bullish signal (default is -500).
Delta High Threshold (Bullish): Minimum delta value in the current bar for the bullish signal (default is +200).
Practical Use
The indicator is useful for the following purposes:
Identifying Trend Changes:
The trend change signals (trendChangeBullish and trendChangeBearish) indicate potential price reversals. For example, a bullish signal near a support level may be an opportunity to enter a long position.
Detecting Divergences:
Delta divergences (positive and negative) can anticipate trend changes by showing a disagreement between price movement and underlying buying/selling pressure.
Finding Key Levels:
Imbalances (green and red backgrounds) often coincide with support and resistance levels, helping to identify areas where the market might react.
Confirming Trends:
A consistently positive delta in an uptrend or a negative delta in a downtrend can confirm the strength of the trend.
Identifying Failed Auctions:
Although not detected automatically, you can manually identify failed auctions by observing a price move to new highs/lows with decreasing volume in the direction of the move.
Limitations
Intrabar Data: It does not use detailed intrabar data, making it less precise than a native footprint chart.
Approximations: Volume classification and support/resistance detection are approximations, which may lead to false signals.
Volume Dependency: It requires reliable volume data, so it may be less effective on assets with inaccurate volume data (e.g., some forex pairs).
False Signals: Divergences and imbalances do not always indicate a trend change, especially in strongly trending markets.
Recommendations
Combine with Other Indicators: Use tools like RSI, MACD, support/resistance levels, or candlestick patterns to confirm signals.
Trade on Higher Timeframes: Signals are more reliable on higher timeframes like 1-hour or 4-hour charts.
Perform Backtesting: Evaluate the indicator's accuracy on historical data to adjust parameters and improve effectiveness.
Adjust Parameters: Modify thresholds (e.g., imbalanceThreshold or supportResistanceLookback) based on the asset and timeframe you are trading.
Conclusion
The "Volume Footprint Approximation" indicator is a powerful tool for analyzing volume dynamics and anticipating price trend changes. By classifying volume, calculating delta, detecting imbalances and divergences, and generating trend change signals, it provides traders with valuable insights into market buying and selling pressure. While it has limitations due to the lack of intrabar data, it can be highly effective when used in combination with other technical analysis tools and on assets with reliable volume data.
Momentum Trend Strength (MTS) *Julian_Acunja*Momentum Trend Strength (MTS)
The Momentum Trend Strength (MTS) indicator visually represents market momentum directly on your chart. By clearly highlighting momentum direction and intensity, traders can easily recognize shifts in market sentiment and anticipate potential turning points.
Traders can easily adjust the sensitivity and smoothing parameters, making it adaptable to diverse market conditions and trading strategies.
🔹 USAGE
The Momentum Trend Strength indicator helps traders intuitively detect market momentum, enhancing their ability to anticipate and respond dynamically to changing market conditions. Traders typically interpret three main scenarios using this indicator:
🚀 Momentum Acceleration:
An expanding green line above recent price action signals increasing bullish momentum, suggesting buyers are gaining strength. Conversely, a downward-expanding red line below price action indicates stronger bearish momentum, signifying increasing selling pressure.
🔄 Momentum Reversal:
A clear shift from red to green (or vice versa) often signals potential momentum reversals, providing traders with timely indications of possible market turns or shifts in sentiment.
⚖️ Momentum Consolidation:
When the indicator remains near the price line, it suggests weak momentum and potential market consolidation. Traders might interpret this as a range-bound market environment, adjusting their strategies accordingly.
By carefully monitoring these momentum shifts, traders can gain deeper insights into the underlying market dynamics and better prepare for future price movements.
🔹 DETAILS
The indicator’s momentum visualization is presented directly over the current price action, enhancing traders' ability to rapidly interpret momentum without additional chart clutter:
✅ Green Line: Positive momentum (bullish bias).
❌ Red Line: Negative momentum (bearish bias).
The vertical distance between the Momentum Trend Strength line and price visually indicates momentum intensity:
Larger distance: Signifies stronger market momentum.
Smaller distance: Suggests weakening momentum or neutral conditions.
🔹 Interpretation
Key interpretations include:
Bullish Confirmation: Sustained green lines indicate robust buying activity and confirm bullish trends.
Bearish Confirmation: Persistent red lines suggest strong selling pressure and validate bearish market sentiment.
Early Reversal Signals: Color transitions alert traders to potential market reversals, providing early opportunities to reassess trades.
🔹 Practical Application
Traders commonly integrate Momentum Trend Strength (MTS) into their broader trading strategies by:
Confirming directional trends alongside price action analysis.
Identifying optimal trade entry and exit points during momentum shifts.
Reducing market noise through customizable smoothing, enhancing clarity of momentum signals.
🔹 SETTINGS
📌 Momentum Parameters
Length: Adjusts sensitivity for momentum detection, influencing how quickly momentum shifts are identified.
EMA Smoothing: Determines the level of noise filtering, balancing signal responsiveness and smoothness.
📌 Visualization
Automatic color adaptation clearly signals bullish or bearish momentum.
Simple default visualization settings optimize usability for traders across various markets and timeframes.
🔹 ADDITIONAL NOTES
The Momentum Trend Strength (MTS) indicator provides traders with a straightforward yet powerful visualization of momentum directly on the price chart. Its intuitive nature and adaptive settings make it a valuable addition to various trading approaches and analytical methods, helping traders confidently interpret market movements and momentum dynamics in real-time.
Forexsom MA Crossover SignalsA Trend-Following Trading Indicator for TradingView
Overview
This indicator plots two moving averages (MA) on your chart and generates visual signals when they cross, helping traders identify potential trend reversals. It is designed to be simple yet effective for both beginners and experienced traders.
Key Features
✅ Dual Moving Averages – Plots a Fast MA (default: 9-period) and a Slow MA (default: 21-period)
✅ Customizable MA Types – Choose between EMA (Exponential Moving Average) or SMA (Simple Moving Average)
✅ Clear Buy/Sell Signals – Displays "BUY" (green label) when the Fast MA crosses above the Slow MA and "SELL" (red label) when it crosses below
✅ Alerts – Get notified when new signals appear (compatible with TradingView alerts)
✅ Clean Visuals – Easy-to-read moving averages with adjustable colors
How It Works
Bullish Signal (BUY) → Fast MA crosses above Slow MA (suggests uptrend)
Bearish Signal (SELL) → Fast MA crosses below Slow MA (suggests downtrend)
Best Used For
✔ Trend-following strategies (swing trading, day trading)
✔ Confirming trend reversals
✔ Filtering trade entries in combination with other indicators
Customization Options
Adjust Fast & Slow MA lengths
Switch between EMA or SMA for smoother or more responsive signals
Why Use This Indicator?
Simple & Effective – No clutter, just clear signals
Works on All Timeframes – From scalping (1M, 5M) to long-term trading (4H, Daily)
Alerts for Real-Time Trading – Never miss a signal
Overlay Hourly Candle [odnac] * This script overlays 1-hour candlestick representations on the chart.
* It captures the open, close, high, and low prices for each hourly period.
* The script dynamically updates as new hourly candles form and adjusts the
* box and wick positions accordingly.
*
* Features:
* - Draws an hourly candle with body and wicks.
* - Colors bullish candles in green and bearish candles in red.
* - Updates dynamically as new hourly candles form.
* - Uses TradingView's box and line functions to represent candle structures.
*
* Usage:
* - Add the script to your TradingView chart as an overlay.
* - Observe how the hourly candles appear distinctly on any timeframe.
Internal BOS X FVG Algorithms - 1 Visi TraderInternal BOS X FVG Algorithms,
This strategy is based on 2 momentum combinations:
• Internal Break of Structure was formed together with Fair Value Gap (FVG)
Formula of Internal BOS X FVG Algorithms:
1. Break (Internal BOS) X Bullish FVG = Zone for BUY Setup
2. Break (Internal BOS) X Bearish FVG = Zone for SELL Setup
// ----------- Add-ons Setting ----------- //
Setting for Internal BOS X FVG Algorithms:
---------
#1: Internal Break of Structure Settings,
• Internal Swing:
The number of left and right Swing Intervals that are checked when searching for Swing Points. More Values = Less Swing Points plotted to be potential Internal BOS and Less Values = More Swing Points plotted to be potential Internal BOS.
• Internal BOS Color:
You can change the color of dotted line and text for Internal BOS ("Break") according to your favorites layout.
#2: Fair Value Gap Settings,
• FVG Min. Range (In Pips):
Input minimum range of Fair Value Gap in Pips, more value = less zone results.
• FVG Max. Range (In Pips):
Input maximum range of Fair Value Gap in Pips, less value = less zone results.
• Extended Right - FVG:
You can change the value of extended fair value gap zone according to your best preferences.
#3: FVG Color Settings,
• Bullish FVG:
Change color FVG for Bullish Fair Value Gap Zone.
• Bearish FVG:
Change color FVG for Bearish Fair Value Gap Zone.
#4: Mode FVG,
• FVG Variations:
- Global FVG = All Variations of Fair Value Gap Category
- Specific FVG = Variation based on last of 2 FVG's Candles in same color
#5: Trading Session,
• Session Hours:
You can adjust the trading hour according to the best session and volatility of pair assets that you want to trades.
---------
How to Entry (Instructions):
1. Buy Positions = Internal BOS ("Break") form together with Bullish FVG, wait for pullback on FVG Zone and then you can open positions. Set Stop Loss (SL) below FVG Zone and set Take Profit (TP) in minimum 1:2 RR - if price hit 1:1 RR you can set Breakeven for managing the trading risk.
2. Sell Positions = Internal BOS ("Break") form together with Bearish FVG, wait for pullback on FVG Zone and then you can open positions. Set Stop Loss (SL) above FVG Zone and set Take Profit (TP) in minimum 1:2 RR - if price hit 1:1 RR you can set Breakeven for managing the trading risk.
*Notes:
The best pair asset for this strategy is on Gold (XAU/USD) at NY Sessions (19.00 - 22.00 GMT+7) - Timeframe M1 (1 Minute).
--------
Best Regards,
- 1 VISI TRADER
Trading for Prosperity!
--------
DISCLAIMER: No reselling or any other forms of use are authorized for our documents, script / strategy, and the information published with them. This informational planning script / strategy is strictly for individual use and educational purposes only. This is not financial or investment advice. Investments are always made at your own risk and are based on your personal judgement. I am not responsible for any losses you may incur. Please invest wisely.*
9 by 21(high & low) GSK-VIZAG-AP-INDIA21 EMA High & Low + 9 EMA Crossover with Volume & Wick Confirmation
🔹 What Does This Indicator Do?
This indicator is designed for momentum-based trend trading by combining exponential moving averages (EMAs), price action filters, and volume analysis. It provides traders with high-probability buy and sell signals while filtering out weak trends and false breakouts.
🔹 How Is It Different from Other Indicators?
Unlike traditional EMA crossover strategies that rely only on moving averages, this indicator enhances reliability by incorporating custom volume conditions, price action validation, and wick-based filtering.
Key Features That Make It Unique:
Dynamic EMA Bands for Trend Identification
Uses 21 EMA High & 21 EMA Low as dynamic support & resistance levels, creating a flexible trading range.
Helps traders identify trend strength and potential reversals without relying on static levels.
Enhanced EMA Crossover System
Includes a 9 EMA crossover signal to detect momentum shifts before traditional EMAs react.
Avoids lagging signals often seen in standard moving average crossovers.
Smart Volume-Based Confirmation
Uses a custom volume multiplier to detect significant market participation.
Filters out low-volume breakouts that may lead to false signals.
Wick-Based Filtering for Precision
Identifies candles with no lower wick (for buy signals) and no upper wick (for sell signals) to confirm strong price movements.
Helps traders avoid weak reversals and focus only on strong momentum shifts.
🔹 How to Use This Indicator in Trading?
Buy Conditions:
Bullish candle (green) with no lower wick, confirming strong buying pressure.
Price is above the 21 EMA High and remains above 21 EMA Low.
Volume shows an increase, confirming market participation.
Sell Conditions:
Bearish candle (red) with no upper wick, signaling strong selling pressure.
Price is below the 21 EMA Low and remains under the 21 EMA High.
Volume confirms strong momentum in the downward direction.
Bonus: The indicator also highlights 9 EMA & 21 EMA crossovers to provideearly trend confirmations.
Who Should Use This Indicator?
✅ Intraday Traders – Looking for quick entry and exit signals based on price momentum.
✅ Swing Traders – Who want to identify medium-term trend shifts with volume confirmation.
✅ Trend Followers – Seeking a robust moving average system to avoid false breakouts.
✅ Momentum Traders – Who need price-action-based confirmation before taking a trade.
Why This Indicator Stands Out?
Unlike standard EMA-based indicators that often generate false breakouts, this tool:
✔️ Filters low-quality signals using smart volume analysis.
✔️ Enhances trend confirmation with wick-based filtering.
✔️ Detects momentum early using a unique EMA crossover combination.
This makes it more reliable than traditional moving average-based systems and highly adaptable for different market conditions.
Note: The logic behind this indicator is proprietary and non-repainting, making it a powerful tool for traders who rely on EMA-based trend strategies.
Try it out and see how it improves your trading decisions!
Why This Description Works?
✔ No code exposure – The logic is explained in concept but not in detail.
✔ Clear differentiation – Shows why this is better than other indicators.
✔ Compliant with TradingView rules – No vague claims, but precise explanations.
Would you like to add any specific trading examples or screenshots to further enhance it? Let me know!
Share Your Experience!
Your feedback is valuable! If you find this indicator useful, leave a comment with your experience—how it worked for you, any improvements you suggest, or the best settings you discovered.
Let’s build a community of traders refining strategies together!
Disclaimer:
This indicator is for educational and informational purposes only. It does not guarantee profitable trades and should be used with proper risk management. Always conduct your own research before making trading decisions.
ICT Breakers (BOS / MSS - Market Structure) [ICTProTools]The Breakers (Market Structure) indicator is designed to help traders identify true breaker structures , a key concept in Inner Circle Trader (ICT) methodology. In market structure, Breakers represent powerful shifts where a key high or low is broken, leading to a reversal in market direction. Most tools misinterpret structure shifts, using internal structure , leading to fake breakouts. This tool solves that problem by filtering out false signals , providing clear & structured insights , all with multi-timeframe compatibility.
💎 Key Features
⚡️ Breakers in action
The indicator shows the structure following ICT instructions. A breaker is defined by two lines:
The first line confirms the previous trend (it could be interpreted as a BOS).
The second line highlights the moment price breaks structure (with candle body or wick based on your chosen settings), signaling a shift in trend direction (like an MSS).
Furthermore, it’s important to note that a breaker not only shows the structure, but also defines a potential Point of Interest (POI), an area where price may retrace before continuing its trend.
Here, we can observe two clear structure shifts.
On the far left, the market was in a bearish trend, illustrated by the first visible (dotted and red) line. Shortly after, the second (solid and green) line appears, showing a break that initiates a new bullish trend.
This upward movement continues, with the last confirmation marked by a top structure line. And finally, the structure is broken once again indicating a transition back into a bearish trend.
💪 Real Structure with True Highs / Lows
Unlike many indicators that detect internal breakouts , this tool follows ICT’s true market structure rules .
In a bearish trend , a bullish breaker is only confirmed when the high that created the low is broken , and conversely for a bullish scenario.
Fake breakouts are ignored, preventing misleading signals.
In the image above, the white breakout is correctly ignored by the indicator, as it doesn't align with ICT’s structural rules. That white high is simply part of the internal structure, not the true swing point. Instead, the green line highlights the key level that truly matters, the one whose rupture would have confirmed a real change in market structure.
🔔 Smart Alerts for Structure Updates
Stay one step ahead with customizable alerts designed to notify you instantly when market structure changes occur.
Get notified for BOS (Continuation) and / or MSS (Breaker) events.
Set alerts for bullish , bearish , or both directions.
Choose between once or repeated alerts , based on your strategy.
This feature allows traders to remain focused and reactive , even when monitoring multiple markets.
In the alert settings, select which structure shifts you want to be notified of. Whether you're a scalper or a swing trader, the alerts keep you connected to key moments without needing to constantly monitor the chart.
⏳ Multi-Timeframe Structure
All features of the indicator are fully compatible with higher timeframes .
Get a broader view of market structure without switching timeframes.
Monitor higher timeframe structures and receive alerts, all without leaving your analysis chart .
In this example, the market structure of the 30m timeframe is displayed while on a 5m chart, providing a clearer perspective.
✨ Customization & User Control
Make it yours! The indicator allows full customization:
Swing bars (to confirm high / low)
Select your mode for Breakers (MSS) , using the candle body only or body / wick
Line style (type, width, color)
Choice of displayed timeframe
Activate any alert , with the frequency you want
🎯 Conclusion
✅ Avoid false signals by focusing on true ICT Breakers
✅ Smart alerts to never miss a structural shift
✅ Multi-timeframe support for enhanced analysis
✅ Clean & professional design for an optimal trading experience
Correlation TableThis indicator displays a vertical table that shows the correlation between the asset currently loaded on the chart and up to 32 selected trading pairs. It offers the following features:
Chart-Based Correlation: Correlations are calculated based on the asset you have loaded in your chart, providing relevant insights for your current market focus.
Configurable Pairs: Choose from a list of 32 symbols (e.g., AUDUSD, EURUSD, GBPUSD, etc.) with individual checkboxes to include or exclude each pair in the correlation analysis.
Custom Correlation Length: Adjust the lookback period for the correlation calculation to suit your analysis needs.
Optional EMA Smoothing: Enable an Exponential Moving Average (EMA) on the price data, with a configurable EMA length, to smooth the series before calculating correlations.
Color-Coded Output: The table cells change color based on the correlation strength and direction—neutral, bullish (green), or bearish (red)—making it easy to interpret at a glance.
Clear Table Layout: The indicator outputs a neatly organized vertical table with headers for "Pair" and "Correlation," ensuring the information is displayed cleanly and is easy to understand.
Ideal for traders who want a quick visual overview of how different instruments correlate with their current asset, this tool supports informed multi-asset analysis
ITALIANO:
Questo indicatore visualizza una tabella verticale che mostra la correlazione tra l'asset attualmente caricato sul grafico e fino a 32 coppie di trading selezionate. Offre le seguenti funzionalità:
Correlazione basata sul grafico: le correlazioni vengono calcolate in base all'asset caricato nel grafico, fornendo informazioni pertinenti per il tuo attuale focus di mercato.
Coppie configurabili: scegli da un elenco di 32 simboli (ad esempio, AUDUSD, EURUSD, GBPUSD, ecc.) con caselle di controllo individuali per includere o escludere ciascuna coppia nell'analisi della correlazione.
Lunghezza di correlazione personalizzata: regola il periodo di lookback per il calcolo della correlazione in base alle tue esigenze di analisi.
Smoothing EMA opzionale: abilita una media mobile esponenziale (EMA) sui dati dei prezzi, con una lunghezza EMA configurabile, per smussare la serie prima di calcolare le correlazioni.
Output codificato a colori: le celle della tabella cambiano colore in base alla forza e alla direzione della correlazione, neutra, rialzista (verde) o ribassista (rosso), rendendola facile da interpretare a colpo d'occhio.
Clear Table Layout: l'indicatore genera una tabella verticale ordinatamente organizzata con intestazioni per "Coppia" e "Correlazione", assicurando che le informazioni siano visualizzate in modo chiaro e siano facili da comprendere.
Ideale per i trader che desiderano una rapida panoramica visiva di come diversi strumenti siano correlati con il loro asset corrente, questo strumento supporta un'analisi multi-asset informata
Stacked EMA Candle Colors - Enhanced📊 Stacked EMA Candle Colors – Trend Strength Visualizer
Description:
🚀 Overview:
The Stacked EMA Candle Colors – Trend Strength Visualizer is a simple yet powerful indicator that helps traders identify market trends using Exponential Moving Averages (EMAs). By dynamically coloring candles based on the strength and alignment of multiple EMAs, this tool makes it easier to spot bullish and bearish trends at a glance, without cluttering your chart with multiple EMA lines.
🔹 Key Features:
✅ Four Customizable EMA lengths (adjust in settings)
✅ Candles change color based on EMA stacking (adjustable)
✅ Four-part gradient-based strength visualization for momentum confirmation (adjustable)
✅ Works on all timeframes and asset classes
🎨 How It Works:
When shorter EMAs (e.g., 9, 21) are above longer EMAs (e.g., 50, 200), the trend is bullish, and candles turn green/lime based on momentum strength.
When shorter EMAs are below longer EMAs, the trend is bearish, and candles turn red/pink depending on trend intensity.
If no clear trend is detected, candles remain gray for neutrality.
📈 Ideal for:
✔️ Trend traders who want a clear visual representation of momentum
✔️ Scalpers, day traders, and swing traders looking for quick trend confirmation
✔️ Anyone who wants to enhance their chart readability
🔧 Customization:
Easily adjust the EMA periods in the settings menu to fit your preferred trading strategy!
🚀 Add this indicator to your TradingView chart and spot trends with confidence!
Trendline Breaks with Multi Fibonacci Supertrend StrategyTMFS Strategy: Advanced Trendline Breakouts with Multi-Fibonacci Supertrend
Elevate your algorithmic trading with institutional-grade signal confluence
Strategy Genesis & Evolution
This advanced trading system represents the culmination of a personal research journey, evolving from my custom " Multi Fibonacci Supertrend with Signals " indicator into a comprehensive trading strategy. Built upon the exceptional trendline detection methodology pioneered by LuxAlgo in their " Trendlines with Breaks " indicator, I've engineered a systematic framework that integrates multiple technical factors into a cohesive trading system.
Core Fibonacci Principles
At the heart of this strategy lies the Fibonacci sequence application to volatility measurement:
// Fibonacci-based factors for multiple Supertrend calculations
factor1 = input.float(0.618, 'Factor 1 (Weak/Fibonacci)', minval = 0.01, step = 0.01)
factor2 = input.float(1.618, 'Factor 2 (Medium/Golden Ratio)', minval = 0.01, step = 0.01)
factor3 = input.float(2.618, 'Factor 3 (Strong/Extended Fib)', minval = 0.01, step = 0.01)
These precise Fibonacci ratios create a dynamic volatility envelope that adapts to changing market conditions while maintaining mathematical harmony with natural price movements.
Dynamic Trendline Detection
The strategy incorporates LuxAlgo's pioneering approach to trendline detection:
// Pivotal swing detection (inspired by LuxAlgo)
pivot_high = ta.pivothigh(swing_length, swing_length)
pivot_low = ta.pivotlow(swing_length, swing_length)
// Dynamic slope calculation using ATR
slope = atr_value / swing_length * atr_multiplier
// Update trendlines based on pivot detection
if bool(pivot_high)
upper_slope := slope
upper_trendline := pivot_high
else
upper_trendline := nz(upper_trendline) - nz(upper_slope)
This adaptive trendline approach automatically identifies key structural market boundaries, adjusting in real-time to evolving chart patterns.
Breakout State Management
The strategy implements sophisticated state tracking for breakout detection:
// Track breakouts with state variables
var int upper_breakout_state = 0
var int lower_breakout_state = 0
// Update breakout state when price crosses trendlines
upper_breakout_state := bool(pivot_high) ? 0 : close > upper_trendline ? 1 : upper_breakout_state
lower_breakout_state := bool(pivot_low) ? 0 : close < lower_trendline ? 1 : lower_breakout_state
// Detect new breakouts (state transitions)
bool new_upper_breakout = upper_breakout_state > upper_breakout_state
bool new_lower_breakout = lower_breakout_state > lower_breakout_state
This state-based approach enables precise identification of the exact moment when price breaks through a significant trendline.
Multi-Factor Signal Confluence
Entry signals require confirmation from multiple technical factors:
// Define entry conditions with multi-factor confluence
long_entry_condition = enable_long_positions and
upper_breakout_state > upper_breakout_state and // New trendline breakout
di_plus > di_minus and // Bullish DMI confirmation
close > smoothed_trend // Price above Supertrend envelope
// Execute trades only with full confirmation
if long_entry_condition
strategy.entry('L', strategy.long, comment = "LONG")
This strict requirement for confluence significantly reduces false signals and improves the quality of trade entries.
Advanced Risk Management
The strategy includes sophisticated risk controls with multiple methodologies:
// Calculate stop loss based on selected method
get_long_stop_loss_price(base_price) =>
switch stop_loss_method
'PERC' => base_price * (1 - long_stop_loss_percent)
'ATR' => base_price - long_stop_loss_atr_multiplier * entry_atr
'RR' => base_price - (get_long_take_profit_price() - base_price) / long_risk_reward_ratio
=> na
// Implement trailing functionality
strategy.exit(
id = 'Long Take Profit / Stop Loss',
from_entry = 'L',
qty_percent = take_profit_quantity_percent,
limit = trailing_take_profit_enabled ? na : long_take_profit_price,
stop = long_stop_loss_price,
trail_price = trailing_take_profit_enabled ? long_take_profit_price : na,
trail_offset = trailing_take_profit_enabled ? long_trailing_tp_step_ticks : na,
comment = "TP/SL Triggered"
)
This flexible approach adapts to varying market conditions while providing comprehensive downside protection.
Performance Characteristics
Rigorous backtesting demonstrates exceptional capital appreciation potential with impressive risk-adjusted metrics:
Remarkable total return profile (1,517%+)
Strong Sortino ratio (3.691) indicating superior downside risk control
Profit factor of 1.924 across all trades (2.153 for long positions)
Win rate exceeding 35% with balanced distribution across varied market conditions
Institutional Considerations
The strategy architecture addresses execution complexities faced by institutional participants with temporal filtering and date-range capabilities:
// Time Filter settings with flexible timezone support
import jason5480/time_filters/5 as time_filter
src_timezone = input.string(defval = 'Exchange', title = 'Source Timezone')
dst_timezone = input.string(defval = 'Exchange', title = 'Destination Timezone')
// Date range filtering for precise execution windows
use_from_date = input.bool(defval = true, title = 'Enable Start Date')
from_date = input.time(defval = timestamp('01 Jan 2022 00:00'), title = 'Start Date')
// Validate trading permission based on temporal constraints
date_filter_approved = time_filter.is_in_date_range(
use_from_date, from_date, use_to_date, to_date, src_timezone, dst_timezone
)
These capabilities enable precise execution timing and market session optimization critical for larger market participants.
Acknowledgments
Special thanks to LuxAlgo for the pioneering work on trendline detection and breakout identification that inspired elements of this strategy. Their innovative approach to technical analysis provided a valuable foundation upon which I could build my Fibonacci-based methodology.
This strategy is shared under the same Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license as LuxAlgo's original work.
Past performance is not indicative of future results. Conduct thorough analysis before implementing any algorithmic strategy.
Dynamic Heat Levels [BigBeluga]This indicator visualizes dynamic support and resistance levels with an adaptive heatmap effect. It helps traders identify key price interaction zones and potential mean reversion opportunities by displaying multiple levels that react to price movement.
🔵Key Features:
Multi-Level Heatmap Channel:
- The indicator plots multiple dynamic levels forming a structured channel.
- Each level represents a historical price interaction zone, helping traders identify critical areas.
- The channel expands or contracts based on market conditions, adapting dynamically to price movements.
Heatmap-Based Strength Indication:
- Levels change in transparency and color intensity based on price interactions for the length period .
- The more frequently price interacts with a level, the more visible and intense the color becomes.
- When a level reaches a threshold (count > 10), it starts to turn red, signaling a high-heat zone with significant price activity.
🔵Usage:
Support & Resistance Analysis: Identify price levels where the market frequently interacts, making them strong areas for trade decisions.
Heatmap Strength Assessment: More intense red levels indicate areas with heavy price activity, useful for detecting key liquidity zones.
Dynamic Heat Levels is a powerful tool for traders looking to analyze price interaction zones with a heatmap effect. It offers a structured visualization of market dynamics, allowing traders to gauge the significance of key levels and detect mean reversion setups effectively.
Original Gann Swing Chart Rules [AlgoFuego]🔵 Original Gann Swing Chart Rules
An advanced indicator built on W.D. Gann’s original rules, enhanced with innovative mechanical trend-following methods.
🔹 Description
This indicator functions by balancing short-term adaptability with long-term trend analysis.
The indicator incorporates Gann’s principles alongside mechanical trend-following techniques to offer a structured method for analyzing trends and detecting potential market reversals.
Golden Rule: Non-trend bars are excluded from analysis, and each new bar is compared with the previous trend bar, it highlights significant swing points with greater clarity.
🔸 The core concept behind the golden rule on which this indicator is built.
The person watching the tide coming, wanting to pinpoint the exact spot that signals the high tide, places a stick in the sand at the points where the incoming waves reach until the stick reaches a position where the waves no longer rise, and eventually recedes enough to show that the tide has shifted.
This method is effective for monitoring and identifying tides and floods in the stock market.
🔸Rule 1: The trend bar is everything.
→It is a bar that forms a new high, low, or both.
🔸Rule 2: The professional traders track new highs and lows.
🔸Rule 3: The hidden bar is nothing.
→It is a bar that does not form a new high, low, or both.
🔸Rule 4: The sea has a wavy nature, and the market as well.
🔸Rule 5: The slope is the immediate direction of the swing.
Downward slope
→The downslope is the descending slope of a swing, shows a decline, reflecting a bearish price trend.
Upward slope
→The upslope is the ascending slope of a swing, shows an incline, reflecting a bullish price trend.
🔸Rule 6: The start and end of the movement are the swing points.
→The lowest or highest price of the last bar in the direction of the slope represents the swing point after the slopes direction changes.
Valley
→It is the lowest price of the last bar in a downslope before the market turns to a upslope.
End=> Downward slope and Start=> Upward slope
Peak
→It is the highest price of the last bar in a upslope before the market turns to an downslope.
End=> Upward slope and Start=> Downward slope
🔸Rule 7: The Golden Rule: Ignore all no-trend bars and compare the new bar with the previous trend bar.
→Applying the golden rule in upward slope
→Applying the golden rule in downward slope
🔸 Related content: Personal words of W.D Gann from the book Wall Street Stock Selector.
→"This was only one month's reaction the same as March 1925. The market held in a dull narrow range for about 2 months while accumulation was taking place and in June the main trend turned up again."
→The beginning of the main trend and the formation of the Valley.
→The beginning of the main trend and the formation of the Peak.
🔸 Rule 8: The Closing Price of the Bar to Understand Movement Direction.
Sequence is important
→ Downward bar
→ Upward bar
🔸 Outside Bar Rules
→Explanation of rules and calculations.
🔸 How does a trend start?
Upward trend
Trend change from Downward to Upward.
Prices must take out the nearest 'Peak' and the Trend was previously Downward.
A breakout above the previous peak signals a bullish reversal.
→ Model 1 - Dropping Valley Reversal
The market forms a dropping valley, followed by a breakout above the previous peak.
→ Model 2 - Equal Valley Reversal
The market forms an equal valley, followed by a breakout above the previous peak.
→ Model 3 - Rising Valley Reversal
The market forms a rising valley, followed by a breakout above the previous peak.
Downward trend
Trend change from Upward to Downward.
Prices must take out the nearest ‘Valley' and the Trend was previously Upward.
A breakdown below the previous valley signals a bearish reversal.
→ Model 1 - Rising Peak Reversal
The market forms a rising peak, followed by a breakdown below the previous valley.
→ Model 2 - Equal Peak Reversal
The market forms an equal peak, followed by a breakdown below the previous valley.
→ Model 3 - Dropping Peak Reversal
The market forms a dropping peak, followed by a breakdown below the previous valley.
🔸 The fractal nature of markets
Rising wave
→ The rising wave is the entire bull market between turning points
High point : When the Main trend turns from upward to downward, the peak of the primary trend is formed.
Dropping wave
→ The Dropping wave is the entire bear market between turning points.
Low point : When the Main trend turns from downward to upward, the primary trend valley is formed.
Fractal nature application.
Everything in one picture.
🔹 Features
Strict adherence to the rules: Follows the Original Gann Swing Chart Rules to detect swing points.
Fractal analysis: Uses trend bars and fractal analysis to identify swing points.
Robust functionality: Engineered to handle complex market conditions with advanced logic.
Custom alerts: Alerts for peak/valley completion, main and primary trend reversals & continuations.
Golden rule application: Filters out non-trend bars by comparing only with the last trend bar.
Reversal & trend detection: Applies eight outside bar rules to detect trend reversals and continuations.
Dynamic customization: Fully customizable settings.
🔹 Settings overview
Fine-tune the indicator to match your unique trading strategy by adjusting trend settings, customizing alerts, and modifying visualization options.
1. Main trend settings
Hide/Show Main trend options: Instantly hide all main trend options (alerts remain separate).
Main trendline display & alerts: Toggle trendline visibility and set alerts for peaks and valleys.
Trendline customization: Adjust styles, colors, and slopes for upward/downward trends.
Peaks & Valleys markers: Show/hide points and customize their color and size.
Opposite Main trend turning points: Enable alerts and modify style, width, color, and offset.
Breakout/Breakdown points: Set alerts and customize their appearance.
2. Primary trend settings
Hide/Show primary trend options: Instantly hide all primary trend options (alerts remain separate).
Primary trendline display & alerts: Toggle trendline visibility and set alerts for peaks and valleys.
Trendline customization: Adjust styles, colors, and slopes for upward/downward trends.
Peaks & Valleys markers: Show/hide points and customize their color and size.
Opposite primary trend turning points: Enable alerts and modify style, width, color, and offset.
Breakout/Breakdown points: Set alerts and customize their appearance.
3. Additional options
Tooltips display: Control tooltip visibility for labels and languages.
Candle/Bar coloring: Customize candle and bar colors based on algorithm-selected trends.
🔸 Additional features
🔹Custom reading of bars.
The arrow represents the direction of the slope, the dot is the type of trend, and the line is the closing price.
🔹 Advanced Moving Average Activator
The Advanced Moving Average Activator, this setting calculates the average closing prices of trend bars only, which are the only bars considered by Gann.
The advantage of this method is that it helps avoid hidden bars that are not accounted for, making the difference more evident in a ranging market. The values are updated only when new highs or lows occur.
Additionally, you can set alerts when the price closes above or below the moving average.
🔹 Bar Counter
After a trend change, you can see exactly when the shift occurred and customize the type of trend you want to track.
For example, by conducting your own research on the assets you trade, based on historical data, you might discover valuable insights, such as the primary trend possibly lasting longer than 20 bars!
You can use these insights to refine your trading strategy and make more data-driven decisions.
🔹 How to use
Step 1: Configure the settings and choose your trading approach
Adjust the indicator settings to match your trading style and market conditions.
Effectively using the indicator starts with selecting your preferred trading style.
You can trade in alignment with the primary trend, capitalize on market reversals, or take advantage of breakouts.
Trading with the primary trend: Best for traders who prefer longer-term positions with higher stability.
Trading reversals: Ideal for those looking to enter at potential turning points but requires additional confirmation.
Trading breakouts: Suitable for traders targeting strong price movements after key level breakouts.
Adapting to market volatility: Monitor changing volatility and adjust your strategy accordingly for optimal results.
Step 2: Analyze the chart
Apply the indicator to your TradingView chart and interpret swing signals for informed decisions.
Carefully study the chart patterns to detect subtle signals.
Check if similar signals worked well in past market conditions.
Use multi-timeframe analysis for a broader perspective.
Step 3: Trade with the primary trend
Utilize trend direction to align trades with prevailing market movements.
Always trade in the direction of the primary trend.
Confirm the trend direction using multiple indicators or by relying on the primary trend as confirmation!.
Avoid trading against strong market momentum.
Step 4: Identify entry signals
Use indicator signals to identify ideal trade entry points.
Look for confirmation before entering a trade.
Wait for clear signals to avoid false entries.
Practice on a demo account to build confidence in your entry strategy.
Step 5: Apply risk management
Define stop-loss and take-profit levels to protect your capital effectively.
Set stop-loss orders at strategic levels to limit potential losses.
Risk only a small percentage of your capital per trade.
Adjust risk levels based on your overall portfolio performance.
Step 6: Confirm with trend analysis
Validate trends using additional indicators for a higher probability of success.
Use complementary tools to confirm trend direction.
Monitor trend changes to adjust your strategy promptly.
Keep an eye on volume indicators for added confirmation.
Step 7: Execute the trade
Enter trades based on confirmed signals and predefined strategy rules.
Ensure all your criteria are met before executing a trade.
Stay disciplined and stick to your strategy.
Review market conditions right before execution.
Step 8: Monitor the trade
Track trade performance and make adjustments as necessary.
Keep an eye on market conditions throughout the trade.
Be ready to adjust your strategy if unexpected events occur.
Use trailing stops to secure profits while allowing for gains.
Step 9: Implement exit strategy
Close trades strategically based on your pre-established exit plan.
Plan your exit strategy in advance and adhere to it.
Consider partial exits to secure profits along the way.
Avoid emotional decisions when closing trades.
Step 10: Review performance
Analyze past trades to continuously refine and improve your strategy.
Regularly review and document your trades for insights.
Identify patterns in both your successes and mistakes.
Update your strategy based on comprehensive performance reviews.
🔹 Disclosure
While this script is useful and provides insight into market tops, bottoms, and trend trading, it's critical to understand that past performance is not necessarily indicative of future results and there are many more factors that go into being a profitable trader.
TR FVG & Swing High Low FinderTR FVG & Swing Level Finder
Overview:
The TR FVG & Swing Level Finder is a powerful Pine Script indicator designed for traders who want to identify Fair Value Gaps (FVGs) and Swing Highs/Lows on their charts. This indicator combines two essential technical analysis tools into one, helping traders spot potential areas of support, resistance, and trend reversals. FVGs are price gaps that often act as areas of interest for price to return to, while swing highs and lows help identify key turning points in the market. The indicator is highly customizable, allowing users to adjust colors, limits, and display options to suit their trading style.
Key Features:
1: Fair Value Gap (FVG) Detection:
- Identifies Bullish FVGs: Occur when the high of two candles ago is lower than the low of the current candle, indicating a potential upward price movement.
- Identifies Bearish FVGs: Occur when the low of two candles ago is higher than the high of the current candle, indicating a potential downward price movement.
- Displays FVGs as colored boxes on the chart, with customizable border and fill colors based on the timeframe.
- Labels each FVG box with the corresponding timeframe (e.g., "1m FVG", "1h FVG", "Daily FVG").
2: Swing High and Swing Low Detection:
- Detects Swing Highs: A 3-candle pattern where the middle candle's high is higher than the highs of the candles on either side.
- Detects Swing Lows: A 3-candle pattern where the middle candle's low is lower than the lows of the candles on either side.
- Draws a solid black line with 50% opacity at each swing high and low, extending 5 bars to the right for better visibility.
- Adds a small Swing High or Swing Low label at the right end of each line, colored according to user-defined settings.
3: Timeframe-Specific FVG Visualization:
- FVGs are color-coded based on the chart's timeframe, making it easy to distinguish between FVGs on different timeframes.
- Each timeframe has its own fill color for bullish and bearish FVGs, with adjustable transparency for better chart clarity.
- A dashed black line is drawn in the middle of each FVG box to highlight the midpoint of the gap.
4: Customizable Display Options:
- FVG Limit: Control the maximum number of FVGs displayed on the chart (from 1 to 20).
- Extend Options for FVG Boxes:
- "None": FVG boxes extend only 2 bars to the right.
- "Limited": FVG boxes extend a user-defined number of candles to the right (1 to 100 candles).
- "Default": FVG boxes extend 3 bars to the right of the current bar.
- Color Customization:
- Set border colors for bullish and bearish FVGs.
- Adjust fill colors for FVGs on different timeframes (1m, 5m, 15m, 30m, 1h, 4h, Daily, Weekly, Monthly).
- Customize the colors of swing high and swing low labels.
5: Performance Optimization:
- The indicator only plots FVGs and swings on the last confirmed bar (barstate.islastconfirmedhistory), ensuring efficient performance and reducing chart clutter.
- Limits the number of displayed FVGs and swings to the user-defined fvgLimit, keeping the chart clean and focused on the most recent price action.
6: Inputs and Customization:
- Number of FVGs to Show (fvgLimit): Set the maximum number of FVGs and swings to display (default: 3, range: 1 to 20).
- Bullish FVG Border Color (bullishColor): Choose the border color for bullish FVGs (default: green).
- Bearish FVG Border Color (bearishColor): Choose the border color for bearish FVGs (default: red).
- Swing High Color (swingHighColor): Set the color for swing high labels (default: blue).
- Swing Low Color (swingLowColor): Set the color for swing low labels (default: purple).
- Extend Options:
- Extend Option (extendOption): Choose how far FVG boxes extend to the right ("None", "Limited", or "Default"; default: "Default").
- Extend Candles (extendCandles): If "Limited" is selected, specify the number of candles to extend FVG boxes (default: 8, range: 1 to 100).
- Timeframe-Specific Fill Colors:
- Customize fill colors for bullish and bearish FVGs on various timeframes (1m, 5m, 15m, 30m, 1h, 4h, Daily, Weekly, Monthly).
- Each fill color has a default transparency (e.g., 93% for most timeframes, 90% for 30m), which can be adjusted as needed.
How to Use:
1: Add the Indicator to Your Chart:
- Open TradingView, go to the Pine Editor, and paste the script.
- Click "Add to Chart" to apply the indicator to your current chart.
2: Adjust Settings:
- Open the indicator settings by clicking the gear icon next to the indicator name on your chart.
- Modify the inputs to suit your preferences:
- Set the number of FVGs and swings to display.
- Choose your preferred colors for FVGs and swings.
- Adjust the extend options for FVG boxes.
3: Interpret the Indicator:
- FVG Boxes: Look for colored boxes on the chart, which represent Fair Value Gaps. Bullish FVGs (green borders by default) suggest potential buying opportunities, while bearish FVGs (red borders by default) suggest potential selling opportunities. The label inside each box indicates the timeframe of the FVG.
- Swing Highs and Lows: Identify key turning points with solid black lines (50% opacity) at swing highs and lows. Each line extends 5 bars to the right, with an "SH" (Swing High) or "SL" (Swing Low) label at the end. Swing highs can act as resistance levels, while swing lows can act as support levels.
4: Combine with Your Strategy:
- Use FVGs to identify areas where price might return to fill the gap, often acting as support or resistance.
- Use swing highs and lows to spot potential trend reversals or to set stop-loss and take-profit levels.
- Combine the indicator with other tools (e.g., trendlines, moving averages) for a more comprehensive trading strategy.
Notes:
- The indicator works on all timeframes, but the appearance of FVGs and swings will vary depending on the chart's timeframe.
- For best results, use the indicator on a clean chart to avoid visual clutter, especially if you increase the fvgLimit.
- The swing high/low lines are drawn with 50% opacity to ensure they don’t overpower other chart elements, but they are still clearly visible.
Author’s Note:
This script was developed to help traders identify key price levels with ease. I hope it adds value to your trading! If you have any feedback or suggestions for improvement, feel free to leave a comment. Happy trading!
Exact Dynamic Yield SpreadYield Spread Overlay
"Yield Spread Overlay" is an indicator that displays the yield spread between two currencies based on their respective 10-year bond yields. It overlays directly onto the Forex chart, allowing real-time visualization of the relationship between the yield spread and the currency pair's price movements.
This indicator saves time by avoiding the manual addition of bond yields. Unlike manual methods, it supports smaller timeframes (1h, 4h, etc.), making it particularly useful.
Several customization options are available to suit individual preferences:
Custom Display: Adjust the line thickness and color.
Scale Position: Choose between displaying the scale on the right or left side of the chart.
This indicator helps traders better understand currency relationships and can serve as an additional tool within a Forex trading strategy.
All feedback, suggestions, and critiques—positive or negative—are welcome to continually improve this tool.
Trailing Lagged AssetThis indicator allows you to overlay a secondary asset on your main chart with a customizable lag and trailing lag which are additional offsets in relation to the main lag variable.