Kameniczki Zig ZagWatch the market with maximum confidence thanks to the automatic selection of the most relevant regression channel and its strength. Whether you're trading short-term waves or long-term trends, this indicator gives you a precise view of market structure and potential reversal zones.
- Customizable
- Alerts
- Automatic detection of the strongest trend
- Accurate standard deviation calculations
- Intuitive data display in a clear table
- Suitable for scalping, day trading, and swing strategies
Zig Zag is not just another indicator – it's a reliable guide in any market environment. Make smart decisions, view the market through the eyes of a professional, and trade with confidence.
線性回歸(LR)
Scalper StrategyScalper Strategy Documentation
A comprehensive, multi-indicator scalping system for TradingView. This strategy combines trend, momentum, volatility, and volume filters to identify high-probability entries and exits, and restricts trades to user-defined time slots for optimal performance.
1. Core Concept
This strategy aims to capture short, strong price movements by requiring multiple technical signals to align before entering a trade. It is highly configurable, allowing users to adjust indicator settings, risk management parameters, and trading time windows.
2. Key Components
Trend and Price Filters
Heikin Ashi Candles, Linear Regression (3 periods), McGinley Dynamic (2 periods), EMA Bands, and HMA are used to clarify and confirm trend direction. Momentum and Oscillator Filters
RSI (2 periods), MACD (2 sets), and SMI (Stochastic Momentum Index) confirm momentum and trend changes. Volatility and Strength Filters
ATR (Average True Range) with ADX ensures trades are only taken during periods of sufficient volatility and trend strength. Volume-Weighted Candle Strength
Calculates the volume-weighted body size of bullish and bearish candles over a user-defined lookback period to confirm the strength of the current move. Chandelier Exit
Uses ATR-based stop levels to help determine trend direction and manage exits dynamically.
3. Entry and Exit Logic
Long (Buy) Entry: All of the following must be true: Trend filters confirm an uptrend. Momentum filters confirm bullish momentum. Volatility and trend strength filters are positive. Volume-weighted bullish candle strength is present. Current time is within one of the three user-defined time slots. Short (Sell) Entry: The opposite of the above, with all filters confirming a downtrend and bearish momentum. Long Exit: Triggered by a combination of opposite signals from the filters or by hitting a stop loss or take profit (if enabled). Short Exit: The opposite logic, or hitting stop loss/take profit.
4. Time Slot Filter
Restricts trade entries to three user-defined time windows (e.g., 09:15–10:30, 13:00–14:00, 15:00–15:30). Users set the start and end times for each slot in the strategy settings. Trades are only entered if the current time falls within any of the active slots.
5. Risk Management
Stop Loss and Take Profit: Configurable as a percentage of entry price. Can be enabled or disabled. Position Sizing: By default, uses 100% of equity per trade (adjustable in settings).
6. Alerts and Visualization
Alerts: The strategy can trigger alerts for entries, exits, stop loss, and take profit events. Plotting: Visual signals (labels) are plotted on the chart for all major events, and background colors indicate trend direction.
7. How to Use
Add the strategy to your TradingView chart. Configure indicator and filter settings as desired in the strategy's input panel. Set your preferred time slots for trading. Enable or disable stop loss and take profit as needed. Monitor the chart for signals and alerts. Review performance in the TradingView strategy tester.
8. Notes and Best Practices
Backtest thoroughly on your chosen market and timeframe before live trading. Adjust time slots to match periods of high liquidity for your instrument. Fine-tune indicator settings for your asset and trading style. Use proper risk management and never risk more than you can afford to lose.
9. Disclaimer
This strategy is for educational purposes only. Past performance does not guarantee future results. Use at your own risk.
Linear Regression Slope The Linear Regression Slope provides a quantitative measure of trend direction. It fits a linear regression line to the past N closing prices and calculates the slope, representing the average rate of price change per bar.
To ensure comparability across assets and timeframes, the slope is normalized by the ATR over a shorter window. This produces a volatility-adjusted measure which allows for the slope to be interpreted relative to typical price fluctuations.
Mathematically, the slope is derived by minimizing the sum of squared deviations between actual prices and the fitted regression line. A positive normalized slope indicate upwards movement; a negative slope indicate downwards movement. Persistent values near zero could indicate an absence of clear trend, with price dominated by short-term fluctuations or noise.
The definition of a trend depends on the period of observation. The lookback setting should be set based on to the desired timeframe. Shorter lookbacks will respond faster to recent changes but may be more sensitive to noise, while longer lookbacks will emphasize broader structures.
While effective at quantifying existing trends, this method is not predictive. Sudden regime changes, volatility shocks, and non-linear dynamics can all cause rapid slope reversals. Therefore, it is best applied as part of a broader analytical framework.
In summary, the Linear Regression Slope quantifies price direction and serves as a measurable supplement to the visual assessment of trends on price charts.
Additional Features:
Option to display or hide the normalized slope line.
Option to enable background coloring when the slope is above or below zero.
BTC Linear Regression Entry Signal by OzzzyFXIdentify optimal buy and sell zones on BTC/USDT using a custom-built Linear Regression Channel strategy.
this script highlights high-probability entry points when BTC pulls back to the lower band during uptrends, confirmed with momentum.
- automatic trend detection (based on regression slope)
- momentum confirmation using simplified Squeeze logic
- clean visualization with regression channel and breakout logic
- alerts supported for BUY entries
perfect for 4h swing traders or intraday momentum scalpers.
made by @ozzzy.fx
tipsito: use with volume profiles, EMA 55, and breakout structures for higher win rates.
LinReg Heikin Ashi CandlesLinear Regression Heikin Ashi Candles will dramatically change how the candlesticks on your chart will appear. This script creates Heikin Ashi candles from the existing candlesticks and then applies wickless Linear Regression candles as an overlay. The result is an ultra smoothed 'Renko-like' chart that remains time-based and responsive.
Key Features:
Heikin Ashi Base: Provides a smoother representation of price trends by filtering out noise.
Linear Regression Candles on Heikin Ashi: Plots Linear Regression lines as candles on the Heikin Ashi chart, potentially highlighting the immediate trend direction and momentum within the smoothed data. Wicks are intentionally removed for a clearer focus on the linear progression.
Tillson T3 Moving Averages: Includes fast and slow T3 Moving Averages with customizable length and alpha. These smoothed moving averages can help identify trend direction and potential crossover signals. Users can toggle their visibility.
Volatility Bands: Integrates Volatility Bands based on Average True Range (ATR) with customizable length, ATR type (RMA, SMA, EMA, WMA), and inner/outer multipliers. These bands help gauge price volatility and potential reversal zones. Users can toggle the visibility of the basis line.
Customizable Colors: Allows users to customize the colors of the Linear Regression Heikin Ashi bullish and bearish candles.
How to Use:
This is an overlay on your chart so you'll need to 'hide' the existing candlesticks on your chart.
This indicator can be used on any timeframe from seconds to days to quickly identify market trend, gauge volatility, and potentially find entry/exit points. Consider looking for confluence between the candle color/direction, T3 MA crossovers, and price interaction with the Volatility Bands.
Note: This indicator plots Linear Regression directly on Heikin Ashi candles, removing wicks for a focus on the linear trend within the smoothed data. Adjust the input parameters to suit your trading style and the specific market conditions.
HUGE CREDIT to ugurvu who originally created the Linear Regression Candles indicator that my indicator pulls code from.
Change of Character FanChange of Character Fan
Overview
The Change of Character Fan is designed to help traders detect shifts (changes of character) in market direction and sentiment before they become fully visible through traditional candlestick analysis. Instead of relying solely on the shape or close of candlesticks, this indicator offers a direct, real-time look at the internal price action occurring within a single bar. This visibility into intrabar dynamics can potentially allow traders to enter or exit trades earlier, minimize false signals, and reduce their dependence on multiple lower-timeframe charts.
How it Works:
The indicator plots a "fan" consisting of five distinct slope lines within the current bar. Each line represents the internal trend of price movement based on user-defined lower timeframe data intervals.
By default, these intervals are set to 3, 5, 8, 13, and 21 samples from 1-second timeframe data.
Each line only appears when it has collected the minimum required number of intrabar data points.
The fan lines use a progressive opacity scale (lighter to darker), visually highlighting the confidence level or probability of directional continuation within the current bar.
At the open of every new bar, the fan disappears completely and gradually reappears as new data is gathered, ensuring clarity and eliminating outdated signals.
Understanding the Mathematics: Linear Regression Model
This indicator is built around the concept of a linear regression model. Linear regression is a statistical technique used to model and analyze relationships between variables—in this case, time (independent variable) and price (dependent variable).
How Linear Regression Works:
Linear regression fits a straight line (called a "line of best fit") through a set of data points, minimizing the overall distance between each point and the line itself.
Mathematically, this is achieved by minimizing the squared differences (errors) between the observed values (actual prices) and the predicted values (prices on the line).
The linear model used here can be expressed in the form:
y = mx + b
where:
𝑦
y is the predicted price,
𝑥
x represents time (each data sample interval),
𝑚
m is the slope of the line, representing the direction and velocity of the trend,
𝑏
b is the intercept (the theoretical price when x=0).
Why a Linear Model is Beneficial in this Indicator:
Simplicity and Reliability: Linear regression is simple, robust, and widely accepted as a baseline predictive model. It requires minimal computational resources, providing instant updates in real-time trading conditions.
Immediate Directional Feedback: The slope derived from linear regression immediately communicates the directional tendency of recent price action. A positive slope indicates upward pressure, and a negative slope signals downward pressure.
Noise Reduction: Even when price fluctuations are noisy or erratic, linear regression summarizes overall direction clearly, making it easier to detect genuine directional shifts (change of character) rather than random price noise.
Intrabar Analysis: Traditional candlestick analysis relies on fully formed candles, potentially delaying signals. By using linear regression on very short-term (intrabar) data, traders can detect shifts in momentum more quickly, providing an earlier signal than conventional candle patterns alone.
Practical Application:
This indicator helps traders to visually identify:
Early Trend Reversals: Intrabar analysis reveals momentum shifts potentially signaling reversals before they become obvious on conventional candles.
Momentum Continuations: Confidence is gained when all lines in the fan are clearly pointing in the same direction, indicating strong intrabar conviction.
Reduced False Signals: Traditional candlestick signals (e.g., hammer candles) sometimes produce false signals due to intrabar noise. By looking directly into intrabar dynamics, traders gain better context on whether candle patterns reflect genuine directional change or merely noise.
Important Requirements and Recommendations:
Subscription Requirements:
A TradingView subscription that supports sub-minute data (e.g., 1-second or 5-second resolution) is strongly recommended.
If your subscription doesn't include this data granularity, you must use a 1-minute lower timeframe, significantly reducing responsiveness. In this scenario, it's best suited for a 15-minute or higher chart, adjusting intervals to shorter periods.
Live Data Essential:
Real-time market data subscription is essential for the accuracy and effectiveness of this indicator.
Using delayed data reduces responsiveness and weakens the indicator's primary advantage.
Recommended Settings for Different Chart Timeframes:
1-minute chart: Use 1-second lower timeframe intervals (default intervals: 3, 5, 8, 13, 21).
5-minute chart: Adjust to a 5- or 10-second lower timeframe, possibly reducing intervals to shorter periods (e.g., 3, 5, 8, 10, 12).
15-minute or higher charts: Adjust lower timeframe to 1-minute if granular data is unavailable, with reduced interval lengths to maintain responsiveness.
Conclusion:
The Change of Character Fan empowers traders with early insight into directional shifts within each candle, significantly enhancing reaction speed, signal accuracy, and reducing dependency on multiple charts. Built on robust linear regression mathematics, it combines clarity, responsiveness, and ease-of-use in a powerful intrabar analysis tool.
Trade smarter, see sooner, and react faster.
Rolling Beta against SPY📈 Pine Script Showcase: Rolling Beta Against SPY
Understanding how your favorite stock or ETF moves in relation to a benchmark like the S&P 500 can offer powerful insights into risk and exposure. This script calculates and visualizes the rolling beta of any asset versus the SPY ETF (which tracks the S&P 500).
🧠 What Is Beta?
Beta measures the sensitivity of an asset's returns to movements in the broader market. A beta of:
- 1.0 means the asset moves in lockstep with SPY,
- >1.0 indicates higher volatility than the market,
- <1.0 implies lower volatility or possible defensive behavior,
- <0 suggests inverse correlation (e.g., hedging instruments).
🧮 How It Works
This script computes rolling beta over a user-defined window (default = 60 periods) using classic linear regression math:
- Calculates daily returns for both the asset and SPY.
- Computes covariance between the two return streams.
- Divides by the variance of SPY returns to get beta.
⚙️ Customization
You can adjust the window size to control the smoothing:
- Shorter windows capture recent volatility changes,
- Longer windows give more stable, long-term estimates.
📊 Visual Output
The script plots the beta series dynamically, allowing you to observe how your asset’s correlation to SPY evolves over time. This is especially useful in regime-change environments or during major macroeconomic shifts.
💡 Use Cases
- Portfolio construction: Understand how your assets co-move with the market.
- Risk management: Detect when beta spikes—potentially signaling higher market sensitivity.
- Market timing: Use beta shifts to infer changing investor sentiment or market structure.
📌 Pro Tip: Combine this rolling beta with volatility, Sharpe ratio, or correlation tracking for a more robust factor-based analysis.
Ready to add a layer of quantitative insight to your chart? Add the script to your watchlist and start analyzing your favorite tickers against SPY today!
Leavitt Convolution ProbabilityTechnical Analysis of Markets with Leavitt Market Projections and Associated Convolution Probability
The aim of this study is to present an innovative approach to market analysis based on the research "Leavitt Market Projections." This technical tool combines one indicator and a probability function to enhance the accuracy and speed of market forecasts.
Key Features
Advanced Indicators : the script includes the Convolution line and a probability oscillator, designed to anticipate market changes. These indicators provide timely signals and offer a clear view of price dynamics.
Convolution Probability Function : The Convolution Probability (CP) is a key element of the script. A significant increase in this probability often precedes a market decline, while a decrease in probability can signal a bullish move. The Convolution Probability Function:
At each bar, i, the linear regression routine finds the two parameters for the straight line: y=mix+bi.
Standard deviations can be calculated from the sequence of slopes, {mi}, and intercepts, {bi}.
Each standard deviation has a corresponding probability.
Their adjusted product is the Convolution Probability, CP. The construction of the Convolution Probability is straightforward. The adjusted product is the probability of one times 1− the probability of the other.
Customizable Settings : Users can define oversold and overbought levels, as well as set an offset for the linear regression calculation. These options allow for tailoring the script to individual trading strategies and market conditions.
Statistical Analysis : Each analyzed bar generates regression parameters that allow for the calculation of standard deviations and associated probabilities, providing an in-depth view of market dynamics.
The results from applying this technical tool show increased accuracy and speed in market forecasts. The combination of Convolution indicator and the probability function enables the identification of turning points and the anticipation of market changes.
Additional information:
Leavitt, in his study, considers the SPY chart.
When the Convolution Probability (CP) is high, it indicates that the probability P1 (related to the slope) is high, and conversely, when CP is low, P1 is low and P2 is high.
For the calculation of probability, an approximate formula of the Cumulative Distribution Function (CDF) has been used, which is given by: CDF(x)=21(1+erf(σ2x−μ)) where μ is the mean and σ is the standard deviation.
For the calculation of probability, the formula used in this script is: 0.5 * (1 + (math.sign(zSlope) * math.sqrt(1 - math.exp(-0.5 * zSlope * zSlope))))
Conclusions
This study presents the approach to market analysis based on the research "Leavitt Market Projections." The script combines Convolution indicator and a Probability function to provide more precise trading signals. The results demonstrate greater accuracy and speed in market forecasts, making this technical tool a valuable asset for market participants.
Linear Regression Volume Profile [ChartPrime]LR VolumeProfile
This indicator combines a Linear Regression channel with a dynamic volume profile, giving traders a powerful way to visualize both directional price movement and volume concentration along the trend.
⯁ KEY FEATURES
Linear Regression Channel: Draws a statistically fitted channel to track the market trend over a defined period.
Volume Profile Overlay: Splits the channel into multiple horizontal levels and calculates volume traded within each level.
Percentage-Based Labels: Displays each level's share of total volume as a percentage, offering a clean way to see high and low volume zones.
Gradient Bars: Profile bars are colored using a gradient scale from yellow (low volume) to red (high volume), making it easy to identify key interest areas.
Adjustable Profile Width and Resolution: Users can change the width of profile bars and spacing between levels.
Channel Direction Indicator: An arrow inside a floating label shows the direction (up or down) of the current linear regression slope.
Level Style Customization: Choose from solid, dashed, or dotted lines for visual preference.
⯁ HOW TO USE
Use the Linear Regression channel to determine the dominant price trend direction.
Analyze the volume bars to spot key levels where the majority of volume was traded—these act as potential support/resistance zones.
Pay attention to the largest profile bars—these often mark zones of institutional interest or price consolidation.
The arrow label helps quickly assess whether the trend is upward or downward.
Combine this tool with price action or momentum indicators to build high-confidence trading setups.
⯁ CONCLUSION
LR Volume Profile is a precision tool for traders who want to merge trend analysis with volume insight. By integrating linear regression trendlines with a clean and readable volume distribution, this indicator helps traders find price levels that matter the most—backed by volume, trend, and structure. Whether you're spotting high-volume nodes or gauging directional flow, this toolkit elevates your decision-making process with clarity and depth.
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.
Autocorrelation Price Forecasting [The Quant Science]Discover how to predict future price movements using autocorrelation and linear regression models to identify potential trading opportunities.
An advanced model to predict future price movements using autocorrelation and linear regression. This script helps identify recurring market cycles and calculates potential gains, with clear visual signals for quick and informed decisions.
Main function
This script leverages an autocorrelation model to estimate the future price of an asset based on historical price relationships. It also integrates linear regression on percentage returns to provide more accurate predictions of price movements.
Insights types
1) Red label on a green candle: Bearish forecast and swing trading opportunity.
2) Red label on a red candle: Bearish forecast and trend-following opportunity.
3) Green label on a red candle: Bullish forecast and swing trading opportunity.
4) Green label on a green candle: Bullish forecast and trend-following opportunity.
IMPORTANT!
The indicator displays a future price forecast. When negative, it estimates a future price drop.
When positive, it estimates a future price increase.
Key Features
Customizable inputs
Analysis Length: number of historical bars used for autocorrelation calculation. Adjustable between 1 and 200.
Forecast Colors: customize colors for bullish and bearish signals.
Visual insights
Labels: hypothetical gains or losses are displayed as labels above or below the bars.
Dynamic coloring: bullish (green) and bearish (red) signals are highlighted directly on the chart.
Forecast line: A continuous line is plotted to represent the estimated future price values.
Practical applications
Short-term Trading: identify repetitive market cycles to anticipate future movements.
Visual Decision-making: colored signals and labels make it easier to visualize potential profit or loss for each trade.
Advanced Customization: adjust the data length and colors to tailor the indicator to your strategies.
Limitations
Prediction price models have some limitations. Trading decisions should be made with caution, considering additional market factors and risk management strategies.
Segment RegressionAs an example of the descriptive power of Pine Script, this very short example traces a 'segment regression', a result not entirely obvious with so few lines of code, repositioning them when the previous inference moves away from the graph beyond the pre-set limit.
A trick used is to restart the new inference segment
- from the maximum reached in the previous trend, when positive (slope>0)
- from the minimum reached in the previous trend, when negative (slope<0)
The result can in my opinion be easily used to build strategies.
[Excalibur] Advanced Polynomial Regression Trend ChannelIt's been a long time coming... Regression channel enthusiasts, it's 'ultimately' here! Welcome to my Apophis page. But first, let me explain the origins of its attributed name blending both descriptive & engaging content with concise & technical topics...
EGYPTIAN ROOTED TALES:
Apophis (Greek) or Apep (Egyptian) was known by many cultures to be a mighty Egyptian archetype of chaos, darkness, and destruction. In ancient Egyptian mythology, Apophis was often depicted in the form of a fearsome menacing serpent, in those days, with an insatiable appetite for relentless malevolence. This dreaded entity was considered a formidable enemy and was also believed to appear as a giant serpent arising from the underworld.
Forever engaging in eternal battle, according to lore, Apophis' adversarial attributes represented the forces of disorder and anarchy clashing with the forces of order and harmony. This serpent's wickedly described figure was significantly symbolic of the disruptive, treacherous powers that Apophis embodied, those which threatened to plunge the perceivable archaic world into darkness. To the ancients, the legendary cyclical struggles against Apophis served as allegory reflecting on the macrocosm of the larger conflict between good and evil disparities that shaped early ancient civilization, much like the tree serpent.
One of Apophis’ mythological roots was immortally depicted on tomb stone. On one particular hieroglyphic wall tableau, in the second chamber of Inherkau’s tomb at Deir el-Medina, within the Theban Necropolis, portrays a mural of a serpent (Apep) under an edible fruit tree being slain in defeat. The species of snake depicted on various locations of tomb walls appears to me to bear a striking resemblance to the big eyed Echis pyramidum (Egyptian saw-scaled viper) native to regions of North Africa and the Middle East. It's a species of viper notoriously contributing to the most snake bite fatalities in the world still to this day; talk about a true harbinger of chaos incarnate. You do NOT want to cross paths with this asp in the dark of night, ever! Nor the other species of Echis found around Echid trees in the garden.
As we all know, fabled archaic storytelling can be misconstruing. Yet, these archaic serpent narratives still have echoes of significant notions and wisdom to learn from, especially in a modern technological society still rife with miscalculating deep snakes slithering about with intent to specifically plot disorder on national scales, and then profitably capitalize on it. Many deep black snakes are hiding in plain sight and under rocks. They do indeed speak and spell with forked tongues and malfeasance to the masses. I have great news. Tools now exist in the realms of AI combined with fractal programming circles to uncover these venomous viper mesh networks and investigatively monitor their subversive activities, so their days are surely numbered for... GAME OVER. Prepare to meet the doom you vain vipers have sought!
The arrival of the great and powerful international storm of the century has come, clothed in vindication. It's the only just way for the globe to clean house and move forward economically into the evolving herafter unobstructed by rampant evils and corruption. The foundations of future architectures are being established, and these nefarious obstacles MUST NOT hinder that path ahead.
With my former days of serpent wrangling being behind me, I now explore avenues of history, philosophy, programming, and mathematics, weaving them all into my daily routine. Now is the time to make some mathematical history unfold and get to the good and spicy stuff that you as the reader seek...
CALCULATING ON CHAOS:
Perhaps frightful characteristics of serpents (their maneuverability to adapt to any swervy situation) could be harnessed and channeled into a powerful tool for navigating the treacherous waters of data chaos. What if taming a monstrous beast of mayhem was not only possible, but fully achievable? Well, I think I have improved upon an approach to better tackle fractal chaos handling and observation within a modest PSv6 float environment without doubles. Finally, I've successfully turned my pet anaconda, Apophis, into a docile form of mathematical charting resilience beyond anything I have ever visually witnessed before. This novel work clearly deprecates ALL of my prior regression works by performing everything those delivered AND more, but it doesn't necessarily eliminate them into extinction.
INTRODUCTION:
Allow me to introduce Apophis! What you see showcased above is also referred to as 'Advanced Polynomial Regression Trend Channel' (APRTC) for technical minds. I would describe it as an avant-garde trend channel obtaining accurate polynomial approximations on market data with Pine v6.0. APRTC is a fractal following demystifier that I can only describe as being a signal trajectory tracking stalker manifesting as a data devouring demon. My full-fledged 'Excalibur' version of poly-regression swiftly captures undulating patterns present in market data with ease and at warp speed faster than you can blink. Now unchained, this is my rendering of polynomial wrath employing the "Immense Power of Pine".
By pushing techniques of regression to extremes, I am able to trace the serpentine trajectory of chaos up to a 50th order with 100s or 1000s of samples via "advanced polynomial regression" (APR), aka Apophis. This uniquely reactive trend channel method is designed to enhance the way we engage with the complex challenge of observably interpreting chaotic price behavior. While this is the end of the road for my revolutionary trend channel technology, that doesn't imply that future polynomial regression upgrades won't/might occur... There are a number of other supplementary concepts I have in my mind that could potentially prove useful eventually, who knows. However, for the moment, I feel it's wisest to monitor how accommodating APRTC is towards servers for the present time.
HISTORICAL ENDEAVORS:
Having wrangled countless wild serpents in my youth by the handfuls, tackling this was one multi-headed regression challenge temptation I couldn't resist. Besides, serpents in reality are more than often scared of us in the wild, so I assumed this shouldn't be too terribly hard. Wrong! It's been a complex struggle indeed. APRTC gave me many stinging bites for a LONG time. I had unknowingly opened Pandora's box of polynomials unprepared for what was to follow.
Long have I wrestled with Apophis throughout many nights for years with adversity, at last having arrived at a current grand solution and ultimately emerging victorious. Now, does the significance of the entitled name Apophis become more apparent at this point of reading? What you can now witness above is a very powerful blend of precision combined with maneuverability, concluding my dreamy expectations of a maximal experience with polynomial regression in TV charts. With all of my wizardry components finally assembled, Apophis genuinely is the most phenomenal indicator I ever devised in my life... as of yet.
How was this accomplished? By unlocking a deep understanding of the mathematical principles that govern regression, combined with an arsenal of mathemagical trickeries through sheer determination. I also spent an incredible amount of time flexing the unbendable 64bit float numerics to obtain a feasible order/degree of up to 50 polynomials or up to 4000 bars of regression (never simultaneously) on a labyrinth of samples. Lastly, what was needed was a pinch of mathematical pixie dust with a pleasant dose of Pine upgrades (lots of line re-drawings) that millions of other members can also utilize. Thank you so much, Pine developers, for once again turning meager proposed visions into materialized reality by leveraging the "Power of Pine" for the many!
DESCRIBING POLYNOMIAL REGRESSION:
APRTC is a visual guide for navigating noisy markets, providing both trajectory and structure through the power of mathematical modeling. Polynomial regression, especially at higher orders, exhibits obvious sidewinder/serpentine like characteristics. Even the channel extremities, on swift one second charts, resemble scales in motion with a pair of dashed exterior lines. This poly version presently yields the best quality of fit, providing an extreme "visual analysis" of your price action in high noise environments. The greater the order of the polynomial, the more pronounced the meandering regression characteristics become, as the algorithm strives to visually capture the fundamental fractal patterns most effectively.
Polynomial Regression in Action:
The medial line displays the core polynomial regression approximation in similarity to spinal backbones of serpents when following the movements of market data. Encasing the central structure, the channel's skin consists of enveloping lines having upper and lower extremes. To further enhance visualization, background fill colors distinguish the breadth between positive and negative territories of potential movement.
Additional internal dotted variability lines are available with multiple customizable settings to adjust dynamic dispersion, color, etc. One other exciting feature I added is the the ability to see the polynomial values with up to 50 (adjustable) decimal places if available. Witnessing Xⁿ values tapering near to 0.0 may indicate overfitting. Linear regression is available at order=1 and quadratic regression is invoked using order=2.
Information Criterion:
A toggleable label provides a multitude of information such as Bayesian Information Criterion (BIC), order, period, etc. BIC serves as an polynomial regression fit metric, with lesser values indicating a better balance between polynomial order adjustments, reflecting a more accurate fit in relation to the channel's girth. One downside of BIC values is their often large numerical values, making visual comparisons challenging, and then also their rare occurrence as negative values.
Furthermore, I formulated my own "EXPERIMENTAL" Simpler Information Criterion (SIC) fit metric, which seems to offer better visual interpretability when adjusting order settings on a selected regression period, especially on minuscule price numerics. Positive valued SIC numerics with lesser digits also reflect a preferred better fit during order adjustment, same as applying BIC principles of the minimum having a superior calulation tendency. I'll let members be the judge of deciding whether my SIC is actually a superior information criterion compared to BIC.
TECHNICAL INTERPRETATION and APPLICATION:
The Apophis indicator utilizes high-order polynomial regression, up to a maximum 50th order ability to deliver a nuanced, visual representation of complex market dynamics. I would caution against using upwards toward a 50th order, because opting for a 50th order polynomial is categorically speaking "wildly unsane" in real-world practice. As the polynomial degree increases from lesser orders, the regression line exhibits more pronounced curvature and undulations.
Visually analyzing the regression curve can provide insights into prevailing trends, as well as volatility regimes. For example, a gently sloping line may signal a steady directional trend, while a tightly curled oscillating curve may indicate heightened volatility and range-bound trading. Settings are rather straight forward, and comparable to my former "Quadratic Regression Trend Channel" efforts, although one torturous feature from QRTC is omitted due too computational complexity concerns.
Notice: Trial invite only access will not be granted for this indicator. Those who are familiar with recognizing what APRTC is, you will either want it or not, to add to your arsenal of trading approaches.
When available time provides itself, I will consider your inquiries, thoughts, and concepts presented below in the comments section, should you have any questions or comments regarding this indicator. When my indicators achieve more prevalent use by TV members , I may implement more ideas when they present themselves as worthy additions. Have a profitable future everyone!
RISK DISCLAIMER:
My scripts and indicators are specifically intended for informational and educational use only. This script uses historical data points to perform calculations to derive real-time calculations. They do not infer, indicate, or guarantee future results or performance.
By utilizing this script/indicator or any portion of it, you agree to accept 100% responsibly and liability for your investment or financial decisions, and I will not be held liable for your subjective analytic interpretations incurring sustained monetary losses. The opinions and information visual or otherwise provided by this script/indicator is not investment advice, nor does it constitute recommendation.
Xmaster Formula Indicator [TradingFinder] No Repaint Strategies🔵 Introduction
The Xmaster Formula Indicator is a powerful tool for forex trading, combining multiple technical indicators to provide insights into market trends, support and resistance levels, and price reversals. Developed in the early 2010s, it is widely valued for generating reliable buy and sell signals.
Key components include Exponential Moving Averages (EMA) for identifying trends and price momentum, and MACD (Moving Average Convergence Divergence) for analyzing trend strength and direction.
The Stochastic Oscillator and RSI (Relative Strength Index) enhance accuracy by signaling potential price reversals. Additionally, the Parabolic SAR assists in identifying trend reversals and managing risk.
By integrating these tools, the Xmaster Formula Indicator provides a comprehensive view of market conditions, empowering traders to make informed decisions.
🔵 How to Use
The Xmaster Formula Indicator offers two distinct methods for generating signals: Standard Mode and Advance Mode. Each method caters to different trading styles and strategies.
Standard Mode :
In Standard Mode, the indicator uses normalized moving average data to generate buy and sell signals. The difference between the short-term (10-period) and long-term (38-period) EMAs is calculated and normalized to a 0-100 scale.
Buy Signal : When the normalized value crosses above 55, accompanied by the trend line turning green, a buy signal is generated.
Sell Signal : When the normalized value crosses below 45, and the trend line turns red, a sell signal is issued.
This mode is simple, making it ideal for traders looking for straightforward signals without the need for additional confirmations.
Advance Mode :
Advance Mode combines multiple technical indicators to provide more detailed and robust signals.
This method analyzes trends by incorporating :
🟣 MACD
Buy Signal : When the MACD histogram bars are positive.
Sell Signal : When the MACD histogram bars are negative.
🟣 RSI
Buy Signal : When RSI is below 30, indicating oversold conditions.
Sell Signal : When RSI is above 70, suggesting overbought conditions.
🟣 Stochastic Oscillator
Buy Signal : When Stochastic is below 20.
Sell Signal : When Stochastic is above 80.
🟣 Parabolic SAR
Buy Signal : When SAR is below the price.
Sell Signal : When SAR is above the price.
A signal is generated in Advance Mode only when all these indicators align :
Buy Signal : All conditions point to a bullish trend.
Sell Signal : All conditions indicate a bearish trend.
This mode is more comprehensive and suitable for traders who prefer deeper analysis and stronger confirmations before executing trades.
🔵 Settings
Method :
Choose between "Standard" and "Advance" modes to determine how signals are generated. In Standard Mode, signals are based on normalized moving average data, while in Advance Mode, signals rely on the combination of MACD, RSI, Stochastic Oscillator, and Parabolic SAR.
Moving Average Settings :
Short Length : The period for the short-term EMA (default is 10).
Mid Length : The period for the medium-term EMA (default is 20).
Long Length : The period for the long-term EMA (default is 38).
MACD Settings :
Fast Length : The period for the fast EMA in the MACD calculation (default is 12).
Slow Length : The period for the slow EMA in the MACD calculation (default is 26).
Signal Line : The signal line period for MACD (default is 9).
Stochastic Settings :
Length : The period for the Stochastic Oscillator (default is 14).
RSI Settings :
Length : The period for the Relative Strength Index (default is 14).
🔵 Conclusion
The Xmaster Formula Indicator is a versatile and reliable tool for forex traders, offering both simplicity and advanced analysis through its Standard and Advance modes. In Standard Mode, traders benefit from straightforward signals based on normalized moving average data, making it ideal for quick decision-making.
Advance Mode, on the other hand, provides a more detailed analysis by combining multiple indicators like MACD, RSI, Stochastic Oscillator, and Parabolic SAR, delivering stronger confirmations for critical market decisions.
While the Xmaster Formula Indicator offers valuable insights and reliable signals, it is important to use it alongside proper risk management and other analytical methods. By leveraging its capabilities effectively, traders can enhance their trading strategies and achieve better outcomes in the dynamic forex market.
NVOL Normalized Volume & VolatilityOVERVIEW
Plots a normalized volume (or volatility) relative to a given bar's typical value across all charted sessions. The concept is similar to Relative Volume (RVOL) and Average True Range (ATR), but rather than using a moving average, this script uses bar data from previous sessions to more accurately separate what's normal from what's anomalous. Compatible on all timeframes and symbols.
Having volume and volatility processed within a single indicator not only allows you to toggle between the two for a consistent data display, it also allows you to measure how correlated they are. These measurements are available in the data table.
DATA & MATH
The core formula used to normalize each bar is:
( Value / Basis ) × Scale
Value
The current bar's volume or volatility (see INPUTS section). When set to volume, it's exactly what you would expect (the volume of the bar). When set to volatility, it's the bar's range (high - low).
Basis
A statistical threshold (Mean, Median, or Q3) plus a Sigma multiple (standard deviations). The default is set to the Mean + Sigma × 3 , which represents 99.7% of data in a normal distribution. The values are derived from the current bar's equivalent in other sessions. For example, if the current bar time is 9:30 AM, all previous 9:30 AM bars would be used to get the Mean and Sigma. Thus Mean + Sigma × 3 would represent the Normal Bar Vol at 9:30 AM.
Scale
Depends on the Normalize setting, where it is 1 when set to Ratio, and 100 when set to Percent. This simply determines the plot's scale (ie. 0 to 1 vs. 0 to 100).
INPUTS
While the default configuration is recommended for a majority of use cases (see BEST PRACTICES), settings should be adjusted so most of the Normalized Plot and Linear Regression are below the Signal Zone. Only the most extreme values should exceed this area.
Normalize
Allows you to specify what should be normalized (Volume or Volatility) and how it should be measured (as a Ratio or Percentage). This sets the value and scale in the core formula.
Basis
Specifies the statistical threshold (Mean, Median, or Q3) and how many standard deviations should be added to it (Sigma). This is the basis in the core formula.
Mean is the sum of values divided by the quantity of values. It's what most people think of when they say "average."
Median is the middle value, where 50% of the data will be lower and 50% will be higher.
Q3 is short for Third Quartile, where 75% of the data will be lower and 25% will be higher (think three quarters).
Sample
Determines the maximum sample size.
All Charted Bars is the default and recommended option, and ignores the adjacent lookback number.
Lookback is not recommended, but it is available for comparisons. It uses the adjacent lookback number and is likely to produce unreliable results outside a very specific context that is not suitable for most traders. Normalization is not a moving average. Unless you have a good reason to limit the sample size, do not use this option and instead use All Charted Bars .
Show Vol. name on plot
Overlays "VOLUME" or "VOLATILITY" on the plot (whichever you've selected).
Lin. Reg.
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script uses as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
You're able to specify the color, length, and multiple (how much to amplify the value). The linear regression derives its value from the normalized values.
Norm. Val.
This is the color of the normalized value of the current bar (see DATA & MATH section). You're able to specify the default, within signal, and beyond signal colors. As well as the plot style.
Fade in colors between zero and the signal
Programmatically adjust the opacity of the primary plot color based on it's normalized value. When enabled, values equal to 0 will be fully transparent, become more opaque as they move away from 0, and be fully opaque at the signal. Adjusting opacity in this way helps make difference more obvious.
Plot relative to bar direction
If enabled, the normalized value will be multiplied by -1 when a bar's open is greater than the bar's close, mirroring price direction.
Technically volume and volatility are directionless. Meaning there's really no such thing as buy volume, sell volume, positive volatility, or negative volatility. There is just volume (1 buy = 1 sell = 1 volume) and volatility (high - low). Even so, visually reflecting the net effect of pricing pressure can still be useful. That's all this setting does.
Sig. Zone
Signal zones make identifying extremes easier. They do not signal if you should buy or sell, only that the current measurement is beyond what's normal. You are able to adjust the color and bounds of the zone.
Int. Levels
Interim levels can be useful when you want to visually bracket values into high / medium / low. These levels can have a value anywhere between 0 and 1. They will automatically be multiplied by 100 when the scale is set to Percent.
Zero Line
This setting allows you to specify the visibility of the zero line to best suit your trading style.
Volume & Volatility Stats
Displays a table of core values for both volume and volatility. Specifically the actual value, threshold (mean, median, or Q3), sigma (standard deviation), basis, normalized value, and linear regression.
Correlation Stats
Displays a table of correlation statistics for the current bar, as well as the data set average. Specifically the coefficient, R2, and P-Value.
Indices & Sample Size
Displays a table of mixed data. Specifically the current bar's index within the session, the current bar's index within the sample, and the sample size used to normalize the current bar's value.
BEST PRACTICES
NVOL can tell you what's normal for 9:30 AM. RVOL and ATR can only tell you if the current value is higher or lower than a moving average.
In a normal distribution (bell curve) 99.7% of data occurs within 3 standard deviations of the mean. This is why the default basis is set to "Mean, 3"; it includes the typical day-to-day fluctuations, better contextualizing what's actually normal, minimizing false positives.
This means a ratio value greater than 1 only occurs 0.3% of the time. A series of these values warrants your attention. Which is why the default signal zone is between 1 and 2. Ratios beyond 2 would be considered extreme with the default settings.
Inversely, ratio values less than 1 (the normal daily fluctuations) also tell a story. We should expect most values to occur around the middle 3rd, which is why interim levels default to 0.33 and 0.66, visually simplifying a given move's participation. These can be set to whatever you like and only serve as visual aids for your specific trading style.
It's worth noting that the linear regression oscillates when plotted directionally, which can help clarify short term move exhaustion and continuation. Akin to a relative strength index (RSI), it may be used to inform a trading decision, but it should not be the only factor.
Prediction Based on Linreg & Atr
We created this algorithm with the goal of predicting future prices 📊, specifically where the value of any asset will go in the next 20 periods ⏳. It uses linear regression based on past prices, calculating a slope and an intercept to forecast future behavior 🔮. This prediction is then adjusted according to market volatility, measured by the ATR 📉, and the direction of trend signals, which are based on the MACD and moving averages 📈.
How Does the Linreg & ATR Prediction Work?
1. Trend Calculation and Signals:
o Technical Indicators: We use short- and long-term exponential moving averages (EMA), RSI, MACD, and Bollinger Bands 📊 to assess market direction and sentiment (not visually presented in the script).
o Calculation Functions: These include functions to calculate slope, average, intercept, standard deviation, and Pearson's R, which are crucial for regression analysis 📉.
2. Predicting Future Prices:
o Linear Regression: The algorithm calculates the slope, average, and intercept of past prices to create a regression channel 📈, helping to predict the range of future prices 🔮.
o Standard Deviation and Pearson's R: These metrics determine the strength of the regression 🔍.
3. Adjusting the Prediction:
o The predicted value is adjusted by considering market volatility (ATR 📉) and the direction of trend signals 🔮, ensuring that the prediction is aligned with the current market environment 🌍.
4. Visualization:
o Prediction Lines and Bands: The algorithm plots lines that display the predicted future price along with a prediction range (upper and lower bounds) 📉📈.
5. EMA Cross Signals:
o EMA Conditions and Total Score: A bullish crossover signal is generated when the total score is positive and the short EMA crosses above the long EMA 📈. A bearish crossover signal is generated when the total score is negative and the short EMA crosses below the long EMA 📉.
6. Additional Considerations:
o Multi-Timeframe Regression Channel: The script calculates regression channels for different timeframes (5m, 15m, 30m, 4h) ⏳, helping determine the overall market direction 📊 (not visually presented).
Confidence Interpretation:
• High Confidence (close to 100%): Indicates strong alignment between timeframes with a clear trend (bullish or bearish) 🔥.
• Low Confidence (close to 0%): Shows disagreement or weak signals between timeframes ⚠️.
Confidence complements the interpretation of the prediction range and expected direction 🔮, aiding in decision-making for market entry or exit 🚀.
Español
Creamos este algoritmo con el objetivo de predecir los precios futuros 📊, específicamente hacia dónde irá el valor de cualquier activo en los próximos 20 períodos ⏳. Utiliza regresión lineal basada en los precios pasados, calculando una pendiente y una intersección para prever el comportamiento futuro 🔮. Esta predicción se ajusta según la volatilidad del mercado, medida por el ATR 📉, y la dirección de las señales de tendencia, que se basan en el MACD y las medias móviles 📈.
¿Cómo Funciona la Predicción con Linreg & ATR?
Cálculo de Tendencias y Señales:
Indicadores Técnicos: Usamos medias móviles exponenciales (EMA) a corto y largo plazo, RSI, MACD y Bandas de Bollinger 📊 para evaluar la dirección y el sentimiento del mercado (no presentados visualmente en el script).
Funciones de Cálculo: Incluye funciones para calcular pendiente, media, intersección, desviación estándar y el coeficiente de correlación de Pearson, esenciales para el análisis de regresión 📉.
Predicción de Precios Futuros:
Regresión Lineal: El algoritmo calcula la pendiente, la media y la intersección de los precios pasados para crear un canal de regresión 📈, ayudando a predecir el rango de precios futuros 🔮.
Desviación Estándar y Pearson's R: Estas métricas determinan la fuerza de la regresión 🔍.
Ajuste de la Predicción:
El valor predicho se ajusta considerando la volatilidad del mercado (ATR 📉) y la dirección de las señales de tendencia 🔮, asegurando que la predicción esté alineada con el entorno actual del mercado 🌍.
Visualización:
Líneas y Bandas de Predicción: El algoritmo traza líneas que muestran el precio futuro predicho, junto con un rango de predicción (límites superior e inferior) 📉📈.
Señales de Cruce de EMAs:
Condiciones de EMAs y Puntaje Total: Se genera una señal de cruce alcista cuando el puntaje total es positivo y la EMA corta cruza por encima de la EMA larga 📈. Se genera una señal de cruce bajista cuando el puntaje total es negativo y la EMA corta cruza por debajo de la EMA larga 📉.
Consideraciones Adicionales:
Canal de Regresión Multi-Timeframe: El script calcula canales de regresión para diferentes marcos de tiempo (5m, 15m, 30m, 4h) ⏳, ayudando a determinar la dirección general del mercado 📊 (no presentado visualmente).
Interpretación de la Confianza:
Alta Confianza (cerca del 100%): Indica una fuerte alineación entre los marcos temporales con una tendencia clara (alcista o bajista) 🔥.
Baja Confianza (cerca del 0%): Muestra desacuerdo o señales débiles entre los marcos temporales ⚠️.
La confianza complementa la interpretación del rango de predicción y la dirección esperada 🔮, ayudando en las decisiones de entrada o salida en el mercado 🚀.
Linear Regression Channel [TradingFinder] Existing Trend Line🔵 Introduction
The Linear Regression Channel indicator is one of the technical analysis tool, widely used to identify support, resistance, and analyze upward and downward trends.
The Linear Regression Channel comprises five main components : the midline, representing the linear regression line, and the support and resistance lines, which are calculated based on the distance from the midline using either standard deviation or ATR.
This indicator leverages linear regression to forecast price changes based on historical data and encapsulates price movements within a price channel.
The upper and lower lines of the channel, which define resistance and support levels, assist traders in pinpointing entry and exit points, ultimately aiding better trading decisions.
When prices approach these channel lines, the likelihood of interaction with support or resistance levels increases, and breaking through these lines may signal a price reversal or continuation.
Due to its precision in identifying price trends, analyzing trend reversals, and determining key price levels, the Linear Regression Channel indicator is widely regarded as a reliable tool across financial markets such as Forex, stocks, and cryptocurrencies.
🔵 How to Use
🟣 Identifying Entry Signals
One of the primary uses of this indicator is recognizing buy signals. The lower channel line acts as a support level, and when the price nears this line, the likelihood of an upward reversal increases.
In an uptrend : When the price approaches the lower channel line and signs of upward reversal (e.g., reversal candlesticks or high trading volume) are observed, it is considered a buy signal.
In a downtrend : If the price breaks the lower channel line and subsequently re-enters the channel, it may signal a trend change, offering a buying opportunity.
🟣 Identifying Exit Signals
The Linear Regression Channel is also used to identify sell signals. The upper channel line generally acts as a resistance level, and when the price approaches this line, the likelihood of a price decrease increases.
In an uptrend : Approaching the upper channel line and observing weakness in the uptrend (e.g., declining volume or reversal patterns) indicates a sell signal.
In a downtrend : When the price reaches the upper channel line and reverses downward, this is considered a signal to exit trades.
🟣 Analyzing Channel Breakouts
The Linear Regression Channel allows traders to identify price breakouts as strong signals of potential trend changes.
Breaking the upper channel line : Indicates buyer strength and the likelihood of a continued uptrend, often accompanied by increased trading volume.
Breaking the lower channel line : Suggests seller dominance and the possibility of a continued downtrend, providing a strong sell signal.
🟣 Mean Reversion Analysis
A key concept in using the Linear Regression Channel is the tendency for prices to revert to the midline of the channel, which acts as a dynamic moving average, reflecting the price's equilibrium over time.
In uptrends : Significant deviations from the midline increase the likelihood of a price retracement toward the midline.
In downtrends : When prices deviate considerably from the midline, a return toward the midline can be used to identify potential reversal points.
🔵 Settings
🟣 Time Frame
The time frame setting enables users to view higher time frame data on a lower time frame chart. This feature is especially useful for traders employing multi-time frame analysis.
🟣 Regression Type
Standard : Utilizes classical linear regression to draw the midline and channel lines.
Advanced : Produces similar results to the standard method but may provide slightly different alignment on the chart.
🟣 Scaling Type
Standard Deviation : Suitable for markets with stable volatility.
ATR (Average True Range) : Ideal for markets with higher volatility.
🟣 Scaling Coefficients
Larger coefficients create broader channels for broader trend analysis.
Smaller coefficients produce tighter channels for precision analysis.
🟣 Channel Extension
None : No extension.
Left: Extends lines to the left to analyze historical trends.
Right : Extends lines to the right for future predictions.
Both : Extends lines in both directions.
🔵 Conclusion
The Linear Regression Channel indicator is a versatile and powerful tool in technical analysis, providing traders with support, resistance, and midline insights to better understand price behavior. Its advanced settings, including time frame selection, regression type, scaling options, and customizable coefficients, allow for tailored and precise analysis.
One of its standout advantages is its ability to support multi-time frame analysis, enabling traders to view higher time frame data within a lower time frame context. The option to use scaling methods like ATR or standard deviation further enhances its adaptability to markets with varying volatility.
Designed to identify entry and exit signals, analyze mean reversion, and assess channel breakouts, this indicator is suitable for a wide range of markets, including Forex, stocks, and cryptocurrencies. By incorporating this tool into your trading strategy, you can make more informed decisions and improve the accuracy of your market predictions.
Linear Regression Channel Screener [Daveatt]Hello traders
First and foremost, I want to extend a huge thank you to @LonesomeTheBlue for his exceptional Linear Regression Channel indicator that served as the foundation for this screener.
Original work can be found here:
Overview
This project demonstrates how to transform any open-source indicator into a powerful multi-asset screener.
The principles shown here can be applied to virtually any indicator you find interesting.
How to Transform an Indicator into a Screener
Step 1: Identify the Core Logic
First, identify the main calculations of the indicator.
In our case, it's the Linear Regression
Channel calculation:
get_channel(src, len) =>
mid = math.sum(src, len) / len
slope = ta.linreg(src, len, 0) - ta.linreg(src, len, 1)
intercept = mid - slope * math.floor(len / 2) + (1 - len % 2) / 2 * slope
endy = intercept + slope * (len - 1)
dev = 0.0
for x = 0 to len - 1 by 1
dev := dev + math.pow(src - (slope * (len - x) + intercept), 2)
dev
dev := math.sqrt(dev / len)
Step 2: Use request.security()
Pass the function to request.security() to analyze multiple assets:
= request.security(sym, timeframe.period, get_channel(src, len))
Step 3: Scale to Multiple Assets
PineScript allows up to 40 request.security() calls, letting you monitor up to 40 assets simultaneously.
Features of This Screener
The screener provides real-time trend detection for each monitored asset, giving you instant insights into market movements.
It displays each asset's position relative to its middle regression line, helping you understand price momentum.
The data is presented in a clean, organized table with color-coded trends for easy interpretation.
At its core, the screener performs trend detection based on regression slope calculations, clearly indicating whether an asset is in a bullish or bearish trend.
Each asset's price is tracked relative to its middle regression line, providing additional context about trend strength.
The color-coded visual feedback makes it easy to spot changes at a glance.
Built-in alerts notify you instantly when any asset experiences a trend change, ensuring you never miss important market moves.
Customization Tips
You can easily expand the screener by adding more symbols to the symbols array, adapting it to your watchlist.
The regression parameters can be adjusted to match your preferred trading timeframes and sensitivity.
The alert system is already configured to notify you of trend changes, but you can customize the alert messages and conditions to your needs.
Limitations
While powerful, the screener is bound by PineScript's limitation of 40 security calls, capping the maximum number of monitored assets.
Using AI to Help With Conversion
An interesting tip:
You can use AI tools to help convert single-asset indicators to screeners.
Simply provide the original code and ask for assistance in transforming it into a screener format. While the AI output might need some syntax adjustments, it can handle much of the heavy lifting in the conversion process.
Prompt (example) : " Please make a pinescript version 5 screener out of this indicator below or in attachment to scan 20 instruments "
I prefer Claude AI (Opus model) over ChatGPT for pinescript.
Conclusion
This screener transformation technique opens up endless possibilities for market analysis.
By following these steps, you can convert any indicator into a powerful multi-asset scanner, enhancing your trading toolkit significantly.
Remember: The power of a screener lies not just in monitoring multiple assets, but in applying consistent analysis across your entire watchlist in real-time.
Feel free to fork and modify this screener for your own needs.
Happy trading! 🚀📈
Daveatt
Pearson's R TrendPearson's R Trend Indicator
Overview
The Pearson's R Trend Indicator is an advanced technical analysis tool that measures the strength and direction of price trends using statistical correlation. By comparing fast and slow-period Pearson correlation coefficients, this indicator helps identify trend momentum, potential reversals, and overbought/oversold conditions.
Key Features
Dual timeframe correlation analysis (Fast and Slow periods)
Signal line with crossover alerts
Dynamic histogram for trend visualization
Configurable overbought/oversold levels
Multiple visual components with customizable colors
Comprehensive alert system
Technical Details
Core Calculations
Fast R: Calculates Pearson's correlation coefficient over the faster period (default: 21 periods)
Slow R: Calculates Pearson's correlation coefficient over the slower period (default: 34 periods)
R-Diff: Normalized difference between Fast and Slow R values (range: -1 to 1)
Signal Line: Smoothed average of R-Diff (default: 3-period SMA)
Histogram: Difference between R-Diff and Signal Line
Signal Generation
Zero Line Crosses
• Bullish: R-Diff crosses above zero
• Bearish: R-Diff crosses below zero
Signal Line Crosses
• Bullish: R-Diff crosses above Signal Line
• Bearish: R-Diff crosses below Signal Line
Overbought/Oversold Conditions
• Overbought: R-Diff above 0.45 (default)
• Oversold: R-Diff below -0.45 (default)
Customization Options
Calculation Settings
Fast Length: Period for fast correlation calculation (default: 21)
Slow Length: Period for slow correlation calculation (default: 34)
Signal Smoothing: Moving average period for signal line (default: 3)
Price Source: Configurable input source (default: close)
Visual Settings
Histogram display toggle
Signal line display toggle
Crossing markers toggle
Line width adjustments
Custom color schemes for bullish/bearish signals
Configurable overbought/oversold levels
Interpretation
Bullish Signals
R-Diff crossing above zero
R-Diff crossing above signal line
R-Diff emerging from oversold territory
Positive histogram expansion
Bearish Signals
R-Diff crossing below zero
R-Diff crossing below signal line
R-Diff dropping from overbought territory
Negative histogram expansion
Alert Conditions
Zero line crosses (both directions)
Signal line crosses (both directions)
Overbought zone entry
Oversold zone entry
Best Practices
Use multiple timeframe analysis for confirmation
Combine with volume and price action analysis
Watch for divergences between R-Diff and price
Pay attention to histogram momentum changes
Use overbought/oversold levels as dynamic support/resistance zones
Notes
The indicator uses statistical correlation to measure trend strength
Normalized calculations ensure consistent -1 to 1 range
Built-in alert system for all major signal types
Customizable visual elements for optimal chart analysis
Disclaimer
This technical indicator is designed to supplement your trading analysis and should not be used as the sole decision-making tool. Always combine with other forms of analysis and proper risk management techniques.
Adaptive Linear Regression ChannelOverview
The Adaptive Linear Regression Channel Script is an advanced, multi-functional trading tool crafted to help traders pinpoint market trends, identify potential reversals, assess volatility, and establish dynamic levels for profit-taking and position exits. By incorporating key concepts such as linear regression , standard deviation , and other volatility measures like the ATR , the script offers a comprehensive view of market behavior beyond traditional deviation metrics.
This dynamic model continuously adapts to changing market conditions, adjusting in real-time to provide clear visualizations of trends, channels, and volatility levels. This adaptability makes the script invaluable for both trend-following and counter-trend strategies, giving traders the flexibility to respond effectively to different market environments.
Background
What is Linear Regression?
Definition : Linear regression is a statistical technique used to model the relationship between a dependent variable (target) and one or more independent variables (predictors).
In its simplest form (simple linear regression), the relationship between two variables is represented by a straight line (the regression line).
y = mx + b
where :
- y is the target variable (price)
- m is the slope
- x is the independent variable (time)
- b is the intercept
Slope of the Regression Line
Definition: The slope (m) measures the rate at which the dependent variable (y) changes as the independent variable (x) changes.
Interpretation:
- A positive slope indicates an uptrend.
- A negative slope indicates a downtrend.
Uses in Trading:
- Identifying the strength and direction of market trends.
- Assessing the momentum of price movements.
R-squared (Coefficient of Determination)
Definition: A measure of how well the regression line fits the data, ranging from 0 to 1.
Calculation :
R2 = 1− (SS tot/SS res)
where:
- SSres is the sum of squared residuals.
- SStot is the total sum of squares.
Interpretation:
- Higher R2 indicates a better fit, meaning the model explains a larger proportion of the variance in the data.
Uses in Trading:
- Higher R-squared values give traders confidence in trend-based signals.
- Low R-squared values may suggest that the market is more random or volatile.
Standard Deviation
Definition: Standard Deviation quantifies the dispersion of data points in a dataset relative to the mean. A low standard deviation indicates that data points tend to be close to the mean, while a high standard deviation indicates that the data points are spread out over a larger range of values.
Calculation
σ=√∑(xi−μ)2/N
Where
- σ is the standard deviation.
- ∑ is the summation symbol, indicating that the expression that follows should be summed over all data points.
- xi, this represents the i-th data point in the dataset.
- μ\mu, this represents the mean(average) of all the data points in the dataset.
- (xi−μ)2, this is the squared difference between each data point and the mean.
- N is the total number of data points in the dataset.
- **Interpretation**
- A higher standard deviation indicates greater volatility.
- Useful for identifying overbought/oversold conditions in markets.
Key Features
Dynamic Linear Regression Channels:
The script automatically generates adaptive regression channels that expand or contract based on the current market volatility. This real-time adjustment ensures that traders are always working with the most relevant data, making it easier to spot key support and resistance levels.
The channel width itself serves as an indicator of market volatility, expanding during periods of heightened uncertainty and contracting during more stable phases. Additionally, the channel width is trained on previous channel widths , allowing the script to adapt and provide a more accurate view of volatility trends of the asset. Traders can also customize the script to train on less historical data , enabling a more recent view of volatility , which is particularly useful in fast-moving or changing markets.
Dynamic Profits and Stops:
What is it?
Dynamic profit levels allow traders to adjust take-profit targets based on real-time market conditions. Unlike static levels, which remain fixed regardless of market changes, these adaptive levels leverage past volatility data to create more flexible profit-taking strategies.
How does it work?
The script determines these levels using previously stored deviation values. These deviations are categorized into quantiles (like Q1, Q2, Q3, etc.) to classify current market conditions. As new deviation data is recorded, the profit levels are adjusted dynamically to reflect changes in market volatility. This approach helps to refine profit targets, especially when using regression channels with standard deviation rather than traditional ATR bands.
Why is it valuable?
By utilizing adaptive profit levels, traders can optimize their exits based on the current volatility landscape. For instance, when volatility increases, the dynamic levels expand, allowing trades to capture larger price movements. Conversely, during low volatility, profit targets tighten to lock in gains sooner, reducing exposure to market reversals. This flexibility is especially beneficial when combined with adaptive regression channels that respond to changes in standard deviation.
Slope-Based Trend Analysis:
One of the core elements of this script is the slope of the regression line , which helps define the direction and strength of the trend. Positive slopes indicate bullish momentum, while negative slopes suggest bearish conditions. The slope's steepness gives traders insight into the market's momentum, allowing them to adjust their strategies based on the strength of the trend.
Additionally, the script uses the slope to create a color gradient , which visually represents the intensity of the market's momentum. The gradient peaks at one color to show the maximum bullish momentum experienced in the past, while another color represents the maximum bearish momentum experienced in the past. This color-coded visualization makes it easier for traders to quickly assess the market's strength and direction at a glance.
Volatility Heatmap:
The integrated heatmap provides an intuitive, color-coded visualization of market volatility. The heatmap highlights areas where price action is expanding or contracting, giving traders a clear view of where volatility is rising or falling. By mapping out deviations from the regression line, the heatmap makes it easier to spot periods of high volatility that could lead to major market moves or potential reversals.
Deviation Concepts:
The script tracks price deviations from the regression line when a new range is formed, providing valuable insights when the price significantly deviates from the expected trend. These deviations are key in identifying potential breakout points or trend shifts .
This helps traders understand when the market is overextended or when a pullback may be imminent, allowing them to make more informed trading decisions.
Adaptive Model Properties:
Unlike static indicators, this script adapts over time . As the market changes, it stores historical data related to channel widths , slope dynamics , and volatility levels , adjusting its analysis accordingly to stay relevant to current market conditions.
Traders have the ability to train the model on all available data or specify a set number of bars to focus on more recent market activity. This flexibility allows for more tailored analysis , ensuring that traders can work with data that best fits their trading style and time horizon.
This continuous learning approach ensures that traders always have the most up-to-date insight into the market's structure.
Table
The table displays key metrics in real time to provide deeper insights into market behavior:
1. Deviation & Slope : Shows the current deviation if set to standard deviation or atr if set to atr(values used to calculated the channel widths) and the trend slope, helping to gauge market volatility and trend direction.
2. Rate of Change : For both deviation/atr and slope, the table also calculates the rate of change of their rates—essentially capturing the acceleration or deceleration of trends and volatility. This helps identify shifts in market momentum early.
3. R-squared : Indicates the strength and reliability of the trend fit. A higher value means the regression line better explains the price movements.
4. Quantiles : Uses historical deviation data to categorize current market conditions into quartiles (e.g., Q1, Q2, Q3). This helps classify the market's current volatility level, allowing traders to adjust strategies dynamically.
By combining these metrics, the table offers a comprehensive, real-time snapshot of market conditions, enabling more informed and adaptive trading decisions.
Settings
Here’s a breakdown of the script's settings for easy reference:
Linear Regression Settings
Show Dynamic Levels :Toggle to display dynamic profit levels on the chart.
Deviation Type :Select the method for calculating deviation—options include ATR (Average True Range) or Standard Deviation.
Timeframe :Sets the specific timeframe for the regression analysis (default is the chart’s timeframe).
Period :Defines the number of bars used for calculating the regression line (e.g., 50 bars).
Deviation Multiplier :Multiplier used to adjust the width of the deviation channel around the regression line.
Rate of Change :Sets the period for calculating the rate of change of the slope (used for momentum analysis).
Max Bars Back :Limits the number of historical bars to analyze (0 means all available data).
Slope Lookback :Number of bars used to calculate the slope gradient for trend detection.
Slope Gradient Display :Toggle to enable gradient coloring based on slope direction.
Slope Gradient Colors :Set colors for positive and negative slopes, respectively.
Slope Fill :Adjusts the transparency of the slope gradient fill.
Volatility Gradient Display :Toggle to enable gradient coloring based on volatility levels.
Volatility Gradient Colors :Set colors for low and high volatility, respectively.
Volatility Fill :Adjusts the transparency of the volatility gradient fill.
Table Settings
Show Table :Toggle to display the metrics table on the chart.
Table Position :Choose where to position the table (e.g., top-right, middle-center, etc.).
Font Size :Set the size of the text in the table. Options include Tiny, Small, Normal, Large, and Huge.
Linear Regression Channel UltimateKey Features and Benefits
Logarithmic scale option for improved analysis of long-term trends and volatile markets
Activity-based profiling using either touch count or volume data
Customizable channel width and number of profile fills
Adjustable number of most active levels displayed
Highly configurable visual settings for optimal chart readability
Why Logarithmic Scale Matters
The logarithmic scale option is a game-changer for analyzing assets with exponential growth or high volatility. Unlike linear scales, log scales represent percentage changes consistently across the price range. This allows for:
Better visualization of long-term trends
More accurate comparison of price movements across different price levels
Improved analysis of volatile assets or markets experiencing rapid growth
How It Works
The indicator calculates a linear regression line based on the specified period
Upper and lower channel lines are drawn at a customizable distance from the regression line
The space between the channel lines is divided into a user-defined number of levels
For each level, the indicator tracks either:
- The number of times price touches the level (touch count method)
- The total volume traded when price is at the level (volume method)
The most active levels are highlighted based on this activity data
Understanding Touch Count vs Volume
Touch count method: Useful for identifying key support/resistance levels based on price action alone
Volume method: Provides insight into levels where the most trading activity occurs, potentially indicating stronger support/resistance
Practical Applications
Trend identification and strength assessment
Support and resistance level discovery
Entry and exit point optimization
Volume profile analysis for improved market structure understanding
This Linear Regression Channel indicator combines powerful statistical analysis with flexible visualization options, making it an invaluable tool for traders and analysts across various timeframes and markets. Its unique features, especially the logarithmic scale and activity profiling, provide deeper insights into market behavior and potential turning points.
Mean Reversion Entry Signal
Mean Reversion Entry Signal Indicator
The Mean Reversion Entry Signal indicator is a trading tool designed for traders looking to capitalize on market corrections. This script leverages mean reversion principles, utilizing price levels and the Relative Strength Index (RSI) to generate potential entry signals for both long and short positions.
Key Features:
1. **Dynamic Price Levels**:
- The indicator calculates critical price levels over a user-defined lookback period, including:
- High (H)**: The highest price point over the lookback period.
- Low (L)**: The lowest price point over the lookback period.
- Midpoint (M)**: The average of the high and low.
- Midpoint High (Mh)** and **Midpoint Low (Ml)**: Additional reference levels derived from M for more nuanced trading signals.
2. User-Configurable Inputs:
- Lookback Period: Traders can specify the number of hours to look back for the calculations, allowing for tailored analysis that fits various trading strategies. By default the lookback is set for 24 hours, as i consider it the most adequate for day trading.
- Aggression Level: This input lets users choose their trading strategy's intensity, affecting the sensitivity of entry signals based on the percentage difference from the midpoint.
3. Entry Signal Generation:
The script evaluates market conditions to signal potential trades:
- Long Entries: Indicated when the price is below the Ml level and the price demonstrates a significant distance from the midpoint (M), coupled with RSI being near the oversold territory.
- Short Entries: Triggered when the price exceeds the Mh level, also indicating a significant distance from M, while the RSI indicates near overbought conditions.
4. Visual Indicators:
Clear visual signals are plotted directly on the chart:
- Long Signals are represented as upward triangles in green.
- Short Signals appear as downward triangles in red.
- Important price levels (M, H, L, Mh, and Ml) are displayed to provide traders with immediate context for potential trades.
5. No Entry Zone:
The area between Mh and Ml is shaded to indicate a "No Entry Zone," helping traders identify regions where conditions may not be favorable for taking new positions.
This can also be used as potencial profit taking area.
Conclusion
1. This indicator was built mainly for day trading, using timeframes between 1 minute and 1 hour. If you want to use it in 1D time frame, for instance, you should adjust the lookback period to 120 hours or so.
2. To use this as a strategy, you should not be afraid to "add to your losers" as the trade goes against you and the signals continue to appear.
Enjoy