Enhanced MA Crossover Pro📝 Strategy Summary: Enhanced MA Crossover Pro
This strategy is an advanced, highly configurable moving average (MA) crossover system designed for algorithmic trading. It uses the crossover of two customizable MAs (a "Fast" MA 1 and a "Slow" MA 2) as its core entry signal, but aggressively integrates multiple technical filters, time controls, and dynamic position management to create a robust and comprehensive trading system.
💡 Core Logic
Entry Signal: A bullish crossover (MA1 > MA2) generates a Long signal, and a bearish crossover (MA1 < MA2) generates a Short signal. Users can opt to use MA crossovers from a Higher Timeframe (HTF) for the entry signal.
Confirmation/Filters: The basic MA cross signal is filtered by several optional indicators (see Filters section below) to ensure trades align with a broader trend or momentum context.
Position Management: Trades are managed with a sophisticated system of Stop Loss, Take Profit, Trailing Stops, and Breakeven stops that can be fixed, ATR-based, or dynamically adjusted.
Risk Management: Daily limits are enforced for maximum profit/loss and maximum trades per day.
⚙️ Key Features and Customization
1. Moving Averages
Primary MAs (MA1 & MA2): Highly configurable lengths (default 8 & 20) and types: EMA, WMA, SMA, or SMMA/RMA.
Higher Timeframe (HTF) MAs: Optional MAs calculated on a user-defined resolution (e.g., "60" for 1-hour) for use as an entry signal or as a trend confirmation filter.
2. Multi-Filter System
The entry signal can be filtered by the following optional conditions:
SMA Filter: Price must be above a 200-period SMA for long trades, and below it for short trades.
VWAP Filter: Price must be above VWAP for long trades, and below it for short trades.
RSI Filter: Long trades are blocked if RSI is overbought (default 70); short trades are blocked if RSI is oversold (default 30).
MACD Filter: Requires the MACD Line to be above the Signal Line for long trades (and vice versa for short trades).
HTF Confirmation: Requires the HTF MA1 to be above HTF MA2 for long entries (and vice versa).
3. Dynamic Stop and Target Management (S/L & T/P)
The strategy provides extensive control over exits:
Stop Loss Methods:
Fixed: Fixed tick amount.
ATR: Based on a multiple of the Average True Range (ATR).
Capped ATR: ATR stop limited by a maximum fixed tick amount.
Exit on Close Cross MA: Position is closed if the price crosses back over the chosen MA (MA1 or MA2).
Breakeven Stop: A stop can be moved to the entry price once a trigger distance (fixed ticks or Adaptive Breakeven based on ATR%) is reached.
Trailing Stop: Can be fixed or ATR-based, with an optional feature to auto-tighten the trailing multiplier after the breakeven condition is met.
Profit Target: Can be a fixed tick amount or a dynamic target based on an ATR multiplier.
4. Time and Session Control
Trading Session: Trades are only taken between defined Start/End Hours and Minutes (e.g., 9:30 to 16:00).
Forced Close: All open positions are closed near the end of the session (e.g., 15:45).
Trading Days: Allows specific days of the week to be enabled or disabled for trading.
5. Risk and Position Limits
Daily Profit/Loss Limits: The strategy tracks daily realized and unrealized PnL in ticks and will close all positions and block new entries if the user-defined maximum profit or maximum loss is hit.
Max Trades Per Day: Limits the number of executed trades in a single day.
🎨 Outputs and Alerts
Plots: Plots the MA1, MA2, SMA, VWAP, and HTF MAs (if enabled) on the chart.
Shapes: Plots visual markers (BUY/SELL labels) on the bar where the MA crossover occurs.
Trailing Stop: Plots the dynamic trailing stop level when a position is open.
Alerts: Generates JSON-formatted alerts for entry ({"action":"buy", "price":...}) and exit ({"action":"exit", "position":"long", "price":...}).
Индикаторы и стратегии
Gold $25 line + CDCGold Trading CDC + option line
trading with ema to see trendline + Option strike price
Volatility Resonance CandlesVolatility Resonance Candles visualize the dynamic interaction between price acceleration, volatility, and volume energy.
They’re designed to reveal moments when volatility expansion and directional momentum resonate — often preceding strong directional moves or reversals.
🔬 Concept
Traditional candles display direction and range, but they miss the energetic structure of volatility itself.
This indicator introduces a resonance model, where ATR ratio, price acceleration, and volume intensity combine to form a composite signal.
* ATR Resonance: compares short-term vs. long-term volatility
* Acceleration: captures the rate of price change
* Volume Energy: reinforces the move’s significance
When these components align, the candle color “resonates” — brighter, more intense candles signal stronger volatility–momentum coupling.
⚙️ Features
* Adaptive Scaling
Normalizes energy intensity dynamically across a user-defined lookback period, ensuring consistency in changing market conditions.
* Power-Law Transformation
Optional non-linear scaling (gamma) emphasizes higher-energy events while keeping low-intensity noise visually subdued.
* Divergence Mode
When enabled, colors can invert to highlight energy divergence from candle direction (e.g., bearish pressure during bullish closes).
* Customizable Styling
Full control over bullish/bearish base colors, transparency scaling, and threshold sensitivity.
🧠 Interpretation
* Bright / High-Intensity Candles → Strong alignment of volatility and directional energy.
Often signals the resonant phase of a move — acceleration backed by volatility expansion and volume participation.
* Dim / Low-Intensity Candles → Energy dispersion or consolidation.
These typically mark quiet zones, pauses, or inefficient volatility.
* Opposite-Colored Candles (if divergence mode on) → Potential inflection zones or hidden stress in the trend structure.
⚠️ Disclaimer
This script is for educational purposes only.
It does not constitute financial advice, and past performance is not indicative of future results. Always do your own research and test strategies before making trading decisions.
Gold THB per Baht (XAU -> Thai baht gold)What it does
This indicator converts international gold prices (XAU) into Thai retail “baht gold” price (THB per 1 baht gold weight) in real time. It multiplies the XAU price (per troy ounce) by USD/THB and converts ounces to Thai baht-weight using the exact gram ratios.
Formula
THB per baht gold = XAU (USD/oz) × USDTHB × (15.244 / 31.1035) × (1 + Adjustment%) + FlatFeeTHB
1 troy ounce = 31.1035 g
1 Thai baht gold = 15.244 g
Conversion factor ≈ 0.490103
HTF Candle Countdown Timer//@version=5
indicator("HTF Candle Countdown Timer", overlay=true)
// ============================================================================
// INPUTS - SETTINGS MENU
// ============================================================================
// --- Mode Selection ---
mode = input.string(title="Mode", defval="Auto", options= ,
tooltip="Auto: Αυτόματη αντιστοίχιση timeframes Custom: Επιλέξτε το δικό σας timeframe")
// --- Custom Timeframe Selection ---
customTF = input.timeframe(title="Custom Timeframe", defval="15",
tooltip="Ενεργό μόνο σε Custom Mode")
// --- Table Position ---
tablePos = input.string(title="Table Position", defval="Bottom Right",
options= )
// --- Colors ---
textColor = input.color(title="Text Color", defval=color.white)
bgColor = input.color(title="Background Color", defval=color.black)
transparentBg = input.bool(title="Transparent Background", defval=false,
tooltip="Ενεργοποίηση διάφανου φόντου")
// --- Text Size ---
textSize = input.string(title="Text Size", defval="Normal",
options= )
// ============================================================================
// FUNCTIONS
// ============================================================================
// Μετατροπή string position σε table position constant
getTablePosition(pos) =>
switch pos
"Top Left" => position.top_left
"Top Right" => position.top_right
"Bottom Left" => position.bottom_left
"Bottom Right" => position.bottom_right
=> position.bottom_right
// Μετατροπή string size σε size constant
getTextSize(size) =>
switch size
"Auto" => size.auto
"Tiny" => size.tiny
"Small" => size.small
"Normal" => size.normal
"Large" => size.large
"Huge" => size.huge
=> size.normal
// Αυτόματη αντιστοίχιση timeframes
getAutoTimeframe() =>
currentTF = timeframe.period
string targetTF = ""
if currentTF == "1"
targetTF := "15"
else if currentTF == "3"
targetTF := "30"
else if currentTF == "5"
targetTF := "60"
else if currentTF == "15"
targetTF := "240"
else if currentTF == "60"
targetTF := "D"
else if currentTF == "240"
targetTF := "W"
else
// Default fallback για μη-mapped timeframes
targetTF := "60"
targetTF
// Μετατροπή timeframe string σε λεπτά για σύγκριση
timeframeToMinutes(tf) =>
float minutes = 0.0
if str.contains(tf, "D")
multiplier = str.tonumber(str.replace(tf, "D", ""))
minutes := na(multiplier) ? 1440.0 : multiplier * 1440.0
else if str.contains(tf, "W")
multiplier = str.tonumber(str.replace(tf, "W", ""))
minutes := na(multiplier) ? 10080.0 : multiplier * 10080.0
else if str.contains(tf, "M")
multiplier = str.tonumber(str.replace(tf, "M", ""))
minutes := na(multiplier) ? 43200.0 : multiplier * 43200.0
else
minutes := str.tonumber(tf)
minutes
// Format countdown σε ώρες:λεπτά:δευτερόλεπτα ή λεπτά:δευτερόλεπτα
formatCountdown(milliseconds) =>
totalSeconds = math.floor(milliseconds / 1000)
hours = math.floor(totalSeconds / 3600)
minutes = math.floor((totalSeconds % 3600) / 60)
seconds = totalSeconds % 60
string result = ""
if hours > 0
result := str.format("{0,number,00}:{1,number,00}:{2,number,00}", hours, minutes, seconds)
else
result := str.format("{0,number,00}:{1,number,00}", minutes, seconds)
result
// Μετατροπή timeframe σε readable format
formatTimeframe(tf) =>
string formatted = ""
if str.contains(tf, "D")
formatted := tf + "aily"
else if str.contains(tf, "W")
formatted := tf + "eekly"
else if str.contains(tf, "M")
formatted := tf + "onthly"
else if tf == "60"
formatted := "1H"
else if tf == "240"
formatted := "4H"
else
formatted := tf + "min"
formatted
// ============================================================================
// MAIN LOGIC
// ============================================================================
// Επιλογή target timeframe βάσει mode
targetTimeframe = mode == "Auto" ? getAutoTimeframe() : customTF
// Validation: Έλεγχος αν το target timeframe είναι μεγαλύτερο από το τρέχον
currentTFMinutes = timeframeToMinutes(timeframe.period)
targetTFMinutes = timeframeToMinutes(targetTimeframe)
var string warningMessage = ""
if targetTFMinutes <= currentTFMinutes
warningMessage := "⚠ HTF < Current TF"
else
warningMessage := ""
// Υπολογισμός του χρόνου κλεισίματος του HTF candle
htfTime = request.security(syminfo.tickerid, targetTimeframe, time)
htfTimeClose = request.security(syminfo.tickerid, targetTimeframe, time_close)
// Υπολογισμός υπολειπόμενου χρόνου σε milliseconds
remainingTime = htfTimeClose - timenow
// Format countdown
countdown = warningMessage != "" ? warningMessage : formatCountdown(remainingTime)
// Format timeframe για εμφάνιση
displayTF = formatTimeframe(targetTimeframe)
// ============================================================================
// TABLE DISPLAY
// ============================================================================
// Δημιουργία table
var table countdownTable = table.new(
position=getTablePosition(tablePos),
columns=2,
rows=2,
bgcolor=transparentBg ? color.new(bgColor, 100) : bgColor,
frame_width=1,
frame_color=color.gray,
border_width=1)
// Update table content
if barstate.islast
// Header
table.cell(countdownTable, 0, 0, "Timeframe:",
text_color=textColor,
bgcolor=transparentBg ? color.new(bgColor, 100) : bgColor,
text_size=getTextSize(textSize))
table.cell(countdownTable, 1, 0, displayTF,
text_color=textColor,
bgcolor=transparentBg ? color.new(bgColor, 100) : bgColor,
text_size=getTextSize(textSize))
// Countdown
table.cell(countdownTable, 0, 1, "Countdown:",
text_color=textColor,
bgcolor=transparentBg ? color.new(bgColor, 100) : bgColor,
text_size=getTextSize(textSize))
table.cell(countdownTable, 1, 1, countdown,
text_color=warningMessage != "" ? color.orange : textColor,
bgcolor=transparentBg ? color.new(bgColor, 100) : bgColor,
text_size=getTextSize(textSize))
// ============================================================================
// END OF SCRIPT
// ============================================================================
Periodic Volume ProfileThis indicator visualizes volume profiles that are dynamically anchored to market structure events, rather than fixed time intervals. It builds these profiles using high-resolution intra-bar data to provide a precise view of where value is established during critical market phases.
Key Features:
Event-Based Profile Anchoring: The indicator starts a new profile based on one of three user-selected events ('Profile Anchor'):
Swing: A new profile begins when the 'impulse baseline' (derived from delta) changes. This baseline adjusts when a new price pivot is confirmed: When a price high forms, the baseline moves to the lower of its previous level or the peak delta (max of delta O/C) at the pivot. When a price low forms, it moves to the higher of its previous level or the trough delta (min of delta O/C).
Structure: A new profile begins immediately on the bar that confirms a market structure break (e.g., a new HH or LL, based on a sequence of price pivots).
Delta: A new profile begins immediately on the bar that confirms a break in the cumulative delta's market structure (e.g., a new HH or LL in the delta).
Statistical Profile Engine: For each bar in the anchored period, the indicator builds a volume profile on a lower 'Intra-Bar Timeframe'. It uses:
Statistical Models ('Allot model'): Distributes volume across price levels using 'PDF' (Probability Density Function) or 'Classic' (close) methods.
Buy/Sell Classifiers ('Volume Estimator'): Splits volume using a 'Dynamic' (trend/wick-based) or 'Classic' (candle color) model.
Note on Anchor Lag: The different anchor types have different delays. 'Structure' and 'Delta' profiles begin in real-time on the confirmation bar. The 'Swing' profile calculation is plotted retroactively to the pivot's origin, as the pivot is only confirmed Pivot Right Bars after it occurs.
Flexible Visualization Modes: The finalized profile (plotted at the end of each period) can be displayed in three ways: 'Up/Down' (buy vs. sell), 'Total' (combined volume), and 'Delta' (net difference).
Developing Real-Time Metrics: The indicator plots the developing Point of Control (POC), Value Area (VA), VWAP, and Standard Deviation bands in real-time as the new profile forms.
Dynamic Row Sizing: Includes an option ('Rows per Percent') to automatically adjust the number of profile rows (buckets) based on the profile's price range, maintaining a consistent visual density.
Integrated Alerts: Includes 13 alerts that trigger for:
A new profile reset ('Profile was resetted').
Price crossing any of the 6 developing levels (POC, VA High/Low, VWAP, StdDev High/Low).
Caution: Real-Time Data Behavior (Intra-Bar Repainting) This indicator uses high-resolution intra-bar data. As a result, the values on the current, unclosed bar (the real-time bar) will update dynamically as new intra-bar data arrives. This behavior is normal and necessary for this type of analysis. Signals should only be considered final after the main chart bar has closed.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
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.
VMMA Ribbon + Q1/Q3 Echo Rayssimulates a series of vwma lines in a wave. Basically puts them in an array and calculates highest lowest values among other things ... The VMMA Ribbon + Q1/Q3 Echo Rays is a Pine Script v5 indicator that combines a dynamic Volume-Weighted Moving Average (VWMA) ribbon with interactive support/resistance "echo rays" based on the ribbon’s inner quartiles (Q1 and Q3). The ribbon is built from multiple VWMAs of increasing lengths, forming a band with an upper edge, lower edge, midline, and Q1/Q3 lines (representing the 25th and 75th percentiles of the band).
Edges are colored by slope (bullish = green, bearish = red) or use a default color.
Echo rays extend horizontally from recent swing lows in Q1 and swing highs in Q3, acting as dynamic support/resistance levels that "echo" past extremes until broken or surpassed.
Key Use CasesUse Case
Description
1. Trend Strength & Direction
Ribbon expansion = volatility; compression = consolidation. Slope-colored edges show momentum shifts early.
2. Dynamic Support & Resistance
Q1/Q3 echo rays mark high-probability reversal zones. Price respecting rays = continuation; break = reversal.
3. Mean Reversion Entries
Buy near Q1 ray in uptrend (oversold within band); sell near Q3 ray in downtrend.
4. Breakout Confirmation
Price breaking upper/lower edge + Q3/Q1 ray termination confirms strong breakout.
5. Volume-Weighted Context
Uses VWMA → more reactive to volume spikes than SMA → better for stocks/crypto with sudden volume surges.
Sector Relative StrengthThis indicator measures a stock's Real Relative Strength against its sector benchmark, helping you identify stocks that are outperforming or underperforming their sector peers.
The concept is based on the Real Relative Strength methodology popularized by the r/realdaytrading community.
Unlike traditional relative strength calculations that simply compare price ratios, this indicator uses a more sophisticated approach that accounts for volatility through ATR (Average True Range), providing a normalized view of true relative performance.
Key Features
Automatic Sector Detection
Automatically detects your stock's sector using TradingView's built-in sector classification
Maps to the appropriate SPDR Sector ETF (XLK, XLF, XLV, XLY, XLP, XLI, XLE, XLU, XLB, XLC)
Supports all 20 TradingView sectors
Sector ETF Mappings
The indicator automatically compares your stock against:
Technology: XLK (Technology Services, Electronic Technology)
Financials: XLF (Finance sector)
Healthcare: XLV (Health Technology, Health Services)
Consumer Discretionary: XLY (Retail Trade, Consumer Services, Consumer Durables)
Consumer Staples: XLP (Consumer Non-Durables)
Industrials: XLI (Producer Manufacturing, Industrial Services, Transportation, Commercial Services)
Energy: XLE (Energy Minerals)
Utilities: XLU
Materials: XLB (Non-Energy Minerals, Process Industries)
Communications: XLC
Default: SPY (for Miscellaneous or unclassified sectors)
Customizable Settings
Comparison Mode: Choose between automatic sector comparison or custom symbol
Length: Adjustable lookback period (default: 12)
Smoothing: Apply moving average to reduce noise (default: 3)
Visual Clarity
Green line: Stock is outperforming its sector
Red line: Stock is underperforming its sector
Zero baseline: Clear reference point for performance
Clean info box: Shows which ETF you're comparing against
How It Works
The indicator calculates relative strength using the following methodology:
Rolling Price Change: Measures the price movement over the specified length for both the stock and its sector ETF
ATR Normalization: Uses Average True Range to normalize for volatility differences
Power Index: Calculates the sector's strength relative to its volatility
Real Relative Strength: Compares the stock's performance against the sector's power index
Smoothing: Applies a moving average to reduce single-candle spikes
Formula:
Power Index = (Sector Price Change) / (Sector ATR)
RRS = (Stock Price Change - Power Index × Stock ATR) / Stock ATR
Smoothed RRS = SMA(RRS, Smoothing Length)
RSI + Elder Bull-Bear pressure RSI + Bull/Bear (Elder-Ray enhanced RSI)
What it is
An extended RSI that overlays Elder-Ray Bull/Bear Power on the same, zero-centered scale. You get classic RSI regime cues plus a live read of buy/sell pressure, with optional smoothing, bands, and right-edge value labels.
Key features
RSI with bands – default bands 30 / 50 / 70 (editable).
Bull/Bear Power (Elder) – ATR-normalized; optional EMA/SMA/RMA/HMA smoothing.
One-pane overlay – RSI and Bull/Bear share a common midline (RSI-50 ↔ panel 0).
Right-edge labels – always visible at the chart’s right margin with adjustable offsets.
How to read it
Cyan line = RSI (normalized)
Above the mid band = bullish regime; below = bearish regime.
Green = Bull Power, Red = Bear Power
Columns/lines above 0 show buy pressure; below 0 show sell pressure.
Smoothing reduces noise; zero-line remains your key reference.
Trade logic (simple playbook)
Entry
BUY (primary):
RSI crosses up through 50 (regime turns bullish), and
Bull (green) crosses up through 0 (buy pressure confirms).
SELL (primary):
RSI crosses down through 50, and
Bear (red) crosses down through 0 (sell pressure confirms).
Alternative momentum entries
Aggressive BUY: Bull (green) pushes above RSI-80 band (strong upside impulse).
Aggressive SELL: Bear (red) pushes below RSI-30 band (strong downside impulse).
Exits / trade management
In a long: consider exiting or tightening stops if Bear (red) dips below the 0 line (rising sell pressure) or RSI loses 50.
In a short: consider exiting or tightening if Bull (green) rises above 0 or RSI reclaims 50.
Tip: “0” on the panel is your pressure zero-line (maps to RSI-50). Most whipsaws happen near this line; smoothing (e.g., EMA 21) helps.
Defaults (on first load)
RSI bands: 30 / 50 / 70 with subtle fills.
Labels: tiny, pushed far right (large offsets).
Bull/Bear smoothing: EMA(21), smoothed line plot mode.
RSI plotted normalized so it overlaps the pressure lines cleanly.
Tighten or loosen the Bull/Bear thresholds (e.g., Bull ≥ +0.5 ATR, Bear ≤ −0.5 ATR) to demand stronger confirmation.
Settings that matter
Smoothing length/type – balances responsiveness vs. noise.
Power/RSI Gain – visual scaling only (doesn’t change logic).
Band placement – keep raw 30/50/80 or switch to “distance from 50” if you prefer symmetric spacing.
Label offsets – move values clear of the last bar/scale clutter.
Good practices
Combine with structure/ATR stops (e.g., 1–1.5× ATR, swing high/low).
In trends, hold while RSI stays above/below 50 and the opposite pressure line doesn’t dominate.
In ranges, favor signals occurring near the mid band and take profits at the opposite band.
Disclaimer: This is a research/visual tool, not financial advice at any kind. Test your rules on multiple markets/timeframes and size positions responsibly.
Volume Weighted Volatility RegimeThe Volume-Weighted Volatility Regime (VWVR) is a market analysis tool that dissects total volatility to classify the current market 'character' or 'regime'. Using a Linear Regression model, it decomposes volatility into Trend, Residual (mean-reversion), and Within-Bar (noise) components.
Key Features:
Seven-Stage Regime Classification: The indicator's primary output is a regime value from -3 to +3, identifying the market state:
+3 (Strong Bull Trend): High directional, upward volatility.
+2 (Choppy Bull): Moderate upward trend with noise.
+1 (Quiet Bull): Low volatility, slight upward drift.
0 (Neutral): No clear directional bias.
-1 (Quiet Bear): Low volatility, slight downward drift.
-2 (Choppy Bear): Moderate downward trend with noise.
-3 (Strong Bear Trend): High directional, downward volatility.
Advanced Volatility Decomposition: The regime is derived from a three-component volatility model that separates price action into Trend (momentum), Residual (mean-reversion), and Within-Bar (noise) variance. The classification is determined by comparing the 'Trend' ratio against the user-defined 'Trend Threshold' and 'Quiet Threshold'.
Dual-Level Analysis: The indicator analyzes market character on two levels simultaneously:
Inter-Bar Regime (Background Color): Based on the main StdDev Length, showing the overall market character.
Intra-Bar Regime (Column Color): Based on a high-resolution analysis within each single bar ('Intra-Bar Timeframe'), showing the micro-structural character.
Calculation Options:
Statistical Model: The 'Estimate Bar Statistics' option (enabled by default) uses a statistical model ('Estimator') to perform the decomposition. (Assumption: In this mode, the Source input is ignored, and an estimated mean for each bar is used instead).
Normalization: An optional 'Normalize Volatility' setting calculates an Exponential Regression Curve (log-space).
Volume Weighting: An option (Volume weighted) applies volume weighting to all volatility calculations.
Multi-Timeframe (MTF) Capability: The entire dual-level analysis can be run on a higher timeframe (using the Timeframe input), with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Integrated Alerts: Includes 22 comprehensive alerts that trigger whenever the 'Inter-Bar Regime' or the 'Intra-Bar Regime' crosses one of the key thresholds (e.g., 'Regime crosses above Neutral Line'), or when the 'Intra-Bar Dominance' crosses the 50% mark.
Caution: Real-Time Data Behavior (Intra-Bar Repainting) This indicator uses high-resolution intra-bar data. As a result, the values on the current, unclosed bar (the real-time bar) will update dynamically as new intra-bar data arrives. This behavior is normal and necessary for this type of analysis. Signals should only be considered final after the main chart bar has closed.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
OI Value (aproximado)This indicator estimates the Open Interest Value (USD) by multiplying the Open Interest (contracts) of the BTCUSDT Perpetual Futures by the current price.
It provides an approximate view of how much capital is engaged in open positions, helping traders visualize whether new money is entering or leaving the market.
Use Case:
Rising OI Value → New capital entering the market (trend strengthening)
Falling OI Value → Positions being closed or liquidated (trend weakening)
Designed for traders combining Open Interest analysis with price action and volume-based indicators such as OBV or Delta Volume.
Volume DeltaThis indicator provides a detailed view of Volume Delta (VD) by analyzing order flow on a lower, intra-bar timeframe. For each bar on the chart, it calculates the net difference between buying and selling volume based on the direction of the intra-bar candles.
Key Features:
Intra-Bar Delta Calculation: The indicator analyzes price action on a user-defined lower timeframe ('Intra-Bar Timeframe') to construct a detailed picture of the underlying order flow for each bar on the main chart.
"Delta Candle" Visualization: The delta for each bar is shown as a candle, where:
Open: Always starts at the zero line.
High/Low: Represent the peak buying and selling pressure accumulated within the bar.
Close: The final net delta value for that bar. This visualization shows absorption, exhaustion, and conviction in a single glance.
Customizable Moving Average: An optional moving average of the net delta (Close) can be added. The MA type, length, and an optional Volume weighted setting are customizable.
Intra-Bar Peak Pivot Detection: Automatically identifies and plots significant turning points (pivots) in the peak buying (High) and selling (Low) pressure.
Note on Confirmation (Lag): Pivot signals are confirmed using a lookback method. A pivot is only plotted after the Pivot Right Bars input has passed, which introduces an inherent lag.
Multi-Timeframe (MTF) Capability:
MTF Output: The entire analysis (Delta Candles, MA, Pivots) can be calculated on a higher timeframe (using the Timeframe input), with standard options to handle gaps (Fill Gaps) and prevent repainting (Wait for...).
Limitation: The Pivot detection (Calculate Pivots) is disabled if a Higher Timeframe (HTF) is selected.
Integrated Alerts: Includes 8 alerts for:
The net delta crossing its moving average.
The detection of new peak buying or selling pivots.
Conditions of agreement or disagreement between the net delta and the main bar's direction (absolute volume).
Caution: Real-Time Data Behavior (Intra-Bar Repainting) This indicator uses high-resolution intra-bar data. As a result, the values on the current, unclosed bar (the real-time bar) will update dynamically as new intra-bar data arrives. This behavior is normal and necessary for this type of analysis. Signals should only be considered final after the main chart bar has closed.
DISCLAIMER
For Informational/Educational Use Only: This indicator is provided for informational and educational purposes only. It does not constitute financial, investment, or trading advice, nor is it a recommendation to buy or sell any asset.
Use at Your Own Risk: All trading decisions you make based on the information or signals generated by this indicator are made solely at your own risk.
No Guarantee of Performance: Past performance is not an indicator of future results. The author makes no guarantee regarding the accuracy of the signals or future profitability.
No Liability: The author shall not be held liable for any financial losses or damages incurred directly or indirectly from the use of this indicator.
Signals Are Not Recommendations: The alerts and visual signals (e.g., crossovers) generated by this tool are not direct recommendations to buy or sell. They are technical observations for your own analysis and consideration.
Smart Money vs Retail (COT Flow) 0213Smart Money vs Retail (COT Flow) 0213
Smart Money vs Retail (COT Flow) 0213
Smart Money vs Retail (COT Flow) 0213
PivotLiveLibrary "PivotLive"
zigCore(lo, hi, d, dev, bs)
Parameters:
lo (float)
hi (float)
d (int)
dev (int)
bs (int)
COT Index v.2COT Index v.2 Indicator
( fix for extreme values)
📊 Overview
The COT (Commitment of Traders) Index Indicator transforms raw COT data into normalized indices ranging from 0-100, with extensions to 120 and -20 for extreme market conditions. This powerful tool helps traders analyze institutional positioning and market sentiment by tracking the net long positions of three key market participant groups.
🎯 What It Does
This indicator converts weekly CFTC Commitment of Traders data into easy-to-read oscillator format, showing:
Commercial Index (Blue Line) - Smart money/hedgers positioning
NonCommercial Index (Orange Line) - Large speculators/funds positioning
Nonreportable Index (Red Line) - Small traders positioning
📈 Key Features
Smart Scaling Algorithm
0-100 Range: Normal market conditions based on recent price action
120 Level: Extreme bullish positioning (above historical maximum)
-20 Level: Extreme bearish positioning (below historical minimum)
Dual Time Frame Analysis
Short Period (26 weeks default): For current market scaling
Historical Period (156 weeks default): For extreme condition detection
Flexible Data Sources
Futures Only reports
Futures and Options combined reports
Automatic symbol detection with manual overrides for HG and LBR
🔧 Customizable Settings
Data Configuration
Adjustable lookback periods for both current and historical analysis
Report type selection (Futures vs Futures & Options)
Display Options
Toggle individual trader categories on/off
Customizable reference lines (overbought/oversold levels)
Optional 0/100 boundary lines
Adjustable line widths and colors
Reference Levels
Upper Bound: 120 (extreme bullish)
Overbought: 80 (default)
Midline: 50 (neutral)
Oversold: 20 (default)
Lower Bound: -20 (extreme bearish)
💡 Trading Applications
Contrarian Signals
High Commercial Index + Low NonCommercial Index = Potential bullish reversal
Low Commercial Index + High NonCommercial Index = Potential bearish reversal
Market Sentiment Analysis
Track institutional vs retail positioning divergences
Identify extreme market conditions requiring attention
Monitor smart money accumulation/distribution patterns
Confirmation Tool
Use alongside technical analysis for trade confirmation
Validate breakouts with positioning data
Assess market structure changes
📊 Visual Elements
Status Table: Displays current settings and symbol information
Color-Coded Lines: Easy identification of each trader category
Reference Levels: Clear overbought/oversold boundaries
Extreme Indicators: Visual cues for unusual market conditions
⚠️ Important Notes
COT data is released weekly on Fridays (Tuesday data)
Best suited for weekly and daily timeframes
Requires symbols with available CFTC data
Works automatically for most futures contracts
🎯 Best Practices
Use in conjunction with price action analysis
Look for divergences between price and positioning
Pay special attention to extreme readings (120/-20 levels)
Consider all three indices together for complete market picture
Allow for data lag (3-day delay from CFTC)
This indicator is ideal for swing traders, position traders, and anyone interested in understanding the positioning dynamics of professional vs retail market participants.
Mandelbrot Fractal DimensionThe Mandelbrot Fractal Dimension (D) measures the information density and path complexity of price movements. It quantifies how much a price path fills the space between its starting and ending points:
D ≈ 1.0 : Strong trending behavior (minimal complexity, high predictability)
D ≈ 1.5 : Random walk behavior (maximum complexity, no structure)
D > 1.5 : Mean-reverting behavior (high complexity, bounded movement)
Reference the given link for documentation .
Chart Info Display (HOKO) 2It displays 3 things on the screen in order: symbol, date, time frame. You can use it to capture educational videos to make your chart more beautiful, more private, and more practical.
7 MM colored 3 BB clouded + MACD + RSI Zones7 MM colored
3 BB clouded
MACD flèches rouges et vertes
RSI Zones sur vente étoile jaune
Point of Control (POC)**Point of Control (POC) Indicator**
This indicator identifies the price level where the most trading volume occurred over a specified lookback period (default: 365 days). The POC represents a significant support/resistance level where the market found the most acceptance.
**Key Features:**
- **POC Line**: Bright green horizontal line showing the highest volume price level
- **Volume Profile Analysis**: Divides price range into rows and calculates volume distribution
- **Value Area (Optional)**: Shows VAH and VAL levels containing 70% of total volume
- **Customizable**: Adjust lookback period, price resolution, colors, and line width
**How to Use:**
- POC acts as a magnet - price often returns to test these high-volume levels
- Strong support/resistance zone where significant trading activity occurred
- Useful for identifying key price levels for entries, exits, and stops
- Higher lookback periods (365 days) show longer-term significant levels
**Settings:**
- Lookback Period: Number of bars to analyze (default: 365)
- Price Rows: Calculation resolution - higher = more precise (default: 24)
- Toggle Value Area High/Low for additional context
---
ARVELOV MACD with ZonesThis TradingView Pine Script (version 5) is a custom MACD (Moving Average Convergence Divergence) indicator. It calculates the MACD line by subtracting a slow moving average from a fast moving average, using either an EMA or SMA depending on user settings. A signal line—also selectable as an EMA or SMA—is then derived from the MACD, and the histogram plots the difference between the two. The script visually enhances the traditional MACD by coloring the histogram columns dynamically: shades of green for strengthening bullish momentum and shades of red for weakening or strengthening bearish momentum.
Beyond standard MACD plotting, the script adds multiple horizontal reference lines (from ±0.25 up to ±3) and color-filled zones to highlight momentum regions: an orange box for the neutral range (−1 to +1), a red zone for strong bearish momentum (−3 to −1), and a green zone for strong bullish momentum (+1 to +3). It includes alerts and visual dots for key events—when the MACD crosses its signal line (bullish or bearish crossovers) and when the histogram changes slope (rising to falling or vice versa). Altogether, this enhanced MACD aims to make momentum shifts and overextended conditions easier to identify visually and programmatically for alert-based trading strategies.
HTF Hollow Candle on LTF this gives an overlay of HTF candles so you can see m1 candles filling up an h4 candle in real time on the same chart.






















