Phoenix Pattern Scanner v1.3.2 - Multi-Pattern, Score & PresetsAdvanced multi-pattern scanner with intelligent presets and heuristic scoring system.
🎯 KEY FEATURES
- 5 Trading Style Presets: Conservative, Balanced, Aggressive, Swing, Scalp
- 4 Core Patterns: RVOL (unusual volume), Momentum breakout, RSI bounce, Gap & Go
- Heuristic Score (0-100): Visual ranking system for signal quality
- Per-Pattern Anti-Noise: Prevents signal spam with configurable minimum distance
- Relative Strength %: Compare performance vs benchmark (default SPY)
- Squeeze Detection: Identifies low volatility compression (BB inside Keltner)
📊 SMART FILTERS
- Minimum price and average dollar volume gates
- Weekly trend confirmation (optional)
- Separate lookback periods for each pattern
- Configurable RSI length and Gap parameters
⚙️ CUSTOMIZATION
- All parameters adjustable via settings
- Toggle individual components on/off
- Clean info panel with real-time metrics
- Color-coded score visualization
📍 BEST USED ON
- Daily timeframe (primary design)
- Liquid stocks above $5
- As a screening tool alongside your analysis
⚠️ IMPORTANT NOTES
- Educational/informational tool only
- NOT financial advice or trade signals
- Heuristic score is diagnostic, not predictive
- Past pattern behavior ≠ future results
💡 QUICK START
1. Select a preset matching your style
2. Adjust filters for your market
3. Set alerts for patterns you want to track
4. Use score as relative ranking, not absolute signal
Version 1.3.2 - Stable release
Open source - Free to use and modify
Feedback and improvements welcome
Cerca negli script per "KELTNER"
EMA Cross + KC Breakout + ATR StopThis uses an adjustable EMA Cross with an adjustable Keltner Channel breakout filter to identify trend breakouts for Long/Short entries. An adjustable ATR Stop is also provided for your entries.
Composite Sentiment Indicator (SPY/QQQ/SOXX + VixFix)# Multi-Index Composite Sentiment Indicator
A comprehensive sentiment indicator that works across SPY, QQQ, SOXX, and custom symbols. Combines volatility, options flow, macro factors, technicals, and seasonality into a single z-score composite.
## What It Does
Takes multiple market sentiment inputs (VIX, put/call ratios, breadth, yields, etc.) and smooshes them into one normalized line. When the composite is high = markets getting spooked. When it's low = markets getting complacent.
## Key Features
- **Multi-Index Support**: Automatically adapts for SPY (uses VIX), QQQ (uses VXN), SOXX (uses VixFix), or custom symbols
- **VixFix Integration**: Larry Williams' VixFix for indices without dedicated VIX measures
- **Signal MA**: Choose from SMA/EMA/WMA/HMA/TEMA/DEMA with color coding (red above MA = risk-on, green below = risk-off)
- **September Focus**: Built-in seasonality weighting for September weakness patterns
- **Comprehensive Components**: Volatility, options sentiment, macro factors, technicals, and sector-specific metrics
## How to Use
**Basic Setup:**
1. Pick your index (SPY/QQQ/SOXX)
2. Choose signal MA type and length (EMA 21 is a good start)
3. Watch for extreme readings and MA crossovers
**Color Signals:**
- Red composite = above signal MA = bearish sentiment
- Green composite = below signal MA = bullish sentiment
- Extreme high readings (red background) = potential tops
- Extreme low readings (green background) = potential bottoms
**For Different Indices:**
- **QQQ**: Uses NASDAQ VIX (VXN) when available, falls back to VixFix
- **SOXX**: Includes semiconductor cycle indicators, uses VixFix for volatility
- **Custom**: Adapts automatically, relies on VixFix and general market metrics
## Components Included
**Volatility**: VIX/VXN/VixFix, term structure, historical vol
**Options**: Put/call ratios, SKEW index
**Macro**: DXY, 10Y yields, yield curve, TIPS spreads
**Technical**: RSI deviation, momentum
**Seasonality**: September effects, quad witching, month-end patterns
**Breadth**: S&P 500 and NASDAQ breadth measures
## Pro Tips
- Works well on Daily Timeframe
- September gets extra weight automatically - watch for August setup signals
- Keltner envelope breaks often mark sentiment exhaustion points
- Use alerts for extreme readings and MA crossovers
Works best when you understand that sentiment extremes often mark turning points, not continuation signals. High readings don't mean "keep shorting" - they mean "start looking for reversal setups."
## Settings Worth Tweaking
- Signal MA type/length for your timeframe
- Component weights based on what matters for your index
- Envelope multipliers for your risk tolerance
- VixFix parameters if default doesn't fit your symbol's volatility
The table shows all current component readings so you can see what's driving the signal. Good for context and debugging weird readings.
Mean-Reversion Indicator_V2_SamleeOverview
This is the second version of my mean reversion indicator. It combines a moving average with adaptive standard deviation bands to detect when the price deviates significantly from its mean. The script provides automatic entry/exit signals, real-time PnL tracking, and shaded trade zones to make mean reversion trading more intuitive.
Core Logic
Mean benchmark: Simple Moving Average (MA).
Volatility bands: Standard deviation of the spread (close − MA) defines upper and lower bands.
Trading rules:
Price breaks below the lower band → Enter Long
Price breaks above the upper band → Enter Short
Price reverts to MA → Exit position
What’s different vs. classic Bollinger/Keltner
Bandwidth is based on the standard deviation of the price–MA spread, not raw closing prices.
Entry signals use previous-bar confirmation to reduce intrabar noise.
Exit rule is a mean-touch condition, rather than fixed profit/loss targets.
Enhanced visualization:
A shaded box dynamically shows the distance between entry and current/exit price, making it easy to see profit/loss zones over the holding period.
Instant PnL labels display current position side (Long/Short/Flat) and live profit/loss in both pips and %.
Entry and exit points are clearly marked on the chart with labels and exact prices.
These visualization tools go beyond what most indicators provide, giving traders a clearer, more practical view of trade evolution.
Key Features
Automatic detection of position status (Long / Short / Flat).
Chart labels for entries (“Entry”) and exits (“Exit”).
Real-time floating PnL calculation in both pips and %.
Info panel (top-right) showing entry price, current price, position side, and PnL.
Dynamic shading between entry and current/exit price to visualize profit/loss zones.
Usage Notes & Risk
Mean reversion may underperform in strong trending markets; parameters (len_ma, len_std, mult) should be validated per instrument and timeframe.
Works best on relatively stable, mean-reverting pairs (e.g., AUDNZD).
Risk management is essential: use independent stop-loss rules (e.g., limit risk to 1–2% of equity per trade).
This script is provided for educational purposes only and is not financial advice.
Multi-Band Trend LineThis Pine Script creates a versatile technical indicator called "Multi-Band Trend Line" that builds upon the concept of the popular "Follow Line Indicator" by Dreadblitz. While the original Follow Line Indicator uses simple trend detection to place a line at High or Low levels, this enhanced version combines multiple band-based trading strategies with dynamic trend line generation. The indicator supports five different band types and provides more sophisticated buy/sell signals based on price breakouts from various technical analysis bands.
Key Features
Multi-Band Support
The indicator supports five different band types:
- Bollinger Bands: Uses standard deviation to create bands around a moving average
- Keltner Channels: Uses ATR (Average True Range) to create bands around a moving average
- Donchian Channels: Uses the highest high and lowest low over a specified period
- Moving Average Envelopes: Creates bands as a percentage above and below a moving average
- ATR Bands: Uses ATR multiplier to create bands around a moving average
Dynamic Trend Line Generation (Enhanced Follow Line Concept)
- Similar to the Follow Line Indicator, the trend line is placed at High or Low levels based on trend direction
- Key Enhancement: Instead of simple trend detection, this version uses band breakouts to trigger trend changes
- When price breaks above the upper band (bullish signal), the trend line is set to the low (optionally adjusted with ATR) - similar to Follow Line's low placement
- When price breaks below the lower band (bearish signal), the trend line is set to the high (optionally adjusted with ATR) - similar to Follow Line's high placement
- The trend line acts as dynamic support/resistance, following the price action more precisely than the original Follow Line
ATR Filter (Follow Line Enhancement)
- Like the original Follow Line Indicator, an ATR filter can be selected to place the line at a more distance level than the normal mode settled at candles Highs/Lows
- When enabled, it adds/subtracts ATR value to provide more conservative trend line placement
- Helps reduce false signals in volatile markets
- This feature maintains the core philosophy of the Follow Line while adding more precision through band-based triggers
Signal Generation
- Buy Signal: Generated when trend changes from bearish to bullish (trend line starts rising)
- Sell Signal: Generated when trend changes from bullish to bearish (trend line starts falling)
- Signals are displayed as labels on the chart
Visual Elements
- Upper and lower bands are plotted in gray
- Trend line changes color based on direction (green for bullish, red for bearish)
- Background color changes based on trend direction
- Buy/sell signals are marked with labeled shapes
How It Works
Band Calculation: Based on the selected band type, upper and lower boundaries are calculated
Signal Detection: When price closes above the upper band or below the lower band, a breakout signal is generated
Trend Line Update: The trend line is updated based on the breakout direction and previous trend line value
Trend Direction: Determined by comparing current trend line with the previous value
Alert Generation: Buy/sell conditions trigger alerts and visual signals
Use Cases
Enhanced trend following strategies: More precise than basic Follow Line due to band-based triggers
Breakout trading: Multiple band types provide various breakout opportunities
Dynamic support/resistance identification: Combines Follow Line concept with band analysis
Multi-timeframe analysis with different band types: Choose the most suitable band for your timeframe
Reduced false signals: Band confirmation provides better entry/exit points compared to simple trend following
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.
Linh Index Trend & Exhaustion SuitePurpose: One overlay to judge trend, reversal risk, overextension, and volatility squeezes on indexes (built for VNINDEX/VN30, works on any symbol & timeframe).
What it shows
Trend state: Bull / Bear / Transition via 20/50/200 EMAs + slope check.
Overextension heatmap: Background paints when price is stretched vs the 20-EMA by ATR or % (you set the thresholds).
Squeeze detection:
Squeeze ON (yellow dot): Bollinger Bands (20,2) inside Keltner Channels (20,1.5).
Squeeze OFF + Release: White dot; script confirms direction only when close > BB upper (up) or close < BB lower (down).
52-week context: Distance to 52-week high/low (%).
Higher-TF alignment: Optional weekly trend reading shown on the label while you’re on the daily.
Anchored VWAP(s): Two optional AVWAPs from dates you choose (e.g., YTD open, last big gap/earnings).
Plots & labels
EMAs 20/50/200 (toggle on/off).
Optional BB & KC bands for diagnostics.
AVWAP #1 / #2 (optional).
Status label with: Trend, EMAs, Dist to 20-EMA (%, ATR), 52-week distances, HTF state.
Built-in alerts (set “Once per bar close”)
EMA10 ↔ EMA20 cross (early momentum shift)
EMA20 ↔ EMA50 cross (trend confirmation/negation)
Price ↔ EMA200 cross (long-term regime)
Squeeze Release UP / DOWN (BB breakout after squeeze)
Overextension Cool-off UP / DN (stretched vs 20-EMA + momentum rolling)
Near 52-week High (within your % threshold)
How to use (playbook)
Map regime: Prefer trades when Daily = Bull and HTF (Weekly) = Bull (shown on label).
Hunt expansion: Yellow → White dot and close beyond BB = fresh move.
Avoid chasing stretch: If background is painted (overextended vs 20-EMA), wait for a pullback or intraday base.
Locations matter: 52-week proximity + HTF Bull improves breakout quality.
Anchors: Add AVWAP from YTD open or last major gap to frame support/resistance.
Suggested settings
Overextension: ATR = 2.0, % = 4.0 to start; tune per index volatility.
Squeeze bands: BB(20,2) & KC(20,1.5) default are balanced; tighten KC (1.3) for more signals, widen (1.8) for fewer/higher quality.
Timeframes: Daily for signals, Weekly for bias. Optional 65-min for entries.
S/R Clouds Overview
The S/R Clouds Indicator is a sophisticated TradingView tool designed to visualize support and resistance levels through dynamic cloud formations. Built on the principles of Keltner Channels, it employs a central moving average enveloped by volatility-based bands to highlight potential price reversal zones. This indicator enhances chart analysis with customizable aesthetics and practical alerts, making it suitable for traders across various strategies and timeframes.
Key Features
Dynamic Bands: Calculates upper and lower bands using a configurable moving average (SMA or EMA) offset by multiples of the average true range (derived from high-low ranges), capturing volatility deviations for precise S/R identification.
Cloud Visualization: Renders semi-transparent clouds between primary and extended bands, providing a clear, layered view of support (lower) and resistance (upper) areas.
Trend Detection: Incorporates a trend state logic based on price position relative to bands and moving average direction, aiding in bullish/bearish market assessments.
Customization Options:
Select from multiple color themes (e.g., Neon, Grayscale) or use custom colors for bands.
Enable glow effects for enhanced visual depth and adjust opacity for chart clarity.
Volatility Insights: Monitors band width to detect squeezes (low volatility) and expansions (high volatility), signaling potential breakouts.
Alerts System: Triggers notifications for price crossings of bands, trend changes, and other key events to support timely decision-making.
How It Works
At its core, the indicator centers on a user-defined period moving average. Volatility is measured via an exponential moving average of the high-low range, multiplied by adjustable factors to form the bands. This setup creates adaptive clouds that expand/contract with market volatility, offering a more responsive alternative to static S/R lines. The result is a clean, professional overlay that integrates seamlessly with other technical tools.
This high-quality indicator prioritizes usability and visual appeal, ensuring traders can focus on analysis without distraction.
Universal Valuation[public code]Universal valuation indicator for all assets. Consists of 12 different indicators which are z-scored and averaged out.
> Volatility bands via Keltner Channels with a NWMA
> Confluence when price > vol.bands and valuation is high/low. The confluence is marked with red arrows when above the upper third band(green when below the lower on the downside), and 50% transparency when between 2/3 band(green when below the lower 2/3 bands on the downside.)
> Can be used separately of course.
> Can be used as valuation of indicators, when possible. (eg. Global Liquidity index valuation)
Code is a mess a bit, but parts can be extracted and a new strategy/indicator can be made.
*Big probs to the creator of this indicator . Inspired by him. I want to make it possible for people to extrapolate and create their own indicators/strategies. And of course, so I can do the same.
Multi-Session Levels + EMA Crosses + TP Calculator (GBP/USD)# Multi-Session Levels + EMA Crosses + TP Calculator
## 📋 Description
**Advanced trading indicator combining multi-session analysis, EMA cross validation, and automated Take Profit calculations for Forex markets.**
This comprehensive tool integrates session-based level analysis with validated EMA crossovers and intelligent TP calculations, designed specifically for serious traders who need precise entry signals with calculated exit strategies.
## 🎯 Key Features
### 📊 **Multi-Session Analysis**
- **Asian Session (6PM-1AM Mexico)**: Generates key support/resistance levels
- **London Session (1AM-6AM Mexico)**: Analyzes manipulation patterns
- **New York Session (8AM-4PM Mexico)**: Dynamic levels with trend confirmation
- **AMD Setup Detection**: Combines all sessions for high-probability setups
### 📈 **Advanced EMA System**
- **4 EMAs**: 8, 13, 21, and 55 periods with visual display
- **Validated Crossovers**: EMA 8 vs EMA 13 with multiple confirmations
- **Smart Filtering**: Only shows signals during optimal trading hours (6AM-12PM Mexico)
### ✅ **Triple Validation System**
- **MACD Confirmation**: Histogram strength + signal line position + momentum direction
- **RSI Filter**: Overbought/oversold levels with moving average confirmation
- **Squeeze Momentum**: Bollinger Bands vs Keltner Channels compression detection
### 💰 **Intelligent TP Calculator**
- **ADR-Based Targets**: Uses Average Daily Range for realistic profit expectations
- **ATR Multipliers**: Conservative (1.5x), Aggressive (2.5x), Very Aggressive (3.5x)
- **Session-Aware**: Considers already-traveled distance in NY session
- **Real-Time Table**: Live pip calculations for all TP levels
- **Visual Levels**: Automatic TP lines drawn on chart with color coding
### 🚨 **Smart Alert System**
- **Validated Signals Only**: Alerts trigger only when ALL confirmations align
- **TP Integration**: Alerts include suggested take profit levels
- **Non-Validated Tracking**: Shows basic crosses that don't meet full criteria
## 📐 **Technical Calculations**
### **ADR (Average Daily Range)**
- 20-period average of daily high-low ranges
- Converted to pips for easy interpretation
- Used for percentage-based TP targets (50%, 75%, 100% of ADR)
### **ATR (Average True Range)**
- 14-period ATR from H1 timeframe (configurable)
- Accounts for gaps and volatility
- Base for multiplier-based TP levels
### **Session Tracking**
- Real-time monitoring of NY session range
- Calculates remaining potential movement
- Optimizes TP placement based on session progress
## 🎨 **Visual Elements**
### **Chart Levels**
- **Orange Lines**: Asian and London session levels
- **White/Green/Red Lines**: NY session levels (color changes with trend direction)
- **TP Lines**: Color-coded take profit levels with different styles
### **EMA Display**
- **Blue**: EMA 8 (fastest)
- **Green**: EMA 13 (signal line)
- **Yellow**: EMA 21 (trend filter)
- **Red**: EMA 55 (major trend)
### **Signal Shapes**
- **Bright Triangles**: Fully validated signals
- **Faded Triangles**: Non-validated basic crosses
- **Size Variation**: Signal strength indication
## 📊 **Information Table**
Real-time display showing:
- **TP Levels**: All calculated take profit targets in pips
- **Session Data**: NY range already traveled vs average
- **Volatility Metrics**: Current ATR and ADR values
- **Clean Design**: Easy-to-read format with color coding
## ⚙️ **Customization Options**
### **Session Times**
- Fully configurable session times
- Mexico City timezone support
- Enable/disable individual session analysis
### **Validation Controls**
- Toggle MACD, RSI, Squeeze validation independently
- Adjust RSI overbought/oversold levels
- Customize MACD and Squeeze parameters
### **Display Options**
- Show/hide EMAs, crosses, TP levels, table
- Customize TP calculation periods (ADR, ATR)
- Choose ATR timeframe for calculations
## 🎯 **Ideal For**
- **Forex Day Traders**: Especially USD pairs during NY session
- **Session-Based Strategies**: Traders who respect market sessions
- **Risk Management Focus**: Those who need calculated exit strategies
- **Multi-Timeframe Analysis**: Traders using H1-H4 charts
## 📈 **Best Practices**
1. **Use during high-volume sessions** (London-NY overlap)
2. **Wait for full validation** before entering trades
3. **Consider session context** when setting TPs
4. **Combine with proper risk management** (1-2% per trade)
5. **Backtest thoroughly** before live trading
## ⚠️ **Important Notes**
- **Signals work best** during trending market conditions
- **AMD setups** provide highest probability entries
- **TP levels are suggestions** - adjust based on market context
- **Always use stop losses** (not included in this indicator)
- **Designed for Forex markets** - may need adjustment for other instruments
---
*This indicator combines proven technical analysis concepts with modern session-based trading approaches, providing both entry timing and exit planning in one comprehensive tool.*
Volatility Squeeze – Blue Zone (classic) Volatility Squeeze – Blue Zone
Highlights periods when volatility contracts by showing a blue band between the Bollinger Bands (BB) whenever they fall inside the Keltner Channel (KC).
Blue zone = squeeze: BB upper & lower are inside KC – market coiling.
Automatic breakout alert: optional alert fires on the first bar after the squeeze releases.
Fully adjustable: BB/KC length, BB σ, KC ATR multiplier, zone colour & opacity, border on/off.
Clean overlay: zone hugs price bar-by-bar and disappears only when the squeeze ends, so past squeezes remain visible for context.
Use it to spot low-volatility setups, then watch for momentum or volume confirmations when the squeeze breaks.
Ultimate ATR Extreme DetectorUltimate ATR Extreme Detector
Professional Volatility Analysis Tool for Strategic Trading
Discover Market Turning Points with Precision
Key Features
Smart Extremum Detection: Identifies when ATR reaches its highest or lowest point in your specified lookback period
Quad Visual Alert System:
▲ Green bottom triangles for low volatility signals
▼ Red top triangles for high volatility signals
Background color highlighting for instant state recognition
Status panel showing current volatility extremes
Dual Alert Modes:
TradingView native alerts ("ATR Low/High Signal")
Visual chart alerts with period details (e.g., "Alert: ATR Low (50 bars)")
4 Calculation Methods: RMA (Wilder's), SMA, EMA, and WMA
Fully Customizable:
Adjustable ATR period (default: 14)
Variable lookback window (default: 50)
Toggle features on/off via intuitive input settings
How It Works
The indicator scans volatility extremes using proprietary logic:
Calculates True Range using selected method (RMA/SMA/EMA/WMA)
Compares current ATR value against historical data
Flags critical moments when:
Volatility contracts to N-period lows (prepare for breakouts)
Volatility expands to N-period highs (watch for trend exhaustion)
Strategic Applications
markdown
复制
| SIGNAL | MARKET CONDITION | TRADING IMPLICATION |
|------------------|-----------------------|--------------------------------|
| Low Volatility | Contraction/Consolidation | Anticipate breakout moves |
| High Volatility | Expansion/Climax | Prepare for reversals or pauses |
Position Sizing: Use ATR values to determine optimal stop distances
Entry Timing: Combine with price action at key support/resistance
Risk Management: Adjust stops dynamically based on volatility regime
Optimization Guide
Day Trading: Short lookback (20-30 periods)
Swing Trading: Medium lookback (50-100 periods)
Position Trading: Long lookback (100-200 periods)
Volatility Analysis: Compare multiple timeframes simultaneously
Professional Setup Recommendations
Combine with:
Breakout Confirmation: Volume spikes, chart patterns
Reversal Signals: RSI divergence, candlestick reversals
Volatility Filters: Bollinger Band contraction, Keltner Channel breakout
Compatibility: Works flawlessly across FX, stocks, crypto, and commodities on all timeframes.
Why Traders Choose This Indicator
"Transforms complex volatility analysis into clear, actionable visual cues – the essential tool for breakout traders and risk managers alike."
Install Now to:
Spot consolidation before big moves
Identify exhaustion at trend extremes
Automate volatility-based position sizing
Receive instant alerts at critical volatility turns
Master market rhythms with professional-grade volatility intelligence!
Pivot Squeeze IndicatorThe Pivot Squeeze Indicator is an oscillator that identifies when markets are "squeezed" between recent pivot highs and lows, then signals when they're ready to make their next big move.
How it Works
The indicator calculates the percentage distance between the current price and the most recent pivot high vs. pivot low. When this distance gets compressed (small), the market is "squeezed" and building energy. When it expands rapidly, you get your breakout signal.
The indicator adapts to current market volatility using four different modes:
- ATR-Based
- Bollinger Bands
- Keltner Channels
- Fixed %
What to Look For
🟠 Orange Background = Squeeze Zone
Market is compressed between recent pivots
Low volatility, building pressure
🟢 Green Breakout = Bullish Signal
Price breaking out above recent highs
Momentum shifting upward
Time to look for long opportunities
🔴 Red Breakout = Bearish Signal
Price breaking down below recent lows
Momentum shifting downward
Time to look for short opportunities
Using Histogram Colors:
Green bars = Bullish territory (closer to recent highs)
Red bars = Bearish territory (closer to recent lows)
Orange bars = Squeeze conditions (compressed between pivots)
Using MA Line:
When Histogram bars cross below or above MA Line in opposite direction, it might be good time to exit.
Default Settings: ATR-based thresholds with 14-period lookback - works great out of the box, but feel free to experiment with the different threshold modes to find what works best for your trading style! Recommended to use with other indicators to confirm signals
RSI-Adaptive T3 + Squeeze Momentum Strategy✅ Strategy Guide: RSI-Adaptive T3 + Squeeze Momentum Strategy
📌 Overview
The RSI-Adaptive T3 + Squeeze Momentum Strategy is a dynamic trend-following strategy based on an RSI-responsive T3 moving average and Squeeze Momentum detection .
It adapts in real-time to market volatility to enhance entry precision and optimize risk.
⚠️ This strategy is provided for educational and research purposes only.
Past performance does not guarantee future results.
🎯 Strategy Objectives
The main objective of this strategy is to catch the early phase of a trend and generate consistent entry signals.
Designed to be intuitive and accessible for traders from beginner to advanced levels.
✨ Key Features
RSI-Responsive T3: T3 length dynamically adjusts according to RSI values for adaptive trend detection
Squeeze Momentum: Combines Bollinger Bands and Keltner Channels to identify trend buildup phases
Visual Triggers: Entry signals are generated from T3 crossovers and momentum strength after squeeze release
📊 Trading Rules
Long Entry:
When T3 crosses upward, momentum is positive, and the squeeze has just been released.
Short Entry:
When T3 crosses downward, momentum is negative, and the squeeze has just been released.
Exit (Reversal):
When the opposite condition to the entry is triggered, the position is reversed.
💰 Risk Management Parameters
Pair & Timeframe: BTC/USD (30-minute chart)
Capital (simulated): $30,00
Order size: `$100` per trade (realistic, low-risk sizing)
Commission: 0.02%
Slippage: 2 pips
Risk per Trade: 5%
Number of Trades (backtest period): 181
📊 Performance Overview
Symbol: BTC/USD
Timeframe: 30-minute chart
Date Range: January 1, 2024 – July 3, 2025
Win Rate: 47.8%
Profit Factor: 2.01
Net Profit: 173.16 (units not specified)
Max Drawdown: 5.77% or 24.91 (0.79%)
⚙️ Indicator Parameters
Indicator Name: RSI-Adaptive T3 + Squeeze Momentum
RSI Length: 14
T3 Min Length: 5
T3 Max Length: 50
T3 Volume Factor: 0.7
BB Length: 27 (Multiplier: 2.0)
KC Length: 20 (Multiplier: 1.5, TrueRange enabled)
🖼 Visual Support
T3 slope direction, squeeze status, and momentum bars are visually plotted on the chart,
providing high clarity for quick trend analysis and execution.
🔧 Strategy Improvements & Uniqueness
Inspired by the RSI Adaptive T3 by ChartPrime and Squeeze Momentum Indicator by LazyBear ,
this strategy fuses both into a hybrid trend-reversal and momentum breakout detection system .
Compared to traditional trend-following methods, it excels at capturing early trend signals with greater sensitivity .
✅ Summary
The RSI-Adaptive T3 + Squeeze Momentum Strategy combines momentum detection with volatility-responsive risk management.
With a strong balance between visual clarity and practicality, it serves as a powerful tool for traders seeking high repeatability.
⚠️ This strategy is based on historical data and does not guarantee future profits.
Always use appropriate risk management when applying it.
FastMetrixLibrary "FastMetrix"
This is a library I've been tweaking and working with for a while and I find it useful to get valuable technical analysis metrics faster (why its called FastMetrix). A lot of is personal to my trading style, so sorry if it does not have everything you want. The way I get my variables from library to script is by copying the return function into my new script.
TODO: Volatility and short term price analysis functions
slope(source, smoothing)
Parameters:
source (float)
smoothing (int)
integral(topfunction, bottomfunction, start, end)
Parameters:
topfunction (float)
bottomfunction (float)
start (int)
end (int)
deviation(x, y)
Parameters:
x (float)
y (float)
getema(len)
TODO: return important exponential long term moving averages and derivatives/variables
Parameters:
len (simple int)
getsma(len)
TODO: return requested sma
Parameters:
len (int)
kc(mult, len)
TODO: Return Keltner Channels variables and calculations
Parameters:
mult (simple float)
len (simple int)
bollinger(len, mult)
TODO: returns bollinger bands with optimal settings
Parameters:
len (int)
mult (simple float)
volatility(atrlen, smoothing)
TODO: Returns volatility indicators based on atr
Parameters:
atrlen (simple int)
smoothing (int)
premarketfib()
countinday(xcondition)
Parameters:
xcondition (bool)
countinsession(condition, n)
Parameters:
condition (bool)
n (int)
Market Zone Analyzer[BullByte]Understanding the Market Zone Analyzer
---
1. Purpose of the Indicator
The Market Zone Analyzer is a Pine Script™ (version 6) indicator designed to streamline market analysis on TradingView. Rather than scanning multiple separate tools, it unifies four core dimensions—trend strength, momentum, price action, and market activity—into a single, consolidated view. By doing so, it helps traders:
• Save time by avoiding manual cross-referencing of disparate signals.
• Reduce decision-making errors that can arise from juggling multiple indicators.
• Gain a clear, reliable read on whether the market is in a bullish, bearish, or sideways phase, so they can more confidently decide to enter, exit, or hold a position.
---
2. Why a Trader Should Use It
• Unified View: Combines all essential market dimensions into one easy-to-read score and dashboard, eliminating the need to piece together signals manually.
• Adaptability: Automatically adjusts its internal weighting for trend, momentum, and price action based on current volatility. Whether markets are choppy or calm, the indicator remains relevant.
• Ease of Interpretation: Outputs a simple “BULLISH,” “BEARISH,” or “SIDEWAYS” label, supplemented by an intuitive on-chart dashboard and an oscillator plot that visually highlights market direction.
• Reliability Features: Built-in smoothing of the net score and hysteresis logic (requiring consecutive confirmations before flips) minimize false signals during noisy or range-bound phases.
---
3. Why These Specific Indicators?
This script relies on a curated set of well-established technical tools, each chosen for its particular strength in measuring one of the four core dimensions:
1. Trend Strength:
• ADX/DMI (Average Directional Index / Directional Movement Index): Measures how strong a trend is, and whether the +DI line is above the –DI line (bullish) or vice versa (bearish).
• Moving Average Slope (Fast MA vs. Slow MA): Compares a shorter-period SMA to a longer-period SMA; if the fast MA sits above the slow MA, it confirms an uptrend, and vice versa for a downtrend.
• Ichimoku Cloud Differential (Senkou A vs. Senkou B): Provides a forward-looking view of trend direction; Senkou A above Senkou B signals bullishness, and the opposite signals bearishness.
2. Momentum:
• Relative Strength Index (RSI): Identifies overbought (above its dynamically calculated upper bound) or oversold (below its lower bound) conditions; changes in RSI often precede price reversals.
• Stochastic %K: Highlights shifts in short-term momentum by comparing closing price to the recent high/low range; values above its upper band signal bullish momentum, below its lower band signal bearish momentum.
• MACD Histogram: Measures the difference between the MACD line and its signal line; a positive histogram indicates upward momentum, a negative histogram indicates downward momentum.
3. Price Action:
• Highest High / Lowest Low (HH/LL) Range: Over a defined lookback period, this captures breakout or breakdown levels. A closing price near the recent highs (with a positive MA slope) yields a bullish score, and near the lows (with a negative MA slope) yields a bearish score.
• Heikin-Ashi Doji Detection: Uses Heikin-Ashi candles to identify indecision or continuation patterns. A small Heikin-Ashi body (doji) relative to recent volatility is scored as neutral; a larger body in the direction of the MA slope is scored bullish or bearish.
• Candle Range Measurement: Compares each candle’s high-low range against its own dynamic band (average range ± standard deviation). Large candles aligning with the prevailing trend score bullish or bearish accordingly; unusually small candles can indicate exhaustion or consolidation.
4. Market Activity:
• Bollinger Bands Width (BBW): Measures the distance between BB upper and lower bands; wide bands indicate high volatility, narrow bands indicate low volatility.
• Average True Range (ATR): Quantifies average price movement (volatility). A sudden spike in ATR suggests a volatile environment, while a contraction suggests calm.
• Keltner Channels Width (KCW): Similar to BBW but uses ATR around an EMA. Provides a second layer of volatility context, confirming or contrasting BBW readings.
• Volume (with Moving Average): Compares current volume to its moving average ± standard deviation. High volume validates strong moves; low volume signals potential lack of conviction.
By combining these tools, the indicator captures trend direction, momentum strength, price-action nuances, and overall market energy, yielding a more balanced and comprehensive assessment than any single tool alone.
---
4. What Makes This Indicator Stand Out
• Multi-Dimensional Analysis: Rather than relying on a lone oscillator or moving average crossover, it simultaneously evaluates trend, momentum, price action, and activity.
• Dynamic Weighting: The relative importance of trend, momentum, and price action adjusts automatically based on real-time volatility (Market Activity State). For example, in highly volatile conditions, trend and momentum signals carry more weight; in calm markets, price action signals are prioritized.
• Stability Mechanisms:
• Smoothing: The net score is passed through a short moving average, filtering out noise, especially on lower timeframes.
• Hysteresis: Both Market Activity State and the final bullish/bearish/sideways zone require two consecutive confirmations before flipping, reducing whipsaw.
• Visual Interpretation: A fully customizable on-chart dashboard displays each sub-indicator’s value, regime, score, and comment, all color-coded. The oscillator plot changes color to reflect the current market zone (green for bullish, red for bearish, gray for sideways) and shows horizontal threshold lines at +2, 0, and –2.
---
5. Recommended Timeframes
• Short-Term (5 min, 15 min): Day traders and scalpers can benefit from rapid signals, but should enable smoothing (and possibly disable hysteresis) to reduce false whipsaws.
• Medium-Term (1 h, 4 h): Swing traders find a balance between responsiveness and reliability. Less smoothing is required here, and the default parameters (e.g., ADX length = 14, RSI length = 14) perform well.
• Long-Term (Daily, Weekly): Position traders tracking major trends can disable smoothing for immediate raw readings, since higher-timeframe noise is minimal. Adjust lookback lengths (e.g., increase adxLength, rsiLength) if desired for slower signals.
Tip: If you keep smoothing off, stick to timeframes of 1 h or higher to avoid excessive signal “chatter.”
---
6. How Scoring Works
A. Individual Indicator Scores
Each sub-indicator is assigned one of three discrete scores:
• +1 if it indicates a bullish condition (e.g., RSI above its dynamically calculated upper bound).
• 0 if it is neutral (e.g., RSI between upper and lower bounds).
• –1 if it indicates a bearish condition (e.g., RSI below its dynamically calculated lower bound).
Examples of individual score assignments:
• ADX/DMI:
• +1 if ADX ≥ adxThreshold and +DI > –DI (strong bullish trend)
• –1 if ADX ≥ adxThreshold and –DI > +DI (strong bearish trend)
• 0 if ADX < adxThreshold (trend strength below threshold)
• RSI:
• +1 if RSI > RSI_upperBound
• –1 if RSI < RSI_lowerBound
• 0 otherwise
• ATR (as part of Market Activity):
• +1 if ATR > (ATR_MA + stdev(ATR))
• –1 if ATR < (ATR_MA – stdev(ATR))
• 0 otherwise
Each of the four main categories shares this same +1/0/–1 logic across their sub-components.
B. Category Scores
Once each sub-indicator reports +1, 0, or –1, these are summed within their categories as follows:
• Trend Score = (ADX score) + (MA slope score) + (Ichimoku differential score)
• Momentum Score = (RSI score) + (Stochastic %K score) + (MACD histogram score)
• Price Action Score = (Highest-High/Lowest-Low score) + (Heikin-Ashi doji score) + (Candle range score)
• Market Activity Raw Score = (BBW score) + (ATR score) + (KC width score) + (Volume score)
Each category’s summed value can range between –3 and +3 (for Trend, Momentum, and Price Action), and between –4 and +4 for Market Activity raw.
C. Market Activity State and Dynamic Weight Adjustments
Rather than contributing directly to the netScore like the other three categories, Market Activity determines how much weight to assign to Trend, Momentum, and Price Action:
1. Compute Market Activity Raw Score by summing BBW, ATR, KCW, and Volume individual scores (each +1/0/–1).
2. Bucket into High, Medium, or Low Activity:
• High if raw Score ≥ 2 (volatile market).
• Low if raw Score ≤ –2 (calm market).
• Medium otherwise.
3. Apply Hysteresis (if enabled): The state only flips after two consecutive bars register the same high/low/medium label.
4. Set Category Weights:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use the trader’s base weight inputs (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 % by default).
D. Calculating the Net Score
5. Normalize Base Weights (so that the sum of Trend + Momentum + Price Action always equals 100 %).
6. Determine Current Weights based on the Market Activity State (High/Medium/Low).
7. Compute Each Category’s Contribution: Multiply (categoryScore) × (currentWeight).
8. Sum Contributions to get the raw netScore (a floating-point value that can exceed ±3 when scores are strong).
9. Smooth the netScore over two bars (if smoothing is enabled) to reduce noise.
10. Apply Hysteresis to the Final Zone:
• If the smoothed netScore ≥ +2, the bar is classified as “Bullish.”
• If the smoothed netScore ≤ –2, the bar is classified as “Bearish.”
• Otherwise, it is “Sideways.”
• To prevent rapid flips, the script requires two consecutive bars in the new zone before officially changing the displayed zone (if hysteresis is on).
E. Thresholds for Zone Classification
• BULLISH: netScore ≥ +2
• BEARISH: netScore ≤ –2
• SIDEWAYS: –2 < netScore < +2
---
7. Role of Volatility (Market Activity State) in Scoring
Volatility acts as a dynamic switch that shifts which category carries the most influence:
1. High Activity (Volatile):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal +1.
• The script sets Trend weight = 50 % and Momentum weight = 35 %. Price Action weight is minimized at 15 %.
• Rationale: In volatile markets, strong trending moves and momentum surges dominate, so those signals are more reliable than nuanced candle patterns.
2. Low Activity (Calm):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal –1.
• The script sets Price Action weight = 55 %, Trend = 25 %, and Momentum = 20 %.
• Rationale: In quiet, sideways markets, subtle price-action signals (breakouts, doji patterns, small-range candles) are often the best early indicators of a new move.
3. Medium Activity (Balanced):
• Raw Score between –1 and +1 from the four volatility metrics.
• Uses whatever base weights the trader has specified (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
Because volatility can fluctuate rapidly, the script employs hysteresis on Market Activity State: a new High or Low state must occur on two consecutive bars before weights actually shift. This avoids constant back-and-forth weight changes and provides more stability.
---
8. Scoring Example (Hypothetical Scenario)
• Symbol: Bitcoin on a 1-hour chart.
• Market Activity: Raw volatility sub-scores show BBW (+1), ATR (+1), KCW (0), Volume (+1) → Total raw Score = +3 → High Activity.
• Weights Selected: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Signals:
• ADX strong and +DI > –DI → +1
• Fast MA above Slow MA → +1
• Ichimoku Senkou A > Senkou B → +1
→ Trend Score = +3
• Momentum Signals:
• RSI above upper bound → +1
• MACD histogram positive → +1
• Stochastic %K within neutral zone → 0
→ Momentum Score = +2
• Price Action Signals:
• Highest High/Lowest Low check yields 0 (close not near extremes)
• Heikin-Ashi doji reading is neutral → 0
• Candle range slightly above upper bound but trend is strong, so → +1
→ Price Action Score = +1
• Compute Net Score (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 1 × 0.15 = 0.15
• Raw netScore = 1.50 + 0.70 + 0.15 = 2.35
• Since 2.35 ≥ +2 and hysteresis is met, the final zone is “Bullish.”
Although the netScore lands at 2.35 (Bullish), smoothing might bring it slightly below 2.00 on the first bar (e.g., 1.90), in which case the script would wait for a second consecutive reading above +2 before officially classifying the zone as Bullish (if hysteresis is enabled).
---
9. Correlation Between Categories
The four categories—Trend Strength, Momentum, Price Action, and Market Activity—often reinforce or offset one another. The script takes advantage of these natural correlations:
• Bullish Alignment: If ADX is strong and pointed upward, fast MA is above slow MA, and Ichimoku is positive, that usually coincides with RSI climbing above its upper bound and the MACD histogram turning positive. In such cases, both Trend and Momentum categories generate +1 or +2. Because the Market Activity State is likely High (given the accompanying volatility), Trend and Momentum weights are at their peak, so the netScore quickly crosses into Bullish territory.
• Sideways/Consolidation: During a low-volatility, sideways phase, ADX may fall below its threshold, MAs may flatten, and RSI might hover in the neutral band. However, subtle price-action signals (like a small breakout candle or a Heikin-Ashi candle with a slight bias) can still produce a +1 in the Price Action category. If Market Activity is Low, Price Action’s weight (55 %) can carry enough influence—even if Trend and Momentum are neutral—to push the netScore out of “Sideways” into a mild bullish or bearish bias.
• Opposing Signals: When Trend is bullish but Momentum turns negative (for example, price continues up but RSI rolls over), the two scores can partially cancel. Market Activity may remain Medium, in which case the netScore lingers near zero (Sideways). The trader can then wait for either a clearer momentum shift or a fresh price-action breakout before committing.
By dynamically recognizing these correlations and adjusting weights, the indicator ensures that:
• When Trend and Momentum align (and volatility supports it), the netScore leaps strongly into Bullish or Bearish.
• When Trend is neutral but Price Action shows an early move in a low-volatility environment, Price Action’s extra weight in the Low Activity State can still produce actionable signals.
---
10. Market Activity State & Its Role (Detailed)
The Market Activity State is not a direct category score—it is an overarching context setter for how heavily to trust Trend, Momentum, or Price Action. Here’s how it is derived and applied:
1. Calculate Four Volatility Sub-Scores:
• BBW: Compare the current band width to its own moving average ± standard deviation. If BBW > (BBW_MA + stdev), assign +1 (high volatility); if BBW < (BBW_MA × 0.5), assign –1 (low volatility); else 0.
• ATR: Compare ATR to its moving average ± standard deviation. A spike above the upper threshold is +1; a contraction below the lower threshold is –1; otherwise 0.
• KCW: Same logic as ATR but around the KCW mean.
• Volume: Compare current volume to its volume MA ± standard deviation. Above the upper threshold is +1; below the lower threshold is –1; else 0.
2. Sum Sub-Scores → Raw Market Activity Score: Range between –4 and +4.
3. Assign Market Activity State:
• High Activity: Raw Score ≥ +2 (at least two volatility metrics are strongly spiking).
• Low Activity: Raw Score ≤ –2 (at least two metrics signal unusually low volatility or thin volume).
• Medium Activity: Raw Score is between –1 and +1 inclusive.
4. Hysteresis for Stability:
• If hysteresis is enabled, a new state only takes hold after two consecutive bars confirm the same High, Medium, or Low label.
• This prevents the Market Activity State from bouncing around when volatility is on the fence.
5. Set Category Weights Based on Activity State:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use trader’s base weights (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
6. Impact on netScore: Because category scores (–3 to +3) multiply by these weights, High Activity amplifies the effect of strong Trend and Momentum scores; Low Activity amplifies the effect of Price Action.
7. Market Context Tooltip: The dashboard includes a tooltip summarizing the current state—e.g., “High activity, trend and momentum prioritized,” “Low activity, price action prioritized,” or “Balanced market, all categories considered.”
---
11. Category Weights: Base vs. Dynamic
Traders begin by specifying base weights for Trend Strength, Momentum, and Price Action that sum to 100 %. These apply only when volatility is in the Medium band. Once volatility shifts:
• High Volatility Overrides:
• Trend jumps from its base (e.g., 40 %) to 50 %.
• Momentum jumps from its base (e.g., 30 %) to 35 %.
• Price Action is reduced to 15 %.
Example: If base weights were Trend = 40 %, Momentum = 30 %, Price Action = 30 %, then in High Activity they become 50/35/15. A Trend score of +3 now contributes 3 × 0.50 = +1.50 to netScore; a Momentum +2 contributes 2 × 0.35 = +0.70. In total, Trend + Momentum can easily push netScore above the +2 threshold on its own.
• Low Volatility Overrides:
• Price Action leaps from its base (30 %) to 55 %.
• Trend falls to 25 %, Momentum falls to 20 %.
Why? When markets are quiet, subtle candle breakouts, doji patterns, and small-range expansions tend to foreshadow the next swing more effectively than raw trend readings. A Price Action score of +3 in this state contributes 3 × 0.55 = +1.65, which can carry the netScore toward +2—even if Trend and Momentum are neutral or only mildly positive.
Because these weight shifts happen only after two consecutive bars confirm a High or Low state (if hysteresis is on), the indicator avoids constantly flipping its emphasis during borderline volatility phases.
---
12. Dominant Category Explained
Within the dashboard, a label such as “Trend Dominant,” “Momentum Dominant,” or “Price Action Dominant” appears when one category’s absolute weighted contribution to netScore is the largest. Concretely:
• Compute each category’s weighted contribution = (raw category score) × (current weight).
• Compare the absolute values of those three contributions.
• The category with the highest absolute value is flagged as Dominant for that bar.
Why It Matters:
• Momentum Dominant: Indicates that the combined force of RSI, Stochastic, and MACD (after weighting) is pushing netScore farther than either Trend or Price Action. In practice, it means that short-term sentiment and speed of change are the primary drivers right now, so traders should watch for continued momentum signals before committing to a trade.
• Trend Dominant: Means ADX, MA slope, and Ichimoku (once weighted) outweigh the other categories. This suggests a strong directional move is in place; trend-following entries or confirming pullbacks are likely to succeed.
• Price Action Dominant: Occurs when breakout/breakdown patterns, Heikin-Ashi candle readings, and range expansions (after weighting) are the most influential. This often happens in calmer markets, where subtle shifts in candle structure can foreshadow bigger moves.
By explicitly calling out which category is carrying the most weight at any moment, the dashboard gives traders immediate insight into why the netScore is tilting toward bullish, bearish, or sideways.
---
13. Oscillator Plot: How to Read It
The “Net Score” oscillator sits below the dashboard and visually displays the smoothed netScore as a line graph. Key features:
1. Value Range: In normal conditions it oscillates roughly between –3 and +3, but extreme confluences can push it outside that range.
2. Horizontal Threshold Lines:
• +2 Line (Bullish threshold)
• 0 Line (Neutral midline)
• –2 Line (Bearish threshold)
3. Zone Coloring:
• Green Background (Bullish Zone): When netScore ≥ +2.
• Red Background (Bearish Zone): When netScore ≤ –2.
• Gray Background (Sideways Zone): When –2 < netScore < +2.
4. Dynamic Line Color:
• The plotted netScore line itself is colored green in a Bullish Zone, red in a Bearish Zone, or gray in a Sideways Zone, creating an immediate visual cue.
Interpretation Tips:
• Crossing Above +2: Signals a strong enough combined trend/momentum/price-action reading to classify as Bullish. Many traders wait for a clear crossing plus a confirmation candle before entering a long position.
• Crossing Below –2: Indicates a strong Bearish signal. Traders may consider short or exit strategies.
• Rising Slope, Even Below +2: If netScore climbs steadily from neutral toward +2, it demonstrates building bullish momentum.
• Divergence: If price makes a higher high but the oscillator fails to reach a new high, it can warn of weakening momentum and a potential reversal.
---
14. Comments and Their Necessity
Every sub-indicator (ADX, MA slope, Ichimoku, RSI, Stochastic, MACD, HH/LL, Heikin-Ashi, Candle Range, BBW, ATR, KCW, Volume) generates a short comment that appears in the detailed dashboard. Examples:
• “Strong bullish trend” or “Strong bearish trend” for ADX/DMI
• “Fast MA above slow MA” or “Fast MA below slow MA” for MA slope
• “RSI above dynamic threshold” or “RSI below dynamic threshold” for RSI
• “MACD histogram positive” or “MACD histogram negative” for MACD Hist
• “Price near highs” or “Price near lows” for HH/LL checks
• “Bullish Heikin Ashi” or “Bearish Heikin Ashi” for HA Doji scoring
• “Large range, trend confirmed” or “Small range, trend contradicted” for Candle Range
Additionally, the top-row comment for each category is:
• Trend: “Highly Bullish,” “Highly Bearish,” or “Neutral Trend.”
• Momentum: “Strong Momentum,” “Weak Momentum,” or “Neutral Momentum.”
• Price Action: “Bullish Action,” “Bearish Action,” or “Neutral Action.”
• Market Activity: “Volatile Market,” “Calm Market,” or “Stable Market.”
Reasons for These Comments:
• Transparency: Shows exactly how each sub-indicator contributed to its category score.
• Education: Helps traders learn why a category is labeled bullish, bearish, or neutral, building intuition over time.
• Customization: If, for example, the RSI comment says “RSI neutral” despite an impending trend shift, a trader might choose to adjust RSI length or thresholds.
In the detailed dashboard, hovering over each comment cell also reveals a tooltip with additional context (e.g., “Fast MA above slow MA” or “Senkou A above Senkou B”), helping traders understand the precise rule behind that +1, 0, or –1 assignment.
---
15. Real-Life Example (Consolidated)
• Instrument & Timeframe: Bitcoin (BTCUSD), 1-hour chart.
• Current Market Activity: BBW and ATR both spike (+1 each), KCW is moderately high (+1), but volume is only neutral (0) → Raw Market Activity Score = +2 → State = High Activity (after two bars, if hysteresis is on).
• Category Weights Applied: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Sub-Scores:
1. ADX = 25 (above threshold 20) with +DI > –DI → +1.
2. Fast MA (20-period) sits above Slow MA (50-period) → +1.
3. Ichimoku: Senkou A > Senkou B → +1.
→ Trend Score = +3.
• Momentum Sub-Scores:
4. RSI = 75 (above its moving average +1 stdev) → +1.
5. MACD histogram = +0.15 → +1.
6. Stochastic %K = 50 (mid-range) → 0.
→ Momentum Score = +2.
• Price Action Sub-Scores:
7. Price is not within 1 % of the 20-period high/low and slope = positive → 0.
8. Heikin-Ashi body is slightly larger than stdev over last 5 bars with haClose > haOpen → +1.
9. Candle range is just above its dynamic upper bound but trend is already captured, so → +1.
→ Price Action Score = +2.
• Calculate netScore (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 2 × 0.15 = 0.30
• Raw netScore = 1.50 + 0.70 + 0.30 = 2.50 → Immediately classified as Bullish.
• Oscillator & Dashboard Output:
• The oscillator line crosses above +2 and turns green.
• Dashboard displays:
• Trend Regime “BULLISH,” Trend Score = 3, Comment = “Highly Bullish.”
• Momentum Regime “BULLISH,” Momentum Score = 2, Comment = “Strong Momentum.”
• Price Action Regime “BULLISH,” Price Action Score = 2, Comment = “Bullish Action.”
• Market Activity State “High,” Comment = “Volatile Market.”
• Weights: Trend 50 %, Momentum 35 %, Price Action 15 %.
• Dominant Category: Trend (because 1.50 > 0.70 > 0.30).
• Overall Score: 2.50, posCount = (three +1s in Trend) + (two +1s in Momentum) + (two +1s in Price Action) = 7 bullish signals, negCount = 0.
• Final Zone = “BULLISH.”
• The trader sees that both Trend and Momentum are reinforcing each other under high volatility. They might wait one more candle for confirmation but already have strong evidence to consider a long.
---
• .
---
Disclaimer
This indicator is strictly a technical analysis tool and does not constitute financial advice. All trading involves risk, including potential loss of capital. Past performance is not indicative of future results. Traders should:
• Always backtest the “Market Zone Analyzer ” on their chosen symbols and timeframes before committing real capital.
• Combine this tool with sound risk management, position sizing, and, if possible, fundamental analysis.
• Understand that no indicator is foolproof; always be prepared for unexpected market moves.
Goodluck
-BullByte!
---
True Range eXpansion🕯️ TRX — True Range eXpansion
Clean Candle Bodies · Volatility Bands · Adaptive Range Envelope System
Not your grandfather’s candles. Not your brokerage’s bands.
----------------------------------------------------
TRX begins with a simple concept: visualize the true range of every candle, without the noise of flickering wicks.
From there, it grows into a fully adaptive price visualization framework.
What started as a candle-only visualizer evolved into a modular, user-controlled price engine.
From wickless candle clarity to dynamic volatility envelopes, TRX adapts to you.
There are plenty of band and channel indicators out there — Bollinger, Keltner, Donchian, Envelope, the whole crew.
But none of them are built on the true candle range, adaptive ATR shaping, and full user control like TRX.
This isn’t just another indicator — it’s a new framework.
Most bands and channels are based on close price and statistical deviation — useful, but limited.
TRX uses the full true range of each candle as its foundation, then applies customizable smoothing and directional ATR scaling to form a dynamic, volatility-reactive envelope.
The result? Bands that breathe with the market — not lag behind it.
----------------------------------------------------
🔧 Core Features:
🕯️ True Range Candles — Each candle is plotted from low to high, body-only, colored by open/close.
📈 Adjustable High/Low Moving Averages — Select your smoothing style: SMA, EMA, WMA, RMA, or HMA.
🌬️ ATR-Based Expansion — Bands dynamically breathe based on market volatility.
🔀 Per-Band Multipliers — Fine-tune expansion individually for the upper and lower bands.
⚖️ Basis Line — Optional centerline between bands for structure tracking and equilibrium zones.
🎛️ Full Visual Control — Width, transparency, color, on/off toggles for each element.
----------------------------------------------------
🧠 Default Use Case:
With the included default settings, TRX behaves like an evolved Bollinger Band system — based on True Range candle structure, not just close price and standard deviation.
----------------------------------------------------
🔄 How to Zero Out the Bands (for Minimalist Use):
Want just candles? A clean MA? Single band? You got it.
➤ Use TRX like a clean moving average:
• Set ATR Multiplier to 0
• Set both Band ATR Adjustments to 0
• Leave the Basis Line ON or OFF — your call
➤ Show only candles (no bands at all):
• Turn off "Show High/Low MAs"
• Turn off Basis Line
➤ Single-line ceiling or floor tracking:
• Set one band’s Transparency to 100
• Use the remaining band as a price envelope or support/resistance guide
----------------------------------------------------
🧬 Notes:
TRX can be made:
• Spiky or silky (via smoothing & ATR)
• Wide or tight (via multipliers)
• Subtle or aggressive (via color/transparency)
• Clean as a compass or dirty as a chaos meter
Built by accident. Tuned with intention.
Released to the world as one of the most adaptable and expressive visual overlays ever made.
Created by Sherlock_MacGyver
Adaptive Momentum Flow (AMF)Overview
The Adaptive Momentum Flow (AMF) indicator is a powerful, multi-faceted tool designed to provide a comprehensive and adaptive view of market momentum and trend strength. Unlike traditional oscillators with fixed settings, AMF dynamically adjusts its calculations based on market volatility , ensuring its signals remain relevant across varying market conditions. By combining advanced Double Exponential Moving Averages (DEMA) with a powerful volume analysis component and a customizable scoring system, AMF offers a unique perspective on price action and underlying buying/selling pressure.
Key Features & How It Works
1. Adaptive DEMA Trend Strength:
At its core, AMF utilizes three DEMA lines (Fast, Medium, Slow) to assess the current trend's alignment and strength.
The indicator dynamically adjusts the lengths of these DEMA lines based on real-time market volatility, measured by Average True Range (ATR). This means AMF becomes more responsive in volatile markets and smoother in calmer periods.
A "Volatility Sensitivity" input allows you to fine-tune how aggressively the indicator adapts to these changes.
2. Volume Analysis (Buying/Selling Pressure):
AMF incorporates a dedicated volume analysis module to gauge whether volume is predominantly supporting upward or downward price movements. This helps identify periods of significant buying or selling pressure.
This volume analysis component is smoothed with an adjustable Moving Average (SMA, EMA, WMA, or DEMA) and contributes to the overall momentum score, adding a crucial layer of volume-driven confirmation to the analysis.
3. Comprehensive Scoring System:
The indicator generates a normalized "Oscillator Score" that ranges from -100 to 100. This score is a weighted sum of:
Price's relationship to the Fast DEMA.
The Fast DEMA's relationship to the Medium DEMA.
The Medium DEMA's relationship to the Slow DEMA.
The smoothed value from the volume analysis.
Each component's influence on the final score can be individually adjusted via input weights, allowing for deep customization.
Signal Line & Crossovers:
A smoothed "Signal Line" provides additional confirmation for momentum shifts. Crossovers between the main AMF line and its Signal Line can indicate potential changes in market direction.
Overbought/Oversold Levels:
Adjustable Overbought (default 70) and Oversold (default -70) levels visually highlight extreme momentum conditions.
These zones are enhanced with a color fill effect (bright red for overbought, bright cyan for oversold), making it easy to spot when the market is entering potentially exhausted states.
Crucially, these extreme zones can often be further validated by combining them with volatility bands (like Bollinger Bands or Keltner Channels as shown in the chart above) or other confluence indicators, offering stronger signals for potential reversals or exhaustion.
Benefits for Traders
Reduced Lag: DEMA's inherent design helps minimize lag compared to traditional moving averages, providing more timely signals.
Adaptive Intelligence: Automatically adjusts to market volatility, ensuring the indicator's sensitivity is appropriate for current conditions.
Holistic Momentum View: Combines price-based trend alignment with volume-based pressure for a more robust assessment of market flow.
Clear Visual Cues: Intuitive plots, signal line, and vibrant overbought/oversold zone fills make interpretation straightforward.
Customizable: Extensive input options allow traders to tailor the indicator to their specific trading style, asset, and timeframe.
How to Use
Trend Confirmation: Look for the AMF line and its Signal Line to align with the price trend.
Momentum Shifts: Crossovers between the AMF line and its Signal Line can indicate shifts in momentum.
Extreme Conditions: Pay attention when the AMF line enters the neon-highlighted overbought or oversold zones, signaling potential reversals or pauses in the current momentum. Always consider confirming these signals with other analysis tools, such as price action, chart patterns, support/resistance levels, or volatility indicators.
Customization: Experiment with the "Volatility Sensitivity," DEMA multipliers, and scoring weights to find the optimal settings for your trading strategy.
Ehlers Ultimate Bands (UBANDS)UBANDS: ULTIMATE BANDS
🔍 OVERVIEW AND PURPOSE
Ultimate Bands, developed by John F. Ehlers, are a volatility-based channel indicator designed to provide a responsive and smooth representation of price boundaries with significantly reduced lag compared to traditional Bollinger Bands. Bollinger Bands typically use a Simple Moving Average for the centerline and standard deviations from it to establish the bands, both of which can increase lag. Ultimate Bands address this by employing Ehlers' Ultrasmooth Filter for the central moving average. The bands are then plotted based on the volatility of price around this ultrasmooth centerline.
The primary purpose of Ultimate Bands is to offer traders a clearer view of potential support and resistance levels that react quickly to price changes while filtering out excessive noise, aiming for nearly zero lag in the indicator band.
🧩 CORE CONCEPTS
Ultrasmooth Centerline: Employs the Ehlers Ultrasmooth Filter as the basis (centerline) for the bands, aiming for minimal lag and enhanced smoothing.
Volatility-Adaptive Width: The distance between the upper and lower bands is determined by a measure of price deviation from the ultrasmooth centerline. This causes the bands to widen during volatile periods and contract during calm periods.
Dynamic Support/Resistance: The bands serve as dynamic levels of potential support (lower band) and resistance (upper band).
🧮 CALCULATION AND MATHEMATICAL FOUNDATION
Ehlers' Original Concept for Deviation:
John Ehlers describes the deviation calculation as: "The deviation at each data sample is the difference between Smooth and the Close at that data point. The Standard Deviation (SD) is computed as the square root of the average of the squares of the individual deviations."
This describes calculating the Root Mean Square (RMS) of the residuals:
Smooth = UltrasmoothFilter(Source, Length)
Residuals = Source - Smooth
SumOfSquaredResiduals = Sum(Residuals ^2) for i over Length
MeanOfSquaredResiduals = SumOfSquaredResiduals / Length
SD_Ehlers = SquareRoot(MeanOfSquaredResiduals) (This is the RMS of residuals)
Pine Script Implementation's Deviation:
The provided Pine Script implementation calculates the statistical standard deviation of the residuals:
Smooth = UltrasmoothFilter(Source, Length) (referred to as _ehusf in the script)
Residuals = Source - Smooth
Mean_Residuals = Average(Residuals, Length)
Variance_Residuals = Average((Residuals - Mean_Residuals)^2, Length)
SD_Pine = SquareRoot(Variance_Residuals) (This is the statistical standard deviation of residuals)
Band Calculation (Common to both approaches, using their respective SD):
UpperBand = Smooth + (NumSDs × SD)
LowerBand = Smooth - (NumSDs × SD)
🔍 Technical Note: The Pine Script implementation uses a statistical standard deviation of the residuals (differences between price and the smooth average). Ehlers' original text implies an RMS of these residuals. While both measure dispersion, they will yield slightly different values. The Ultrasmooth Filter itself is a key component, designed for responsiveness.
📈 INTERPRETATION DETAILS
Reduced Lag: The primary advantage is the significant reduction in lag compared to standard Bollinger Bands, allowing for quicker reaction to price changes.
Volatility Indication: Widening bands indicate increasing market volatility, while narrowing bands suggest decreasing volatility.
Overbought/Oversold Conditions (Use with caution):
• Price touching or exceeding the Upper Band may suggest overbought conditions.
• Price touching or falling below the Lower Band may suggest oversold conditions.
Trend Identification:
• Price consistently "walking the band" (moving along the upper or lower band) can indicate a strong trend.
• The Middle Band (Ultrasmooth Filter) acts as a dynamic support/resistance level and indicates the short-term trend direction.
Comparison to Ultimate Channel: Ehlers notes that the Ultimate Band indicator does not differ from the Ultimate Channel indicator in any major fashion.
🛠️ USE AND APPLICATION
Ultimate Bands can be used similarly to how Keltner Channels or Bollinger Bands are used for interpreting price action, with the main difference being the reduced lag.
Example Trading Strategy (from John F. Ehlers):
Hold a position in the direction of the Ultimate Smoother (the centerline).
Exit that position when the price "pops" outside the channel or band in the opposite direction of the trade.
This is described as a trend-following strategy with an automatic following stop.
⚠️ LIMITATIONS AND CONSIDERATIONS
Lag (Minimized but Present): While significantly reduced, some minimal lag inherent to averaging processes will still exist. Increasing the Length parameter for smoother bands will moderately increase this lag.
Parameter Sensitivity: The Length and StdDev Multiplier settings are key to tuning the indicator for different assets and timeframes.
False Signals: As with any band indicator, false signals can occur, particularly in choppy or non-trending markets.
Not a Standalone System: Best used in conjunction with other forms of analysis for confirmation.
Deviation Calculation Nuance: Be aware of the difference in deviation calculation (statistical standard deviation vs. RMS of residuals) if comparing directly to Ehlers' original concept as described.
📚 REFERENCES
Ehlers, J. F. (2024). Article/Publication where "Code Listing 2" for Ultimate Bands is featured. (Specific source to be identified if known, e.g., "Stocks & Commodities Magazine, Vol. XX, No. YY").
Ehlers, J. F. (General). Various publications on advanced filtering and cycle analysis. (e.g., "Rocket Science for Traders", "Cycle Analytics for Traders").
The VoVix Experiment The VoVix Experiment
The VoVix Experiment is a next-generation, regime-aware, volatility-adaptive trading strategy for futures, indices, and more. It combines a proprietary VoVix (volatility-of-volatility) anomaly detector with price structure clustering and critical point logic, only trading when multiple independent signals align. The system is designed for robustness, transparency, and real-world execution.
Logic:
VoVix Regime Engine: Detects pre-move volatility anomalies using a fast/slow ATR ratio, normalized by Z-score. Only trades when a true regime spike is detected, not just random volatility.
Cluster & Critical Point Filters: Price structure and volatility clustering must confirm the VoVix signal, reducing false positives and whipsaws.
Adaptive Sizing: Position size scales up for “super-spikes” and down for normal events, always within user-defined min/max.
Session Control: Trades only during user-defined hours and days, avoiding illiquid or high-risk periods.
Visuals: Aurora Flux Bands (From another Original of Mine (Options Flux Flow): glow and change color on signals, with a live dashboard, regime heatmap, and VoVix progression bar for instant insight.
Backtest Settings
Initial capital: $10,000
Commission: Conservative, realistic roundtrip cost:
15–20 per contract (including slippage per side) I set this to $25
Slippage: 3 ticks per trade
Symbol: CME_MINI:NQ1!
Timeframe: 15 min (but works on all timeframes)
Order size: Adaptive, 1–2 contracts
Session: 5:00–15:00 America/Chicago (default, fully adjustable)
Why these settings?
These settings are intentionally strict and realistic, reflecting the true costs and risks of live trading. The 10,000 account size is accessible for most retail traders. 25/contract including 3 ticks of slippage are on the high side for MNQ, ensuring the strategy is not curve-fit to perfect fills. If it works here, it will work in real conditions.
Forward Testing: (This is no guarantee. I've provided these results to show that executions perform as intended. Test were done on Tradovate)
ALL TRADES
Gross P/L: $12,907.50
# of Trades: 64
# of Contracts: 186
Avg. Trade Time: 1h 55min 52sec
Longest Trade Time: 55h 46min 53sec
% Profitable Trades: 59.38%
Expectancy: $201.68
Trade Fees & Comm.: $(330.95)
Total P/L: $12,576.55
Winning Trades: 59.38%
Breakeven Trades: 3.12%
Losing Trades: 37.50%
Link: www.dropbox.com
Inputs & Tooltips
VoVix Regime Execution: Enable/disable the core VoVix anomaly detector.
Volatility Clustering: Require price/volatility clusters to confirm VoVix signals.
Critical Point Detector: Require price to be at a statistically significant distance from the mean (regime break).
VoVix Fast ATR Length: Short ATR for fast volatility detection (lower = more sensitive).
VoVix Slow ATR Length: Long ATR for baseline regime (higher = more stable).
VoVix Z-Score Window: Lookback for Z-score normalization (higher = smoother, lower = more reactive).
VoVix Entry Z-Score: Minimum Z-score for a VoVix spike to trigger a trade.
VoVix Exit Z-Score: Z-score below which the regime is considered decayed (exit).
VoVix Local Max Window: Bars to check for local maximum in VoVix (higher = stricter).
VoVix Super-Spike Z-Score: Z-score for “super” regime events (scales up position size).
Min/Max Contracts: Adaptive position sizing range.
Session Start/End Hour: Only trade between these hours (exchange time).
Allow Weekend Trading: Enable/disable trading on weekends.
Session Timezone: Timezone for session filter (e.g., America/Chicago for CME).
Show Trade Labels: Show/hide entry/exit labels on chart.
Flux Glow Opacity: Opacity of Aurora Flux Bands (0–100).
Flux Band EMA Length: EMA period for band center.
Flux Band ATR Multiplier: Width of bands (higher = wider).
Compliance & Transparency
* No hidden logic, no repainting, no pyramiding.
* All signals, sizing, and exits are fully explained and visible.
* Backtest settings are stricter than most real accounts.
* All visuals are directly tied to the strategy logic.
* This is not a mashup or cosmetic overlay; every component is original and justified.
Disclaimer
Trading is risky. This script is for educational and research purposes only. Do not trade with money you cannot afford to lose. Past performance is not indicative of future results. Always test in simulation before live trading.
Proprietary Logic & Originality Statement
This script, “The VoVix Experiment,” is the result of original research and development. All core logic, algorithms, and visualizations—including the VoVix regime detection engine, adaptive execution, volatility/divergence bands, and dashboard—are proprietary and unique to this project.
1. VoVix Regime Logic
The concept of “volatility of volatility” (VoVix) is an original quant idea, not a standard indicator. The implementation here (fast/slow ATR ratio, Z-score normalization, local max logic, super-spike scaling) is custom and not found in public TradingView scripts.
2. Cluster & Critical Point Logic
Volatility clustering and “critical point” detection (using price distance from a rolling mean and standard deviation) are general quant concepts, but the way they are combined and filtered here is unique to this script. The specific logic for “clustered chop” and “critical point” is not a copy of any public indicator.
3. Adaptive Sizing
The adaptive sizing logic (scaling contracts based on regime strength) is custom and not a standard TradingView feature or public script.
4. Time Block/Session Control
The session filter is a common feature in many strategies, but the implementation here (with timezone and weekend control) is written from scratch.
5. Aurora Flux Bands (From another Original of Mine (Options Flux Flow)
The “glowing” bands are inspired by the idea of volatility bands (like Bollinger Bands or Keltner Channels), but the visual effect, color logic, and integration with regime signals are original to this script.
6. Dashboard, Watermark, and Metrics
The dashboard, real-time Sharpe/Sortino, and VoVix progression bar are all custom code, not copied from any public script.
What is “standard” or “common quant practice”?
Using ATR, EMA, and Z-score are standard quant tools, but the way they are combined, filtered, and visualized here is unique. The structure and logic of this script are original and not a mashup of public code.
This script is 100% original work. All logic, visuals, and execution are custom-coded for this project. No code or logic is directly copied from any public or private script.
Use with discipline. Trade your edge.
— Dskyz, for DAFE Trading Systems
Disparity Index with Volatility ZonesDisparity Index with Volatility Zones
is a momentum oscillator that measures the percentage difference between the current price and its simple moving average (SMA). This allows traders to identify overbought/oversold conditions, assess momentum strength, and detect potential trend reversals or continuations.
🔍 Core Concept:
The Disparity Index (DI) is calculated as:
DI = 100 × (Price − SMA) / SMA
A positive DI indicates the price is trading above its moving average (potential bullish sentiment), while a negative DI suggests the price is below the average (potential bearish sentiment).
This version of the Disparity Index introduces a dual-zone volatility framework, offering deeper insight into the market's current state.
🧠 What Makes This Version Unique?
1. High Volatility Zones
When DI crosses above +1.0% or below –1.0%, it often indicates the start or continuation of a strong trend.
Sustained readings beyond these thresholds typically align with trending phases, offering opportunities for momentum-based entries.
A reversal back within ±1.0% after exceeding these levels can suggest a shift in momentum — similar to how RSI exits the overbought/oversold zones before reversals.
These thresholds act as dynamic markers for breakout confirmation and potential trend exhaustion.
2. Low Volatility Zones
DI values between –0.5% and +0.5% define the low-volatility zone, shaded for visual clarity.
This area typically indicates market indecision, sideways price action, or consolidation.
Trading within this range may favor range-bound or mean-reversion strategies, as trend momentum is likely limited.
The logic is similar to interpreting a flat ADX, tight Bollinger Bands, or contracting Keltner Channels — all suggesting consolidation.
⚙️ Features:
Customizable moving average length and input source
Adjustable thresholds for overbought/oversold and low-volatility zones
Optional visual fill between low-volatility bounds
Clean and minimal chart footprint (non-essential plots hidden by default)
📈 How to Use:
1. Trend Confirmation:
A break above +1.0% can be used as a bullish continuation signal.
A break below –1.0% may confirm bearish strength.
Long periods above/below these thresholds support trend-following entries.
2. Reversal Detection:
If DI returns below +1.0% after exceeding it, bullish momentum may be fading.
If DI rises above –1.0% after falling below, bearish pressure may be weakening.
These shifts resemble overbought/oversold transitions in oscillators like RSI or Stochastic, and can be paired with divergence, volume, or price structure analysis for higher reliability.
3. Sideways Market Detection:
DI values within ±0.5% indicate low volatility or a non-trending environment.
Traders may avoid breakout entries during these periods or apply range-trading tactics instead.
Observing transitions out of the low-volatility zone can help anticipate breakouts.
4. Combine with Other Indicators:
DI signals can be enhanced using tools like MACD, Volume Oscillators, or Moving Averages.
For example, a DI breakout beyond ±1.0% supported by a MACD crossover or volume spike can help validate trend initiation.
This indicator is especially powerful when paired with Bollinger Bands:
A simultaneous price breakout from the Bollinger Band and DI moving beyond ±1.0% can help identify early trend inflection points.
This combination supports entering positions early in a developing trend, improving the efficiency of trend-following strategies and enhancing decision-making precision.
It also helps filter false breakouts when DI fails to confirm the move outside the band.
This indicator is designed for educational and analytical purposes and works across all timeframes and asset classes.
It is particularly useful for traders seeking a clear framework to identify momentum strength, filter sideways markets, and improve entry timing within a larger trading system.
Q Squeeze TrendQ Squeeze Trend
A sharp, signal-based trend tool that combines classic SuperTrend mechanics with configurable squeeze breakout logic and momentum confirmation. Built for clean entry points and minimalist charting — perfect for fast setups and real-time alerts.
🔧 Core Features
Configurable Squeeze Breakout Logic
• Detects low-volatility "squeeze" phases using customizable Bollinger Band vs. Keltner Channel logic
• Confirms breakouts only when momentum aligns with directional bias
SuperTrend Confirmation
• Filters noise and validates signals based on ATR-based trend logic
• Adds directional confidence before triggering signals
Alternating Signal Logic
• Ensures only one directional signal is active at a time
• Avoids repetitive entries and improves clarity
Clean Visual Feedback
• Directional arrows on confirmed buy/sell signals
• Optional colored fill between price and signal level
• Lightweight, non-intrusive label system
Real-Time Alerts
• Alerts for confirmed buy and sell setups
• Easy integration with webhooks, bots, or mobile notifications
⚙️ Configurable Inputs
• ATR Period & Multiplier – adjust SuperTrend sensitivity
• Squeeze Length, BB/KC Multipliers – fine-tune compression detection
• Signal Colors – customize arrow and background styling
✨ Highlights
• Designed for fast, visual trading with minimal clutter
• Non-repainting logic, effective across all timeframes
• Pairs well with structure, momentum, and volume strategies
📈 How to Use
• Enter on breakout arrows when trend, momentum, and squeeze align
• Use background fill to track current direction
• Exit on opposite signal, or combine with your own trade management logic
Institutional Quantum Momentum Impulse [BullByte]## Overview
The Institutional Quantum Momentum Impulse (IQMI) is a sophisticated momentum oscillator designed to detect institutional-level trend strength, volatility conditions, and market regime shifts. It combines multiple advanced technical concepts, including:
- Quantum Momentum Engine (Hilbert Transform + MACD Divergence + Stochastic Energy)
- Fractal Volatility Scoring (GARCH + Keltner-based volatility)
- Dynamic Adaptive Bands (Self-adjusting thresholds based on efficiency)
- Market Phase Detection (Volume + Momentum alignment)
- Liquidity & Cumulative Delta Analysis
The indicator provides a Z-score normalized momentum reading, making it ideal for mean-reversion and trend-following strategies.
---
## Key Features
### 1. Quantum Momentum Core
- Combines Hilbert Transform, MACD divergence, and Stochastic Energy into a single composite momentum score.
- Normalized using a Z-score for statistical significance.
- Smoothed with EMA/WMA/HMA for cleaner signals.
### 2. Dynamic Adaptive Bands
- Upper/Lower bands adjust based on volatility and efficiency ratio .
- Acts as overbought/oversold zones when momentum reaches extremes.
### 3. Market Phase Detection
- Identifies bullish , bearish , or neutral phases using:
- Volume-Weighted MA alignment
- Fractal momentum extremes
### 4. Volatility & Liquidity Filters
- Fractal Volatility Score (0-100 scale) shows market instability.
- Liquidity Check ensures trades are taken in favorable spread conditions.
### 5. Dashboard & Visuals
- Real-time dashboard with key metrics:
- Momentum strength, volatility, efficiency, cumulative delta, and market regime.
- Gradient coloring for intuitive momentum visualization .
---
## Best Trade Setups
### 1. Trend-Following Entries
- Signal :
- QM crosses above zero + Market Phase = Bullish + ADX > 25
- Cumulative Delta rising (buying pressure)
- Confirmation :
- Efficiency > 0.5 (strong momentum quality)
- Liquidity = High (tight spreads)
### 2. Mean-Reversion Entries
- Signal :
- QM touches upper band + Volatility expanding
- Market Regime = Ranging (ADX < 25)
- Confirmation :
- Efficiency < 0.3 (weak momentum follow-through)
- Cumulative Delta divergence (price high but delta declining)
### 3. Breakout Confirmation
- Signal :
- QM holds above zero after a pullback
- Market Phase shifts to Bullish/Bearish
- Confirmation :
- Volatility rising (expansion phase)
- Liquidity remains high
---
## Recommended Timeframes
- Intraday (5M - 1H): Works well for scalping & swing trades.
- Swing Trading (4H - Daily): Best for trend-following setups.
- Position Trading (Weekly+): Useful for macro trend confirmation.
---
## Input Customization
- Resonance Factor (1.0 - 3.618 ): Adjusts MACD divergence sensitivity.
- Entropy Filter (0.382/0.50/0.618) : Controls stochastic damping.
- Smoothing Type (EMA/WMA/HMA) : Changes momentum responsiveness.
- Normalization Period : Adjusts Z-score lookback.
---
The IQMI is a professional-grade momentum indicator that combines institutional-level concepts into a single, easy-to-read oscillator. It works across all markets (stocks, forex, crypto) and is ideal for traders who want:
✅ Early trend detection
✅ Volatility-adjusted signals
✅ Institutional liquidity insights
✅ Clear dashboard for quick analysis
Try it on TradingView and enhance your trading edge! 🚀
Happy Trading!
- BullByte






















