Scientific Correlation Testing FrameworkScientific Correlation Testing Framework - Comprehensive Guide
Introduction to Correlation Analysis
What is Correlation?
Correlation is a statistical measure that describes the degree to which two assets move in relation to each other. Think of it like measuring how closely two dancers move together on a dance floor.
Perfect Positive Correlation (+1.0): Both dancers move in perfect sync, same direction, same speed
Perfect Negative Correlation (-1.0): Both dancers move in perfect sync but in opposite directions
Zero Correlation (0): The dancers move completely independently of each other
In financial markets, correlation helps us understand relationships between different assets, which is crucial for:
Portfolio diversification
Risk management
Pairs trading strategies
Hedging positions
Market analysis
Why This Script is Special
This script goes beyond simple correlation calculations by providing:
Two different correlation methods (Pearson and Spearman)
Statistical significance testing to ensure results are meaningful
Rolling correlation analysis to track how relationships change over time
Visual representation for easy interpretation
Comprehensive statistics table with detailed metrics
Deep Dive into the Script's Components
1. Input Parameters Explained-
Symbol Selection:
This allows you to select the second asset to compare with the chart's primary asset
Default is Apple (NASDAQ:AAPL), but you can change this to any symbol
Example: If you're viewing a Bitcoin chart, you might set this to "NASDAQ:TSLA" to see if Bitcoin and Tesla are correlated
Correlation Window (60): This is the number of periods used to calculate the main correlation
Larger values (e.g., 100-500) provide more stable, long-term correlation measures
Smaller values (e.g., 10-50) are more responsive to recent price movements
60 is a good balance for most daily charts (about 3 months of trading days)
Rolling Correlation Window (20): A shorter window to detect recent changes in correlation
This helps identify when the relationship between assets is strengthening or weakening
Default of 20 is roughly one month of trading days
Return Type: This determines how price changes are calculated
Simple Returns: (Today's Price - Yesterday's Price) / Yesterday's Price
Easy to understand: "The asset went up 2% today"
Log Returns: Natural logarithm of (Today's Price / Yesterday's Price)
More mathematically elegant for statistical analysis
Better for time-additive properties (returns over multiple periods)
Less sensitive to extreme values.
Confidence Level (95%): This determines how certain we want to be about our results
95% confidence means we accept a 5% chance of being wrong (false positive)
Higher confidence (e.g., 99%) makes the test more strict
Lower confidence (e.g., 90%) makes the test more lenient
95% is the standard in most scientific research
Show Statistical Significance: When enabled, the script will test if the correlation is statistically significant or just due to random chance.
Display options control what you see on the chart:
Show Pearson/Spearman/Rolling Correlation: Toggle each correlation type on/off
Show Scatter Plot: Displays a scatter plot of returns (limited to recent points to avoid performance issues)
Show Statistical Tests: Enables the detailed statistics table
Table Text Size: Adjusts the size of text in the statistics table
2.Functions explained-
calcReturns():
This function calculates price returns based on your selected method:
Log Returns:
Formula: ln(Price_t / Price_t-1)
Example: If a stock goes from $100 to $101, the log return is ln(101/100) = ln(1.01) ≈ 0.00995 or 0.995%
Benefits: More symmetric, time-additive, and better for statistical modeling
Simple Returns:
Formula: (Price_t - Price_t-1) / Price_t-1
Example: If a stock goes from $100 to $101, the simple return is (101-100)/100 = 0.01 or 1%
Benefits: More intuitive and easier to understand
rankArray():
This function calculates the rank of each value in an array, which is used for Spearman correlation:
How ranking works:
The smallest value gets rank 1
The second smallest gets rank 2, and so on
For ties (equal values), they get the average of their ranks
Example: For values  
Sorted:  
Ranks:   (the two 2s tie for ranks 1 and 2, so they both get 1.5)
Why this matters: Spearman correlation uses ranks instead of actual values, making it less sensitive to outliers and non-linear relationships.
pearsonCorr():
This function calculates the Pearson correlation coefficient:
Mathematical Formula:
r = (nΣxy - ΣxΣy) / √ 
Where x and y are the two variables, and n is the sample size
What it measures:
The strength and direction of the linear relationship between two variables
Values range from -1 (perfect negative linear relationship) to +1 (perfect positive linear relationship)
0 indicates no linear relationship
Example:
If two stocks have a Pearson correlation of 0.8, they have a strong positive linear relationship
When one stock goes up, the other tends to go up in a fairly consistent proportion
spearmanCorr():
This function calculates the Spearman rank correlation:
How it works:
Convert each value in both datasets to its rank
Calculate the Pearson correlation on the ranks instead of the original values
What it measures:
The strength and direction of the monotonic relationship between two variables
A monotonic relationship is one where as one variable increases, the other either consistently increases or decreases
It doesn't require the relationship to be linear
When to use it instead of Pearson:
When the relationship is monotonic but not linear
When there are significant outliers in the data
When the data is ordinal (ranked) rather than interval/ratio
Example:
If two stocks have a Spearman correlation of 0.7, they have a strong positive monotonic relationship
When one stock goes up, the other tends to go up, but not necessarily in a straight-line relationship
tStatistic():
This function calculates the t-statistic for correlation:
Mathematical Formula: t = r × √((n-2)/(1-r²))
Where r is the correlation coefficient and n is the sample size
What it measures:
How many standard errors the correlation is away from zero
Used to test the null hypothesis that the true correlation is zero
Interpretation:
Larger absolute t-values indicate stronger evidence against the null hypothesis
Generally, a t-value greater than 2 (in absolute terms) is considered statistically significant at the 95% confidence level
criticalT() and pValue():
These functions provide approximations for statistical significance testing:
criticalT():
Returns the critical t-value for a given degrees of freedom (df) and significance level
The critical value is the threshold that the t-statistic must exceed to be considered statistically significant
Uses approximations since Pine Script doesn't have built-in statistical distribution functions
pValue():
Estimates the p-value for a given t-statistic and degrees of freedom
The p-value is the probability of observing a correlation as strong as the one calculated, assuming the true correlation is zero
Smaller p-values indicate stronger evidence against the null hypothesis
Standard interpretation:
p < 0.01: Very strong evidence (marked with **)
p < 0.05: Strong evidence (marked with *)
p ≥ 0.05: Weak evidence, not statistically significant
stdev():
This function calculates the standard deviation of a dataset:
Mathematical Formula: σ = √(Σ(x-μ)²/(n-1))
Where x is each value, μ is the mean, and n is the sample size
What it measures:
The amount of variation or dispersion in a set of values
A low standard deviation indicates that the values tend to be close to the mean
A high standard deviation indicates that the values are spread out over a wider range
Why it matters for correlation:
Standard deviation is used in calculating the correlation coefficient
It also provides information about the volatility of each asset's returns
Comparing standard deviations helps understand the relative riskiness of the two assets.
3.Getting Price Data-
price1: The closing price of the primary asset (the chart you're viewing)
price2: The closing price of the secondary asset (the one you selected in the input parameters)
Returns are used instead of raw prices because:
Returns are typically stationary (mean and variance stay constant over time)
Returns normalize for price levels, allowing comparison between assets of different values
Returns represent what investors actually care about: percentage changes in value
4.Information Table-
Creates a table to display statistics
Only shows on the last bar to avoid performance issues
Positioned in the top right of the chart
Has 2 columns and 15 rows
Populating the Table
The script then populates the table with various statistics:
Header Row: "Metric" and "Value"
Sample Information: Sample size and return type
Pearson Correlation: Value, t-statistic, p-value, and significance
Spearman Correlation: Value, t-statistic, p-value, and significance
Rolling Correlation: Current value
Standard Deviations: For both assets
Interpretation: Text description of the correlation strength
The table uses color coding to highlight important information:
Green for significant positive results
Red for significant negative results
Yellow for borderline significance
Color-coded headers for each section
=> Practical Applications and Interpretation
How to Interpret the Results
Correlation Strength
0.0 to 0.3 (or 0.0 to -0.3): Weak or no correlation
The assets move mostly independently of each other
Good for diversification purposes
0.3 to 0.7 (or -0.3 to -0.7): Moderate correlation
The assets show some tendency to move together (or in opposite directions)
May be useful for certain trading strategies but not extremely reliable
0.7 to 1.0 (or -0.7 to -1.0): Strong correlation
The assets show a strong tendency to move together (or in opposite directions)
Can be useful for pairs trading, hedging, or as a market indicator
Statistical Significance
p < 0.01: Very strong evidence that the correlation is real
Marked with ** in the table
Very unlikely to be due to random chance
p < 0.05: Strong evidence that the correlation is real
Marked with * in the table
Unlikely to be due to random chance
p ≥ 0.05: Weak evidence that the correlation is real
Not marked in the table
Could easily be due to random chance
Rolling Correlation
The rolling correlation shows how the relationship between assets changes over time
If the rolling correlation is much different from the long-term correlation, it suggests the relationship is changing
This can indicate:
A shift in market regime
Changing fundamentals of one or both assets
Temporary market dislocations that might present trading opportunities
Trading Applications
1. Portfolio Diversification
Goal: Reduce overall portfolio risk by combining assets that don't move together
Strategy: Look for assets with low or negative correlations
Example: If you hold tech stocks, you might add some utilities or bonds that have low correlation with tech
2. Pairs Trading
Goal: Profit from the relative price movements of two correlated assets
Strategy:
Find two assets with strong historical correlation
When their prices diverge (one goes up while the other goes down)
Buy the underperforming asset and short the outperforming asset
Close the positions when they converge back to their normal relationship
Example: If Coca-Cola and Pepsi are highly correlated but Coca-Cola drops while Pepsi rises, you might buy Coca-Cola and short Pepsi
3. Hedging
Goal: Reduce risk by taking an offsetting position in a negatively correlated asset
Strategy: Find assets that tend to move in opposite directions
Example: If you hold a portfolio of stocks, you might buy some gold or government bonds that tend to rise when stocks fall
4. Market Analysis
Goal: Understand market dynamics and interrelationships
Strategy: Analyze correlations between different sectors or asset classes
Example:
If tech stocks and semiconductor stocks are highly correlated, movements in one might predict movements in the other
If the correlation between stocks and bonds changes, it might signal a shift in market expectations
5. Risk Management
Goal: Understand and manage portfolio risk
Strategy: Monitor correlations to identify when diversification benefits might be breaking down
Example: During market crises, many assets that normally have low correlations can become highly correlated (correlation convergence), reducing diversification benefits
Advanced Interpretation and Caveats
Correlation vs. Causation
Important Note: Correlation does not imply causation
Example: Ice cream sales and drowning incidents are correlated (both increase in summer), but one doesn't cause the other
Implication: Just because two assets move together doesn't mean one causes the other to move
Solution: Look for fundamental economic reasons why assets might be correlated
Non-Stationary Correlations
Problem: Correlations between assets can change over time
Causes:
Changing market conditions
Shifts in monetary policy
Structural changes in the economy
Changes in the underlying businesses
Solution: Use rolling correlations to monitor how relationships change over time
Outliers and Extreme Events
Problem: Extreme market events can distort correlation measurements
Example: During a market crash, many assets may move in the same direction regardless of their normal relationship
Solution:
Use Spearman correlation, which is less sensitive to outliers
Be cautious when interpreting correlations during extreme market conditions
Sample Size Considerations
Problem: Small sample sizes can produce unreliable correlation estimates
Rule of Thumb: Use at least 30 data points for a rough estimate, 60+ for more reliable results
Solution:
Use the default correlation length of 60 or higher
Be skeptical of correlations calculated with small samples
Timeframe Considerations
Problem: Correlations can vary across different timeframes
Example: Two assets might be positively correlated on a daily basis but negatively correlated on a weekly basis
Solution:
Test correlations on multiple timeframes
Use the timeframe that matches your trading horizon
Look-Ahead Bias
Problem: Using information that wouldn't have been available at the time of trading
Example: Calculating correlation using future data
Solution: This script avoids look-ahead bias by using only historical data
Best Practices for Using This Script
1. Appropriate Parameter Selection
Correlation Window:
For short-term trading: 20-50 periods
For medium-term analysis: 50-100 periods
For long-term analysis: 100-500 periods
Rolling Window:
Should be shorter than the main correlation window
Typically 1/3 to 1/2 of the main window
Return Type:
For most applications: Log Returns (better statistical properties)
For simplicity: Simple Returns (easier to interpret)
2. Validation and Testing
Out-of-Sample Testing:
Calculate correlations on one time period
Test if they hold in a different time period
Multiple Timeframes:
Check if correlations are consistent across different timeframes
Economic Rationale:
Ensure there's a logical reason why assets should be correlated
3. Monitoring and Maintenance
Regular Review:
Correlations can change, so review them regularly
Alerts:
Set up alerts for significant correlation changes
Documentation:
Keep notes on why certain assets are correlated and what might change that relationship
4. Integration with Other Analysis
Fundamental Analysis:
Combine correlation analysis with fundamental factors
Technical Analysis:
Use correlation analysis alongside technical indicators
Market Context:
Consider how market conditions might affect correlations
Conclusion
This Scientific Correlation Testing Framework provides a comprehensive tool for analyzing relationships between financial assets. By offering both Pearson and Spearman correlation methods, statistical significance testing, and rolling correlation analysis, it goes beyond simple correlation measures to provide deeper insights.
For beginners, this script might seem complex, but it's built on fundamental statistical concepts that become clearer with use. Start with the default settings and focus on interpreting the main correlation lines and the statistics table. As you become more comfortable, you can adjust the parameters and explore more advanced applications.
Remember that correlation analysis is just one tool in a trader's toolkit. It should be used in conjunction with other forms of analysis and with a clear understanding of its limitations. When used properly, it can provide valuable insights for portfolio construction, risk management, and pair trading strategy development.
Cari dalam skrip untuk "weekly"
LibTmFrLibrary   "LibTmFr" 
This is a utility library for handling timeframes and
multi-timeframe (MTF) analysis in Pine Script. It provides a
collection of functions designed to handle common tasks related
to period detection, session alignment, timeframe construction,
and time calculations, forming a foundation for
MTF indicators.
Key Capabilities:
1.  **MTF Period Engine:** The library includes functions for
managing higher-timeframe (HTF) periods.
- **Period Detection (`isNewPeriod`):** Detects the first bar
of a given timeframe. It includes custom logic to handle
multi-month and multi-year intervals where
`timeframe.change()` may not be sufficient.
- **Bar Counting (`sinceNewPeriod`):** Counts the number of
bars that have passed in the current HTF period or
returns the final count for a completed historical period.
2.  **Automatic Timeframe Selection:** Offers functions for building
a top-down analysis framework:
- **Automatic HTF (`autoHTF`):** Suggests a higher timeframe
(HTF) for broader context based on the current timeframe.
- **Automatic LTF (`autoLTF`):** Suggests an appropriate lower
timeframe (LTF) for granular intra-bar analysis.
3.  **Timeframe Manipulation and Comparison:** Includes tools for
working with timeframe strings:
- **Build & Split (`buildTF`, `splitTF`):** Functions to
programmatically construct valid Pine Script timeframe
strings (e.g., "4H") and parse them back into their
numeric and unit components.
- **Comparison (`isHigherTF`, `isActiveTF`, `isLowerTF`):**
A set of functions to check if a given timeframe is
higher, lower, or the same as the script's active timeframe.
- **Multiple Validation (`isMultipleTF`):** Checks if a
higher timeframe is a practical multiple of the current
timeframe. This is based on the assumption that checking
if recent, completed HTF periods contained more than one
bar is a valid proxy for preventing data gaps.
4.  **Timestamp Interpolation:** Contains an `interpTimestamp()`
function that calculates an absolute timestamp by
interpolating at a given percentage across a specified
range of bars (e.g., 50% of the way through the last
20 bars), enabling time calculations at a resolution
finer than the chart's native bars.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
 buildTF(quantity, unit) 
  Builds a Pine Script timeframe string from a numeric quantity and a unit enum.
The resulting string can be used with `request.security()` or `input.timeframe`.
  Parameters:
     quantity (int) : series int     Number to specifie how many `unit` the timeframe spans.
     unit (series TFUnit) : series TFUnit  The size category for the bars.
  Returns: series string  A Pine-style timeframe identifier, e.g.
"5S"   → 5-seconds bars
"30"   → 30-minute bars
"120"  → 2-hour bars
"1D"   → daily bars
"3M"   → 3-month bars
"24M"  → 2-year bars
 splitTF(tf) 
  Splits a Pine‑timeframe identifier into numeric quantity and unit (TFUnit).
  Parameters:
     tf (string) : series string   Timeframe string, e.g.
"5S", "30", "120", "1D", "3M", "24M".
  Returns:  
quantity   series int     The numeric value of the timeframe (e.g., 15 for "15", 3 for "3M").
unit       series TFUnit  The unit of the timeframe (e.g., TFUnit.minutes, TFUnit.months).
Notes on strings without a suffix:
• Pure digits are minutes; if divisible by 60, they are treated as hours.
• An "M" suffix is months; if divisible by 12, it is converted to years.
 autoHTF(tf) 
  Picks an appropriate **higher timeframe (HTF)** relative to the selected timeframe.
It steps up along a coarse ladder to produce sensible jumps for top‑down analysis.
Mapping → chosen HTF:
≤  1 min  →  60  (1h)          ≈ ×60
≤  3 min  → 180  (3h)          ≈ ×60
≤  5 min  → 240  (4h)          ≈ ×48
≤ 15 min  →  D   (1 day)       ≈ ×26–×32   (regular session 6.5–8 h)
> 15 min  →  W   (1 week)      ≈ ×64–×80 for 30m; varies with input
≤  1 h    →  W   (1 week)      ≈ ×32–×40
≤  4 h    →  M   (1 month)     ≈ ×36–×44   (~22 trading days / month)
>  4 h    →  3M  (3 months)    ≈ ×36–×66   (e.g., 12h→×36–×44; 8h→×53–×66)
≤  1 day  →  3M  (3 months)    ≈ ×60–×66   (~20–22 trading days / month)
>  1 day  → 12M  (1 year)      ≈ ×(252–264)/quantity
≤  1 week → 12M  (1 year)      ≈ ×52
>  1 week → 48M  (4 years)     ≈ ×(208)/quantity
=  1 M    → 48M  (4 years)     ≈ ×48
>  1 M    → error ("HTF too big")
any       → error ("HTF too big")
Notes:
• Inputs in months or years are restricted: only 1M is allowed; larger months/any years throw.
• Returns a Pine timeframe string usable in `request.security()` and `input.timeframe`.
  Parameters:
     tf (string) : series string   Selected timeframe (e.g., "D", "240", or `timeframe.period`).
  Returns: series string   Suggested higher timeframe.
 autoLTF(tf) 
  Selects an appropriate **lower timeframe LTF)** for intra‑bar evaluation
based on the selected timeframe. The goal is to keep intra‑bar
loops performant while providing enough granularity.
Mapping → chosen LTF:
≤  1 min  →  1S      ≈ ×60
≤  5 min  →  5S      ≈ ×60
≤ 15 min  → 15S      ≈ ×60
≤ 30 min  → 30S      ≈ ×60
> 30 min  → 60S (1m) ≈ ×31–×59   (for 31–59 minute charts)
≤  1 h    →  1  (1m) ≈ ×60
≤  2 h    →  2  (2m) ≈ ×60
≤  4 h    →  5  (5m) ≈ ×48
>  4 h    → 15 (15m) ≈ ×24–×48   (e.g., 6h→×24, 8h→×32, 12h→×48)
≤  1 day  → 15 (15m) ≈ ×26–×32   (regular sessions ~6.5–8h)
>  1 day  → 60 (60m) ≈ ×(26–32)  per day × quantity
≤  1 week → 60 (60m) ≈ ×32–×40   (≈5 sessions of ~6.5–8h)
>  1 week → 240 (4h) ≈ ×(8–10)   per week × quantity
≤  1 M    → 240 (4h) ≈ ×33–×44   (~20–22 sessions × 6.5–8h / 4h)
≤  3 M    →  D  (1d) ≈ ×(20–22)  per month × quantity
>  3 M    →  W  (1w) ≈ ×(4–5)    per month × quantity
≤  1 Y    →  W  (1w) ≈ ×52
>  1 Y    →  M  (1M) ≈ ×12       per year × quantity
Notes:
• Ratios for D/W/M are given as ranges because they depend on
**regular session length** (typically ~6.5–8h, not 24h).
• Returned strings can be used with `request.security()` and `input.timeframe`.
  Parameters:
     tf (string) : series string   Selected timeframe (e.g., "D", "240", or timeframe.period).
  Returns: series string   Suggested lower TF to use for intra‑bar work.
 isNewPeriod(tf, offset) 
  Returns `true` when a new session-aligned period begins, or on the Nth bar of that period.
  Parameters:
     tf (string) : series string  Target higher timeframe (e.g., "D", "W", "M").
     offset (simple int) : simple int     0 → checks for the first bar of the new period.
1+ → checks for the N-th bar of the period.
  Returns: series bool    `true` if the condition is met.
 sinceNewPeriod(tf, offset) 
  Counts how many bars have passed within a higher timeframe (HTF) period.
For daily, weekly, and monthly resolutions, the period is aligned with the trading session.
  Parameters:
     tf (string) : series string  Target parent timeframe (e.g., "60", "D").
     offset (simple int) : simple int     0  → Running count for the current period.
1+ → Finalized count for the Nth most recent *completed* period.
  Returns: series int     Number of bars.
 isHigherTF(tf, main) 
  Returns `true` when the selected timeframe represents a
higher resolution than the active timeframe.
  Parameters:
     tf (string) : series string  Selected timeframe.
     main (bool) : series bool    When `true`, the comparison is made against the chart's main timeframe
instead of the script's active timeframe. Optional. Defaults to `false`.
  Returns: series bool    `true` if `tf` > active TF; otherwise `false`.
 isActiveTF(tf, main) 
  Returns `true` when the selected timeframe represents the
exact resolution of the active timeframe.
  Parameters:
     tf (string) : series string  Selected timeframe.
     main (bool) : series bool    When `true`, the comparison is made against the chart's main timeframe
instead of the script's active timeframe. Optional. Defaults to `false`.
  Returns: series bool    `true` if `tf` == active TF; otherwise `false`.
 isLowerTF(tf, main) 
  Returns `true` when the selected timeframe represents a
lower resolution than the active timeframe.
  Parameters:
     tf (string) : series string  Selected timeframe.
     main (bool) : series bool    When `true`, the comparison is made against the chart's main timeframe
instead of the script's active timeframe. Optional. Defaults to `false`.
  Returns: series bool    `true` if `tf` < active TF; otherwise `false`.
 isMultipleTF(tf) 
  Returns `true` if the selected timeframe (`tf`) is a practical multiple
of the active skript's timeframe. It verifies this by checking if `tf` is a higher timeframe
that has consistently contained more than one bar of the skript's timeframe in recent periods.
The period detection is session-aware.
  Parameters:
     tf (string) : series string  The higher timeframe to check.
  Returns: series bool    `true` if `tf` is a practical multiple; otherwise `false`.
 interpTimestamp(offStart, offEnd, pct) 
  Calculates a precise absolute timestamp by interpolating within a bar range based on a percentage.
This version works with RELATIVE bar offsets from the current bar.
  Parameters:
     offStart (int) : series int    The relative offset of the starting bar (e.g., 10 for 10 bars ago).
     offEnd (int) : series int    The relative offset of the ending bar (e.g., 1 for 1 bar ago). Must be <= offStart.
     pct (float) : series float  The percentage of the bar range to measure (e.g., 50.5 for 50.5%).
Values are clamped to the   range.
  Returns: series int    The calculated, interpolated absolute Unix timestamp in milliseconds.
Camarilla Pivot Plays (Lite) [BruzX]█ OVERVIEW
This indicator implements the Camarilla Pivot Points levels and a system for suggesting particular plays. It only 3rd, 4th, and 6th levels, as these are the only ones used by the system. It also optionally shows the Central Pivot Range, which is in fact between S2 and R2. In total, there are 12 possible plays, grouped into two groups of six. The algorithm evaluates in real-time which plays fulfil their precondition and shows the candidate plays. The user must then decide if and when to take the play.
█ CREDITS
The Camarilla pivot plays are defined in a strategy developed by Thor Young, and the whole system is explained in his book "A Complete Day Trading System". This description is self-sufficient for effective use.
█ FEATURES
 
 Display the 3rd, 4th and 6th Camarilla pivot levels
 Works for stocks, futures, indices, forex and crypto
 Automatically switches between RTH and ETH data based on criteria defined by the system.
 Option to force RTH/ETH data and force a close price to be used in the calculation.
 Preconditions for the plays can be toggled on/off
 Works correctly on both RTH and ETH charts
 Well-documented options tooltips
 Well-documented and high-quality open-source code for those who are interested
 
█ HOW TO USE
The defaults work well; at a minimum, just add the indicator and watch the plays being called. For US futures, you will probably want to chat the "Timezone for sessions" to New York and the regular session times to 09:30 - 16:00. The following diagram shows its key features. 
By default, the indicator draws plays 1 days back; this can be changed up to 20 days. The labels can be shifted left/right using the "label offset" option to avoid overlapping with other labels in this indicator or those of another indicator.
An information box at the top-right of the chart shows:
 
 The data currently in use for the main pivots. This can switch in the pre-market if the H/L range exceeds the previous day's H/L, and if it does, you will see that switch at the time that it happens
 Whether the current day's pivots are in a higher or lower range compared to the previous day's.
 The width of the pivots compared to the previous day
 The current candidate plays fulfilling preconditions. You then need to watch the price action to decide whether to take the play.
 
The resistance pivots are all drawn in the same colour (red by default), as are the support pivots (green by default). You can change the resistance and support colours, but it is not possible to have different colours for different levels of the same kind.
█ CONCEPTS
The indicator is focused around daily Camarilla pivots and evaluates the preconditions for 12 possible plays: 6 when in a higher range, 6 when in a lower range. The plays are labelled by two letters—the first indicates the range, the second indicates the play—as shown in this diagram:
The pivots can be calculated using only RTH (Regular Trading Hours) data, or ETH (Extended Trading Hours) data, which includes the pre-market and post-market. The indicator implements logic to automatically choose the correct data, based on the rules defined by the strategy. This is user-overridable. With the default options, ETH will be used when the H/L range in the previous day's post-market or current day's pre-market exceeds that of the previous day's regular market. In auto mode, the chosen pivots are considered the main pivots for that day and are the ones used for play evaluation. The "other" pivots can also be shown—"other" here meaning using ETH data when the main pivots use RTH data, and vice versa.
The plays must fulfil a set of preconditions. There are preconditions for valid region and range, price sweeps into levels, correct pivot width, opening position, price action, and whether neutral range plays and premarket plays are enabled. When all the preconditions are fulfilled, the play will be shown as a candidate. 
█ NOTE FOR FUTURES
Futures don't officially have a pre-market or post-market like equities. Let's take ES on CME as an example. It trades from 18:00 ET Sunday to 17:00 Friday (ET), with a daily pause between 17:00 and 18:00 ET. However, most of the trading activity is done between 09:30 and 16:00, which you can tell from the volume spikes at those times, and this coincides with NYSE/NASDAQ regular hours. So we define a pseudo-pre-market from 18:00 the previous day to 09:30 on the current day, then a pseudo-regular market from 08:30 to 16:00, then a pseudo-post-market from 16:00 to 17:00. The indicator then works exactly the same as with equities—all the options behave the same, just with different session times defined for the pre-, regular, and post-market, with "RTH" meaning just the regular market and "ETH" meaning all three.
█ LIMITATIONS
The pivots are very close to those shown in DAS Trader Pro. They are not to-the-cent exact, but within a few cents. The reasons are:
 
 TradingView provides free real-time data from CBOE One, not full exchange data (you can pay for this though, and it's not expensive), and
 the close/high/low are taken from the intraday timeframe you are currently viewing, not daily data—which are very close, but often not exactly the same. For example, the high on the daily timeframe may differ slightly from the daily high you'll see on an intraday timeframe.
 
Despite these caveats, occasionally large spikes will be seem in one platform and not the other (even with paid data), or the spikes will reach significantly difference prices. Where these spikes create the daily high or low, this can cause significantly different pivots levels. The more traded the stock is, the less the difference tends to be. Highly traded stocks are usually within a few cents (but even they occasionally have large differences in spikes). There is nothing that can be done about this.  
The 6th Camarilla level does not have a standard definition and may not match the level shown on other platforms. It does match the definition used by DAS Trader Pro.
Replay mode for stocks does not work correctly. This is due to some important Pine Script variables provided by the TradingView platform and used by the script not being assigned correct values in replay mode. Futures do not use these variables, so they should work in replay mode. 
The indicator is an intraday indicator (despite also being able to show weekly and monthly pivots on an intraday chart). It deactivates on a daily timeframe and higher. Sub-minute timeframes are also not supported.
The indicator was developed and tested for US/European stocks, US futures and EURUSD forex and BTCUSD. It should work as intended for stocks and futures in different countries, and for all forex and crypto, but this is tested as much as the security it was developed for.
█ DISCLAIMER
This indicator is provided for information only and should not be used in isolation without a good understand of the system and without considering other factors. You should not take trades using real money based solely on what this indicator says. Any trades you take are entirely at your own risk.
Key Levels: Prior Open & Close (D/W/M/Q/Y)This indicator plots the previous period's open and close levels for multiple timeframes—daily, weekly, monthly, quarterly, and yearly—on your chart. It uses Pine Script's request.security() function to pull the prior period's open and close prices for each timeframe, then draws horizontal dotted lines extending to the right at those levels. Each line is labeled and color-coded for easy distinction. These levels can help highlight potential support/resistance areas, but they are reference points only and not trading signals.
VWAP & Band Cross Strategy v6 - AdvancedThese are a few updates made to the original script. The daily take profit and stop loss functions correctly for 1 contract but because of the pyramiding input even if not used you'll need to multiply the values by the number of contracts to keep consistent results. I have been unable to correct that function. Let me know if you test the script and have any recommendations for improvement. If trading an actual account I do recommend setting hard daily limits with your provider because there is still slippage from the original exit alerts even with the daily stop loss in place.
1. Real-Time Execution & Hard PnL Limits (The Focus)
The most critical changes were implemented to ensure the daily profit and loss limits act as hard, real-time barriers instead of waiting for the candle to close.
	• Intrabar Tick Execution: The parameter calc_on_every_tick=true was added to the strategy() declaration. This forces the entire script to re-evaluate its logic on every single price update (tick), enabling immediate action.
	• Real-Time PnL Tracking: The PnL calculation was updated to track the total_daily_pnl by summing the realized profit/loss (from closed trades) and the unrealized profit/loss (strategy.openprofit) on every tick.
	• Immediate Closure: The script now checks the total_daily_pnl against the user-defined limits (daily_take_profit_value, daily_stop_loss_value) and immediately executes strategy.close_all() the moment the threshold is breached, preventing further trading.
	• Combined Risk Enforcement: The user-defined "Max Intraday Risk ($)" and the "Daily Stop Loss (Value)" are compared, and the script enforces the tighter of the two limits.
2. Visibility and External Alerting
To address the unavoidable issue of slippage (which causes price overshoot in fast markets even with tick execution), dedicated alert mechanisms were added.
	• Dedicated Alert Condition: An alertcondition named DAILY PNL LIMIT REACHED was added. This allows you to set up a TradingView alert that triggers the instant the daily_limit_reached variable turns true, giving you the fastest possible notification.
	• Visual Marker: A large red triangle (\u25b2) is plotted on the chart using plotchar at the exact moment the daily limit condition is met, providing a clear visual confirmation of the trigger bar.
3. Strategy Features and Input Flexibility
Several user-requested features were integrated to make the strategy more robust and customizable.
	• Trailing Stop / Breakeven (TSL/BE): A new exit option, Fixed Ticks + TSL, was added, allowing you to set a fixed profit target while also deploying a trailing stop or breakeven level based on points/ticks gained.
	• Multiple Exit Types: The exit strategy was expanded to include logic for several types: Fixed Ticks, ATR-based, Capped ATR-based, VWAP Cross, and Price/Band Crosses.
	• Pyramiding Control: An input Max Pyramiding Entries was introduced to control how many positions the strategy can have open at the same time.
	• Confirmation Logic Toggle: Added an input to choose how multiple confirmation indicators (RSI, SMMA, MACD) are combined: "AND" (all must be true) or "OR" (at least one must be true).
	• Indicator Confirmations: Logic for three external indicators—RSI, SMMA (EMA), and MACD—was fully integrated to act as optional filters for entry.
	• VWAP Reset Anchors: Logic was corrected to properly reset the VWAP calculation based on the selected period ("Daily", "Weekly", or "Session") by using Pine Script v6's required anchor series.
Trading Day Filters: Inputs were added to select which specific days of the week the strategy is allowed to trade. 
Advanced Psychological Levels with Dynamic Spacing═══════════════════════════════════════
 ADVANCED PSYCHOLOGICAL LEVELS WITH DYNAMIC SPACING 
═══════════════════════════════════════
A comprehensive psychological price level indicator that automatically identifies and displays round number levels across multiple timeframes. Features dynamic ATR-based spacing, smart crypto detection, distance tracking, and customizable alert system.
───────────────────────────────────────
 WHAT THIS INDICATOR DOES 
───────────────────────────────────────
This indicator automatically draws psychological price levels (round numbers) that often act as support and resistance:
- Dynamic ATR-Based Spacing - Adapts level spacing to market volatility
- Multiple Level Types - Major (250 pip), Standard (100 pip), Mid, and Intraday levels
- Smart Asset Detection - Automatically adjusts for Forex, Crypto, Indices, and CFDs
- Crypto Price Adaptation - Intelligent level spacing based on cryptocurrency price magnitude
- Distance Information Table - Real-time percentage distance to nearest levels
- Combined Level Labels - Clear identification when multiple level types coincide
- Performance Optimized - Configurable visible range and label limits
- Comprehensive Alerts - Notifications when price crosses any level type
───────────────────────────────────────
 HOW IT WORKS 
───────────────────────────────────────
 PSYCHOLOGICAL LEVELS CONCEPT: 
Psychological levels are round numbers where traders tend to place orders, creating natural support and resistance zones. These include:
- Forex: 1.0000, 1.0100, 1.0050 (pips)
- Crypto: $100, $1,000, $10,000 (whole numbers)
- Indices: 10,000, 10,500, 11,000 (points)
Why They Matter:
- Traders naturally gravitate to round numbers
- Stop losses cluster at these levels
- Take profit orders concentrate here
- Institutional algorithmic trading often targets these levels
 DYNAMIC ATR-BASED SPACING: 
Traditional Method:
- Fixed spacing regardless of volatility
- May be too tight in volatile markets
- May be too wide in quiet markets
Dynamic Method (Recommended):
- Uses ATR (Average True Range) to measure volatility
- Automatically adjusts level spacing
- Tighter levels in low volatility
- Wider levels in high volatility
Calculation:
1. Calculate ATR over specified period (default: 14)
2. Multiply by ATR multiplier (default: 2.0)
3. Round to nearest psychological level
4. Generate levels at dynamic intervals
Benefits:
- Adapts to market conditions
- More relevant levels in all volatility regimes
- Reduces clutter in trending markets
- Provides more detail in ranging markets
 LEVEL TYPES: 
Major Levels (250 pip/point):
- Highest significance
- Primary support/resistance zones
- Color: Red (default)
- Style: Solid lines
- Spacing: 2.5x standard step
Standard Levels (100 pip/point):
- Secondary importance
- Common psychological barriers
- Color: Blue (default)
- Style: Dashed lines
- Spacing: Standard step
Mid Levels (50% between major):
- Optional intermediate levels
- Halfway between major levels
- Color: Gray (default)
- Style: Dotted lines
- Usage: Additional confluence points
Intraday Levels (sub-100 pip):
- For intraday traders
- Fine-grained precision
- Color: Yellow (default)
- Style: Dotted lines
- Only shown on intraday timeframes
 SMART ASSET DETECTION: 
Forex Pairs:
- Detects major currency pairs automatically
- Uses pip-based calculations
- Standard: 100 pips (0.0100)
- Major: 250 pips (0.0250)
- Intraday: 20, 50, 80 pip subdivisions
Cryptocurrencies:
- Automatic price magnitude detection
- Adaptive spacing based on price:
  * Under $0.10: Levels at $0.01, $0.05
  * $0.10-$1: Levels at $0.10, $0.50
  * $1-$10: Levels at $1, $5
  * $10-$100: Levels at $10, $50
  * $100-$1,000: Levels at $100, $500
  * $1,000-$10,000: Levels at $1,000, $5,000
  * Over $10,000: Levels at $5,000, $10,000
Indices & CFDs:
- Fixed point-based system
- Major: 500 point intervals (with 250 sub-levels)
- Standard: 100 point intervals
- Suitable for stock indices like SPX, NASDAQ
 COMBINED LEVEL LABELS: 
When multiple level types coincide at the same price:
- Single line drawn (highest priority color)
- Combined label shows all types
- Priority: Major > Standard > Mid > Intraday
Example Label Formats:
- "1.1000 Major" - Major level only
- "1.1000 Std + Major" - Both standard and major
- "50000 Intra + Mid + Std" - Three levels coincide
Benefits:
- Cleaner chart appearance
- Clear identification of confluence
- Reduced visual clutter
- Easy to spot high-importance levels
 DISTANCE INFORMATION TABLE: 
Real-time tracking of nearest levels:
Table Contents:
- Nearest major level above (price and % distance)
- Nearest standard level above (price and % distance)
- Nearest standard level below (price and % distance)
Display:
- Top right corner (configurable)
- Color-coded by level type
- Real-time percentage calculations
- Helpful for position management
Usage:
- Identify proximity to key levels
- Set realistic profit targets
- Gauge potential move magnitude
- Monitor approaching resistance/support
ALERT SYSTEM:
Comprehensive crossing alerts:
Alert Types:
- Major Level Crosses
- Standard Level Crosses
- Intraday Level Crosses
Alert Modes:
- First Cross Only: Alert once when level is crossed
- All Crosses: Alert every time level is crossed
Alert Information:
- Level type crossed
- Specific price level
- Direction (above/below)
- One alert per bar to prevent spam
Configuration:
- Enable/disable by level type
- Choose alert frequency
- Customize for your trading style
───────────────────────────────────────
 HOW TO USE 
───────────────────────────────────────
 INITIAL SETUP: 
General Settings:
1. Enable "Use Dynamic ATR-Based Spacing" (recommended)
2. Set ATR Period (14 is standard)
3. Adjust ATR Multiplier (2.0 is balanced)
Visibility Settings:
1. Set Visible Range % (10% recommended for clarity)
2. Adjust Label Offset for readability
3. Configure performance limits if needed
Level Selection:
1. Enable/disable level types based on trading style
2. Adjust line counts for each type
3. Choose line styles and colors for visibility
 TRADING STRATEGIES: 
Breakout Trading:
1. Wait for price to approach major or standard level
2. Monitor for consolidation near level
3. Enter on confirmed break above/beyond level
4. Stop loss just beyond the broken level
5. Target: Next major or standard level
Rejection Trading:
1. Identify major psychological level
2. Wait for price to test the level
3. Look for rejection signals (wicks, bearish/bullish candles)
4. Enter in direction of rejection
5. Stop beyond the level
6. Target: Previous level or mid-level
Range Trading:
1. Identify range between two major levels
2. Buy at lower psychological level
3. Sell at upper psychological level
4. Use standard and mid-levels for position management
5. Exit if major level breaks with volume
Confluence Trading:
1. Look for combined levels (Std + Major)
2. These represent high-probability zones
3. Use as primary support/resistance
4. Increase position size at confluence
5. Expect stronger reactions at these levels
Session-Based Trading:
1. Note opening level at session start (Asian/London/NY)
2. Trade breakouts of major levels during high-volume sessions
3. London/NY sessions: More likely to break levels
4. Asian session: More likely to respect levels (range trading)
 RISK MANAGEMENT WITH PSYCHOLOGICAL LEVELS: 
Stop Loss Placement:
- Place stops just beyond psychological levels
- Add buffer (5-10 pips for forex)
- Avoid exact round numbers (stop hunting risk)
- Use previous major level as maximum stop
Take Profit Strategy:
- First target: Next standard level (partial profit)
- Second target: Next major level (remaining position)
- Trail stops to breakeven at first target
- Use distance table to calculate risk/reward
Position Sizing:
- Larger positions at major levels (higher probability)
- Smaller positions at intraday levels (lower probability)
- Scale in at standard levels between major levels
- Reduce size when multiple levels are close together
 TIMEFRAME CONSIDERATIONS: 
Higher Timeframes (4H, Daily, Weekly):
- Focus on Major and Standard levels only
- Disable Intraday and Mid levels
- Wider level spacing expected
- Use for swing trading and position trading
Lower Timeframes (5m, 15m, 1H):
- Enable all level types
- Use Intraday levels for precision
- Tighter level spacing acceptable
- Good for day trading and scalping
Multi-Timeframe Approach:
- Identify major levels on Daily/4H charts
- Refine entries using 15m/1H intraday levels
- Trade in direction of higher timeframe bias
- Use lower timeframe levels for position management
───────────────────────────────────────
 CONFIGURATION GUIDE 
───────────────────────────────────────
GENERAL SETTINGS:
Dynamic ATR-Based Spacing:
- Enabled: Recommended for most markets
- Disabled: Fixed psychological levels
- ATR Period: 14 (standard), 10 (responsive), 20 (smooth)
- ATR Multiplier: 1.0-5.0 (2.0 is balanced)
VISIBILITY SETTINGS:
Visible Range %:
- 5%: Very tight range, minimal clutter
- 10%: Balanced view (recommended)
- 20%: Wide range, more context
- 50%: Maximum range, all levels visible
Label Offset:
- 10-20 bars: Close to current price
- 30-50 bars: Moderate distance
- 50-100 bars: Far from price action
Performance Limits:
- Max Historical Bars: Reduce if indicator loads slowly
- Max Labels: Reduce for cleaner chart (20-30 recommended)
LEVEL CUSTOMIZATION:
Line Count:
- Lower (1-3): Cleaner chart, fewer levels
- Medium (4-6): Balanced view
- Higher (7-10): More context, busier chart
Line Styles:
- Solid: High importance, easy to see
- Dashed: Medium importance, clear but subtle
- Dotted: Low importance, minimal visual weight
Colors:
- Use contrasting colors for different level types
- Red/Blue/Yellow default works well
- Adjust based on chart background and personal preference
DISTANCE TABLE:
Position:
- Top Right: Doesn't interfere with price action
- Top Left: Good for right-side price scale
- Bottom positions: Less common but available
Colors:
- Default (white text, dark background) works for most charts
- Match your chart theme for consistency
- Ensure text is readable against background
ALERT CONFIGURATION:
Alert by Level Type:
- Major: Most important, fewer false signals
- Standard: Balance of frequency and importance
- Intraday: Many signals, best for active traders
Alert Frequency:
- First Cross Only: Cleaner, less noise (recommended for swing trading)
- All Crosses: Every touch, good for scalping
Alert Setup in TradingView:
1. Configure desired alert types in indicator settings
2. Right-click chart → Add Alert
3. Select this indicator
4. Choose "Any alert() function call"
5. Set delivery method (mobile, email, webhook)
───────────────────────────────────────
 ASSET-SPECIFIC TIPS 
───────────────────────────────────────
FOREX (EUR/USD, GBP/USD, etc.):
- Major levels at x.x000, x.x500
- Standard levels at x.xx00
- Intraday levels at 20/50/80 pips
- Most effective during London/NY sessions
- Watch for "figure" levels (1.0000, 1.1000)
CRYPTOCURRENCIES (BTC, ETH, etc.):
- Enable dynamic spacing for volatile markets
- Levels adjust automatically based on price
- Watch major $1,000 increments for BTC
- $100 levels important for ETH
- Smaller caps: Use standard levels
- High volatility: Increase ATR multiplier to 3.0
STOCK INDICES (SPX, NASDAQ, etc.):
- 100-point levels most important
- 500-point levels for major S/R
- 50-point mid-levels for refinement
- Watch end-of-day for level reactions
- Futures often lead spot on level breaks
GOLD/COMMODITIES:
- Major levels at $50 increments ($1,900, $1,950)
- Standard levels at $10 increments
- Very reactive to psychological levels
- Watch for false breaks during low volume
- Best reactions during active trading hours
───────────────────────────────────────
 BEST PRACTICES 
───────────────────────────────────────
Chart Setup:
- Use clean price action charts
- Avoid too many indicators
- Ensure psychological levels are clearly visible
- Match colors to your chart theme
Level Selection:
- Start with Major and Standard levels only
- Add Mid and Intraday as needed
- Less is more - avoid chart clutter
- Adjust based on timeframe
Combining with Other Tools:
- Volume profile for confluence
- Trendlines intersecting psychological levels
- Moving averages near round numbers
- Fibonacci levels coinciding with psychological levels
Common Mistakes to Avoid:
- Trading every level touch (be selective)
- Ignoring volume confirmation
- Setting stops exactly at levels (stop hunting)
- Forgetting to adjust for different assets
- Over-relying on levels without price action confirmation
Performance Optimization:
- Reduce visible range for faster loading
- Lower max historical bars on lower timeframes
- Limit labels to 30-50 for clarity
- Disable unused level types
───────────────────────────────────────
 EDUCATIONAL DISCLAIMER 
───────────────────────────────────────
This indicator identifies psychological price levels based on round numbers that tend to act as support and resistance. The methodology includes:
- Round number detection algorithms
- ATR-based dynamic spacing calculations
- Asset-specific level determination
- Distance percentage calculations
Psychological levels are a recognized concept in technical analysis, studied by traders and institutions. However, they do not guarantee price reactions and should be used as part of a comprehensive trading strategy including proper risk management, volume analysis, and price action confirmation.
───────────────────────────────────────
 USAGE DISCLAIMER 
───────────────────────────────────────
This tool is for educational and analytical purposes. Psychological levels can act as support or resistance but price reactions are not guaranteed. Dynamic spacing may generate different levels in different market conditions. Always conduct independent analysis, use proper risk management, and never risk capital you cannot afford to lose. Past performance does not indicate future results.
───────────────────────────────────────
 CREDITS & ATTRIBUTION 
───────────────────────────────────────
Original Concept: Sonar Lab
AG_STRATEGY📈 AG_STRATEGY — Smart Money System + Sessions + PDH/PDL
AG_STRATEGY is an advanced Smart Money Concepts (SMC) toolkit built for traders who follow market structure, liquidity and institutional timing.
It combines real-time market structure, session ranges, liquidity levels, and daily institutional levels — all in one clean, professional interface.
✅ Key Features
🧠 Smart Money Concepts Engine
Automatic detection of:
BOS (Break of Structure)
CHoCH (Change of Character)
Dual structure system: Swing & Internal
Historical / Present display modes
Optional structural candle coloring
🎯 Liquidity & Market Structure
Equal Highs (EQH) and Equal Lows (EQL)
Marks strong/weak highs & lows
Real-time swing confirmation
Clear visual labels + smart positioning
⚡ Fair Value Gaps (FVG)
Automatic bullish & bearish FVGs
Higher-timeframe compatible
Extendable boxes
Auto-filtering to remove noise
🕓 Institutional Sessions
Asia
London
New York
Includes:
High/Low of each session
Automatic range plotting
Session background shading
London & NY Open markers
📌 PDH/PDL + Higher-Timeframe Levels
PDH / PDL (Previous Day High/Low)
Dynamic confirmation ✓ when liquidity is swept
Multi-timeframe level support:
Daily
Weekly
Monthly
Line style options: solid / dashed / dotted
🔔 Built-in Alerts
Internal & swing BOS / CHoCH
Equal Highs / Equal Lows
Bullish / Bearish FVG detected
🎛 Fully Adjustable Interface
Colored or Monochrome visual mode
Custom label sizes
Extend levels automatically
Session timezone settings
Clean, modular toggles for each component
🎯 Designed For Traders Who
Follow institutional order flow
Enter on BOS/CHoCH + FVG + Liquidity sweeps
Trade London & New York sessions
Want structure and liquidity clearly mapped
Prefer clean charts with full control
💡 Why AG_STRATEGY Stands Out
✔ Professional SMC engine
✔ Real-time swing & internal structure
✔ Session-based liquidity tracking
✔ Non-cluttered chart — high clarity
✔ Supports institutional trading workflows
XAUUSD Multi-Timeframe Supertrend Alert v2**Indicator Overview: XAUUSD Multi-Timeframe Supertrend Alert v2**
**Core Components:**
1. **Multi-Timeframe Supertrend System**
   - Two Supertrend indicators (ST1 & ST2) with customizable timeframes
   - ST1 typically set to Daily, ST2 to Weekly as main trend
   - Visualized with distinct colors and background fills
2. **Customizable SMA**
   - Adjustable period and timeframe
   - Plotted as blue line for additional trend reference
3. **Neutral Zone System**
   - Creates a neutral line offset from ST1 by customizable tick distance
   - Yellow dashed line that adjusts based on ST1 trend direction
   - **Alert Conditions:**
     - **Test Buy Zone**: Both ST1 & ST2 in uptrend AND price enters neutral zone above ST1
     - **Test Sell Zone**: Both ST1 & ST2 in downtrend AND price enters neutral zone below ST1
4. **Distance Lines from ST2**
   - Upper/lower lines at customizable tick distance from ST2
   - Purple dashed lines with touch alerts
**Trading Signals:**
- **Bullish Signal**: Price above ST2 but below ST1 (potential buy)
- **Bearish Signal**: Price below ST2 but above ST1 (potential sell)
- **Neutral Zone Alerts**: Price enters defined zone when both trends align
- **Line Touch Alerts**: Price touches distance lines from ST2
**Alert System:**
- Limited to 3 consecutive alerts per signal type
- Visual markers (triangles, diamonds, circles)
- Background coloring for signal zones
- Separate alert conditions for each signal type
**Visual Features:**
- Candles colored green/red based on signals
- Clear trend visualization with colored backgrounds
- Real-time alert markers without information table clutter
This indicator provides multi-timeframe trend analysis with precise entry zone detection and comprehensive alert system for XAUUSD trading. SAM89 M15, ST1 (5:10) M5, ST2 ( 1,5:20) H1, Test Buy Sell 7000, Line 15000
[AS] MACD-v  & Hist [Alex Spiroglou | S.M.A.R.T. TRADER SYSTEMS]    MACD-v & MACD-v Histogram  
=======================================
  Volatility Normalised Momentum 📈
     Twice Awarded Indicator 🏆
=======================================
 =======================================
✅ 1. INTRODUCTION TO THE MACD-v ✅
======================================= 
I created the MACD-v in 2015,
as a way to deal with the limitations
of well known indicators like the Stochastic, RSI, MACD.
I decided to publicly share a very small part of my research
in the form of a research paper I wrote in 2022,
titled  "MACD-v: Volatility Normalised Momentum". 
That paper was awarded twice:
 
1. The "Charles H. Dow" Award (2022), 
for outstanding research in Technical Analysis,
by the Chartered Market Technicians Association (CMTA)
 2. The "Founders" Award (2022), 
for advances in Active Investment Management,
by the National Association of Active Investment Managers (NAAIM)
  
=======================================
 ===================================================
❌ 2. WHY CREATE THE MACD-v ?
THE LIMITATIONS OF CONVENTIONAL MOMENTUM INDICATORS
==================================================== 
Technical Analysis indicators focused on momentum,
come in two general categories,
each with its own set of limitations:
 (i) Range Bound Oscillators (RSI, Stochastics, etc) 
These usually have a scaling of 0-100,
and thus have the advantage of having normalised readings,
that are comparable across time and securities.
However they have the following limitations (among others):
1. Skewing effect of steep trends
2. Indicator values do not adjust with and reflect true momentum 
    (indicator values are capped to 100)
 (ii) Unbound Oscillators (MACD, RoC, etc) 
These are boundless indicators,
and can expand with the market,
without being limited by a 0-100 scaling,
and thus have the advantage of really measuring momentum.
They have the main following limitations (among others):
1. Subjectivity of overbought / oversold levels
2. Not comparable across time
3. Not comparable across securities
  
=======================================
 =======================================
💡 3. THE SOLUTION TO SOLVE THESE LIMITATIONS
======================================= 
In order to deal with these limitations,
I decided to create an indicator,
that would be the "Best of two worlds".
A unique & hybrid indicator,
that would have objective normalised readings
(similar to Range Bound Oscillators - RSI)
but would also be able to have no upper/lower boundaries
(similar to Unbound Oscillators - MACD).
This would be achieved by "normalising" a boundless oscillator (MACD)
=======================================
 ==================================================
⛔ 4. DEEP DIVE INTO THE 5 LIMITATIONS OF THE MACD
================================================== 
A Bloomberg study found that the MACD
is the most popular indicator after the RSI,
but the MACD has 5 BIG limitations.
 Limitation 1: MACD values are not comparable across Time 
The raw MACD values shift 
as the underlying security's absolute value changes across time,
making historical comparisons obsolete
e.g S&P 500 maximum MACD was 1.56 in 1957-1971,
but reached 86.31 in 2019-2021 - not indicating 55x stronger momentum, 
but simply different price levels.
  
 Limitation 2:  MACD values are not comparable across Assets 
Traditional MACD cannot compare momentum between different assets.
S&P 500 MACD of 65 versus EUR/USD MACD of -0.5 
reflects absolute price differences, not momentum differences
  
 Limitation 3: MACD values cannot be Systematically Classified 
Due to limitations #1 & #2, it is not possible to create 
a momentum level classification scale
where one can define "fast", "slow", "overbought", "oversold" momentum
making systematic analysis impossible
  
 Limitation 4: MACD Signal Line gives false crossovers in low-momentum ranges 
In range-bound, low momentum environments, 
most of the MACD signal line crossovers are false (noise)
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is low
  
 Limitation 5: MACD Signal Line gives late crossovers in high momentum regimes. 
Signal lag in strong trends not good at timing the turning point
— In high-momentum moves, MACD crossovers may come late.
Since there is no objective momentum classification system (limitation #3),
it is not possible to filter these signals out,
by avoiding them when momentum is high
  
===================================================================
 
===================================================================
🏆 5. MACD-v : THE SOLUTION TO THE LIMITATIONS OF THE MACD , RSI, etc 
==================================================================== 
MACD-v is a volatility normalised momentum indicator.
It remedies these 5 limitations of the classic MACD,
while creating a tool with unique properties.
 Formula:   × 100 
MACD-V enhances the classic MACD by normalizing for volatility, 
transforming price-dependent readings into standardized momentum values. 
This resolves key limitations of traditional MACD and adds significant analytical power.
 Core Advantages of MACD-V 
 Advantage 1: Time-Based Stability 
MACD-V values are consistent and comparable over time. 
A reading of 100 has the same meaning today as it did in the past
(unlike traditional MACD which is influenced by changes in price and volatility over time)
  
 Advantage 2: Cross-Market Comparability 
MACD-V provides universal scaling. 
Readings (e.g., ±50) apply consistently across all asset classes—stocks, 
bonds, commodities, or currencies,
allowing traders to compare momentum across markets reliably.
 Advantage 3: Objective Momentum Classification 
MACD-V includes a defined 5-range momentum lifecycle 
with standardized thresholds (e.g., -150 to +150). 
This offers an objective framework for analyzing market conditions 
and supports integration with broader models.
  
 Advantage 4: False Signal Reduction in Low-Momentum Regimes 
MACD-V introduces a "neutral zone" (typically -50 to +50) 
to filter out these low-probability signals.
 Advantage 5: Improved Signal Timing in High-Momentum Regimes 
MACD-V identifies extremely strong trends,
allowing for more precise entry and exit points.
 
 Advantage 6: Trend-Adaptive Scaling 
Unlike bounded oscillators like RSI or Stochastic, 
MACD-V dynamically expands with trend strength, 
providing clearer momentum insights without artificial limits.
 Advantage 7: Enhanced Divergence Detection 
MACD-V offers more reliable divergence signals 
by avoiding distortion at extreme levels, 
a common flaw in bounded indicators (RSI, etc)
  
====================================================================
 =======================================
⚒️ 5. HOW TO USE THE MACD-v: 7 CORE PATTERNS 
         HOW TO USE THE MACD-v Histogram: 2 CORE PATTERNS 
======================================= 
>>>>>>  BASIC USE  (RANGE RULES) <<<<<<
The MACD-v has 7 Core Patterns (Ranges) :
 1. Risk Range (Overbought) 
 Condition: MACD-V > Signal Line and MACD-V > +150
 Interpretation: Extremely strong bullish momentum—potential exhaustion or reversal zone.
 2. Retracing 
 Condition: MACD-V < Signal Line and MACD-V > -50
 Interpretation: Mild pullback within a bullish trend.
 3. Rundown 
 Condition: MACD-V < Signal Line and -50 > MACD-V > -150
 Interpretation: Momentum is weakening—bearish pressure building.
 4. Risk Range (Oversold) 
 Condition: MACD-V < Signal Line and MACD-V < -150
 Interpretation: Extreme bearish momentum—potential for reversal or capitulation.
 5. Rebounding 
 Condition: MACD-V > Signal Line and MACD-V > -150
 Interpretation: Bullish recovery from oversold or weak conditions.
 6. Rallying 
 Condition: MACD-V > Signal Line and MACD-V > +50
 Interpretation: Strengthening bullish trend—momentum accelerating.
 7. Ranging (Neutral Zone) 
 Condition: MACD-V remains between -50 and +50 for 20+ bars
 Interpretation: Sideways market—low conviction and momentum.
  
 The MACD-v Histogram has 2 Core Patterns (Ranges) : 
 1. Risk (Overbought) 
 Condition: Histogram > +40
 Interpretation: Short-term bullish momentum is stretched—possible overextension or reversal risk.
 2. Risk (Oversold) 
 Condition: Histogram < -40
 Interpretation: Short-term bearish momentum is stretched—potential for rebound or reversal.
  
=======================================
 
=======================================
📈 6. ADVANCED PATTERNS WITH MACD-v 
======================================= 
Thanks to its volatility normalization, 
the MACD-V framework enables the development 
of a wide range of advanced pattern recognition setups, 
trading signals, and strategic models. 
These patterns go beyond basic crossovers, 
offering deeper insight into momentum structure, 
regime shifts, and high-probability trade setups.
These are not part of this script
=======================================
 
===========================================================
⚙️ 7. FUNCTIONALITY - HOW TO ADD THE INDICATORS TO YOUR CHART
=========================================================== 
The script allows you to see :
 1.	MACD-v  
The indicator with the ranges (150,50,0,-50,-150)
and colour coded according to its 7 basic patterns
  
 2.	MACD-v Histogram 
The indicator The indicator with the ranges (40,0,-40)
and colour coded according to its 2 basic ranges / patterns
  
 3.	MACD-v Heatmap 
   You can see the MACD-v in a Multiple Timeframe basis,
   using a colour-coded Heatmap
   Note that lowest timeframe in the heatmap must be the one on the chart
   i.e. if you see the daily chart, then the Heatmap will be Daily, Weekly, Monthly 
     
 4. MACD-v Dashboard 
   You can see the MACD-v for 7 markets,
   in a multiple timeframe basis
  
=======================================
 
=======================================
🤝 CONTRIBUTIONS 🤝
======================================= 
I would like to thank the following people:
1.	Mike Christensen for coding the indicator
@TradersPostInc, @Mik3Christ3ns3n, 
2.	@Indicator-Jones For allowing me to use his Scanner
3.	@Daveatt For allowing me to use his heatmap
=======================================
 =======================================
⚠️ LEGAL - Usage and Attribution Notice ⚠️
======================================= 
Use of this Script is permitted 
for personal or non-commercial purposes, 
including implementation by coders and TradingView users. 
However, any form of paid redistribution, 
resale, or commercial exploitation is strictly prohibited.
Proper attribution to the original author is expected and appreciated, 
in order to acknowledge the source 
and maintain the integrity of the original work.
Failure to comply with these terms, 
or to take corrective action within 48 hours of notification, 
will result in a formal report to TradingView’s moderation team,
and  will actively pursue account suspension and removal of the infringing script(s). 
 Continued violations may result in further legal action, as deemed necessary. 
=======================================
 =======================================
⚠️ DISCLAIMER ⚠️
======================================= 
This indicator is For Educational Purposes Only (F.E.P.O.).
I am just Teaching by Example (T.B.E.)
It does not constitute investment advice.
There are no guarantees in trading - except one.
You will have losses in trading. 
I can guarantee you that with 100% certainty.
The author is not responsible for any financial losses
or trading decisions made based on this indicator. 🙏
Always perform your own analysis and use proper risk management. 🛡️
=======================================
Session Streaks [LuxAlgo]The  Session Streaks  tool allows traders to identify whether a session is bullish or bearish on the chart. It also shows the current session streak, or the number of consecutive bullish or bearish sessions.
The tool features a dashboard with information about the session streaks of the underlying product on the chart.
🔶  USAGE 
  
Analyzing session streaks is commonly used for market timing by studying the number of consecutive sessions over time and how long they last before the market changes direction.
We identify a bullish session as one in which the closing price is equal to or greater than the opening price, and a bearish session as one in which the closing price is below the opening price.
Each session is labeled according to its bias (bullish or bearish) and the number of consecutive sessions of the same type that conform the current streak.
🔹  Dashboard 
  
The dashboard at the top shows information about the current session.
Under the "Streaks" header, historical information about session streaks is displayed, divided into bullish and bearish categories.
 
 Number: Total number of streaks.
 Median: The average duration of those streaks. We chose the median over the mean to avoid misrepresentation due to outliers.
 Mode: The most common streak duration.
 
As the image shows, for this particular market, there are more bullish streaks than bearish ones. Bullish streaks have an average duration that is longer than that of bearish streaks, and both have the same most common streak duration.
If the current session is bullish and the median streak duration for bullish sessions is three, then we could consider scenarios in which the next two sessions are bullish.
🔶  DETAILS 
🔹  Streaks On Larger Timeframes 
  
On timeframes lower than or equal to Daily, the tool identifies each consecutive session, but this behavior changes on larger timeframes.
On timeframes larger than daily, the tool identifies the last session of each bar. Let's use the chart in the image as a reference.
At the top of the image, there is a daily chart where each session corresponds to each candle. One candle equals one day.
In the middle, we have a weekly chart where each session is the last session of each week, which is usually Friday for the Nasdaq 100 futures contract. The levels and labels displayed correspond to the last session within each candle, which is the last day of each week.
The levels and labels on the monthly chart correspond to the last session of each month, which is the last day of each month.
🔹  Gradient Style 
  
Traders can choose between two different color gradients for the session background. Each gradient provides different information about price behavior within each session.
 
  Horizontal: Green indicates prices at the top of the session range and red indicates prices at the bottom.
  Vertical: Green indicates prices that are equal to or greater than the open price and red indicates prices that are below the open price of the session.
 
🔶  SETTINGS 
🔹  Dashboard 
 
  Dashboard: Enable or disable the dashboard.
  Position: Select the location of the dashboard.
  Size: Select the dashboard size.
 
🔹  Style 
 
  Bullish: Select a color for bullish sessions.
  Bearish: Select a color for bearish sessions.
  Transparency: Select a transparency level from 100 to 0.
  Gradient: Select a horizontal or vertical gradient.
Previous D/W/M HLOCHey traders,
Here's a simple Multi-Timeframe indicator that essentially turns time and price into a box. It'll take the previous high, low, opening price, or closing price from one of the three timeframes of your choice (day, week, or month). For whatever reason I can't get the opening price to function consistently so if you find improvements feel free to let me know, this will help traders who prefer to use opening price over closing price.
Naturally this form of charting is classical and nature and some key figures you could use to study its usage are
- Richard W. Schabacker (1930s)
- Edwards & Magee (1948)
- Peter Brandt
- Stacey Burke (more on the intraday side - typically our preference)
It's usage put plainly:
- Quantifying Accumulation or Distribution
- Revealing Energy Build-Up (Compression)
- Framing Breakouts and False Breakouts
- Structuring Time
- Identifying opportunities to trade a daily, weekly, or monthly range. 
Double Weighted Moving Average (DWMA)# DWMA: Double Weighted Moving Average
## Overview and Purpose
The Double Weighted Moving Average (DWMA) is a technical indicator that applies weighted averaging twice in sequence to create a smoother signal with enhanced noise reduction. Developed in the late 1990s as an evolution of traditional weighted moving averages, the DWMA was created by quantitative analysts seeking enhanced smoothing without the excessive lag typically associated with longer period averages. By applying a weighted moving average calculation to the results of an initial weighted moving average, DWMA achieves more effective filtering while preserving important trend characteristics.
## Core Concepts
* **Cascaded filtering:** DWMA applies weighted averaging twice in sequence for enhanced smoothing and superior noise reduction
* **Linear weighting:** Uses progressively increasing weights for more recent data in both calculation passes
* **Market application:** Particularly effective for trend following strategies where noise reduction is prioritized over rapid signal response
* **Timeframe flexibility:** Works across multiple timeframes but particularly valuable on daily and weekly charts for identifying significant trends
The core innovation of DWMA is its two-stage approach that creates more effective noise filtering while minimizing the additional lag typically associated with longer-period or higher-order filters. This sequential processing creates a more refined output that balances noise reduction and signal preservation better than simply increasing the length of a standard weighted moving average.
## Common Settings and Parameters
| Parameter | Default | Function | When to Adjust |
|-----------|---------|----------|---------------|
| Length | 14 | Controls the lookback period for both WMA calculations | Increase for smoother signals in volatile markets, decrease for more responsiveness |
| Source | close | Price data used for calculation | Consider using hlc3 for a more balanced price representation |
**Pro Tip:** For trend following, use a length of 10-14 with DWMA instead of a single WMA with double the period - this provides better smoothing with less lag than simply increasing the period of a standard WMA.
## Calculation and Mathematical Foundation
**Simplified explanation:**
DWMA first calculates a weighted moving average where recent prices have more importance than older prices. Then, it applies the same weighted calculation again to the results of the first calculation, creating a smoother line that reduces market noise more effectively.
**Technical formula:**
```
DWMA is calculated by applying WMA twice:
1. First WMA calculation:
   WMA₁ = (P₁ × w₁ + P₂ × w₂ + ... + Pₙ × wₙ) / (w₁ + w₂ + ... + wₙ)
2. Second WMA calculation applied to WMA₁:
   DWMA = (WMA₁₁ × w₁ + WMA₁₂ × w₂ + ... + WMA₁ₙ × wₙ) / (w₁ + w₂ + ... + wₙ)
```
Where:
- Linear weights: most recent value has weight = n, second most recent has weight = n-1, etc.
- n is the period length
- Sum of weights = n(n+1)/2
**O(1) Optimization - Inline Dual WMA Architecture:**
This implementation uses an advanced O(1) algorithm with two complete inline WMA calculations. Each WMA uses the dual running sums technique:
1. **First WMA (source → wma1)**:
   - Maintains buffer1, sum1, weighted_sum1
   - Recurrence: `W₁_new = W₁_old - S₁_old + (n × P_new)`
   - Cached denominator norm1 after warmup
2. **Second WMA (wma1 → dwma)**:
   - Maintains buffer2, sum2, weighted_sum2
   - Recurrence: `W₂_new = W₂_old - S₂_old + (n × WMA₁_new)`
   - Cached denominator norm2 after warmup
**Implementation details:**
- Both WMAs fully integrated inline (no helper functions)
- Each maintains independent state: buffers, sums, counters, norms
- Both warm up independently from bar 1
- Performance: ~16 operations per bar regardless of period (vs ~10,000 for naive O(n²) implementation)
**Why inline architecture:**
Unlike helper functions, the inline approach makes all state variables and calculations visible in a single scope, eliminating function call overhead and making the dual-pass nature explicit. This is ideal for educational purposes and when debugging complex cascaded filters.
> 🔍 **Technical Note:** The dual-pass O(1) approach creates a filter that effectively increases smoothing without the quadratic increase in computational cost. Original O(n²) implementations required ~10,000 operations for period=100; this optimized version requires only ~16 operations, achieving a 625x speedup while maintaining exact mathematical equivalence.
## Interpretation Details
DWMA can be used in various trading strategies:
* **Trend identification:** The direction of DWMA indicates the prevailing trend
* **Signal generation:** Crossovers between price and DWMA generate trade signals, though they occur later than with single WMA
* **Support/resistance levels:** DWMA can act as dynamic support during uptrends and resistance during downtrends
* **Trend strength assessment:** Distance between price and DWMA can indicate trend strength
* **Noise filtering:** Using DWMA to filter noisy price data before applying other indicators
## Limitations and Considerations
* **Market conditions:** Less effective in choppy, sideways markets where its lag becomes a disadvantage
* **Lag factor:** More lag than single WMA due to double calculation process
* **Initialization requirement:** Requires more data points for full calculation, showing more NA values at chart start
* **Short-term trading:** May miss short-term trading opportunities due to increased smoothing
* **Complementary tools:** Best used with momentum oscillators or volume indicators for confirmation
## References
* Jurik, M. "Double Weighted Moving Averages: Theory and Applications in Algorithmic Trading Systems", Jurik Research Papers, 2004
* Ehlers, J.F. "Cycle Analytics for Traders," Wiley, 2013
Relative Volume (Multi-TF, D, W, M)Relative Volume (Multi-TF, Candle-Matched Colors)
This indicator measures Relative Volume (RVOL) — the ratio of current volume to average historical volume — across any higher timeframe (Daily, Weekly, or Monthly) and displays it as color-coded columns that match the candle colors of the chart you’re viewing.
RVOL reveals how active today’s market participation is compared to its typical rhythm.
RVOL = 1.0 → normal volume
>1.5 → rising interest
>2.0–3.0 → strong institutional participation
>5.0 → climax or exhaustion levels
Features
Works on any chart timeframe while computing RVOL from your chosen higher timeframe (e.g., show Daily RVOL while trading on a 5-minute chart).
Column colors automatically match your chart’s candle colors (green/red/neutral).
Adjustable lookback period (len) and selectable source timeframe (D, W, or M).
Pre-drawn horizontal guide levels at 1.0, 1.2, 1.5, 2, 3, and 5 for quick interpretation.
Compatible with all chart types, including Heikin Ashi or custom color schemes.
Typical Use
Swing trading:
Look for quiet bases where RVOL stays 0.4–0.9, then expansion ≥2 on breakout days.
Confirm follow-through when green days keep RVOL ≥1.2–1.5 and red pullbacks stay below 1.0.
Day trading:
Watch intraday RVOL (on 1–5m charts) for bursts ≥2 that sustain for several bars — this signals crowd engagement and valid momentum.
Interpretation Summary
RVOL Value	Meaning	Typical Action
0.4–0.9	Quiet base / low interest	Watch for setup
1.0	Normal activity	Neutral
1.2–1.5	Valid participation	Early confirmation
2–3	Strong expansion	Momentum / breakout
≥5	Climax / exhaustion	Take profits or avoid new entries
Author’s note:
RVOL isn’t directional; it tells how many players are active, not who’s winning. Combine it with structure (levels, VWAP, or trend) to see when the market crowd truly commits.
Luxy BIG beautiful Dynamic ORBThis is an advanced Opening Range Breakout (ORB) indicator that tracks price breakouts from the first 5, 15, 30, and 60 minutes of the trading session. It provides complete trade management including entry signals, stop-loss placement, take-profit targets, and position sizing calculations.
The ORB strategy is based on the concept that the opening range of a trading session often acts as support/resistance, and breakouts from this range tend to lead to significant moves.
  
 What Makes This Different? 
Most ORB indicators simply draw horizontal lines and leave you to figure out the rest. This indicator goes several steps further:
 Multi-Stage Tracking 
Instead of just one ORB timeframe, this tracks FOUR simultaneously (5min, 15min, 30min, 60min). Each stage builds on the previous one, giving you multiple trading opportunities throughout the session.
 Active Trade Management 
When a breakout occurs, the indicator automatically calculates and displays entry price, stop-loss, and multiple take-profit targets. These lines extend forward and update in real-time until the trade completes.
 Cycle Detection 
Unlike indicators that only show the first breakout, this tracks the complete cycle: Breakout → Retest → Re-breakout. You can see when price returns to test the ORB level after breaking out (potential re-entry).
 Failed Breakout Warning 
If price breaks out but quickly returns inside the range (within a few bars), the label changes to "FAILED BREAK" - warning you to exit or avoid the trade.
 Position Sizing Calculator 
Built-in risk management that tells you exactly how many shares to buy based on your account size and risk tolerance. No more guessing or manual calculations.
 Advanced Filtering 
Optional filters for volume confirmation, trend alignment, and Fair Value Gaps (FVG) to reduce false signals and improve win rate.
  
 Core Features Explained
 
### 1. Multi-Stage ORB Levels
The indicator builds four separate Opening Range levels:
 
 ORB 5  - First 5 minutes (fastest signals, most volatile)
 ORB 15  - First 15 minutes (balanced, most popular)
 ORB 30  - First 30 minutes (slower, more reliable)
 ORB 60  - First 60 minutes (slowest, most confirmed)
 
Each level is drawn as a horizontal range on your chart. As time progresses, the ranges expand to include more price action. You can enable or disable any stage and assign custom colors to each.
 How it works:  During the opening minutes, the indicator tracks the highest high and lowest low. Once the time period completes, those levels become your ORB high and low for that stage.
### 2. Breakout Detection
When price closes outside the ORB range, a label appears:
 
 BREAK UP  (green label above price) - Price closed above ORB High
 BREAK DOWN  (red label below price) - Price closed below ORB Low
 
The label shows which ORB stage triggered (ORB5, ORB15, etc.) and the cycle number if tracking multiple breakouts.
 Important:  Signals appear on bar close only - no repainting. What you see is what you get.
### 3. Retest Detection
After price breaks out and moves away, if it returns to test the ORB level, a "RETEST" label appears (orange). This indicates:
 
 The original breakout level is now acting as support/resistance
 Potential re-entry opportunity if you missed the first breakout
 Confirmation that the level is significant
 
The indicator requires price to move a minimum distance away before considering it a valid retest (configurable in settings).
### 4. Failed Breakout Detection
If price breaks out but returns inside the ORB range within a few bars (before the breakout is "committed"), the original label changes to "FAILED BREAK" in orange.
This warns you:
 
 The breakout lacked conviction
 Consider exiting if already in the trade
 Wait for better setup
 
 Committed Breakout:  The indicator tracks how many bars price stays outside the range. Only after staying outside for the minimum number of bars does it become a committed breakout that can be retested.
  
### 5. TP/SL Lines (Trade Management)
When a breakout occurs, colored horizontal lines appear showing:
 
 Entry Line  (cyan for long, orange for short) - Your entry price (the ORB level)
 Stop Loss Line  (red) - Where to exit if trade goes against you
 TP1, TP2, TP3 Lines  (same color as entry) - Profit targets at 1R, 2R, 3R
 
These lines extend forward as new bars form, making it easy to track your trade. When a target is hit, the line turns green and the label shows a checkmark.
 Lines freeze (stop updating) when: 
 
 Stop loss is hit
 The final enabled take-profit is hit
 End of trading session (optional setting)
 
### 6. Position Sizing Dashboard
The dashboard (bottom-left corner by default) shows real-time information:
 
 Current ORB stage and range size
 Breakout status (Inside Range / Break Up / Break Down)
 Volume confirmation (if filter enabled)
 Trend alignment (if filter enabled)
 Entry and Stop Loss prices
 All enabled Take Profit levels with percentages
 Risk/Reward ratio
 Position sizing: Max shares to buy and total risk amount
 
 Position Sizing Example: 
If your account is $25,000 and you risk 1% per trade ($250), and the distance from entry to stop loss is $0.50, the calculator shows you can buy 500 shares (250 / 0.50 = 500).
  
### 7. FVG Filter (Fair Value Gap)
Fair Value Gaps are price inefficiencies - gaps left by strong momentum where one candle's high doesn't overlap with a previous candle's low (or vice versa).
When enabled, this filter:
 
 Detects bullish and bearish FVGs
 Draws semi-transparent boxes around these gaps
 Only allows breakout signals if there's an FVG near the breakout level
 
 Why this helps:  FVGs indicate institutional activity. Breakouts through FVGs tend to be stronger and more reliable.
 Proximity setting:  Controls how close the FVG must be to the ORB level. 2.0x means the breakout can be within 2 times the FVG size - a reasonable default.
### 8. Volume & Trend Filters
 Volume Filter: 
Requires current volume to be above average (customizable multiplier). High volume breakouts are more likely to sustain.
 
 Set minimum multiplier (e.g., 1.5x = 50% above average)
 Set "strong volume" multiplier (e.g., 2.5x) that bypasses other filters
 Dashboard shows current volume ratio
 
 Trend Filter: 
Only shows breakouts aligned with a higher timeframe trend. Choose from:
 
 VWAP - Price above/below volume-weighted average
 EMA - Price above/below exponential moving average
 SuperTrend - ATR-based trend indicator
 Combined modes (VWAP+EMA, VWAP+SuperTrend) for stricter filtering
 
### 9. Pullback Filter (Advanced)
 Purpose: 
Waits for price to pull back slightly after initial breakout before confirming the signal. 
This reduces false breakouts from immediate reversals.
 How it works: 
- After breakout is detected, indicator waits for a small pullback (default 2%)
- Once pullback occurs AND price breaks out again, signal is confirmed
- If no pullback within timeout period (5 bars), signal is issued anyway
 Settings: 
 
 Enable Pullback Filter:  Turn this filter on/off
 Pullback %:  How much price must pull back (2% is balanced)
 Timeout (bars):  Max bars to wait for pullback (5 is standard)
 
 When to use: 
- Choppy markets with many fake breakouts
- When you want higher quality signals
- Combine with Volume filter for maximum confirmation
 Trade-off: 
- Better signal quality
- May miss some valid fast moves
- Slight entry delay
  
 How to Use This Indicator 
### For Beginners - Simple Setup
 
 Add the indicator to your chart (5-minute or 15-minute timeframe recommended)
 Leave all default settings - they work well for most stocks
 Watch for BREAK UP or BREAK DOWN labels to appear
 Check the dashboard for entry, stop loss, and targets
 Use the position sizing to determine how many shares to buy
 
 Basic Trading Plan: 
 
 Wait for a clear breakout label
 Enter at the ORB level (or next candle open if you're late)
 Place stop loss where the red line indicates
 Take profit at TP1 (50% of position) and TP2 (remaining 50%)
 
### For Advanced Traders - Customized Setup
 
 Choose which ORB stages to track (you might only want ORB15 and ORB30)
 Enable filters: Volume (stocks) or Trend (trending markets)
 Enable FVG filter for institutional confirmation
 Set "Track Cycles" mode to catch retests and re-breakouts
 Customize stop loss method (ATR for volatile stocks, ORB% for stable ones)
 Adjust risk per trade and account size for accurate position sizing
 
 Advanced Strategy Example: 
 
 Enable ORB15 only (disable others for cleaner chart)
 Turn on Volume filter at 1.5x with Strong at 2.5x
 Enable Trend filter using VWAP
 Set Signal Mode to "Track Cycles" with Max 3 cycles
 Wait for aligned breakouts (Volume + Trend + Direction)
 Enter on retest if you missed the initial break
 
### Timeframe Recommendations
 
 5-minute chart:  Scalping, very active trading, crypto
 15-minute chart:  Day trading, balanced approach (most popular)
 30-minute chart:  Swing entries, less screen time
 60-minute chart:  Position trading, longer holds
 
The indicator works on any intraday timeframe, but ORB is fundamentally a day trading strategy. Daily charts don't make sense for ORB.
 
 DEFAULT CONFIGURATION  
ON by Default:
• All 4 ORB stages (5/15/30/60)
• Breakout Detection
• Retest Labels
• All TP levels (1/1.5/2/3)
• TP/SL Lines (Detailed mode)
• Dashboard (Bottom Left, Dark theme)
• Position Size Calculator
OFF by Default (Optional Filters):
• FVG Filter
• Pullback Filter
• Volume Filter
• Trend Filter
• HTF Bias Check
• Alerts
Recommended for Beginners:
• Leave all defaults
• Session Mode: Auto-Detect
• Signal Mode: Track Cycles
• Stop Method: ATR
• Add Volume Filter if trading stocks
 Recommended for Advanced: 
• Enable ORB15 + ORB30 only (disable 5 & 60)
• Enable: Volume + Trend + FVG 
• Signal Mode: Track Cycles, Max 3 
• Stop Method: ATR or Safer 
• Enable HTF Daily bias check 
 
## Settings Guide
The settings are organized into logical groups. Here's what each section controls:
### ORB COLORS Section
 
 Show Edge Labels:  Display "ORB 5", "ORB 15" labels at the right edge of the levels
 Background:  Fill the area between ORB high/low with color
 Transparency:  How see-through the background is (95% is nearly invisible)
 Enable ORB 5/15/30/60:  Turn each stage on or off individually
 Colors:  Assign colors to each ORB stage for easy identification
 
### SESSION SETTINGS Section
 
 Session Mode:  Choose trading session (Auto-Detect works for most instruments)
 Custom Session Hours:  Define your own hours if needed (format: HHMM-HHMM)
 
Auto-Detect uses the instrument's natural hours (stocks use exchange hours, crypto uses 24/7).
### BREAKOUT DETECTION Section
 
 Enable Breakout Detection:  Master switch for signals
 Show Retest Labels:  Display retest signals
 Label Size:  Visual size for all labels (Small recommended)
 Enable FVG Filter:  Require Fair Value Gap confirmation
 Show FVG Boxes:  Display the gap boxes on chart
 Signal Mode:  "First Only" = one signal per direction per day, "Track Cycles" = multiple signals
 Max Cycles:  How many breakout-retest cycles to track (6 is balanced)
 Breakout Buffer:  Extra distance required beyond ORB level (0.1-0.2% recommended)
 Min Distance for Retest:  How far price must move away before retest is valid (2% recommended)
 Min Bars Outside ORB:  Bars price must stay outside for committed breakout (2 is balanced)
 
### TARGETS & RISK Section
 
 Enable Targets & Stop-Loss:  Calculate and show trade management
 TP1/TP2/TP3 checkboxes:  Select which profit targets to display
 Stop Method:  How to calculate stop loss placement
  - ATR: Based on volatility (best for most cases)
  - ORB %: Fixed % of ORB range
  - Swing: Recent swing high/low
  - Safer: Widest of all methods
 ATR Length & Multiplier:  Controls ATR stop distance (14 period, 1.5x is standard)
 ORB Stop %:  Percentage beyond ORB for stop (20% is balanced)
 Swing Bars:  Lookback period for swing high/low (3 is recent)
 
### TP/SL LINES Section
 
 Show TP/SL Lines:  Display horizontal lines on chart
 Label Format:  "Short" = minimal text, "Detailed" = shows prices
 Freeze Lines at EOD:  Stop extending lines at session close
 
### DASHBOARD Section
 
 Show Info Panel:  Display the metrics dashboard
 Theme:  Dark or Light colors
 Position:  Where to place dashboard on chart
 Toggle rows:  Show/hide specific information rows
 Calculate Position Size:  Enable the position sizing calculator
 Risk Mode:  Risk fixed $ amount or % of account
 Account Size:  Your total trading capital
 Risk %:  Percentage to risk per trade (0.5-1% recommended)
 
### VOLUME FILTER Section
 
 Enable Volume Filter:  Require volume confirmation
 MA Length:  Average period (20 is standard)
 Min Volume:  Required multiplier (1.5x = 50% above average)
 Strong Volume:  Multiplier that bypasses other filters (2.5x)
 
### TREND FILTER Section
 
 Enable Trend Filter:  Require trend alignment
 Trend Mode:  Method to determine trend (VWAP is simple and effective)
 Custom EMA Length:  If using EMA mode (50 for swing, 20 for day trading)
 SuperTrend settings:  Period and Multiplier if using SuperTrend mode
 
### HIGHER TIMEFRAME Section
 
 Check Daily Trend:  Display higher timeframe bias in dashboard
 Timeframe:  What TF to check (D = daily, recommended)
 Method:  Price vs MA (stable) or Candle Direction (reactive)
 MA Period:  EMA length for Price vs MA method (20 is balanced)
 Min Strength %:  Minimum strength threshold for HTF bias to be considered
  - For "Price vs MA": Minimum distance (%) from moving average
  - For "Candle Direction": Minimum candle body size (%)
  - 0.5% is balanced - increase for stricter filtering
  - Lower values = more signals, higher values = only strong trends
 
### ALERTS Section
 
 Enable Alerts:  Master switch (must be ON to use any alerts)
 Breakout Alerts:  Notify on ORB breakouts
 Retest Alerts:  Notify when price retests after breakout
 Failed Break Alerts:  Notify on failed breakouts
 Stage Complete Alerts:  Notify when each ORB stage finishes forming
 
After enabling desired alert types, click "Create Alert" button, select this indicator, choose "Any alert() function call".
## Tips & Best Practices
### General Trading Tips
 
 ORB works best on liquid instruments (stocks with good volume, major crypto pairs)
 First hour of the session is most important - that's when ORB is forming
 Breakouts WITH the trend have higher success rates - use the trend filter
 Failed breakouts are common - use the "Min Bars Outside" setting to filter weak moves
 Not every day produces good ORB setups - be patient and selective
 
### Position Sizing Best Practices
 
 Never risk more than 1-2% of your account on a single trade
 Use the built-in calculator - don't guess your position size
 Update your account size monthly as it grows
 Smaller accounts: use $ Amount mode for simplicity
 Larger accounts: use % of Account mode for scaling
 
### Take Profit Strategy
 
 Most traders use: 50% at TP1, 50% at TP2
 Aggressive: Hold through TP1 for TP2 or TP3
 Conservative: Full exit at TP1 (1:1 risk/reward)
 After TP1 hits, consider moving stop to breakeven
 TP3 rarely hits - only on strong trending days
 
### Filter Combinations
 
 Maximum Quality:  Volume + Trend + FVG (fewest signals, highest quality)
 Balanced:  Volume + Trend (good quality, reasonable frequency)
 Active Trading:  No filters or Volume only (many signals, lower quality)
 Trending Markets:  Trend filter essential (indices, crypto)
 Range-Bound:  Volume + FVG (avoid trend filter)
 
### Common Mistakes to Avoid
 
 Chasing breakouts - wait for the bar to close, don't FOMO into wicks
 Ignoring the stop loss - always use it, move it manually if needed
 Over-leveraging - the calculator shows MAX shares, you can buy less
 Trading every signal - quality > quantity, use filters
 Not tracking results - keep a journal to see what works for YOU
 
## Pros and Cons
### Advantages
 
 Complete all-in-one solution - from signal to position sizing
 Multiple timeframes tracked simultaneously
 Visual clarity - easy to see what's happening
 Cycle tracking catches opportunities others miss
 Built-in risk management eliminates guesswork
 Customizable filters for different trading styles
 No repainting - what you see is locked in
 Works across multiple markets (stocks, forex, crypto)
 
### Limitations
 
 Intraday strategy only - doesn't work on daily charts
 Requires active monitoring during first 1-2 hours of session
 Not suitable for after-hours or extended sessions by default
 Can produce many signals in choppy markets (use filters)
 Dashboard can be overwhelming for complete beginners
 Performance depends on market conditions (trends vs ranges)
 Requires understanding of risk management concepts
 
### Best For
 
 Day traders who can watch the first 1-2 hours of market open
 Traders who want systematic entry/exit rules
 Those learning proper position sizing and risk management
 Active traders comfortable with multiple signals per day
 Anyone trading liquid instruments with clear sessions
 
### Not Ideal For
 
 Swing traders holding multi-day positions
 Set-and-forget / passive investors
 Traders who can't watch market open
 Complete beginners unfamiliar with trading concepts
 Low volume / illiquid instruments
 
## Frequently Asked Questions
 Q: Why are no signals appearing? 
A: Check that you're on an intraday timeframe (5min, 15min, etc.) and that the current time is within your session hours. Also verify that "Enable Breakout Detection" is ON and at least one ORB stage is enabled. If using filters, they might be blocking signals - try disabling them temporarily.
 Q: What's the best ORB stage to use? 
A: ORB15 (15 minutes) is most popular and balanced. ORB5 gives faster signals but more noise. ORB30 and ORB60 are slower but more reliable. Many traders use ORB15 + ORB30 together.
 Q: Should I enable all the filters? 
A: Start with no filters to see all signals. If too many false signals, add Volume filter first (stocks) or Trend filter (trending markets). FVG filter is most restrictive - use for maximum quality but fewer signals.
 Q: How do I know which stop loss method to use? 
A: ATR works for most cases - it adapts to volatility. Use ORB% if you want predictable stop placement. Swing is for respecting chart structure. Safer gives you the most room but largest risk.
 Q: Can I use this for swing trading? 
A: Not really - ORB is fundamentally an intraday strategy. The ranges reset each day. For swing trading, look at weekly support/resistance or moving averages instead.
 Q: Why do TP/SL lines disappear sometimes? 
A: Lines freeze (stop extending) when: stop loss is hit, the last enabled take-profit is hit, or end of session arrives (if "Freeze at EOD" is enabled). This is intentional - the trade is complete.
 Q: What's the difference between "First Only" and "Track Cycles"? 
A: "First Only" shows one breakout UP and one DOWN per day maximum - clean but might miss opportunities. "Track Cycles" shows breakout-retest-rebreak sequences - more signals but busier chart.
 Q: Is position sizing accurate for options/forex? 
A: The calculator is designed for shares (stocks). For options, ignore the share count and use the risk amount. For forex, you'll need to adapt the lot size calculation manually.
 Q: How much capital do I need to use this? 
A: The indicator works for any account size, but practical day trading typically requires $25,000 in the US due to Pattern Day Trader rules. Adjust the "Account Size" setting to match your capital.
 Q: Can I backtest this strategy? 
A: This is an indicator, not a strategy script, so it doesn't have built-in backtesting. You can visually review historical signals or code a strategy script using similar logic.
 Q: Why does the dashboard show different entry price than the breakout label? 
A: If you're looking at an old breakout, the ORB levels may have changed when the next stage completed. The dashboard always shows the CURRENT active range and trade setup.
 Q: What's a good win rate to expect? 
A: ORB strategies typically see 40-60% win rate depending on market conditions and filters used. The strategy relies on positive risk/reward ratios (2:1 or better) to be profitable even with moderate win rates.
 Q: Does this work on crypto? 
A: Yes, but crypto trades 24/7 so you need to define what "session start" means. Use Session Mode = Custom and set your preferred daily reset time (e.g., 0000-2359 UTC).
## Credits & Transparency
### Development
This indicator was developed with the assistance of AI technology to implement complex ORB trading logic.
The strategy concept, feature specifications, and trading logic were designed by the publisher. The implementation leverages modern development tools to ensure:
 
 Clean, efficient, and maintainable code
 Comprehensive error handling and input validation
 Detailed documentation and user guidance
 Performance optimization
 
### Trading Concepts
This indicator implements several public domain trading concepts:
 
 Opening Range Breakout (ORB):  Trading strategy popularized by Toby Crabel, Mark Fisher and many more talanted traders.
 Fair Value Gap (FVG):  Price imbalance concept from ICT methodology
 SuperTrend:  ATR-based trend indicator using public formula
 Risk/Reward Ratio:  Standard risk management principle
 
All mathematical formulas and technical concepts used are in the public domain.
### Pine Script
Uses standard TradingView built-in functions:
 ta.ema(), ta.atr(), ta.vwap(), ta.highest(), ta.lowest(), request.security() 
No external libraries or proprietary code from other authors.
## Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice.
Trading involves substantial risk of loss and is not suitable for every investor. Past performance shown in examples is not indicative of future results.
The indicator provides signals and calculations, but trading decisions are solely your responsibility. Always:
 
 Test strategies on paper before using real money
 Never risk more than you can afford to lose
 Understand that all trading involves risk
 Consider seeking advice from a licensed financial advisor
 
The publisher makes no guarantees regarding accuracy, profitability, or performance. Use at your own risk.
---
 Version:  3.0
 Pine Script Version:  v6
 Last Updated:  October 2024
For support, questions, or suggestions, please comment below or send a private message.
---
 Happy trading, and remember: consistent risk management beats perfect entry timing every time.
Volume Order Block Scanner [BOSWaves]Volume Order Block Scanner   - Dynamic Detection of High-Volume Supply and Demand Zones 
 Overview 
The Volume Order Block Scanner   introduces a refined approach to institutional zone mapping, combining volume-weighted order flow, structural displacement, and ATR-based proportionality to identify regions of aggressive participation from large entities.
Unlike static zone mapping or simplistic body-size filters, this framework dynamically evaluates each candle through a multi-layer model of relative volume, candle structure, and volatility context to isolate genuine order block formations while filtering out market noise.
  
Each identified zone represents a potential institutional footprint, defined by significant volume surges and efficient body-to-ATR relationships that indicate purposeful positioning. Once mapped, each order block is dynamically adjusted for volatility and tracked throughout its lifecycle - from creation to mitigation to potential invalidation - producing an evolving liquidity map that adapts with price.
This adaptive behavior allows traders to visualize where liquidity was absorbed and where it remains unfilled, revealing the structural foundation of institutional intent across timeframes.
 Theoretical Foundation 
At its core, the Volume Order Block Scanner is built on the interaction between volume displacement and structural imbalance. Traditional order block systems often rely on fixed candle formations or simple engulfing logic, neglecting the fundamental driver of institutional activity: volume concentration relative to volatility.
This framework redefines that approach. Each candle is filtered through two comparative ratios:
 
 Relative Volume Ratio (RVR)  - the candle’s volume compared to its rolling average, confirming genuine transactional surges.
 Body-ATR Ratio (BAR)  - a measure of displacement efficiency relative to recent volatility, ensuring structural strength.
 
Only when both conditions align is an order block validated, marking a displacement event significant enough to create a lasting imbalance.
By embedding this logic within a volatility-adjusted environment, the system maintains scalability across asset classes and volatility regimes - equally effective in crypto, forex, or index markets.
 How It Works 
The Volume Order Block Scanner operates through a structured multi-stage process:
 
 Displacement Detection  - Identifies candles whose body and volume exceed dynamic thresholds derived from ATR and rolling volume averages. These represent the origin points of institutional aggression.
 Zone Construction  - Each qualified candle generates an order block with ATR-proportional dimensions to ensure consistency across instruments and timeframes. The zone includes two regions:  Body Zone  (the precise initiation point of displacement) and  Wick Imbalance  (the residual inefficiency representing unfilled liquidity).
 Lifecycle Tracking  - Each zone is continuously monitored for market interaction. Reactions within a defined window are classified as respected, mitigated, or invalidated, giving traders a data-driven sense of ongoing institutional relevance.
 Volume Confirmation Layer  - Reinforces signal integrity by ensuring that all detected blocks correspond with meaningful increases in transactional activity.
 Temporal Decay Control  - Zones that remain untested beyond a set period gradually lose visual and analytical weight, maintaining chart clarity and contextual precision.
 
 Interpretation 
The Volume Order Block Scanner visualizes how institutional participants interact with the market through zones of accumulation and distribution.
Bullish order blocks denote demand imbalances where price displaced upward under high volume; bearish order blocks signify supply regions formed by concentrated selling pressure.
Price revisiting these areas often reflects institutional re-entry or liquidity rebalancing, offering actionable insights for both continuation and reversal scenarios.
By continuously monitoring interaction and expiry, the framework enables traders to distinguish between active institutional footprints and historical liquidity artifacts.
 Strategy Integration 
The Volume Order Block Scanner integrates naturally into advanced structural and order-flow methodologies:
 
 Liquidity Mapping : Identify high-volume regions that are likely to influence future price reactions.
 Break-of-Structure Confirmation : Validate BOS and CHOCH signals through aligned order block behavior.
 Volume Confluence : Combine with BOSWaves volume or momentum indicators to confirm real institutional intent.
 Smart-Money Frameworks : Utilize order block retests as precision entry zones within SMC-based setups.
 Trend Continuation : Filter zones in line with higher-timeframe bias to maintain directional integrity.
 
 Technical Implementation Details 
 
 Core Engine : Dual-filter mechanism using Relative Volume Ratio (RVR) and Body-ATR Ratio (BAR).
 Volatility Framework : ATR-based scaling for cross-asset proportionality.
 Zone Composition : Body and wick regions plotted independently for visual clarity of imbalance.
 Lifecycle Logic : Real-time monitoring of reaction, mitigation, and invalidation states.
 Directional Coloring : Distinct bullish and bearish shading with adjustable transparency.
 Computation Efficiency : Lightweight structure suitable for multi-timeframe or multi-asset environments.
 
 Optimal Application Parameters 
Timeframe Guidance:
 
 5m - 15m : Reactive intraday zones for short-term liquidity engagement.
 1H - 4H : Medium-term structures for swing or intraday trend mapping.
 Daily - Weekly : Macro accumulation and distribution footprints.
 
Suggested Configuration:
 
 Relative Volume Threshold : 1.5× - 2.0× average volume.
 Body-ATR Threshold : 0.8× - 1.2× for valid displacement.
 Zone Expiry : 5 - 10 bars for intraday use, 15 - 30 for swing/macro contexts.
 
Parameter optimization should be asset-specific, tuned to volatility conditions and liquidity depth.
 Performance Characteristics 
High Effectiveness:
 
 Markets exhibiting clear displacement and directional flow.
 Environments with consistent volume expansion and liquidity inefficiencies.
 
Reduced Effectiveness:
 
 Range-bound markets with frequent false impulses.
 Low-volume sessions lacking institutional participation.
 
 Integration Guidelines 
 
 Confluence Framework : Pair with structure-based BOS or liquidity tools for validation.
 Risk Management : Treat active order blocks as contextual areas of interest, not guaranteed reversal points.
 Multi-Timeframe Logic : Derive bias from higher-timeframe blocks and execute from refined lower-timeframe structures.
 Volume Verification : Confirm each reaction with concurrent volume acceleration to avoid false liquidity cues.
 
 Disclaimer 
The Volume Order Block Scanner   is a quantitative mapping framework designed for professional traders and analysts. It is not a predictive or guaranteed system of profit.
Performance depends on correct configuration, market conditions, and disciplined risk management. BOSWaves recommends using this indicator as part of a comprehensive analytical process - integrating structural, volume, and liquidity context for accurate interpretation.
SB  LONG ENTRY/EXITBASED on HULL slope average.   ISN'T IT VERY ROBUST?
Very good for daily, weekly and monthly timeframes. Stocks especially.....
I prefer it without optonal stop loss on other position protection stops.
Wonderful both equal weight position or with a D'alembert style weighting of positions....
Hold the Hull period parameter between 30 and 60 or more, but it's not so sensitive to this optimization.
All the best,
Sandro Bisotti
Entry / exit zones  (only long positions)Great and simple helping tool to find good entry/exit point for mid/long term trading on stocks especially but also indexes and other..... Good on daily timeframe, but better with weekly and monthly.  Based on Hull average slope.  Hold the average period value  among 30 and 50 or more.  I prefer the version WITHOUT stop loss and other exit rules (optional).
All the best and good trading!
SB
EMA HeatmapEMA Heatmap — Indicator Description
The EMA Order Heatmap is a visual trend-structure tool designed to show whether the market is currently trending bullish, trending bearish, or moving through a neutral consolidation phase. It evaluates the alignment of multiple exponential moving averages (EMAs) at three different structural layers: short-term daily, medium-term daily, and weekly macro trend. This creates a quick and intuitive picture of how well price movement is organized across timeframes.
Each layer of the heatmap is scored from bearish to bullish based on how the EMAs are stacked relative to each other. When EMAs are in a fully bullish configuration, the row displays a bright green or lime color. Fully bearish alignment is shown in red. Yellow tones appear when the EMAs are mixed or compressing, indicating uncertainty, trend exhaustion, or a change in market character. The three rows combined offer a concise view of whether strength or weakness is isolated to one timeframe or broad across the market.
This indicator is best used as a trend filter before making trading decisions. Traders may find more consistent setups when the majority of the heatmap supports the direction of their trade. Green-dominant conditions suggest a trending bullish environment where long trades can be favored. Red-dominant conditions indicate bearish momentum and stronger potential for short opportunities. When yellow becomes more prominent, the market may be transitioning, ranging, or gearing up for a breakout, making timing more challenging and risk higher.
• Helps quickly identify directional bias
• Highlights when trends strengthen, weaken, or turn
• Provides insight into whether momentum is supported by higher timeframes
• Encourages traders to avoid fighting market structure
It is important to recognize the limitations. EMAs are lagging indicators, so the heatmap may confirm a trend after the initial move is underway, especially during fast reversals. In sideways or low-volume environments, the structure can shift frequently, reducing clarity. This tool does not generate entry or exit signals on its own and should be paired with price action, momentum studies, or support and resistance analysis for precise trade execution.
The EMA Order Heatmap offers a clean and reliable way to stay aligned with the broader market environment and avoid lower-quality trades in indecisive conditions. It supports more disciplined decision-making by helping traders focus on setups that match the prevailing structural trend.
Bitcoin Fair Price Calculator [bitcoinfairprice.com]1. Purpose of the scriptLong-term Bitcoin valuation based on historical time (days since Genesis block) 
Fair Price = theoretically “fair” price according to power law.
Bottom Price = lower support (historically ~58% below Fair Price).
Daily display as on the website – without external access.
Buy/sell signals in case of strong overvaluation/undervaluation.
 2. Mathematical model (original formula)pinescript 
Bottom Price = Fair Price × 0.42
→ Corresponds historically to ~58% below Fair Price.
Days since Genesis block are calculated automatically per bar.
 3. What is displayed in the chart? 
Fair Price Average power law line (“fair price”) Blue
Bottom Price Lower support (“floor”) Green
Power Law Corridor Filled area between 0.1× and 2.5× Fair Price Light blue (transparent)
Table (top right) Daily values as on the website Black with white text
Label (for >20% deviation) Shows current prices + percentage Red (overvalued) / Green (undervalued)
 4. Recommended use Timeframe 
Recommendation Weekly / Monthly Best long-term signals
Daily Good balance
Log scale Be sure to activate! (Right-click on Y-axis → “Logarithmic scale”)
 9. Strategy tips (based on the model) 
Price near bottom --> Buy / accumulate
Price > 2.5× fair price --> Sell part of position / caution
Price between fair & bottom --> Strong buy zone
Deviation < -20% --> HODL signal
Translated with DeepL.com (free version)
Trend Candles Full ColorThe coloring over the candle sticks isn't showing up on the picture for some reason but when you click on the indicator the color coding will appear on the chart.   
Trend Candles Full Color Indicator Explanation The "Trend Candles Full Color" indicator, designed for TradingView, visually enhances candlestick charts by coloring candles based on their position relative to a simple moving average (SMA). Here's how it works and how it can benefit traders: How It Works Input : Adjust the SMA period (default is 20) to define the trend length.
Logic : The indicator compares the closing price of each candle to the SMA: Green Candle : Close is above the SMA (indicating an uptrend).
Red Candle : Close is below the SMA (indicating a downtrend).
Gray Candle : Close equals the SMA (neutral/no clear trend).
Output : Candles (body, wick, and border) are colored green, red, or gray based on the trend, overlaid directly on your price chart.
Benefits and Use Cases Trend-Following Strategies Benefit: Clearly identifies bullish (green) or bearish (red) trends, helping traders ride momentum.
Example: A swing trader using a 20-period SMA can enter long positions when candles turn green (price above SMA) and exit or short when candles turn red, confirming trend reversals.
Reversal Trading Benefit: Gray candles signal indecision near the SMA, often a precursor to reversals.
Example: A day trader might watch for gray candles after a prolonged uptrend (green candles) to anticipate a potential bearish reversal, combining with other indicators like RSI for confirmation.
Scalping Benefit: Quick visual cues for short-term trend changes on lower timeframes.
Example: A scalper on a 5-minute chart can use green candles to confirm quick bullish moves and red candles to avoid counter-trend trades, enhancing decision speed.
Position Sizing or Risk Management Benefit: Color changes highlight trend strength, aiding in adjusting trade size or stops.
Example: A trader might increase position size during strong green candle sequences (sustained uptrend) and tighten stops when gray candles appear, signaling potential trend weakness.
Tips for Use Adjust the MA Length to suit your trading style (e.g., shorter for scalping, longer for swing trading).
Combine with other indicators (e.g., support/resistance, MACD) for better accuracy.
Test on different timeframes to match your strategy.
Recommended MA Length for 1-Minute Charts Short-Term/Scalping (1-5 minute trades):10-period SMA : Very sensitive, ideal for capturing quick price movements in fast markets. May produce more noise (false signals).
20-period SMA : A balanced choice for 1-minute charts, smoothing minor fluctuations while reacting to short-term trends. A great starting point for scalpers.
Intraday Trend Trading (10-30 minute holds):50-period SMA : Captures broader intraday trends, reducing noise but lagging slightly. Suitable for larger moves within a session.
This indicator simplifies trend identification, making it a versatile tool for traders of all styles, from beginners to advanced users! 
Recommended MA Length for Swing Trading / Higher Timeframes Swing Trading (holding trades for days to weeks):50-period SMA : A popular choice for swing traders on higher timeframes (e.g., 1-hour or 4-hour charts). It smooths out short-term fluctuations while identifying medium-term trends. Ideal for capturing multi-day swings.
100-period SMA : Slightly longer, this MA is great for confirming stronger, more sustained trends. It’s useful on 4-hour or daily charts for swing traders aiming to ride larger price moves.
Longer-Term Trend Trading (holding for weeks to months):200-period SMA : A classic choice for higher timeframes like daily or weekly charts. It highlights major market trends and is widely used by swing and position traders to filter out noise and focus on long-term direction.
150-period SMA : A middle ground between the 100 and 200 SMA, suitable for daily charts when you want a balance between responsiveness and trend reliability.
30-Week SMA (Fixed)This indicator plots a true 30-week Simple Moving Average (SMA) on any chart, regardless of the selected timeframe.
It uses weekly candle data (via the request.security() function) to calculate the 30-week average and keeps it fixed — meaning the line remains accurate even when you switch to daily, 4-hour, or other timeframes.
The 30-week SMA is a cornerstone of Stan Weinstein’s Stage Analysis strategy, commonly used to identify major trend phases:
Above a rising SMA → bullish (Stage 2 uptrend)
Below a falling SMA → bearish (Stage 4 downtrend)
Use this indicator to maintain a consistent long-term trend filter on all timeframes
Indian Gold Festival Dates HistoricalIndian Gold Festival Dates (1975-2025)
Marks 8 major Indian festivals associated with gold buying over 50 years of historical data. Essential for analyzing seasonal patterns and cultural demand cycles in gold markets.
Festivals Included:
Dhanteras (Gold) - Most auspicious gold buying day
Diwali (Orange) - Festival of Lights
Akshaya Tritiya (Green) - "Never-ending" prosperity
Dussehra (Red) - Victory and success
Makar Sankranti (Cyan) - Solar new year
Gudi Padwa (Magenta) - Hindu New Year (Maharashtra)
Ugadi (Purple) - Hindu New Year (South India)
Navratri (Yellow) - 9-day festival
Features:
✓ 408 exact historical dates (1975-2025)
✓ Color-coded vertical lines for easy identification
✓ Toggle individual festivals on/off
✓ Adjustable line width and labels
✓ Works on all timeframes (best on daily/weekly)
Perfect for traders analyzing gold seasonality, Indian market sentiment, and cultural demand patterns. Use on XAUUSD, GC1!, or Indian gold futures.
Traffic Light MA — Trend IndicatorThis script displays a simple “traffic light” circle that reflects the market trend based on two moving averages (MA).
-Green: Price > Fast MA > Slow MA → Uptrend confirmation
-Yellow: Mixed conditions (transition zone)
-Red: Slow MA > Fast MA > Price → Downtrend confirmation
You can customize:
-MA type (SMA or EMA)
-Lengths of both MAs
-Timeframe used for evaluation (e.g. Daily, 4H, Weekly)
This tool is designed for traders who prefer a minimalistic chart, showing only a clean color signal instead of multiple lines.
Recommendation:
For small MAs (8,15,21) use EMA, for big MAs (50,100,200) use SMA






















