OPEN-SOURCE SCRIPT
已更新

AWR R & LR Oscillator with plots & table

302
Hello trading viewers !

I'm glad to share with you one of my favorite indicator. It's the aggregate of many things. It is partly based on an indicator designed by gentleman goat. Many thanks to him.

1. Oscillator and Correlation Calculations
Overview and Functionality: This part of the indicator computes up to 10 Pearson correlation coefficients between a chosen source (typically the close price, though this is user-configurable) and the bar index over various periods. Starting with an initial period defined by the startPeriod parameter and increasing by a set increment (periodIncrement), each correlation coefficient is calculated using the built-in ta.correlation function over successive ranges. These coefficients are stored in an array, and the indicator calculates their average (avgPR) to provide a complete view of the market trend strength.

Display Features: Each individual coefficient, as well as the overall average, is plotted on the chart using a specific color. Horizontal lines (both dashed and solid) are drawn at levels 0, ±0.8, and ±1, serving as visual thresholds. Additionally, conditional fills in red or blue highlight when values exceed these thresholds, helping the user quickly identify potential extreme conditions (such as overbought or oversold situations).

2. Visual Signals and Automated Alerts
Graphical Signal Enhancements: To reinforce the analysis, the indicator uses graphical elements like emojis and shape markers. For example:

If all 10 curves drop below -0.79, a 🌋 emoji appears at the bottom of the chart;

When curves 2 through 10 are below -0.79, a ⛰️ emoji is displayed below the bar, potentially serving as a buy signal accompanied by an alert condition;

Likewise, symmetrical conditions for correlations exceeding 0.79 produce corresponding emojis (🤿 and 🏖️) at the top or bottom of the chart.

Alerts and Notifications: Using these visual triggers, several alertcondition statements are defined within the script. This allows users to set up TradingView alerts and receive real-time notifications whenever the market reaches these predefined critical zones identified by the multi-period analysis.

3. Regression Channel Analysis
Principles and Calculations: In addition to the oscillator, the indicator implements an analysis of regression channels. For each of the 8 configurable channels, the user can set a range of periods (for example, min1 to max1, etc.). The function calc_regression_channel iterates through the defined period range to find the optimal period that maximizes a statistical measure derived from a regression parameter calculated by the function r(p). Once this optimal period is identified, the indicator computes two key points (A and B) which define the main regression line, and then creates a channel based on the calculated deviation (an RMSE multiplied by a user-defined factor).

The regression channels are not displayed on the chart but are used to plot shapes & fullfilled a table.
Blue shapes are plotted when 6th channel or 7th channel are lower than 3 deviations
Yellow shapes are plotted when 6th channel or 7th channel are higher than 3 deviations

4. Scores, Conditions, and the Summary Table
Scoring System: The indicator goes further by assigning scores across multiple analytical categories, such as:

1. BigPear Score
What It Represents: This score is based on a longer-term moving average of the Pearson correlation values (SMA 100 of the average of the 10 curves of correlation of Pearson). The BigPear category is designed to capture where this longer-term average falls within specific ranges.

Conditions: The script defines nine boolean conditions (labeled BigPear1up through BigPear9up for the “up” direction).
Here's the rules :
BigPear1up = (bigsma_avgPR <= 0.5 and bigsma_avgPR > 0.25)
BigPear2up = (bigsma_avgPR <= 0.25 and bigsma_avgPR > 0)
BigPear3up = (bigsma_avgPR <= 0 and bigsma_avgPR > -0.25)
BigPear4up = (bigsma_avgPR <= -0.25 and bigsma_avgPR > -0.5)
BigPear5up = (bigsma_avgPR <= -0.5 and bigsma_avgPR > -0.65)
BigPear6up = (bigsma_avgPR <= -0.65 and bigsma_avgPR > -0.7)
BigPear7up = (bigsma_avgPR <= -0.7 and bigsma_avgPR > -0.75)
BigPear8up = (bigsma_avgPR <= -0.75 and bigsma_avgPR > -0.8)
BigPear9up = (bigsma_avgPR <= -0.8)

Conditions: The script defines nine boolean conditions (labeled BigPear1down through BigPear9down for the “down” direction).

BigPear1down = (bigsma_avgPR >= -0.5 and bigsma_avgPR < -0.25)
BigPear2down = (bigsma_avgPR >= -0.25 and bigsma_avgPR < 0)
BigPear3down = (bigsma_avgPR >= 0 and bigsma_avgPR < 0.25)
BigPear4down = (bigsma_avgPR >= 0.25 and bigsma_avgPR < 0.5)
BigPear5down = (bigsma_avgPR >= 0.5 and bigsma_avgPR < 0.65)
BigPear6down = (bigsma_avgPR >= 0.65 and bigsma_avgPR < 0.7)
BigPear7down = (bigsma_avgPR >= 0.7 and bigsma_avgPR < 0.75)
BigPear8down = (bigsma_avgPR >= 0.75 and bigsma_avgPR < 0.8)
BigPear9down = (bigsma_avgPR >= 0.8)

Weighting:

If BigPear1up is true, 1 point is added; if BigPear2up is true, 2 points are added; and so on up to 9 points from BigPear9up.

Total Score:

The positive score (posScoreBigPear) is the sum of these weighted conditions.

Similarly, there is a negative score (negScoreBigPear) that is calculated using a mirrored set of conditions (named BigPear1down to BigPear9down), each contributing a negative weight (from -1 to -9).

In essence, the BigPear score tells you—in a weighted cumulative way—where the longer-term correlation average falls relative to predefined thresholds.

2. Pear Score
What It Represents: This category uses the immediate average of the Pearson correlations (avgPR) rather than a longer-term smoothed version. It reflects a more current picture of the market’s correlation behavior.

How It’s Calculated:

Conditions: There are nine conditions defined for the “up” scenario (named Pear1up through Pear9up), which partition the range of avgPR into intervals. For instance:
Pear1up = (avgPR > -0.2 and avgPR <= 0)
Pear2up = (avgPR > -0.4 and avgPR <= -0.2)
Pear3up = (avgPR > -0.5 and avgPR <= -0.4)
Pear4up = (avgPR > -0.6 and avgPR <= -0.5)
Pear5up = (avgPR > -0.65 and avgPR <= -0.6)
Pear6up = (avgPR > -0.7 and avgPR <= -0.65)
Pear7up = (avgPR > -0.75 and avgPR <= -0.7)
Pear8up = (avgPR > -0.8 and avgPR <= -0.75)
Pear9up = (avgPR > -1 and avgPR <= -0.8)

There are nine conditions defined for the “down” scenario (named Pear1down through Pear9down), which partition the range of avgPR into intervals. For instance:

Pear1down = (avgPR >= 0 and avgPR < 0.2)
Pear2down = (avgPR >= 0.2 and avgPR < 0.4)
Pear3down = (avgPR >= 0.4 and avgPR < 0.5)
Pear4down = (avgPR >= 0.5 and avgPR < 0.6)
Pear5down = (avgPR >= 0.6 and avgPR < 0.65)
Pear6down = (avgPR >= 0.65 and avgPR < 0.7)
Pear7down = (avgPR >= 0.7 and avgPR < 0.75)
Pear8down = (avgPR >= 0.75 and avgPR < 0.8)
Pear9down = (avgPR >= 0.8 and avgPR <= 1)

Weighting:

Each condition has an associated weight, such as 0.9 for Pear1up, 1.9 for Pear2up, and so on, up to 9 for Pear9up.
Sum up :
Pear1up = 0.9
Pear2up = 1.9
Pear3up = 2.9
Pear4up = 3.9
Pear5up = 4.99
Pear6up = 6
Pear7up = 7
Pear8up = 8
Pear9up = 9

Total Score:

The positive score (posScorePear) is the sum of these values for each condition that returns true.

A corresponding negative score (negScorePear) is calculated using conditions for when avgPR falls on the positive side, with similar weights in the negative direction.

This score quantifies the current correlation reading by translating its relative level into a numeric score through a weighted sum.

3. Trendpear Score
What It Represents: The Trendpear score is more dynamic as it compares the current avgPR with its short-term moving average (sma_avgPR / 14 periods ) and also considers its relationship with an even longer moving average (bigsma_avgPR / 100 periods). It is meant to capture the trend or momentum in the correlation behavior.

How It’s Calculated:

Conditions: Nine conditions (from Trendpear1up to Trendpear9up) are defined to check:

Whether avgPR is below, equal to, or above sma_avgPR by different margins;

Whether it is trending upward (i.e., it is higher than its previous value).
Here are the rules
Trendpear1up = (avgPR <= sma_avgPR -0.2) and (avgPR >= avgPR[1])
Trendpear2up = (avgPR > sma_avgPR -0.2) and (avgPR <= sma_avgPR -0.07) and (avgPR >= avgPR[1])
Trendpear3up = (avgPR > sma_avgPR -0.07) and (avgPR <= sma_avgPR -0.03) and (avgPR >= avgPR[1])
Trendpear4up = (avgPR > sma_avgPR -0.03) and (avgPR <= sma_avgPR -0.02) and (avgPR >= avgPR[1])
Trendpear5up = (avgPR > sma_avgPR -0.02) and (avgPR <= sma_avgPR -0.01) and (avgPR >= avgPR[1])
Trendpear6up = (avgPR > sma_avgPR -0.01) and (avgPR <= sma_avgPR -0.001) and (avgPR >= avgPR[1])
Trendpear7up = (avgPR >= sma_avgPR) and (avgPR >= avgPR[1]) and (avgPR <= bigsma_avgPR)
Trendpear8up = (avgPR >= sma_avgPR) and (avgPR >= avgPR[1]) and (avgPR >= bigsma_avgPR -0.03)
Trendpear9up = (avgPR >= sma_avgPR) and (avgPR >= avgPR[1]) and (avgPR >= bigsma_avgPR)

Weighting:

The weights here are not linear. For example, the lightest condition may add 0.1 point, whereas the most extreme condition (e.g., when avgPR is not only above the moving average but also reaches a high proportion relative to bigsma_avgPR) might add as much as 90 points.
Trendpear1up = 0.1
Trendpear2up = 0.2
Trendpear3up = 0.3
Trendpear4up = 0.4
Trendpear5up = 0.5
Trendpear6up = 0.69
Trendpear7up = 7
Trendpear8up = 8.9
Trendpear9up = 90

Total Score:

The positive score (posScoreTrendpear) is the sum of the weights from all conditions that are satisfied.

A negative counterpart (negScoreTrendpear) exists similarly for when the trend indicates a downward bias.

Trendpear integrates both the level and the direction of change in the correlations, giving a strong numeric indication when the market starts to diverge from its short-term average.

4. Deviation Score
What It Represents: The “Écart” score quantifies how far the asset’s price deviates from the boundaries defined by the regression channels. This metric can indicate if the price is excessively deviating—which might signal an eventual reversion—or confirming a breakout.

How It’s Calculated:

Conditions: For each channel (with at least seven channels contributing to the scoring from the provided code), there are three levels of deviation:

First tier (EcartXup): Checks if the price is below the upper boundary but above a second boundary.

Second tier (EcartXup2): Checks if the price has dropped further, between a lower and a more extreme boundary.

Third tier (EcartXup3): Checks if the price is below the most extreme limit.

Weighting:
Each tier within a channel has a very small weight for the lowest severities (for example, 0.0001 for the first tier, 0.0002 for the second, 0.0003 for the third) with weights increasing with the channel index.

First channel : 0.0001 to 0.0003 (very short term)
Second channel : 0.001 to 0.003 (short term)
Third channel : 0.01 to 0.03 (short mid term)
4th channel : 0.1 to 0.3 ( mid term)
5th channel: 1 to 3 (long mid term)
6th channel : 10 to 30 (long term)
7th channel : 100 to 300 (very long term)


Total Score:

The overall positive score (posScoreEcart) is the sum of all the weights for conditions met among the first, second, and third tiers.

The corresponding negative score (negScoreEcart) is calculated similarly (using conditions when the price is above the channel boundaries), with the weights being the same in magnitude but negative in sign.

This layered scoring method allows the indicator to reflect both minor and major deviations in a gradated and cumulative manner.

Example :
Score + = 321.0001
Score - = -0.111
The asset price is really overextended in long term view, not for mid term & short term expect the in the very short term.
Score + = 0.0033
Score - = -1.11
The asset price is really extended in short term view, not for mid term (even a bit underextended) & long term is neutral


5. Slope Score
What It Represents: The Slope score captures the trend direction and steepness of the regression channels. It reflects whether the regression line (and hence the underlying trend) is sloping upward or downward.

How It’s Calculated:

Conditions:
if the slope has a uptrend = 1
if the slope has a downtrend = -1
Weighting:
First channel : 0.0001 to 0.0003 (very short term)
Second channel : 0.001 to 0.003 (short term)
Third channel : 0.01 to 0.03 (short mid term)
4th channel : 0.1 to 0.3 ( mid term)
5th channel: 1 to 3 (long mid term)
6th channel : 10 to 30 (long term)
7th channel : 100 to 300 (very long term)

The positive slope conditions incrementally add weights from 0.0001 for the smallest positive slopes to 100 for the largest among the seven checks. And negative for the downward slopes.

The positive score (posScoreSlope) is the sum of all the weights from the upward slope conditions that are met.

The negative score (negScoreSlope) sums the negative weights when downward conditions are met.

Example :
Score + = 111
Score - = -0.1111
Trend is up for longterm & down for mid & short term


The slope score therefore emphasizes both the magnitude and the direction of the trend as indicated by the regression channels, with an intentional asymmetry that flags strong downtrends more aggressively.

Summary
For each category—BigPear, Pear, Trendpear, Écart, and Slope—the indicator evaluates a defined set of conditions. Each condition is a binary test (true/false) based on different thresholds or comparisons (for example, comparing the current value to a moving average or a channel boundary). When a condition is true, its assigned weight is added to the cumulative score for that category. These individual scores, both positive and negative, are then displayed in a table, making it easy for the trader to see at a glance where the market stands according to each analytical dimension.

This comprehensive, weighted approach allows the indicator to encapsulate several layers of market information into a single set of scores, aiding in the identification of potential trading opportunities or market reversals.

5. Practical Use and Application
How to Use the Indicator:


Interpreting the Signals:
On your chart, observe the following components:

The individual correlation curves and their average, plotted with visual thresholds;

Visual markers (such as emojis and shape markers) that signal potential oversold or overbought conditions

The summary table that aggregates the scores from each category, offering a quick glance at the market’s state.

Trading Alerts and Decisions: Set your TradingView alerts through the alertcondition functions provided by the indicator. This way, you receive immediate notifications when critical conditions are met, allowing you to react as soon as the market reaches key levels. This tool is especially beneficial for advanced traders who want to combine multiple technical dimensions to optimize entry and exit points with a confluence of signals.

Conclusion and Additional Insights
In summary, this advanced indicator innovatively combines multi-scale Pearson correlation analysis (via multiple linear regressions) with robust regression channel analysis. It offers a deep and nuanced view of market dynamics by delivering clear visual signals and a comprehensive numerical summary through a built-in score table.

Combine this indicator with other tools (e.g., oscillators, moving averages, volume indicators) to enhance overall strategy robustness.

發行說明
Minor changes
Remove of unuseful settings
Add settings for SMA durations
Add one more SMA

免責聲明

這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。