Diamond Peaks [EdgeTerminal]The Diamond Peaks indicator is a comprehensive technical analysis tool that uses a few mathematical models to identify high-probability trading opportunities. This indicator goes beyond traditional support and resistance identification by incorporating volume analysis, momentum divergences, advanced price action patterns, and market sentiment indicators to generate premium-quality buy and sell signals.
Dynamic Support/Resistance Calculation
The indicator employs an adaptive algorithm that calculates support and resistance levels using a volatility-adjusted lookback period. The base calculation uses ta.highest(length) and ta.lowest(length) functions, where the length parameter is dynamically adjusted using the formula: adjusted_length = base_length * (1 + (volatility_ratio - 1) * volatility_factor). The volatility ratio is computed as current_ATR / average_ATR over a 50-period window, ensuring the lookback period expands during volatile conditions and contracts during calm periods. This mathematical approach prevents the indicator from using fixed periods that may become irrelevant during different market regimes.
Momentum Divergence Detection Algorithm
The divergence detection system uses a mathematical comparison between price series and oscillator values over a specified lookback period. For bullish divergences, the algorithm identifies when recent_low < previous_low while simultaneously indicator_at_recent_low > indicator_at_previous_low. The inverse logic applies to bearish divergences. The system tracks both RSI (calculated using Pine Script's standard ta.rsi() function with Wilder's smoothing) and MACD (using ta.macd() with exponential moving averages). The mathematical rigor ensures that divergences are only flagged when there's a clear mathematical relationship between price momentum and the underlying oscillator momentum, eliminating false signals from minor price fluctuations.
Volume Analysis Mathematical Framework
The volume analysis component uses multiple mathematical transformations to assess market participation. The Cumulative Volume Delta (CVD) is calculated as ∑(buying_volume - selling_volume) where buying_volume occurs when close > open and selling_volume when close < open. The relative volume calculation uses current_volume / ta.sma(volume, period) to normalize current activity against historical averages. Volume Rate of Change employs ta.roc(volume, period) = (current_volume - volume ) / volume * 100 to measure volume acceleration. Large trade detection uses a threshold multiplier against the volume moving average, mathematically identifying institutional activity when relative_volume > threshold_multiplier.
Advanced Price Action Mathematics
The Wyckoff analysis component uses mathematical volume climax detection by comparing current volume against ta.highest(volume, 50) * 0.8, while price compression is measured using (high - low) < ta.atr(20) * 0.5. Liquidity sweep detection employs percentage-based calculations: bullish sweeps occur when low < recent_low * (1 - threshold_percentage/100) followed by close > recent_low. Supply and demand zones are mathematically validated by tracking subsequent price action over a defined period, with zone strength calculated as the count of bars where price respects the zone boundaries. Fair value gaps are identified using ATR-based thresholds: gap_size > ta.atr(14) * 0.5.
Sentiment and Market Regime Mathematics
The sentiment analysis employs a multi-factor mathematical model. The fear/greed index uses volatility normalization: 100 - min(100, stdev(price_changes, period) * scaling_factor). Market regime classification uses EMA crossover mathematics with additional ADX-based trend strength validation. The trend strength calculation implements a modified ADX algorithm: DX = |+DI - -DI| / (+DI + -DI) * 100, then ADX = RMA(DX, period). Bull regime requires short_EMA > long_EMA AND ADX > 25 AND +DI > -DI. The mathematical framework ensures objective regime classification without subjective interpretation.
Confluence Scoring Mathematical Model
The confluence scoring system uses a weighted linear combination: Score = (divergence_component * 0.25) + (volume_component * 0.25) + (price_action_component * 0.25) + (sentiment_component * 0.25) + contextual_bonuses. Each component is normalized to a 0-100 scale using percentile rankings and threshold comparisons. The mathematical model ensures that no single component can dominate the score, while contextual bonuses (regime alignment, volume confirmation, etc.) provide additional mathematical weight when multiple factors align. The final score is bounded using math.min(100, math.max(0, calculated_score)) to maintain mathematical consistency.
Vitality Field Mathematical Implementation
The vitality field uses a multi-factor scoring algorithm that combines trend direction (EMA crossover: trend_score = fast_EMA > slow_EMA ? 1 : -1), momentum (RSI-based: momentum_score = RSI > 50 ? 1 : -1), MACD position (macd_score = MACD_line > 0 ? 1 : -1), and volume confirmation. The final vitality score uses weighted mathematics: vitality_score = (trend * 0.4) + (momentum * 0.3) + (macd * 0.2) + (volume * 0.1). The field boundaries are calculated using ATR-based dynamic ranges: upper_boundary = price_center + (ATR * user_defined_multiplier), with EMA smoothing applied to prevent erratic boundary movements. The gradient effect uses mathematical transparency interpolation across multiple zones.
Signal Generation Mathematical Logic
The signal generation employs boolean algebra with multiple mathematical conditions that must simultaneously evaluate to true. Buy signals require: (confluence_score ≥ threshold) AND (divergence_detected = true) AND (relative_volume > 1.5) AND (volume_ROC > 25%) AND (RSI < 35) AND (trend_strength > minimum_ADX) AND (regime = bullish) AND (cooldown_expired = true) AND (last_signal ≠ buy). The mathematical precision ensures that signals only generate when all quantitative conditions are met, eliminating subjective interpretation. The cooldown mechanism uses bar counting mathematics: bars_since_last_signal = current_bar_index - last_signal_bar_index ≥ cooldown_period. This mathematical framework provides objective, repeatable signal generation that can be backtested and validated statistically.
This mathematical foundation ensures the indicator operates on objective, quantifiable principles rather than subjective interpretation, making it suitable for algorithmic trading and systematic analysis while maintaining transparency in its computational methodology.
* for now, we're planning to keep the source code private as we try to improve the models used here and allow a small group to test them. My goal is to eventually use the multiple models in this indicator as their own free and open source indicators. If you'd like to use this indicator, please send me a message to get access.
Advanced Confluence Scoring System
Each support and resistance level receives a comprehensive confluence score (0-100) based on four weighted components:
Momentum Divergences (25% weight)
RSI and MACD divergence detection
Identifies momentum shifts before price reversals
Bullish/bearish divergence confirmation
Volume Analysis (25% weight)
Cumulative Volume Delta (CVD) analysis
Volume Rate of Change monitoring
Large trade detection (institutional activity)
Volume profile strength assessment
Advanced Price Action (25% weight)
Supply and demand zone identification
Liquidity sweep detection (stop hunts)
Wyckoff accumulation/distribution patterns
Fair value gap analysis
Market Sentiment (25% weight)
Fear/Greed index calculation
Market regime classification (Bull/Bear/Sideways)
Trend strength measurement (ADX-like)
Momentum regime alignment
Dynamic Support and Resistance Detection
The indicator uses an adaptive algorithm to identify significant support and resistance levels based on recent market highs and lows. Unlike static levels, these zones adjust dynamically to market volatility using the Average True Range (ATR), ensuring the levels remain relevant across different market conditions.
Vitality Field Background
The indicator features a unique vitality field that provides instant visual feedback about market sentiment:
Green zones: Bullish market conditions with strong momentum
Red zones: Bearish market conditions with weak momentum
Gray zones: Neutral/sideways market conditions
The vitality field uses a sophisticated gradient system that fades from the center outward, creating a clean, professional appearance that doesn't overwhelm the chart while providing valuable context.
Buy Signals (🚀 BUY)
Buy signals are generated when ALL of the following conditions are met:
Valid support level with confluence score ≥ 80
Bullish momentum divergence detected (RSI or MACD)
Volume confirmation (1.5x average volume + 25% volume ROC)
Bull market regime environment
RSI below 35 (oversold conditions)
Price action confirmation (Wyckoff accumulation, liquidity sweep, or large buying volume)
Minimum trend strength (ADX > 25)
Signal alternation check (prevents consecutive buy signals)
Cooldown period expired (default 10 bars)
Sell Signals (🔻 SELL)
Sell signals are generated when ALL of the following conditions are met:
Valid resistance level with confluence score ≥ 80
Bearish momentum divergence detected (RSI or MACD)
Volume confirmation (1.5x average volume + 25% volume ROC)
Bear market regime environment
RSI above 65 (overbought conditions)
Price action confirmation (Wyckoff distribution, liquidity sweep, or large selling volume)
Minimum trend strength (ADX > 25)
Signal alternation check (prevents consecutive sell signals)
Cooldown period expired (default 10 bars)
How to Use the Indicator
1. Signal Quality Assessment
Monitor the confluence scores in the information table:
Score 90-100: Exceptional quality levels (A+ grade)
Score 80-89: High quality levels (A grade)
Score 70-79: Good quality levels (B grade)
Score below 70: Weak levels (filtered out by default)
2. Market Context Analysis
Use the vitality field and market regime information to understand the broader market context:
Trade buy signals in green vitality zones during bull regimes
Trade sell signals in red vitality zones during bear regimes
Exercise caution in gray zones (sideways markets)
3. Entry and Exit Strategy
For Buy Signals:
Enter long positions when premium buy signals appear
Place stop loss below the support confluence zone
Target the next resistance level or use a risk/reward ratio of 2:1 or higher
For Sell Signals:
Enter short positions when premium sell signals appear
Place stop loss above the resistance confluence zone
Target the next support level or use a risk/reward ratio of 2:1 or higher
4. Risk Management
Only trade signals with confluence scores above 80
Respect the signal alternation system (no overtrading)
Use appropriate position sizing based on signal quality
Consider the overall market regime before taking trades
Customizable Settings
Signal Generation Controls
Signal Filtering: Enable/disable advanced filtering
Confluence Threshold: Adjust minimum score requirement (70-95)
Cooldown Period: Set bars between signals (5-50)
Volume/Momentum Requirements: Toggle confirmation requirements
Trend Strength: Minimum ADX requirement (15-40)
Vitality Field Options
Enable/Disable: Control background field display
Transparency Settings: Adjust opacity for center and edges
Field Size: Control the field boundaries (3.0-20.0)
Color Customization: Set custom colors for bullish/bearish/neutral states
Weight Adjustments
Divergence Weight: Adjust momentum component influence (10-40%)
Volume Weight: Adjust volume component influence (10-40%)
Price Action Weight: Adjust price action component influence (10-40%)
Sentiment Weight: Adjust sentiment component influence (10-40%)
Best Practices
Always wait for complete signal confirmation before entering trades
Use higher timeframes for signal validation and context
Combine with proper risk management and position sizing
Monitor the information table for real-time market analysis
Pay attention to volume confirmation for higher probability trades
Respect market regime alignment for optimal results
Basic Settings
Base Length (Default: 25)
Controls the lookback period for identifying support and resistance levels
Range: 5-100 bars
Lower values = More responsive, shorter-term levels
Higher values = More stable, longer-term levels
Recommendation: 25 for intraday, 50 for swing trading
Enable Adaptive Length (Default: True)
Automatically adjusts the base length based on market volatility
When enabled, length increases in volatile markets and decreases in calm markets
Helps maintain relevant levels across different market conditions
Volatility Factor (Default: 1.5)
Controls how much the adaptive length responds to volatility changes
Range: 0.5-3.0
Higher values = More aggressive length adjustments
Lower values = More conservative length adjustments
Volume Profile Settings
VWAP Length (Default: 200)
Sets the calculation period for the Volume Weighted Average Price
Range: 50-500 bars
Shorter periods = More responsive to recent price action
Longer periods = More stable reference line
Used for volume profile analysis and confluence scoring
Volume MA Length (Default: 50)
Period for calculating the volume moving average baseline
Range: 10-200 bars
Used to determine relative volume (current volume vs. average)
Shorter periods = More sensitive to volume changes
Longer periods = More stable volume baseline
High Volume Node Threshold (Default: 1.5)
Multiplier for identifying significant volume spikes
Range: 1.0-3.0
Values above this threshold mark high-volume nodes with diamond shapes
Lower values = More frequent high-volume signals
Higher values = Only extreme volume events marked
Momentum Divergence Settings
Enable Divergence Detection (Default: True)
Master switch for momentum divergence analysis
When disabled, removes divergence from confluence scoring
Significantly impacts signal generation quality
RSI Length (Default: 14)
Period for RSI calculation used in divergence detection
Range: 5-50
Standard RSI settings apply (14 is most common)
Shorter periods = More sensitive, more signals
Longer periods = Smoother, fewer but more reliable signals
MACD Settings
Fast (Default: 12): Fast EMA period for MACD calculation (5-50)
Slow (Default: 26): Slow EMA period for MACD calculation (10-100)
Signal (Default: 9): Signal line EMA period (3-20)
Standard MACD settings for divergence detection
Divergence Lookback (Default: 5)
Number of bars to look back when detecting divergences
Range: 3-20
Shorter periods = More frequent divergence signals
Longer periods = More significant divergence signals
Volume Analysis Enhancement Settings
Enable Advanced Volume Analysis (Default: True)
Master control for sophisticated volume calculations
Includes CVD, volume ROC, and large trade detection
Critical for signal accuracy
Cumulative Volume Delta Length (Default: 20)
Period for CVD smoothing calculation
Range: 10-100
Tracks buying vs. selling pressure over time
Shorter periods = More reactive to recent flows
Longer periods = Broader trend perspective
Volume ROC Length (Default: 10)
Period for Volume Rate of Change calculation
Range: 5-50
Measures volume acceleration/deceleration
Key component in volume confirmation requirements
Large Trade Volume Threshold (Default: 2.0)
Multiplier for identifying institutional-size trades
Range: 1.5-5.0
Trades above this threshold marked as large trades
Lower values = More frequent large trade signals
Higher values = Only extreme institutional activity
Advanced Price Action Settings
Enable Wyckoff Analysis (Default: True)
Activates simplified Wyckoff accumulation/distribution detection
Identifies potential smart money positioning
Important for high-quality signal generation
Enable Supply/Demand Zones (Default: True)
Identifies fresh supply and demand zones
Tracks zone strength based on subsequent price action
Enhances confluence scoring accuracy
Enable Liquidity Analysis (Default: True)
Detects liquidity sweeps and stop hunts
Identifies fake breakouts vs. genuine moves
Critical for avoiding false signals
Zone Strength Period (Default: 20)
Bars used to assess supply/demand zone strength
Range: 10-50
Longer periods = More thorough zone validation
Shorter periods = Faster zone assessment
Liquidity Sweep Threshold (Default: 0.5%)
Percentage move required to confirm liquidity sweep
Range: 0.1-2.0%
Lower values = More sensitive sweep detection
Higher values = Only significant sweeps detected
Sentiment and Flow Settings
Enable Sentiment Analysis (Default: True)
Master control for market sentiment calculations
Includes fear/greed index and regime classification
Important for market context assessment
Fear/Greed Period (Default: 20)
Calculation period for market sentiment indicator
Range: 10-50
Based on price volatility and momentum
Shorter periods = More reactive sentiment readings
Momentum Regime Length (Default: 50)
Period for determining overall market regime
Range: 20-100
Classifies market as Bull/Bear/Sideways
Longer periods = More stable regime classification
Trend Strength Length (Default: 30)
Period for ADX-like trend strength calculation
Range: 10-100
Measures directional momentum intensity
Used in signal filtering requirements
Advanced Signal Generation Settings
Enable Signal Filtering (Default: True)
Master control for premium signal generation system
When disabled, uses basic signal conditions
Highly recommended to keep enabled
Minimum Signal Confluence Score (Default: 80)
Required confluence score for signal generation
Range: 70-95
Higher values = Fewer but higher quality signals
Lower values = More frequent but potentially lower quality signals
Signal Cooldown (Default: 10 bars)
Minimum bars between signals of same type
Range: 5-50
Prevents signal spam and overtrading
Higher values = More conservative signal spacing
Require Volume Confirmation (Default: True)
Mandates volume requirements for signal generation
Requires 1.5x average volume + 25% volume ROC
Critical for signal quality
Require Momentum Confirmation (Default: True)
Mandates divergence detection for signals
Ensures momentum backing for directional moves
Essential for high-probability setups
Minimum Trend Strength (Default: 25)
Required ADX level for signal generation
Range: 15-40
Ensures signals occur in trending markets
Higher values = Only strong trending conditions
Confluence Scoring Settings
Minimum Confluence Score (Default: 70)
Threshold for displaying support/resistance levels
Range: 50-90
Levels below this score are filtered out
Higher values = Only strongest levels shown
Component Weights (Default: 25% each)
Divergence Weight: Momentum component influence (10-40%)
Volume Weight: Volume analysis influence (10-40%)
Price Action Weight: Price patterns influence (10-40%)
Sentiment Weight: Market sentiment influence (10-40%)
Must total 100% for balanced scoring
Vitality Field Settings
Enable Vitality Field (Default: True)
Controls the background gradient field display
Provides instant visual market sentiment feedback
Enhances chart readability and context
Vitality Center Transparency (Default: 85%)
Opacity at the center of the vitality field
Range: 70-95%
Lower values = More opaque center
Higher values = More transparent center
Vitality Edge Transparency (Default: 98%)
Opacity at the edges of the vitality field
Range: 95-99%
Creates smooth fade effect from center to edges
Higher values = More subtle edge appearance
Vitality Field Size (Default: 8.0)
Controls the overall size of the vitality field
Range: 3.0-20.0
Based on ATR multiples for dynamic sizing
Lower values = Tighter field around price
Higher values = Broader field coverage
Recommended Settings by Trading Style
Scalping (1-5 minutes)
Base Length: 15
Volume MA Length: 20
Signal Cooldown: 5 bars
Vitality Field Size: 5.0
Higher sensitivity for quick moves
Day Trading (15-60 minutes)
Base Length: 25 (default)
Volume MA Length: 50 (default)
Signal Cooldown: 10 bars (default)
Vitality Field Size: 8.0 (default)
Balanced settings for intraday moves
Swing Trading (4H-Daily)
Base Length: 50
Volume MA Length: 100
Signal Cooldown: 20 bars
Vitality Field Size: 12.0
Longer-term perspective for multi-day moves
Conservative Trading
Minimum Signal Confluence: 85
Minimum Confluence Score: 80
Require all confirmations: True
Higher thresholds for maximum quality
Aggressive Trading
Minimum Signal Confluence: 75
Minimum Confluence Score: 65
Signal Cooldown: 5 bars
Lower thresholds for more opportunities
Sentiment
RSI with 2-Pole FilterA momentum indicator that tells you if a stock is overbought or oversold.
RSI goes between 0 and 100.
70 = overbought (might fall)
<30 = oversold (might rise)
It often looks jagged or choppy on volatile days.
Think of this filter like a momentum smoother:
It still follows RSI closely,
But it doesn’t react to every little jiggle in price,
Which helps avoid false signals.
it keeps track of:
The current RSI,
The last 2 RSI values (inputs), and
The last 2 outputs (filtered RSIs).
It uses feedback to shape the output based on previous values, making it smoother than a simple moving average.
Ultra BUY SELL//@version=5
indicator("Ultra BUY SELL", overlay = false)
// Inputs
src = input(close, "Source", group = "Main settings")
p = input.int(180, "Trend period", group = "Main settings", tooltip = "Changes STRONG signals' sensitivity.", minval = 1)
atr_p = input.int(155, "ATR Period", group = "Main settings", minval = 1)
mult = input.float(2.1, "ATR Multiplier", step = 0.1, group = "Main settings", tooltip = "Changes sensitivity: higher period = higher sensitivty.")
mode = input.string("Type A", "Signal mode", options = , group = "Mode")
use_ema_smoother = input.string("No", "Smooth source with EMA?", options = , group = "Source")
src_ema_period = input(3, "EMA Smoother period", group = "Source")
color_bars = input(true, "Color bars?", group = "Addons")
signals_view = input.string("All", "Signals to show", options = , group = "Signal's Addon")
signals_shape = input.string("Labels", "Signal's shape", options = , group = "Signal's Addon")
buy_col = input(color.rgb(0, 255, 8), "Buy colour", group = "Signal's Addon", inline = "BS")
sell_col = input(color.rgb(255, 0, 0), "Sell colour", group = "Signal's Addon", inline = "BS")
// Calculations
src := use_ema_smoother == "Yes" ? ta.ema(src, src_ema_period) : src
// Source;
h = ta.highest(src, p)
// Highest of src p-bars back;
l = ta.lowest(src, p)
// Lowest of src p-bars back.
d = h - l
ls = ""
// Tracker of last signal
m = (h + l) / 2
// Initial trend line;
m := bar_index > p ? m : m
atr = ta.atr(atr_p)
// ATR;
epsilon = mult * atr
// Epsilon is a mathematical variable used in many different theorems in order to simplify work with mathematical object. Here it used as sensitivity measure.
change_up = (mode == "Type B" ? ta.cross(src, m + epsilon) : ta.crossover(src, m + epsilon)) or src > m + epsilon
// If price breaks trend line + epsilon (so called higher band), then it is time to update the value of a trend line;
change_down = (mode == "Type B" ? ta.cross(src, m - epsilon) : ta.crossunder(src, m - epsilon)) or src < m - epsilon
// If price breaks trend line - epsilon (so called higher band), then it is time to update the value of a trend line.
sb = open < l + d / 8 and open >= l
ss = open > h - d / 8 and open <= h
strong_buy = sb or sb or sb or sb or sb
strong_sell = ss or ss or ss or ss or ss
m := (change_up or change_down) and m != m ? m : change_up ? m + epsilon : change_down ? m - epsilon : nz(m , m)
// Updating the trend line.
ls := change_up ? "B" : change_down ? "S" : ls
// Last signal. Helps avoid multiple labels in a row with the same signal;
colour = ls == "B" ? buy_col : sell_col
// Colour of the trend line.
buy_shape = signals_shape == "Labels" ? shape.labelup : shape.triangleup
sell_shape = signals_shape == "Labels" ? shape.labeldown : shape.triangledown
// Plottings
// Signals with label shape
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "BUY", textcolor = color.white, force_overlay=true)
// Plotting the BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "SELL", textcolor = color.white, force_overlay=true)
// Plotting the SELL signal.
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true)
// Plotting the STRONG BUY signal;
plotshape(signals_shape == "Labels" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.normal, text = "STRONG", textcolor = color.white, force_overlay=true)
// Plotting the STRONG SELL signal.
// Signal with arrow shape
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_up and ls != "B" and not strong_buy, "Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true)
// Plotting the BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Buy/Sell") and change_down and ls != "S" and not strong_sell, "Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true)
// Plotting the SELL signal.
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_up and ls != "B" and strong_buy, "Strong Buy signal" , color = colour, style = buy_shape , location = location.belowbar, size = size.tiny, force_overlay=true)
// Plotting the STRONG BUY signal;
plotshape(signals_shape == "Arrows" and (signals_view == "All" or signals_view == "Strong") and change_down and ls != "S" and strong_sell, "Strong Sell signal" , color = colour, style = sell_shape, size = size.tiny, force_overlay=true)
// Plotting the STRONG SELL signal.
barcolor(color_bars ? colour : na)
// Bar coloring
// Alerts
matype = input.string(title='MA Type', defval='EMA', options= )
ma_len1 = input(title='Short EMA1 Length', defval=5)
ma_len2 = input(title='Long EMA1 Length', defval=7)
ma_len3 = input(title='Short EMA2 Length', defval=5)
ma_len4 = input(title='Long EMA2 Length', defval=34)
ma_len5 = input(title='Short EMA3 Length', defval=98)
ma_len6 = input(title='Long EMA3 Length', defval=45)
ma_len7 = input(title='Short EMA4 Length', defval=7)
ma_len8 = input(title='Long EMA4 Length', defval=11)
ma_len9 = input(title='Short EMA5 Length', defval=11)
ma_len10 = input(title='Long EMA5 Length', defval=15)
ma_offset = input(title='Offset', defval=0)
//res = input(title="Resolution", type=resolution, defval="240")
f_ma(malen) =>
float result = 0
if matype == 'EMA'
result := ta.ema(src, malen)
result
if matype == 'SMA'
result := ta.sma(src, malen)
result
result
htf_ma1 = f_ma(ma_len1)
htf_ma2 = f_ma(ma_len2)
htf_ma3 = f_ma(ma_len3)
htf_ma4 = f_ma(ma_len4)
htf_ma5 = f_ma(ma_len5)
htf_ma6 = f_ma(ma_len6)
htf_ma7 = f_ma(ma_len7)
htf_ma8 = f_ma(ma_len8)
htf_ma9 = f_ma(ma_len9)
htf_ma10 = f_ma(ma_len10)
//plot(out1, color=green, offset=ma_offset)
//plot(out2, color=red, offset=ma_offset)
//lengthshort = input(8, minval = 1, title = "Short EMA Length")
//lengthlong = input(200, minval = 2, title = "Long EMA Length")
//emacloudleading = input(50, minval = 0, title = "Leading Period For EMA Cloud")
//src = input(hl2, title = "Source")
showlong = input(false, title='Show Long Alerts')
showshort = input(false, title='Show Short Alerts')
showLine = input(false, title='Display EMA Line')
ema1 = input(true, title='Show EMA Cloud-1')
ema2 = input(true, title='Show EMA Cloud-2')
ema3 = input(true, title='Show EMA Cloud-3')
ema4 = input(true, title='Show EMA Cloud-4')
ema5 = input(true, title='Show EMA Cloud-5')
emacloudleading = input.int(0, minval=0, title='Leading Period For EMA Cloud')
mashort1 = htf_ma1
malong1 = htf_ma2
mashort2 = htf_ma3
malong2 = htf_ma4
mashort3 = htf_ma5
malong3 = htf_ma6
mashort4 = htf_ma7
malong4 = htf_ma8
mashort5 = htf_ma9
malong5 = htf_ma10
cloudcolour1 = mashort1 >= malong1 ? color.rgb(0, 255, 0) : color.rgb(255, 0, 0)
cloudcolour2 = mashort2 >= malong2 ? #4caf4f47 : #ff110047
cloudcolour4 = mashort4 >= malong4 ? #4caf4f52 : #f2364652
cloudcolour5 = mashort5 >= malong5 ? #33ff0026 : #ff000026
//03abc1
mashortcolor1 = mashort1 >= mashort1 ? color.olive : color.maroon
mashortcolor2 = mashort2 >= mashort2 ? color.olive : color.maroon
mashortcolor3 = mashort3 >= mashort3 ? color.olive : color.maroon
mashortcolor4 = mashort4 >= mashort4 ? color.olive : color.maroon
mashortcolor5 = mashort5 >= mashort5 ? color.olive : color.maroon
mashortline1 = plot(ema1 ? mashort1 : na, color=showLine ? mashortcolor1 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA1', force_overlay=true)
mashortline2 = plot(ema2 ? mashort2 : na, color=showLine ? mashortcolor2 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA2', force_overlay=true)
mashortline3 = plot(ema3 ? mashort3 : na, color=showLine ? mashortcolor3 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA3', force_overlay=true)
mashortline4 = plot(ema4 ? mashort4 : na, color=showLine ? mashortcolor4 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA4', force_overlay=true)
mashortline5 = plot(ema5 ? mashort5 : na, color=showLine ? mashortcolor5 : na, linewidth=1, offset=emacloudleading, title='Short Leading EMA5', force_overlay=true)
malongcolor1 = malong1 >= malong1 ? color.green : color.red
malongcolor2 = malong2 >= malong2 ? color.green : color.red
malongcolor3 = malong3 >= malong3 ? color.green : color.red
malongcolor4 = malong4 >= malong4 ? color.green : color.red
malongcolor5 = malong5 >= malong5 ? color.green : color.red
malongline1 = plot(ema1 ? malong1 : na, color=showLine ? malongcolor1 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA1', force_overlay=true)
malongline2 = plot(ema2 ? malong2 : na, color=showLine ? malongcolor2 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA2', force_overlay=true)
malongline3 = plot(ema3 ? malong3 : na, color=showLine ? malongcolor3 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA3', force_overlay=true)
malongline4 = plot(ema4 ? malong4 : na, color=showLine ? malongcolor4 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA4', force_overlay=true)
malongline5 = plot(ema5 ? malong5 : na, color=showLine ? malongcolor5 : na, linewidth=3, offset=emacloudleading, title='Long Leading EMA5', force_overlay=true)
fill(mashortline1, malongline1, color=cloudcolour1, title='MA Cloud1', transp=45)
fill(mashortline2, malongline2, color=cloudcolour2, title='MA Cloud2', transp=65)
fill(mashortline4, malongline4, color=cloudcolour4, title='MA Cloud4', transp=65)
fill(mashortline5, malongline5, color=cloudcolour5, title='MA Cloud5', transp=65)
leftBars = input(15, title='Left Bars ')
rightBars = input(15, title='Right Bars')
volumeThresh = input(20, title='Volume Threshold')
//
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars) )
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars) )
r1 = plot(highUsePivot, color=ta.change(highUsePivot) ? na : #FF0000, linewidth=3, offset=-(rightBars + 1), title='Resistance', force_overlay=true)
s1 = plot(lowUsePivot, color=ta.change(lowUsePivot) ? na : #00ff0d, linewidth=3, offset=-(rightBars + 1), title='Support', force_overlay=true)
//Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
//For bull / bear wicks
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © divudivu600
// Developer By ALCON ALGO
//telegram : @harmonicryptosignals
//@version = 5
//indicator(shorttitle='Oscillator Vision', title='Alcon Oscillator Vision', overlay=false)
n1 = input(10, 'Channel length')
n2 = input(21, 'Average length')
reaction_wt = input.int(defval=1, title='Reaction in change of direction', minval=1)
nsc = input.float(53, 'Levels About Buys', minval=0.0)
nsv = input.float(-53, 'Levels About Sells', maxval=-0.0)
Buy_sales = input(true, title='Only Smart Buy Reversal')
Sell_sales = input(true, title='Only Smart Sell Reversal')
Histogram = input(true, title='Show Histogarm')
//Trendx = input(false, title='Show Trendx')
barras = input(true, title='Divergence on chart(Bars)')
divregbull = input(true, title='Regular Divergence Bullish')
divregbear = input(true, title='Regular Divergence Bearish')
divhidbull = input(true, title='Show Divergence Hidden Bullish')
divhidbear = input(true, title='Show Divergence Hidden Bearish')
Tags = input(true, title='Show Divergence Lable')
amme = input(false, title='Activar media movil Extra para WT')
White = #FDFEFE
Black = #000000
Bearish = #e91e62
Bullish = #18e0ff
Strong_Bullish = #2962ff
Bullish2 = #00bedc
Blue1 = #00D4FF
Blue2 = #009BBA
orange = #FF8B00
yellow = #FFFB00
LEZ = #0066FF
purp = #FF33CC
// Colouring
tf(_res, _exp, gaps_on) =>
gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off)
ha_htf = ''
show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias")
ha_len = input(7, 'Period', group="HA Market Bias")
ha_len2 = input(10, 'Smoothing', group="HA Market Bias")
// Calculations {
o = ta.ema(open, ha_len)
c = ta.ema(close, ha_len)
h1 = ta.ema(high, ha_len)
l1 = ta.ema(low, ha_len)
haclose = tf(ha_htf, (o + h1 + l1 + c) / 4, 0)
xhaopen = tf(ha_htf, (o + c) / 2, 0)
haopen = na(xhaopen ) ? (o + c) / 2 : (xhaopen + haclose ) / 2
hahigh = math.max(h1, math.max(haopen, haclose))
halow = math.min(l1, math.min(haopen, haclose))
o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0)
c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0)
h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0)
l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0)
ha_avg = (h2 + l2) / 2
// }
osc_len = 8
osc_bias = 100 *(c2 - o2)
osc_smooth = ta.ema(osc_bias, osc_len)
sigcolor =
(osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(Bullish, 35) :
(osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(Bullish2, 75) :
(osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(Bearish, 35) :
(osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(Bearish, 75) :
na
// }
nsc1 = nsc
nsc2 = nsc + 5
nsc3 = nsc + 10
nsc4 = nsc + 15
nsc5 = nsc + 20
nsc6 = nsc + 25
nsc7 = nsc + 30
nsc8 = nsc + 35
nsv1 = nsv - 5
nsv2 = nsv - 10
nsv3 = nsv - 15
nsv4 = nsv - 20
nsv5 = nsv - 25
nsv6 = nsv - 30
nsv7 = nsv - 35
nsv8 = nsv - 40
ap = hlc3
esa = ta.ema(ap, n1)
di = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * di)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
direction = 0
direction := ta.rising(wt1, reaction_wt) ? 1 : ta.falling(wt1, reaction_wt) ? -1 : nz(direction )
Change_of_direction = ta.change(direction, 1)
pcol = direction > 0 ? Strong_Bullish : direction < 0 ? Bearish : na
obLevel1 = input(60, 'Over Bought Level 1')
obLevel2 = input(53, 'Over Bought Level 2')
osLevel1 = input(-60, 'Over Sold Level 1')
osLevel2 = input(-53, 'Over Sold Level 2')
rsi = ta.rsi(close,14)
color greengrad = color.from_gradient(rsi, 10, 90, #00ddff, #007d91)
color redgrad = color.from_gradient(rsi, 10, 90, #8b002e, #e91e62)
ob1 = plot(obLevel1, color=#e91e6301)
os1 = plot(osLevel1, color=#00dbff01)
ob2 = plot(obLevel2, color=#e91e6301)
os2 = plot(osLevel2, color=#00dbff01)
p1 = plot(wt1, color=#00dbff01)
p2 = plot(wt2, color=#e91e6301)
plot(wt1 - wt2, color=wt2 - wt1 > 0 ? redgrad : greengrad, style=plot.style_columns)
// fill(p1,p2,color = wt2 - wt1 > 0 ? redgrad: greengrad) // old
fill(p1,p2,color = sigcolor)
// new
fill(ob1,ob2,color = #e91e6350)
fill(os1,os2,color = #00dbff50)
midpoint = (nsc + nsv) / 2
ploff = (nsc - midpoint) / 8
BullSale = ta.crossunder(wt1, wt2) and wt1 >= nsc and Buy_sales == true
BearSale = ta.crossunder(wt1, wt2) and Buy_sales == false
Bullishh = ta.crossover(wt1, wt2) and wt1 <= nsv and Sell_sales == true
Bearishh = ta.crossover(wt1, wt2) and Sell_sales == false
plot(BullSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='BuysG')
plot(BearSale ? wt2 + ploff : na, style=plot.style_circles, color=color.new(Bearish, 0), linewidth=6, title='SellsG')
plot(Bullishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Buys On Sale')
plot(Bearishh ? wt2 - ploff : na, style=plot.style_circles, color=color.new(Strong_Bullish, 0), linewidth=6, title='Sells on Sale')
//plot(Histogram ? wt1 - wt2 : na, style=plot.style_area, color=color.new(Blue2, 80), linewidth=1, title='Histograma')
//barcolor(barras == true and Bullishh == true or barras == true and Bearishh == true ? Bullish2 : na)
//barcolor(barras == true and BullSale == true or barras == true and BearSale == true ? Bearish : na)
/////// Divergence ///////
f_top_fractal(_src) =>
_src < _src and _src < _src and _src > _src and _src > _src
f_bot_fractal(_src) =>
_src > _src and _src > _src and _src < _src and _src < _src
f_fractalize(_src) =>
f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
fractal_top1 = f_fractalize(wt1) > 0 ? wt1 : na
fractal_bot1 = f_fractalize(wt1) < 0 ? wt1 : na
high_prev1 = ta.valuewhen(fractal_top1, wt1 , 0)
high_price1 = ta.valuewhen(fractal_top1, high , 0)
low_prev1 = ta.valuewhen(fractal_bot1, wt1 , 0)
low_price1 = ta.valuewhen(fractal_bot1, low , 0)
regular_bearish_div1 = fractal_top1 and high > high_price1 and wt1 < high_prev1 and divregbear == true
hidden_bearish_div1 = fractal_top1 and high < high_price1 and wt1 > high_prev1 and divhidbear == true
regular_bullish_div1 = fractal_bot1 and low < low_price1 and wt1 > low_prev1 and divregbull == true
hidden_bullish_div1 = fractal_bot1 and low > low_price1 and wt1 < low_prev1 and divhidbull == true
col1 = regular_bearish_div1 ? Bearish : hidden_bearish_div1 ? Bearish : na
col2 = regular_bullish_div1 ? Strong_Bullish : hidden_bullish_div1 ? Strong_Bullish : na
//plot(title='Divergence Bearish', series=fractal_top1 ? wt1 : na, color=col1, linewidth=2, transp=0)
//plot(title='Divergence Bullish', series=fractal_bot1 ? wt1 : na, color=col2, linewidth=2, transp=0)
plotshape(regular_bearish_div1 and divregbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Regular Bearish', text='Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bearish_div1 and divhidbear and Tags ? wt1 + ploff * 1 : na, title='Divergence Hidden Bearish', text='H Bear', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(Bearish, 0), textcolor=color.new(White, 0))
plotshape(regular_bullish_div1 and divregbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Regular Bullish', text='Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
plotshape(hidden_bullish_div1 and divhidbull and Tags ? wt1 - ploff * 1 : na, title='Divergence Hidden Bullish', text='H Bull', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(Strong_Bullish, 0), textcolor=color.new(White, 0))
/////// Unfazed Alerts //////
////////////////////////////////////////////////-MISTERMOTA MOMENTUM-/////////////////////////////////////
source = input(close)
responsiveness = math.max(0.00001, input.float(0.9, minval=0.0, maxval=1.0))
periodd = input(50)
sd = ta.stdev(source, 50) * responsiveness
var worm = source
diff = source - worm
delta = math.abs(diff) > sd ? math.sign(diff) * sd : diff
worm += delta
ma = ta.sma(source, periodd)
raw_momentum = (worm - ma) / worm
current_med = raw_momentum
min_med = ta.lowest(current_med, periodd)
max_med = ta.highest(current_med, periodd)
temp = (current_med - min_med) / (max_med - min_med)
value = 0.5 * 2
value *= (temp - .5 + .5 * nz(value ))
value := value > .9999 ? .9999 : value
value := value < -0.9999 ? -0.9999 : value
temp2 = (1 + value) / (1 - value)
momentum = .25 * math.log(temp2)
momentum += .5 * nz(momentum )
//momentum := raw_momentum
signal = nz(momentum )
trend = math.abs(momentum) <= math.abs(momentum )
////////////////////////////////////////////////-GROWING/FAILING-//////////////////////////////////////////
length = input.int(title="MOM Period", minval=1, defval=14, group="MOM Settings")
srcc = input(title="MOM Source", defval=hlc3, group="MOM Settings")
txtcol_grow_above = input(#1a7b24, "Above Grow", group="MOM Settings", inline="Above")
txtcol_fall_above = input(#672ec5, "Fall", group="MOM Settings", inline="Above")
txtcol_grow_below = input(#F37121, "Below Grow", group="MOM Settings", inline="Below")
txtcol_fall_below = input(#be0606, "Fall", group="MOM Settings", inline="Below")
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options= , group="MA Settings")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="MA Settings")
smoothingLine = ma(delta, smoothingLength, typeMA)
deltaText=(delta > 0 ? (delta > delta ? " MOM > 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##") :" MOM > 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##") ) : (delta > delta ? "MOM < 0 and ▲ Growing, MOM = " + str.tostring(delta , "#.##"): " MOM < 0 and ▼ Falling, MOM = " + str.tostring(delta , "#.##")))
oneDay = 24 * 60 * 60 * 1000
barsAhead = 3
tmf = if timeframe.ismonthly
barsAhead * oneDay * 30
else if timeframe.isweekly
barsAhead * oneDay * 7
else if timeframe.isdaily
barsAhead * oneDay
else if timeframe.isminutes
barsAhead * oneDay * timeframe.multiplier / 1440
else if timeframe.isseconds
barsAhead * oneDay * timeframe.multiplier / 86400
else
0
angle(_src) =>
rad2degree = 180 / 3.14159265359
//pi
ang = rad2degree * math.atan((_src - _src ) / ta.atr(14))
ang
emae = angle(smoothingLine)
emaanglestat = emae > emae ? "▲ Growing": "▼ Falling"
deltaTextxxx = "MOM MA/ATR angle value is " + str.tostring(emae, "#.##") + "° and is " + emaanglestat
deltacolorxxx = emae >0 and emae >=emae ? txtcol_grow_above : txtcol_fall_below
// Label
label lpt1 = label.new(time, -30, text=deltaTextxxx , color=deltacolorxxx, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(lpt1, label.get_x(lpt1) + tmf)
label.delete(lpt1 )
txtdeltaColors = (delta > 50 ? (delta < delta ? txtcol_grow_above : txtcol_fall_above) : (delta < delta ? txtcol_grow_below : txtcol_fall_below))
label ldelta1 = label.new(time, 30, text=deltaText , color=txtdeltaColors, xloc=xloc.bar_time, style=label.style_label_left, textcolor=color.white, textalign=text.align_left, size=size.normal)
label.set_x(ldelta1, label.get_x(ldelta1) + tmf)
label.delete(ldelta1 )
Trailing Stop by JDTrailing Stop by JD
A dynamic ATR-based trailing stop indicator that automatically adjusts stop levels based on market volatility. Features a clean, single "BUY/SELL" signal system that alerts traders when price breaches the trailing stop line.
Key features:
ATR volatility-based stop calculation
Trend-following logic (stops only move favorably)
Single exit signal display
Real-time trailing stop value in bottom-left table
Customizable ATR period and multiplier settings
Built-in alert system for automated notifications
Perfect for traders looking for a reliable, adaptive stop-loss system that responds to changing market conditions.
Info TableOverview
The Info Table V1 is a versatile TradingView indicator tailored for intraday futures traders, particularly those focusing on MESM2 (Micro E-mini S&P 500 futures) on 1-minute charts. It presents essential market insights through two customizable tables: the Main Table for predictive and macro metrics, and the New Metrics Table for momentum and volatility indicators. Designed for high-activity sessions like 9:30 AM–11:00 AM CDT, this tool helps traders assess price alignment, sentiment, and risk in real-time. Metrics update dynamically (except weekly COT data), with optional alerts for key conditions like volatility spikes or momentum shifts.
This indicator builds on foundational concepts like linear regression for predictions and adapts open-source elements for enhanced functionality. Gradient code is adapted from TradingView's Color Library. QQE logic is adapted from LuxAlgo's QQE Weighted Oscillator, licensed under CC BY-NC-SA 4.0. The script is released under the Mozilla Public License 2.0.
Key Features
Two Customizable Tables: Positioned independently (e.g., top-right for Main, bottom-right for New Metrics) with toggle options to show/hide for a clutter-free chart.
Gradient Coloring: User-defined high/low colors (default green/red) for quick visual interpretation of extremes, such as overbought/oversold or high volatility.
Arrows for Directional Bias: In the New Metrics Table, up (↑) or down (↓) arrows appear in value cells based on metric thresholds (top/bottom 25% of range), indicating bullish/high or bearish/low conditions.
Consensus Highlighting: The New Metrics Table's title cells ("Metric" and "Value") turn green if all arrows are ↑ (strong bullish consensus), red if all are ↓ (strong bearish consensus), or gray otherwise.
Predicted Price Plot: Optional line (default blue) overlaying the ML-predicted price for visual comparison with actual price action.
Alerts: Notifications for high/low Frahm Volatility (≥8 or ≤3) and QQE Bias crosses (bullish/bearish momentum shifts).
Main Table Metrics
This table focuses on predictive, positional, and macro insights:
ML-Predicted Price: A linear regression forecast using normalized price, volume, and RSI over a customizable lookback (default 500 bars). Gradient scales from low (red) to high (green) relative to the current price ± threshold (default 100 points).
Deviation %: Percentage difference between current price and predicted price. Gradient highlights extremes (±0.5% default threshold), signaling potential overextensions.
VWAP Deviation %: Percentage difference from Volume Weighted Average Price (VWAP). Gradient indicates if price is above (green) or below (red) fair value (±0.5% default).
FRED UNRATE % Change: Percentage change in U.S. unemployment rate (via FRED data). Cell turns red for increases (economic weakness), green for decreases (strength), gray if zero or disabled.
Open Interest: Total open MESM2 futures contracts. Gradient scales from low (red) to high (green) up to a hardcoded 300,000 threshold, reflecting market participation.
COT Commercial Long/Short: Weekly Commitment of Traders data for commercial positions. Long cell green if longs > shorts (bullish institutional sentiment); Short cell red if shorts > longs (bearish); gray otherwise.
New Metrics Table Metrics
This table emphasizes technical momentum and volatility, with arrows for quick bias assessment:
QQE Bias: Smoothed RSI vs. trailing stop (default length 14, factor 4.236, smooth 5). Green for bullish (RSI > stop, ↑ arrow), red for bearish (RSI < stop, ↓ arrow), gray for neutral.
RSI: Relative Strength Index (default period 14). Gradient from oversold (red, <30 + threshold offset, ↓ arrow if ≤40) to overbought (green, >70 - offset, ↑ arrow if ≥60).
ATR Volatility: Score (1–20) based on Average True Range (default period 14, lookback 50). High scores (green, ↑ if ≥15) signal swings; low (red, ↓ if ≤5) indicate calm.
ADX Trend: Average Directional Index (default period 14). Gradient from weak (red, ↓ if ≤0.25×25 threshold) to strong trends (green, ↑ if ≥0.75×25).
Volume Momentum: Score (1–20) comparing current to historical volume (lookback 50). High (green, ↑ if ≥15) suggests pressure; low (red, ↓ if ≤5) implies weakness.
Frahm Volatility: Score (1–20) from true range over a window (default 24 hours, multiplier 9). Dynamic gradient (green/red/yellow); ↑ if ≥7.5, ↓ if ≤2.5.
Frahm Avg Candle (Ticks): Average candle size in ticks over the window. Blue gradient (or dynamic green/red/yellow); ↑ if ≥0.75 percentile, ↓ if ≤0.25.
Arrows trigger on metric-specific logic (e.g., RSI ≥60 for ↑), providing directional cues without strict color ties.
Customization Options
Adapt the indicator to your strategy:
ML Inputs: Lookback (10–5000 bars) and RSI period (2+) for prediction sensitivity—shorter for volatility, longer for trends.
Timeframes: Individual per metric (e.g., 1H for QQE Bias to match higher frames; blank for chart timeframe).
Thresholds: Adjust gradients and arrows (e.g., Deviation 0.1–5%, ADX 0–100, RSI overbought/oversold).
QQE Settings: Length, factor, and smooth for fine-tuned momentum.
Data Toggles: Enable/disable FRED, Open Interest, COT for focus (e.g., disable macro for pure intraday).
Frahm Options: Window hours (1+), scale multiplier (1–10), dynamic colors for avg candle.
Plot/Table: Line color, positions, gradients, and visibility.
Ideal Use Case
Perfect for MESM2 scalpers and trend traders. Use the Main Table for entry confirmation via predicted deviations and institutional positioning. Leverage the New Metrics Table arrows for short-term signals—enter bullish on green consensus (all ↑), avoid chop on low volatility. Set alerts to catch shifts without constant monitoring.
Why It's Valuable
Info Table V1 consolidates diverse metrics into actionable visuals, answering critical questions: Is price mispriced? Is momentum aligning? Is volatility manageable? With real-time updates, consensus highlights, and extensive customization, it enhances precision in fast markets, reducing guesswork for confident trades.
Note: Optimized for futures; some metrics (OI, COT) unavailable on non-futures symbols. Test on demo accounts. No financial advice—use at your own risk.
The provided script reuses open-source elements from TradingView's Color Library and LuxAlgo's QQE Weighted Oscillator, as noted in the script comments and description. Credits are appropriately given in both the description and code comments, satisfying the requirement for attribution.
Regarding significant improvements and proportion:
The QQE logic comprises approximately 15 lines of code in a script exceeding 400 lines, representing a small proportion (<5%).
Adaptations include integration with multi-timeframe support via request.security, user-customizable inputs for length, factor, and smooth, and application within a broader table-based indicator for momentum bias display (with color gradients, arrows, and alerts). This extends the original QQE beyond standalone oscillator use, incorporating it as one of seven metrics in the New Metrics Table for confluence analysis (e.g., consensus highlighting when all metrics align). These are functional enhancements, not mere stylistic or variable changes.
The Color Library usage is via official import (import TradingView/Color/1 as Color), leveraging built-in gradient functions without copying code, and applied to enhance visual interpretation across multiple metrics.
The script complies with the rules: reused code is minimal, significantly improved through integration and expansion, and properly credited. It qualifies for open-source publication under the Mozilla Public License 2.0, as stated.
Time-Rotated Motivational MessagesThis indicator displays rotating messages directly on your chart to help reinforce trading discipline, mindset, or strategy reminders. You can customize the messages using a single input field with | separators, and set how often they rotate (e.g., every 5, 10, or 15 minutes). The table’s position, text size, and colors are fully configurable.
Features:
Pipe-separated message input for easy customization
Configurable rotation interval (in minutes)
Adjustable table position, text size, and colors
Timezone selector for accurate scheduling
Ideal for traders who want visual reminders to stay focused, patient, and disciplined during live trading.
BitDoctor Risk Appetite DashboardBitDoctor Risk Appetite Dashboard
The BitDoctor Risk Appetite Dashboard is a powerful tool for gauging market sentiment and risk appetite across major asset classes. It combines equity, credit, emerging markets, interest rates, and crypto signals into a single dashboard, giving traders a clear view of current market dynamics.
What it does:
- Calculates momentum for each key asset using a 14-day rate of change.
- Normalizes each signal and plots a composite Risk Appetite Strength Index (RASI) on the chart.
- Displays a dashboard table showing the momentum of each component in percentage terms alongside the composite RASI.
How to use it:
The plotted RASI line shows overall risk appetite:
- Positive readings suggest a stronger risk-on environment.
- Negative readings indicate risk-off sentiment.
The dashboard table (top-right corner by default) displays two columns:
- Asset : The tracked asset symbol.
- Momentum : The current 14-day rate of change as a percentage.
Interpreting the table:
Each row represents a component of market risk sentiment:
- SPY : US equities.
- HYG : High yield bonds (credit risk appetite).
- EEM : Emerging markets.
- 1/UST10Y : Inverted 10-year Treasury yield (lower yields support risk appetite).
- ETH : Ethereum (crypto risk proxy).
- RASI : The average of the above signals, indicating overall market risk appetite.
Higher positive values in the table suggest rising momentum in that asset, which contributes positively to the composite RASI. Conversely, negative values signal declining momentum. You can use these individual readings to see which sectors are driving the current risk sentiment and to time entries and exits accordingly.
Customization:
The indicator allows you to adjust the table's background color, text color, text size, cell padding, and position so it remains readable and unobtrusive regardless of your chart theme.
Use the BitDoctor Risk Appetite Dashboard as part of a broader analysis to align your trades with prevailing risk conditions. It is not a standalone trading signal but a context tool to support better decision-making.
Why these assets were chosen:
The dashboard uses a carefully selected mix of widely-followed proxies for global risk sentiment:
- SPY : Represents large-cap US equity market performance, a key barometer of investor confidence.
- HYG : Tracks high-yield corporate bonds, reflecting credit risk appetite in fixed income markets.
- EEM : Captures emerging market equities, which are highly sensitive to global risk-on/off dynamics.
- 1/UST10Y : The inverse of the US 10-year Treasury yield, as falling yields often accompany risk-on moves and vice versa.
- ETH : Ethereum as a representative crypto asset, offering insight into speculative risk appetite in digital assets.
This mix provides a comprehensive view of sentiment across traditional and alternative markets, making the dashboard a robust tool for gauging overall risk appetite.
Glamour ETF Index vs. QQQ mit MA10, MA20 & MA50Stan Weinstein uses the term "Glamour Index" as a sentiment indicator to assess how speculative or overheated the stock market is. The Glamour Index measures the relationship between so-called "glamour stocks" (trendy stocks, hyped stocks with high media attention and sometimes extreme price increases) and solid, more conservative stocks. Weinstein uses this index to: 1) Analyze market sentiment – particularly whether the market is in a speculative euphoria phase.
2) Identify warning signs of a potential top formation or an impending downturn.
My basket compares performance against the QQQ (alternatively, SPY or any other benchmark is also possible).
My basket consists of the ETFs in the ARK universe, as well as other growth ETFs such as IPO, FFTY, and QQQJ.
Multi-TF Z-Score IndicatorIndicator to find the Z score for the daily 4h, 1h, 15m and 5 min time frames with 20 previous samples.
LEOLA LENS SignalProLeola Lens SignalPro is a closed-source, invite-only overlay that provides automated Buy/Sell labels on the chart. It is built for traders who want to visually capture high-probability turning points using adaptive market logic.
The system operates in two intelligent modes, suitable for different risk profiles and market conditions:
🔁 Two Core Modes:
Scalper Mode
Reacts to short-term price momentum shifts. Ideal for fast-paced trading in crypto, intraday stocks, or volatile sessions.
Safeguard Mode
Prioritizes confirmation. Waits for cleaner structural breaks or volume-backed exhaustion before generating signals — designed for those seeking higher signal quality and fewer false positives.
📊 How It Works (Conceptual Overview):
The script analyzes:
Live price structure
Volatility bands
Dynamic support/resistance reactions
A custom trigger engine monitors:
Breakout conditions
Liquidity imbalances
Exhaustion wicks and trap patterns
Labels are only generated after strict checks.
A yellow caution label appears when there’s a likely trend reversal, alerting traders to proceed with extra caution.
🟡 Additional Visual Layers:
🟡 Yellow Line → Marks a key psychological decision zone. Often precedes major breakouts or trend changes.
🩷 Pink Lines → Show reactive support and resistance levels derived from recent liquidity sweeps. These lines help anticipate pullbacks, reversal rejections, or false breakouts.
🧩 How to Use It:
Toggle between Scalper and Safeguard modes depending on your strategy
Works across all markets — crypto, stocks, forex, and commodities
Watch for:
Buy labels near exhaustion candles or support retests
Sell labels after extended upside moves or trap wicks
Yellow caution tag = high reversal risk zone
Pink/Yellow lines = visual context for decision-making
⚠️ Important Notes:
This script does not use common indicators like RSI, MACD, or Bollinger Bands
Not derived from public scripts — it’s built from original models combining structure and momentum imbalance
For best results, use on a clean chart with no overlapping indicators.
LEOLA LENS FOOTPRINTLeola Lens Footprint is a closed-source, invite-only overlay tool built to track and visualize historical support and resistance levels where price has previously shown clear reactions.
Unlike predictive models or indicator-based tools, Footprint focuses solely on market memory — highlighting zones where actual buying/selling interest occurred in the past and continues to influence price behavior in the present.
🔍 What It Does:
Plots validated zones based on historical reactions — not assumptions
Displays support/resistance layers that have caused rejections, consolidations, or breakouts
Works in all markets (crypto, stocks, forex, commodities) and all timeframes
Color Markers:
🟣 Purple zones → Historical price memory zones with frequent rejections
🟤 Brown zones → Most recent rejection clusters (fresh supply/demand levels)
🟡 Yellow lines → Significant levels that often act as decision points
📊 Best For:
Traders who trade reactions at proven levels, not speculative predictions
Scalpers and swing traders looking for clean retest and rejection entries
Traders who want a consistent visual of historical support/resistance behavior
⚠️ Technical Notes:
This tool uses original logic and does not rely on indicators like RSI, MACD, MA, or volume
No future projection — levels are drawn only after confirmed reactions
Built to work in both trend and range markets
LEOLA LENS PROLeola Lens Pro is a closed-source, invite-only overlay designed to give traders deeper insight into liquidity shifts, trap zones, and expansion/reversion mechanics across all markets.
Built on the foundation of Leola Lens Standard, this version introduces:
✅ More precise, price-reactive zones
✅ Adaptive expansion and reversion levels
✅ Real-time visibility into liquidity sweeps and institutional trap zones
🔍 What It Displays:
Dynamic structure zones that adapt as price evolves
Expansion lines suggesting potential breakout or exhaustion targets
Zone clusters that highlight where breakouts may trap late entries
Additional color-coded markers:
🟡 Yellow Line → Key psychological decision zone
🩷 Pink Lines → Potential support/pullback or resistance-reversal zones
📊 Best Suited For:
Traders identifying value area breaks, imbalances, or liquidity voids
Scalpers seeking early signs of trap formations
Swing traders looking to catch mean reversion setups after expansions
⚠️ Technical Notes:
Leola Lens Pro is built with original code, not based on public Pine libraries or commonly reused indicator logic
Does not include RSI, MACD, Moving Averages, or volume indicators
Best visual performance on 15-minute charts, but adaptable to any timeframe
Fractal Pullback Market StructureFractal Pullback Market Structure
Author: The_Forex_Steward
License: Mozilla Public License 2.0
The Fractal Pullback Market Structure indicator is a sophisticated price action tool designed to visualize internal structure shifts and break-of-structure (BoS) events with high accuracy. It leverages fractal pullback logic to identify market swing points and confirm whether a directional change has occurred.
This indicator detects swing highs and lows based on fractal behavior, drawing zigzag lines to connect these key pivot points. It classifies and labels each structural point as either a Higher High (HH), Higher Low (HL), Lower High (LH), or Lower Low (LL). Internal shifts are marked using triangle symbols on the chart, distinguishing bullish from bearish developments.
Break of Structure events are confirmed when price closes beyond the most recent swing high or low, and a horizontal line is drawn at the breakout level. This helps traders validate when a structural trend change is underway.
Users can configure the lookback period that defines the sensitivity of the pullback detection, as well as a timeframe multiplier to align the logic with higher timeframes such as 4H or Daily. There are visual customization settings for the zigzag lines and BoS markers, including color, width, and style (solid, dotted, or dashed).
Alerts are available for each key structural label—HH, HL, LH, LL—as well as for BoS events. These alerts are filtered through a selectable alert mode that separates signals by timeframe category: Low Timeframe (LTF), Medium Timeframe (MTF), and High Timeframe (HTF). Each mode allows the user to receive alerts only when relevant to their strategy.
This indicator excels in trend confirmation and reversal detection. Traders can use it to identify developing structure, validate internal shifts, and anticipate breakout continuation or rejection. It is particularly useful for Smart Money Concept (SMC) traders, swing traders, and those looking to refine entries and exits based on price structure rather than lagging indicators.
Visual clarity, adaptable timeframe logic, and precise structural event detection make this tool a valuable addition to any price action trader’s toolkit.
SIG PRINT + COMBO SIG PRINT + COMBO — Multi-Timeframe Trend & EMA Crossover Tool
This script combines EMA crossover logic with DMI-based trend analysis across multiple timeframes. It helps visualize directional trends (Bullish, Bearish, or No Clear Trend) on 5-minute, 15-minute, 30-minute, and 1-hour charts, displayed in a color-coded table overlay.
Key Components:
• EMA Strategy: Uses configurable short- and long-term EMAs to define crossover-based entry conditions.
• DMI Trend Detection: Implements ADX, +DI, and -DI to assess trend direction and strength.
• Multi-Timeframe Display: Shows trend signals for 5m, 15m, 30m, 1h, and current chart timeframe.
Built for users interested in aligning strategy entries with trend context across multiple timeframes.
⸻
@zaytradellc
USDT + USDC DominanceUSDT and USDC Dominance: This refers to the combined market capitalization of Tether (USDT) and USD Coin (USDC) as a percentage of the total cryptocurrency market capitalization. It measures the proportion of the crypto market held by these stablecoins, which are pegged to the US dollar. High dominance indicates a "risk-off" sentiment, where investors hold stablecoins for safety during market uncertainty. A drop in dominance suggests capital is flowing into riskier assets like altcoins, often signaling a bullish market or the start of an "alt season."
Economy RadarEconomy Radar — Key US Macro Indicators Visualized
A handy tool for traders and investors to monitor major US economic data in one chart.
Includes:
Inflation: CPI, PCE, yearly %, expectations
Monetary policy: Fed funds rate, M2 money supply
Labor market: Unemployment, jobless claims, consumer sentiment
Economy & markets: GDP, 10Y yield, US Dollar Index (DXY)
Options:
Toggle indicators on/off
Customizable colors
Tooltips explain each metric (in Russian & English)
Perfect for spotting economic cycles and supporting trading decisions.
Add to your chart and get a clear macro picture instantly!
RISK ROTATION MATRIX ║ BullVision [3.0]🔍 Overview
The Risk Rotation Matrix is a comprehensive market regime detection system that analyzes global market conditions across four critical domains: Liquidity, Macroeconomic, Crypto/Commodities, and Risk/Volatility. Through proprietary algorithms and advanced statistical analysis, it transforms 20+ diverse market metrics into a unified framework for identifying regime transitions and risk rotations.
This institutional-grade system aims to solve a fundamental challenge: how to synthesize complex, multi-domain market data into clear, actionable trading intelligence. By combining proprietary liquidity calculations with sophisticated cross-asset analysis.
The Four-Domain Architecture
1. 💧 LIQUIDITY DOMAIN
Our liquidity analysis combines standard metrics with proprietary calculations:
Proprietary Components:
Custom Global Liquidity Index (GLI): Unique formula aggregating central bank assets, credit spreads, and FX dynamics through our weighted algorithm
Federal Reserve Balance Proxy: Advanced calculation incorporating reverse repos, TGA fluctuations, and QE/QT impacts
China Liquidity Proxy: First-of-its-kind metric combining PBOC operations with FX-adjusted aggregates
Global M2 Composite: Custom multi-currency M2 aggregation with proprietary FX normalization
2. 📈 MACRO DOMAIN
Sophisticated integration of global economic indicators:
S&P 500: Momentum and trend analysis with custom z-score normalization
China Blue Chips: Asian market sentiment with correlation filtering
MBA Purchase Index: Real estate market health indicator
Emerging Markets (EEMS): Risk appetite measurement
Global ETF (URTH): Worldwide equity exposure tracking
Each metric undergoes proprietary transformation to ensure comparability and regime-specific sensitivity.
3. 🪙 CRYPTO/COMMODITIES DOMAIN
Unique cross-asset analysis combining:
Total Crypto Market Cap: Liquidity flow indicator with custom smoothing
Bitcoin SOPR: On-chain profitability analysis with adaptive periods
MVRV Z-Score: Advanced implementation with multiple MA options
BTC/Silver Ratio: Novel commodity-crypto relationship metric
Our algorithms detect when crypto markets lead or lag traditional assets, providing crucial timing signals.
4. ⚡ RISK/VOLATILITY DOMAIN
Advanced volatility regime detection through:
MOVE Index: Bond volatility with inverse correlation analysis
VVIX/VIX Ratio: Volatility-of-volatility for regime extremes
SKEW Index: Tail risk measurement with custom normalization
Credit Stress Composite: Proprietary combination of credit spreads
USDT Dominance: Crypto flight-to-safety indicator
All risk metrics are inverted and normalized to align with the unified scoring system.
🧠 Advanced Integration Methodology
Multi-Stage Processing Pipeline
Data Collection: Real-time aggregation from 20+ sources
Normalization: Custom z-score variants accounting for regime-specific volatility
Domain Scoring: Proprietary weighting within each domain
Cross-Domain Synthesis: Advanced correlation matrix between domains
Regime Detection: State-transition model identifying four market phases
Signal Generation: Composite score with adaptive smoothing
🔁 Composite Smoothing & Signal Generation
The user can apply smoothing (ALMA, EMA, etc.) to highlight trends and reduce noise. Smoothing length, type, and parameters are fully customizable for different trading styles.
🎯 Color Feedback & Market Regimes
Visual dynamics (color gradients, labels, trails, and quadrant placement) offer an at-a-glance interpretation of the market’s evolving risk environment—without forecasting or forward-looking assumptions.
🎯 The Quadrant Visualization System
Our innovative visual framework transforms complex calculations into intuitive intelligence:
Dynamic Ehlers Loop: Shows current position and momentum
Trailing History: Visual path of regime transitions
Real-Time Animation: Immediate feedback on condition changes
Multi-Layer Information: Depth through color, size, and positioning
🚀 Practical Applications
Primary Use Cases
Multi-Asset Portfolio Management: Optimize allocation across asset classes based on regime
Risk Budgeting: Adjust exposure dynamically with regime changes
Tactical Trading: Time entries/exits using regime transitions
Hedging Strategies: Implement protection before risk-off phases
Specific Trading Scenarios
Domain Divergence: When liquidity improves but risk metrics deteriorate
Early Rotation Detection: Crypto/commodity signals often lead broader markets
Volatility Regime Trades: Position for mean reversion or trend following
Cross-Asset Arbitrage: Exploit temporary dislocations between domains
⚙️ How It Works
The Composite Score Engine
The system's intelligence emerges from how it combines domains:
Each domain produces a normalized score (-2 to +2 range)
Proprietary algorithms weight domains based on market conditions
Composite score indicates overall market regime
Smoothing options (ALMA, EMA, etc.) optimize for different timeframes
Regime Classification
🟢 Risk-On (Green): Positive composite + positive momentum
🟠 Weakening (Orange): Positive composite + negative momentum
🔵 Recovery (Blue): Negative composite + positive momentum
🔴 Risk-Off (Red): Negative composite + negative momentum
Signal Interpretation Framework
The indicator provides three levels of analysis:
Composite Score: Overall market regime (-2 to +2)
Domain Scores: Identify which factors drive regime
Individual Metrics: Granular analysis of specific components
🎨 Features & Functionality
Core Components
Risk Rotation Quadrant: Primary visual interface with Ehlers loop
Data Matrix Dashboard: Real-time display of all 20+ metrics
Domain Aggregation: Separate scores for each domain
Composite Calculation: Unified score with multiple smoothing options
Customization Options
Selective Metrics: Enable/disable individual components
Period Adjustment: Optimize lookback for each metric
Smoothing Selection: 10 different MA types including ALMA
Visual Configuration: Quadrant scale, colors, trails, effects
Advanced Settings
Pre-smoothing: Reduce noise before final calculation
Adaptive Periods: Automatic adjustment during volatility
Correlation Filters: Remove redundant signals
Regime Memory: Hysteresis to prevent whipsaws
📋 Implementation Guide
Setup Process
Add to chart (optimized for daily, works on all timeframes)
Review default settings for your market focus
Adjust domain weights based on trading style
Configure visual preferences
Optimization by Trading Style
Position Trading: Longer periods (60-150), heavy smoothing
Swing Trading: Medium periods (20-60), balanced smoothing
Active Trading: Shorter periods (10-40), minimal smoothing
Best Practices
Monitor domain divergences for early signals
Use extreme readings (-1.5/+1.5) for high-conviction trades
Combine with price action for confirmation
Adjust parameters during major events (FOMC, earnings)
💎 What Makes This Unique
Beyond Traditional Indicators
Multi-Domain Integration: Only system combining liquidity, macro, crypto, and volatility
Proprietary Calculations: Custom formulas for GLI, Fed, China, and M2 proxies
Adaptive Architecture: Dynamically adjusts to market regimes
Institutional Depth: 20+ integrated metrics vs typical 3-5
Technical Innovation
Statistical Normalization: Custom z-score variants for cross-asset comparison
Correlation Management: Prevents double-counting related signals
Regime Persistence: Algorithms to identify sustainable vs temporary shifts
Visual Intelligence: Information-dense display without overwhelming
🔢 Performance Characteristics
Strengths
Early regime detection (typically 1-3 weeks ahead)
Robust across different market environments
Clear visual feedback reduces interpretation errors
Comprehensive coverage prevents blind spots
Optimal Conditions
Most effective with 100+ bars of history
Best on daily timeframe (4H minimum recommended)
Requires liquid markets for accurate signals
Performance improves with more enabled components
⚠️ Risk Considerations & Limitations
Important Disclaimers
Probabilistic system, not predictive
Requires understanding of macro relationships
Signals should complement other analysis
Past regime behavior doesn't guarantee future patterns
Known Limitations
Black swan events may cause temporary distortions
Central bank interventions can override signals
Requires active management during regime transitions
Not suitable for pure technical traders
💎 Conclusion
The Risk Rotation Matrix represents a new paradigm in market regime analysis. By combining proprietary liquidity calculations with comprehensive multi-domain monitoring, it provides institutional-grade intelligence previously available only to large funds. The system's strength lies not just in its individual components, but in how it synthesizes diverse market information into clear, actionable trading signals.
⚠️ Access & Intellectual Property Notice
This invite-only indicator contains proprietary algorithms, custom calculations, and years of quantitative research. The mathematical formulations for our liquidity proxies, cross-domain correlation matrices, and regime detection algorithms represent significant intellectual property. Access is restricted to protect these innovations and maintain their effectiveness for serious traders who understand the value of comprehensive market regime analysis.
Open Interest Screener
Open Interest Screener
Traders often wonder: how do you enter a trend before it takes off — not at the very peak? Most classic technical indicators lag behind price. So what could you add to your system to catch a move earlier?
🔍 Enter the Open Interest Screener!
I've personally relied on this metric for years while trading crypto. It helps detect abnormal spikes in open interest — sudden increases in the number of outstanding derivative contracts — which often signal that something big is about to happen. These moments can mark the very start of a major trend.
🧠 How to use it:
Go long if price is rising and there's a spike in open interest on the way up.
Go short if price is falling and open interest rises during the decline.
Exit positions when open interest sharply drops — this may indicate the move is losing momentum.
⚙️ Settings & Customization:
Bars to look back — defines how far back the script looks to detect % changes in open interest.
OI % Change Threshold — adjust this to control sensitivity; higher = fewer, stronger signals.
Exchange source toggles — choose between BitMEX (USD/USDT) and Kraken data feeds.
Show Spike Zones — enable or disable visual highlights for detected spikes.
📌 Tips:
Configure the indicator for your preferred cryptocurrency pair and timeframe.
Visually validate that the OI spikes look meaningful and are not cluttering the chart.
Optimal settings vary by asset — take time to test and tune them for each coin.
With this tool, you're no longer guessing where the trend might begin — you're tracking the intent of market participants as it unfolds. Use it as part of a broader system and stay ahead of the herd.
Trend Reversal Strength Indicator 2Trend reversal strength indicator that monitors bullish or bearish sentiment for scalpers.
USDT + USDC Dominance USDT + USDC Dominance: This refers to the combined market capitalization of Tether (USDT) and USD Coin (USDC) as a percentage of the total cryptocurrency market capitalization. It measures the proportion of the crypto market held by these stablecoins, which are pegged to the US dollar. High dominance indicates a "risk-off" sentiment, where investors hold stablecoins for safety during market uncertainty. A drop in dominance suggests capital is flowing into riskier assets like altcoins, often signaling a bullish market or the start of an "alt season.