Historical Matrix Analyzer [PhenLabs]📊Historical Matrix Analyzer
Version: PineScriptv6
📌Description
The Historical Matrix Analyzer is an advanced probabilistic trading tool that transforms technical analysis into a data-driven decision support system. By creating a comprehensive 56-cell matrix that tracks every combination of RSI states and multi-indicator conditions, this indicator reveals which market patterns have historically led to profitable outcomes and which have not.
At its core, the indicator continuously monitors seven distinct RSI states (ranging from Extreme Oversold to Extreme Overbought) and eight unique indicator combinations (MACD direction, volume levels, and price momentum). For each of these 56 possible market states, the system calculates average forward returns, win rates, and occurrence counts based on your configurable lookback period. The result is a color-coded probability matrix that shows you exactly where you stand in the historical performance landscape.
The standout feature is the Current State Panel, which provides instant clarity on your active market conditions. This panel displays signal strength classifications (from Strong Bullish to Strong Bearish), the average return percentage for similar past occurrences, an estimated win rate using Bayesian smoothing to prevent small-sample distortions, and a confidence level indicator that warns you when insufficient data exists for reliable conclusions.
🚀Points of Innovation
Multi-dimensional state classification combining 7 RSI levels with 8 indicator combinations for 56 unique trackable market conditions
Bayesian win rate estimation with adjustable smoothing strength to provide stable probability estimates even with limited historical samples
Real-time active cell highlighting with “NOW” marker that visually connects current market conditions to their historical performance data
Configurable color intensity sensitivity allowing traders to adjust heat-map responsiveness from conservative to aggressive visual feedback
Dual-panel display system separating the comprehensive statistics matrix from an easy-to-read current state summary panel
Intelligent confidence scoring that automatically warns traders when occurrence counts fall below reliable thresholds
🔧Core Components
RSI State Classification: Segments RSI readings into 7 distinct zones (Extreme Oversold <20, Oversold 20-30, Weak 30-40, Neutral 40-60, Strong 60-70, Overbought 70-80, Extreme Overbought >80) to capture momentum extremes and transitions
Multi-Indicator Condition Tracking: Simultaneously monitors MACD crossover status (bullish/bearish), volume relative to moving average (high/low), and price direction (rising/falling) creating 8 binary-encoded combinations
Historical Data Storage Arrays: Maintains rolling lookback windows storing RSI states, indicator states, prices, and bar indices for precise forward-return calculations
Forward Performance Calculator: Measures price changes over configurable forward bar periods (1-20 bars) from each historical state, accumulating total returns and win counts per matrix cell
Bayesian Smoothing Engine: Applies statistical prior assumptions (default 50% win rate) weighted by user-defined strength parameter to stabilize estimated win rates when sample sizes are small
Dynamic Color Mapping System: Converts average returns into color-coded heat map with intensity adjusted by sensitivity parameter and transparency modified by confidence levels
🔥Key Features
56-Cell Probability Matrix: Comprehensive grid displaying every possible combination of RSI state and indicator condition, with each cell showing average return percentage, estimated win rate, and occurrence count for complete statistical visibility
Current State Info Panel: Dedicated display showing your exact position in the matrix with signal strength emoji indicators, numerical statistics, and color-coded confidence warnings for immediate situational awareness
Customizable Lookback Period: Adjustable historical window from 50 to 500 bars allowing traders to focus on recent market behavior or capture longer-term pattern stability across different market cycles
Configurable Forward Performance Window: Select target holding periods from 1 to 20 bars ahead to align probability calculations with your trading timeframe, whether day trading or swing trading
Visual Heat Mapping: Color-coded cells transition from red (bearish historical performance) through gray (neutral) to green (bullish performance) with intensity reflecting statistical significance and occurrence frequency
Intelligent Data Filtering: Minimum occurrence threshold (1-10) removes unreliable patterns with insufficient historical samples, displaying gray warning colors for low-confidence cells
Flexible Layout Options: Independent positioning of statistics matrix and info panel to any screen corner, accommodating different chart layouts and personal preferences
Tooltip Details: Hover over any matrix cell to see full RSI label, complete indicator status description, precise average return, estimated win rate, and total occurrence count
🎨Visualization
Statistics Matrix Table: A 9-column by 8-row grid with RSI states labeling vertical axis and indicator combinations on horizontal axis, using compact abbreviations (XOverS, OverB, MACD↑, Vol↓, P↑) for space efficiency
Active Cell Indicator: The current market state cell displays “⦿ NOW ⦿” in yellow text with enhanced color saturation to immediately draw attention to relevant historical performance
Signal Strength Visualization: Info panel uses emoji indicators (🔥 Strong Bullish, ✅ Bullish, ↗️ Weak Bullish, ➖ Neutral, ↘️ Weak Bearish, ⛔ Bearish, ❄️ Strong Bearish, ⚠️ Insufficient Data) for rapid interpretation
Histogram Plot: Below the price chart, a green/red histogram displays the current cell’s average return percentage, providing a time-series view of how historical performance changes as market conditions evolve
Color Intensity Scaling: Cell background transparency and saturation dynamically adjust based on both the magnitude of average returns and the occurrence count, ensuring visual emphasis on reliable patterns
Confidence Level Display: Info panel bottom row shows “High Confidence” (green), “Medium Confidence” (orange), or “Low Confidence” (red) based on occurrence counts relative to minimum threshold multipliers
📖Usage Guidelines
RSI Period
Default: 14
Range: 1 to unlimited
Description: Controls the lookback period for RSI momentum calculation. Standard 14-period provides widely-recognized overbought/oversold levels. Decrease for faster, more sensitive RSI reactions suitable for scalping. Increase (21, 28) for smoother, longer-term momentum assessment in swing trading. Changes affect how quickly the indicator moves between the 7 RSI state classifications.
MACD Fast Length
Default: 12
Range: 1 to unlimited
Description: Sets the faster exponential moving average for MACD calculation. Standard 12-period setting works well for daily charts and captures short-term momentum shifts. Decreasing creates more responsive MACD crossovers but increases false signals. Increasing smooths out noise but delays signal generation, affecting the bullish/bearish indicator state classification.
MACD Slow Length
Default: 26
Range: 1 to unlimited
Description: Defines the slower exponential moving average for MACD calculation. Traditional 26-period setting balances trend identification with responsiveness. Must be greater than Fast Length. Wider spread between fast and slow increases MACD sensitivity to trend changes, impacting the frequency of indicator state transitions in the matrix.
MACD Signal Length
Default: 9
Range: 1 to unlimited
Description: Smoothing period for the MACD signal line that triggers bullish/bearish state changes. Standard 9-period provides reliable crossover signals. Shorter values create more frequent state changes and earlier signals but with more whipsaws. Longer values produce more confirmed, stable signals but with increased lag in detecting momentum shifts.
Volume MA Period
Default: 20
Range: 1 to unlimited
Description: Lookback period for volume moving average used to classify volume as “high” or “low” in indicator state combinations. 20-period default captures typical monthly trading patterns. Shorter periods (10-15) make volume classification more reactive to recent spikes. Longer periods (30-50) require more sustained volume changes to trigger state classification shifts.
Statistics Lookback Period
Default: 200
Range: 50 to 500
Description: Number of historical bars used to calculate matrix statistics. 200 bars provides substantial data for reliable patterns while remaining responsive to regime changes. Lower values (50-100) emphasize recent market behavior and adapt quickly but may produce volatile statistics. Higher values (300-500) capture long-term patterns with stable statistics but slower adaptation to changing market dynamics.
Forward Performance Bars
Default: 5
Range: 1 to 20
Description: Number of bars ahead used to calculate forward returns from each historical state occurrence. 5-bar default suits intraday to short-term swing trading (5 hours on hourly charts, 1 week on daily charts). Lower values (1-3) target short-term momentum trades. Higher values (10-20) align with position trading and longer-term pattern exploitation.
Color Intensity Sensitivity
Default: 2.0
Range: 0.5 to 5.0, step 0.5
Description: Amplifies or dampens the color intensity response to average return magnitudes in the matrix heat map. 2.0 default provides balanced visual emphasis. Lower values (0.5-1.0) create subtle coloring requiring larger returns for full saturation, useful for volatile instruments. Higher values (3.0-5.0) produce vivid colors from smaller returns, highlighting subtle edges in range-bound markets.
Minimum Occurrences for Coloring
Default: 3
Range: 1 to 10
Description: Required minimum sample size before applying color-coded performance to matrix cells. Cells with fewer occurrences display gray “insufficient data” warning. 3-occurrence default filters out rare patterns. Lower threshold (1-2) shows more data but includes unreliable single-event statistics. Higher thresholds (5-10) ensure only well-established patterns receive visual emphasis.
Table Position
Default: top_right
Options: top_left, top_right, bottom_left, bottom_right
Description: Screen location for the 56-cell statistics matrix table. Position to avoid overlapping critical price action or other indicators on your chart. Consider chart orientation and candlestick density when selecting optimal placement.
Show Current State Panel
Default: true
Options: true, false
Description: Toggle visibility of the dedicated current state information panel. When enabled, displays signal strength, RSI value, indicator status, average return, estimated win rate, and confidence level for active market conditions. Disable to declutter charts when only the matrix table is needed.
Info Panel Position
Default: bottom_left
Options: top_left, top_right, bottom_left, bottom_right
Description: Screen location for the current state information panel (when enabled). Position independently from statistics matrix to optimize chart real estate. Typically placed opposite the matrix table for balanced visual layout.
Win Rate Smoothing Strength
Default: 5
Range: 1 to 20
Description: Controls Bayesian prior weighting for estimated win rate calculations. Acts as virtual sample size assuming 50% win rate baseline. Default 5 provides moderate smoothing preventing extreme win rate estimates from small samples. Lower values (1-3) reduce smoothing effect, allowing win rates to reflect raw data more directly. Higher values (10-20) increase conservatism, pulling win rate estimates toward 50% until substantial evidence accumulates.
✅Best Use Cases
Pattern-based discretionary trading where you want historical confirmation before entering setups that “look good” based on current technical alignment
Swing trading with holding periods matching your forward performance bar setting, using high-confidence bullish cells as entry filters
Risk assessment and position sizing, allocating larger size to trades originating from cells with strong positive average returns and high estimated win rates
Market regime identification by observing which RSI states and indicator combinations are currently producing the most reliable historical patterns
Backtesting validation by comparing your manual strategy signals against the historical performance of the corresponding matrix cells
Educational tool for developing intuition about which technical condition combinations have actually worked versus those that feel right but lack historical evidence
⚠️Limitations
Historical patterns do not guarantee future performance, especially during unprecedented market events or regime changes not represented in the lookback period
Small sample sizes (low occurrence counts) produce unreliable statistics despite Bayesian smoothing, requiring caution when acting on low-confidence cells
Matrix statistics lag behind rapidly changing market conditions, as the lookback period must accumulate new state occurrences before updating performance data
Forward return calculations use fixed bar periods that may not align with actual trade exit timing, support/resistance levels, or volatility-adjusted profit targets
💡What Makes This Unique
Multi-Dimensional State Space: Unlike single-indicator tools, simultaneously tracks 56 distinct market condition combinations providing granular pattern resolution unavailable in traditional technical analysis
Bayesian Statistical Rigor: Implements proper probabilistic smoothing to prevent overconfidence from limited data, a critical feature missing from most pattern recognition tools
Real-Time Contextual Feedback: The “NOW” marker and dedicated info panel instantly connect current market conditions to their historical performance profile, eliminating guesswork
Transparent Occurrence Counts: Displays sample sizes directly in each cell, allowing traders to judge statistical reliability themselves rather than hiding data quality issues
Fully Customizable Analysis Window: Complete control over lookback depth and forward return horizons lets traders align the tool precisely with their trading timeframe and strategy requirements
🔬How It Works
1. State Classification and Encoding
Each bar’s RSI value is evaluated and assigned to one of 7 discrete states based on threshold levels (0: <20, 1: 20-30, 2: 30-40, 3: 40-60, 4: 60-70, 5: 70-80, 6: >80)
Simultaneously, three binary conditions are evaluated: MACD line position relative to signal line, current volume relative to its moving average, and current close relative to previous close
These three binary conditions are combined into a single indicator state integer (0-7) using binary encoding, creating 8 possible indicator combinations
The RSI state and indicator state are stored together, defining one of 56 possible market condition cells in the matrix
2. Historical Data Accumulation
As each bar completes, the current state classification, closing price, and bar index are stored in rolling arrays maintained at the size specified by the lookback period
When the arrays reach capacity, the oldest data point is removed and the newest added, creating a sliding historical window
This continuous process builds a comprehensive database of past market conditions and their subsequent price movements
3. Forward Return Calculation and Statistics Update
On each bar, the indicator looks back through the stored historical data to find bars where sufficient forward bars exist to measure outcomes
For each historical occurrence, the price change from that bar to the bar N periods ahead (where N is the forward performance bars setting) is calculated as a percentage return
This percentage return is added to the cumulative return total for the specific matrix cell corresponding to that historical bar’s state classification
Occurrence counts are incremented, and wins are tallied for positive returns, building comprehensive statistics for each of the 56 cells
The Bayesian smoothing formula combines these raw statistics with prior assumptions (neutral 50% win rate) weighted by the smoothing strength parameter to produce estimated win rates that remain stable even with small samples
💡Note:
The Historical Matrix Analyzer is designed as a decision support tool, not a standalone trading system. Best results come from using it to validate discretionary trade ideas or filter systematic strategy signals. Always combine matrix insights with proper risk management, position sizing rules, and awareness of broader market context. The estimated win rate feature uses Bayesian statistics specifically to prevent false confidence from limited data, but no amount of smoothing can create reliable predictions from fundamentally insufficient sample sizes. Focus on high-confidence cells (green-colored confidence indicators) with occurrence counts well above your minimum threshold for the most actionable insights.
ابحث في النصوص البرمجية عن "change"
Triple SuperTrend + RSI + Fib BBTriple SuperTrend + RSI + Fibonacci Bollinger Bands Strategy
📊 Overview
This advanced trading strategy combines the power of three SuperTrend indicators with RSI confirmation and Fibonacci Bollinger Bands to generate high-probability trade signals. The strategy is designed to capture strong trending moves while filtering out false signals through multi-indicator confluence.
🔧 Core Components
Three SuperTrend Indicators
The strategy uses three SuperTrend indicators with progressively longer periods and multipliers:
SuperTrend 1: 10-period ATR, 1.0 multiplier (fastest, most sensitive)
SuperTrend 2: 11-period ATR, 2.0 multiplier (medium sensitivity)
SuperTrend 3: 12-period ATR, 3.0 multiplier (slowest, most stable)
This layered approach ensures that all three timeframe perspectives align before generating a signal, significantly reducing false entries.
RSI Confirmation (7-period)
The Relative Strength Index acts as a momentum filter:
Long signals require RSI > 50 (bullish momentum)
Short signals require RSI < 50 (bearish momentum)
This prevents entries during weak or divergent price action.
Fibonacci Bollinger Bands (200, 2.618)
Uses a 200-period Simple Moving Average with 2.618 standard deviation bands (Fibonacci ratio). These bands serve dual purposes:
Visual representation of price extremes
Automatic exit trigger when price reaches overextended levels
📈 Entry Logic
LONG Entry (BUY Signal)
A LONG position is opened when ALL of the following conditions are met simultaneously:
All three SuperTrend indicators turn green (bullish)
RSI(7) is above 50
This is the first bar where all conditions align (no repainting)
SHORT Entry (SELL Signal)
A SHORT position is opened when ALL of the following conditions are met simultaneously:
All three SuperTrend indicators turn red (bearish)
RSI(7) is below 50
This is the first bar where all conditions align (no repainting)
🚪 Exit Logic
Positions are automatically closed when ANY of these conditions occur:
SuperTrend Color Change: Any one of the three SuperTrend indicators changes direction
Fibonacci BB Touch: Price reaches or exceeds the upper or lower Fibonacci Bollinger Band (2.618 standard deviations)
This dual-exit approach protects profits by:
Exiting quickly when trend momentum shifts (SuperTrend change)
Taking profits at statistical price extremes (Fib BB touch)
🎨 Visual Features
Signal Arrows
Green Up Arrow (BUY): Appears below the bar when long entry conditions are met
Red Down Arrow (SELL): Appears above the bar when short entry conditions are met
Yellow Down Arrow (EXIT): Appears above the bar when exit conditions are met
Background Coloring
Light Green Tint: All three SuperTrends are bullish (uptrend environment)
Light Red Tint: All three SuperTrends are bearish (downtrend environment)
SuperTrend Lines
Three colored lines plotted with varying opacity:
Solid line (ST1): Most responsive to price changes
Semi-transparent (ST2): Medium-term trend
Most transparent (ST3): Long-term trend structure
Dashboard
Real-time information panel showing:
Individual SuperTrend status (UP/DOWN)
Current RSI value and color-coded status
Current position (LONG/SHORT/FLAT)
Net Profit/Loss
⚙️ Customizable Parameters
SuperTrend Settings
ATR periods for each SuperTrend (default: 10, 11, 12)
Multipliers for each SuperTrend (default: 1.0, 2.0, 3.0)
RSI Settings
RSI length (default: 7)
RSI source (default: close)
Fibonacci Bollinger Bands
BB length (default: 200)
BB multiplier (default: 2.618)
Strategy Options
Enable/disable long trades
Enable/disable short trades
Initial capital
Position sizing
Commission settings
💡 Strategy Philosophy
This strategy is built on the principle of confluence trading - waiting for multiple independent indicators to align before taking a position. By requiring three SuperTrend indicators AND RSI confirmation, the strategy filters out the majority of low-probability setups.
The multi-timeframe SuperTrend approach ensures that short-term, medium-term, and longer-term trends are all in agreement, which typically occurs during strong, sustainable price moves.
The exit strategy is equally important, using both trend-following logic (SuperTrend changes) and mean-reversion logic (Fibonacci BB touches) to adapt to different market conditions.
📊 Best Use Cases
Trending Markets: Works best in markets with clear directional bias
Higher Timeframes: Designed for 15-minute to daily charts
Volatile Assets: SuperTrend indicators excel in assets with clear trends
Swing Trading: Hold times typically range from hours to days
⚠️ Important Notes
No Repainting: All signals are confirmed and will not change on historical bars
One Signal Per Setup: The strategy prevents duplicate signals on consecutive bars
Exit Protection: Always exits before potentially taking an opposite position
Visual Clarity: All three SuperTrend lines are visible simultaneously for transparency
🎯 Recommended Settings
While default parameters are optimized for general use, consider:
Crypto/Volatile Markets: May benefit from slightly higher multipliers
Forex: Default settings work well for major pairs
Stocks: Consider longer BB periods (250-300) for daily charts
Lower Timeframes: Reduce all periods proportionally for scalping
📝 Alerts
Built-in alert conditions for:
BUY signal triggered
SELL signal triggered
EXIT signal triggered
Set up notifications to never miss a trade opportunity!
Disclaimer: This strategy is for educational and informational purposes only. Past performance does not guarantee future results. Always backtest thoroughly and practice proper risk management before live trading.
Structural Liquidity Signals [BullByte]Structural Liquidity Signals (SFP, FVG, BOS, AVWAP)
Short description
Detects liquidity sweeps (SFPs) at pivots and PD/W levels, highlights the latest FVG, tracks AVWAP stretch, arms percentile extremes, and triggers after confirmed micro BOS.
Full description
What this tool does
Structural Liquidity Signals shows where price likely tapped liquidity (stop clusters), then waits for structure to actually change before it prints a trigger. It spots:
Liquidity sweeps (SFPs) at recent pivots and at prior day/week highs/lows.
The latest Fair Value Gap (FVG) that often “pulls” price or serves as a reaction zone.
How far price is stretched from two VWAP anchors (one from the latest impulse, one from today’s session), scaled by ATR so it adapts to volatility.
A “percentile” extreme of an internal score. At extremes the script “arms” a setup; it only triggers after a small break of structure (BOS) on a closed bar.
Originality and design rationale, why it’s not “just a mashup”
This is not a mashup for its own sake. It’s a purpose-built flow that links where liquidity is likely to rest with how structure actually changes:
- Liquidity location: We focus on areas where stops commonly cluster—recent pivots and prior day/week highs/lows—then detect sweeps (SFPs) when price wicks beyond and closes back inside.
- Displacement context: We track the last Fair Value Gap (FVG) to account for recent inefficiency that often acts as a magnet or reaction zone.
- Stretch measurement: We anchor VWAP to the latest N-bar impulse and to the Daily session, then normalize stretch by ATR to assess dislocation consistently across assets/timeframes.
- Composite exhaustion: We combine stretch, wick skew, and volume surprise, then bend the result with a tanh transform so extremes are bounded and comparable.
- Dynamic extremes and discipline: Rather than triggering on every sweep, we “arm” at statistical extremes via percent-rank and only fire after a confirmed micro Break of Structure (BOS). This separates “interesting” from “actionable.”
Key concepts
SFP (liquidity sweep): A candle briefly trades beyond a level (where stops sit) and closes back inside. We detect these at:
Pivots (recent swing highs/lows confirmed by “left/right” bars).
Prior Day/Week High/Low (PDH/PDL/PWH/PWL).
FVG (Fair Value Gap): A small 3‑bar gap (bar2 high vs bar1 low, or vice versa). The latest gap often acts like a magnet or reaction zone. We track the most recent Up/Down gap and whether price is inside it.
AVWAP stretch: Distance from an Anchored VWAP divided by ATR (volatility). We use:
Impulse AVWAP: resets on each new N‑bar high/low.
Daily AVWAP: resets each new session.
PR (Percentile Rank): Where the current internal score sits versus its own recent history (0..100). We arm shorts at high PR, longs at low PR.
Micro BOS: A small break of the recent high (for longs) or low (for shorts). This is the “go/no‑go” confirmation.
How the parts work together
Find likely liquidity grabs (SFPs) at pivots and PD/W levels.
Add context from the latest FVG and AVWAP stretch (how far price is from “fair”).
Build a bounded score (so different markets/timeframes are comparable) and compute its percentile (PR).
Arm at extremes (high PR → short candidate; low PR → long candidate).
Only print a trigger after a micro BOS, on a closed bar, with spacing/cooldown rules.
What you see on the chart (legend)
Lines:
Teal line = Impulse AVWAP (resets on new N‑bar extreme).
Aqua line = Daily AVWAP (resets each session).
PDH/PDL/PWH/PWL = prior day/week levels (toggle on/off).
Zones:
Greenish box = latest Up FVG; Reddish box = latest Down FVG.
The shading/border changes after price trades back through it.
SFP labels:
SFP‑P = SFP at Pivot (dotted line marks that pivot’s price).
SFP‑L = SFP at Level (at PDH/PDL/PWH/PWL).
Throttle: To reduce clutter, SFPs are rate‑limited per direction.
Triggers:
Triangle up = long trigger after BOS; triangle down = short trigger after BOS.
Optional badge shows direction and PR at the moment of trigger.
Optional Trigger Zone is an ATR‑sized box around the trigger bar’s close (for visualization only).
Background:
Light green/red shading = a long/short setup is “armed” (not a trigger).
Dashboard (Mini/Pro) — what each item means
PR: Percentile of the internal score (0..100). Near 0 = bullish extreme, near 100 = bearish extreme.
Gauge: Text bar that mirrors PR.
State: Idle, Armed Long (with a countdown), or Armed Short.
Cooldown: Bars remaining before a new setup can arm after a trigger.
Bars Since / Last Px: How long since last trigger and its price.
FVG: Whether price is in the latest Up/Down FVG.
Imp/Day VWAP Dist, PD Dist(ATR): Distance from those references in ATR units.
ATR% (Gate), Trend(HTF): Status of optional regime filters (volatility/trend).
How to use it (step‑by‑step)
Keep the Safety toggles ON (default): triggers/visuals on bar‑close, optional confirmed HTF for trend slope.
Choose timeframe:
Intraday (5m–1h) or Swing (1h–4h). On very fast/thin charts, enable Performance mode and raise spacing/cooldown.
Watch the dashboard:
When PR reaches an extreme and an SFP context is present, the background shades (armed).
Wait for the trigger triangle:
It prints only after a micro BOS on a closed bar and after spacing/cooldown checks.
Use the Trigger Zone box as a visual reference only:
This script never tells you to buy/sell. Apply your own plan for entry, stop, and sizing.
Example:
Bullish: Sweep under PDL (SFP‑L) and reclaim; PR in lower tail arms long; BOS up confirms → long trigger on bar close (ATR-sized trigger zone shown).
Bearish: Sweep above PDH/pivot (SFP‑L/P) and reject; PR in upper tail arms short; BOS down confirms → short trigger on bar close (ATR-sized trigger zone shown).
Settings guide (with “when to adjust”)
Safety & Stability (defaults ON)
Confirm triggers at bar close, Draw visuals at bar close: Keep ON for clean, stable prints.
Use confirmed HTF values: Applies to HTF trend slope only; keeps it from changing until the HTF bar closes.
Performance mode: Turn ON if your chart is busy or laggy.
Core & Context
ATR Length: Bigger = smoother distances; smaller = more reactive.
Impulse AVWAP Anchor: Larger = fewer resets; smaller = resets more often.
Show Daily AVWAP: ON if you want session context.
Use last FVG in logic: ON to include FVG context in arming/score.
Show PDH/PDL/PWH/PWL: ON to see prior day/week levels that often attract sweeps.
Liquidity & Microstructure
Pivot Left/Right: Higher values = stronger/rarer pivots.
Min Wick Ratio (0..1): Higher = only more pronounced SFP wicks qualify.
BOS length: Larger = stricter BOS; smaller = quicker confirmations.
Signal persistence: Keeps SFP context alive for a few bars to avoid flicker.
Signal Gating
Percent‑Rank Lookback: Larger = more stable extremes; smaller = more reactive extremes.
Arm thresholds (qHi/qLo): Move closer to 0.5 to see more arms; move toward 0/1 to see fewer arms.
TTL, Cooldown, Min bars and Min ATR distance: Space out triggers so you’re not reacting to minor noise.
Regime Filters (optional)
ATR percentile gate: Only allow triggers when volatility is at/above a set percentile.
HTF trend gate: Only allow longs when the HTF slope is up (and shorts when it’s down), above a minimum slope.
Visuals & UX
Only show “important” SFPs: Filters pivot SFPs by Volume Z and |Impulse stretch|.
Trigger badges/history and Max badge count: Control label clutter.
Compact labels: Toggle SFP‑P/L vs full names.
Dashboard mode and position; Dark theme.
Reading PR (the built‑in “oscillator”)
PR ~ 0–10: Potential bullish extreme (long side can arm).
PR ~ 90–100: Potential bearish extreme (short side can arm).
Important: “Armed” ≠ “Enter.” A trigger still needs a micro BOS on a closed bar and spacing/cooldown to pass.
Repainting, confirmations, and HTF notes
By default, prints wait for the bar to close; this reduces repaint‑like effects.
Pivot SFPs only appear after the pivot confirms (after the chosen “right” bars).
PD/W levels come from the prior completed candles and do not change intraday.
If you enable confirmed HTF values, the HTF slope will not change until its higher‑timeframe bar completes (safer but slightly delayed).
Performance tips
If labels/zones clutter or the chart lags:
Turn ON Performance mode.
Hide FVG or the Trigger Zone.
Reduce badge history or turn badge history off.
If price scaling looks compressed:
Keep optional “score”/“PR” plots OFF (they overlay price and can affect scaling).
Alerts (neutral)
Structural Liquidity: LONG TRIGGER
Structural Liquidity: SHORT TRIGGER
These fire when a trigger condition is met on a confirmed bar (with defaults).
Limitations and risk
Not every sweep/extreme reverses; false triggers occur, especially on thin markets and low timeframes.
This indicator does not provide entries, exits, or position sizing—use your own plan and risk control.
Educational/informational only; no financial advice.
License and credits
© BullByte - MPL 2.0. Open‑source for learning and research.
Built from repeated observations of how liquidity runs, imbalance (FVG), and distance from “fair” (AVWAPs) combine, and how a small BOS often marks the moment structure actually shifts.
Deadband Hysteresis Filter [BackQuant]Deadband Hysteresis Filter
What this is
This tool builds a “debounced” price baseline that ignores small fluctuations and only reacts when price meaningfully departs from its recent path. It uses a deadband to define how much deviation matters and a hysteresis scheme to avoid rapid flip-flops around the decision boundary. The baseline’s slope provides a simple trend cue, used to color candles and to trigger up and down alerts.
Why deadband and hysteresis help
They filter micro noise so the baseline does not react to every tiny tick.
They stabilize state changes. Hysteresis means the rule to start moving is stricter than the rule to keep holding, which reduces whipsaw.
They produce a stepped, readable path that advances during sustained moves and stays flat during chop.
How it works (conceptual)
At each bar the script maintains a running baseline dbhf and compares it to the input price p .
Compute a base threshold baseTau using the selected mode (ATR, Percent, Ticks, or Points).
Build an enter band tauEnter = baseTau × Enter Mult and an exit band tauExit = baseTau × Exit Mult where typically Exit Mult < Enter Mult .
Let diff = p − dbhf .
If diff > +tauEnter , raise the baseline by response × (diff − tauEnter) .
If diff < −tauEnter , lower the baseline by response × (diff + tauEnter) .
Otherwise, hold the prior value.
Trend state is derived from slope: dbhf > dbhf → up trend, dbhf < dbhf → down trend.
Inputs and what they control
Threshold mode
ATR — baseTau = ATR(atrLen) × atrMult . Adapts to volatility. Useful when regimes change.
Percent — baseTau = |price| × pctThresh% . Scale-free across symbols of different prices.
Ticks — baseTau = syminfo.mintick × tickThresh . Good for futures where tick size matters.
Points — baseTau = ptsThresh . Fixed distance in price units.
Band multipliers and response
Enter Mult — outer band. Price must travel at least this far from the baseline before an update occurs. Larger values reject more noise but increase lag.
Exit Mult — inner band for hysteresis. Keep this smaller than Enter Mult to create a hold zone that resists small re-entries.
Response — step size when outside the enter band. Higher response tracks faster; lower response is smoother.
UI settings
Show Filtered Price — plots the baseline on price.
Paint candles — colors bars by the filtered slope using your long/short colors.
How it can be used
Trend qualifier — take entries only in the direction of the baseline slope and skip trades against it.
Debounced crossovers — use the baseline as a stabilized surrogate for price in moving-average or channel crossover rules.
Trailing logic — trail stops a small distance beyond the baseline so small pullbacks do not eject the trade.
Session aware filtering — widen Enter Mult or switch to ATR mode for volatile sessions; tighten in quiet sessions.
Parameter interactions and tuning
Enter Mult vs Response — both govern sensitivity. If you see too many flips, increase Enter Mult or reduce Response. If turns feel late, do the opposite.
Exit Mult — widening the gap between Enter and Exit expands the hold zone and reduces oscillation around the threshold.
Mode choice — ATR adapts automatically; Percent keeps behavior consistent across instruments; Ticks or Points are useful when you think in fixed increments.
Timeframe coupling — on higher timeframes you can often lower Enter Mult or raise Response because raw noise is already reduced.
Concrete starter recipes
General purpose — ATR mode, atrLen=14 , atrMult=1.0–1.5 , Enter=1.0 , Exit=0.5 , Response=0.20 . Balanced noise rejection and lag.
Choppy range filter — ATR mode, increase atrMult to 2.0, keep Response≈0.15 . Stronger suppression of micro-moves.
Fast intraday — Percent mode, pctThresh=0.1–0.3 , Enter=1.0 , Exit=0.4–0.6 , Response=0.30–0.40 . Quicker turns for scalping.
Futures ticks — Ticks mode, set tickThresh to a few spreads beyond typical noise; start with Enter=1.0 , Exit=0.5 , Response=0.25 .
Strengths
Clear, explainable logic with an explicit noise budget.
Multiple threshold modes so the same tool fits equities, futures, and crypto.
Built-in hysteresis that reduces flip-flop near the boundary.
Slope-based coloring and alerts that make state changes obvious in real time.
Limitations and notes
All filters add lag. Larger thresholds and smaller response trade faster reaction for fewer false turns.
Fixed Points or Ticks can under- or over-filter when volatility regime shifts. ATR adapts, but will also expand bands during spikes.
On extremely choppy symbols, even a well tuned band will step frequently. Widen Enter Mult or reduce Response if needed.
This is a chart study. It does not include commissions, slippage, funding, or gap risks.
Alerts
DBHF Up Slope — baseline turns from down to up on the latest bar.
DBHF Down Slope — baseline turns from up to down on the latest bar.
Implementation details worth knowing
Initialization sets the baseline to the first observed price to avoid a cold-start jump.
Slope is evaluated bar-to-bar. The up and down alerts check for a change of slope rather than raw price crossings.
Candle colors and the baseline plot share the same long/short palette with transparency applied to the line.
Practical workflow
Pick a mode that matches how you think about distance. ATR for volatility aware, Percent for scale-free, Ticks or Points for fixed increments.
Tune Enter Mult until the number of flips feels appropriate for your timeframe.
Set Exit Mult clearly below Enter Mult to create a real hold zone.
Adjust Response last to control “how fast” the baseline chases price once it decides to move.
Final thoughts
Deadband plus hysteresis gives you a principled way to “only care when it matters.” With a sensible threshold and response, the filter yields a stable, low-chop trend cue you can use directly for bias or plug into your own entries, exits, and risk rules.
Pasrsifal.RegressionTrendStateSummary
The Parsifal.Regression.Trend.State Indicator analyzes the leading coefficients of linear and quadratic regressions of price (against time). It also considers their first- and second-order changes. These features are aggregated into a Trend-State background, shown as a gradient color. In addition, the indicator generates fast and slow signals that can be used as potential entry- or exit triggers.
This tool is designed for advanced trend-following strategies, leveraging information from multiple trendline features.
Background
Trendlines provide insight into the state of a trend or the “trendiness” of a price process. While moving averages or pivot-based lines can serve as envelopes and breakout levels, they are often too lagging for swing traders, who need tools that adapt more closely to price swings, ideally using trendlines, around which the price process swings continuously.
Regression lines address this by cutting directly through the data, making them a natural anchor for observing how price winds around a central trendline within a chosen lookback period.
Regression Trendlines
• Linear Regression:
o Minimizes distance to all closing values over the lookback period.
o The slope represents the short-term linear trend.
o The change of slope indicates trend acceleration or deceleration.
o Linear regression lags during phases of rapid market shifts.
• Quadratic Regression:
o Fits a second-degree polynomial to minimize deviation from closing prices.
o The convexity term (leading coefficient) reflects curvature:
Positive convexity → accelerating uptrend or fading downtrend.
Negative convexity → accelerating downtrend or fading uptrend.
o The change of convexity detects early shifts in momentum and often reacts faster than slope features.
Features Extracted
The indicator evaluates six features:
• Linear features: slope, first derivative of slope, second derivative of slope.
• Quadratic features: convexity term, first derivative of the convexity term, second derivative of the convexity term.
• Linear features: capture broad, background trend behavior.
• Quadratic features: detect deviations, accelerations, and smaller-scale dynamics.
Quadratic terms generally react first to market changes, while linear terms provide stability and context.
Dynamics of Market Moves as seen by linear and quadratic regressions
• At the start of a rapid move:
The change of convexity reacts first, capturing the shift in dynamics before other features. The convexity term then follows, while linear slope features lag further behind. Because convexity measures deviation from linearity, it reflects accelerating momentum more effectively than slope.
• At the end of a rapid move:
Again, the change of convexity responds first to fading momentum, signaling the transition from above-linear to below-linear dynamics. Even while a strong trend persists, the change of convexity may flip sign early, offering a warning of weakening strength. The convexity term itself adjusts more slowly but may still turn before the price process does. Linear features lag the most, typically only flipping after price has already reversed, thereby smoothing out the rapid, more sensitive reactions of quadratic terms.
________________________________________
Parsifal Regression.Trend.State Method
1. Feature Mapping:
Each feature is mapped to a range between -1 and 1, preserving zero-crossings (critical for sign interpretation).
2. Aggregation:
A heuristic linear combination*) produces a background information value, visualized as a gradient color scale:
o Deep green → strong positive trend.
o Deep red → strong negative trend.
o Yellow → neutral or transitional states.
3. Signals:
o Fast signal (oscillator): ranges from -1 to 1, reflecting short-term trend state.
o Slow signal (smoothed): moving average of the fast signal.
o Their interactions (crossovers, zero-crossings) provide actionable trading triggers.
How to Use
The Trend-State background gradient provides intuitive visual feedback on the aggregated regression features (slope, convexity, and their changes). Because these features reflect not only current trend strength but also their acceleration or deceleration, the color transitions help anticipate evolving market states:
• Solid Green: All features near their highs. Indicates a strong, accelerating uptrend. May also reflect explosive or hyperbolic upside moves (including gaps).
• Fading Solid Green: A recently strong uptrend is losing momentum. Price may shift into a slower uptrend, consolidation, or even a reversal.
• Fading Green → Yellow: Often appears as a dirty yellow or a rapidly mixing pattern of green and red. Signals that the uptrend is weakening toward neutrality or beginning to turn negative.
• Yellow → Deepening Red: Two possible scenarios:
o Coming from a strong uptrend → suggests a sharp fade, though the trend may still technically be up.
o Coming from a weaker uptrend or sideways market → suggests the start of an accelerating downtrend.
• Solid Red: All features near their lows. Indicates a strong, accelerating downtrend. May also reflect crash-type conditions or downside gaps.
• Fading Solid Red: A recently strong downtrend is losing strength. Market may move into a slower decline, consolidation, or early reversal upward.
• Fading Red → Yellow : The downtrend is weakening toward neutral, with potential for a bullish shift.
• Yellow → Increasing Green: Two possible scenarios:
o Coming from a strong downtrend, it reflects a sharp fade of bearish momentum, though the market may still technically be trending down.
o Coming from a weaker downtrend or sideways movement, it suggests the start of an accelerating uptrend.
Note: Market evolution does not always follow this neat “color cycle.” It may jump between states, skip stages, or reverse abruptly depending on market conditions. This makes the background coloring particularly valuable as a contextual map of current and evolving price dynamics.
Signal Crossovers:
Although the fast signal is very similar (but not identical) to the background coloring, it provides a numerical representation indicating a bullish interpretation for rising values and bearish for falling.
o High-confidence entries:
Fast signal rising from < -0.7 and crossing above the slow signal → potential long entry.
Fast signal falling from > +0.7 and crossing below the slow signal → potential short entry.
o Low-confidence entries:
Crossovers near zero may still provide a valid trigger but may be noisy and should be confirmed with other signals.
o Zero-crossings:
Indicate broader state changes, useful for conservative positioning or option strategies. For confirmation of a Fast signal 0-crossing, wait for the Slow signal to cross as well.
________________________________________
*) Note on Aggregation
While the indicator currently uses a heuristic linear combination of features, alternatives such as Principal Component Analysis (PCA) could provide a more formal aggregation. However, while in the absence of matrix algebra, the required eigenvalue decomposition can be approximated, its computational expense does not justify the marginal higher insight in this case. The current heuristic approach offers a practical balance of clarity, speed, and accuracy.
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.
Correlation HeatMap [TradingFinder] Sessions Data Science Stats🔵 Introduction
n financial markets, correlation describes the statistical relationship between the price movements of two assets and how they interact over time. It plays a key role in both trading and investing by helping analyze asset behavior, manage portfolio risk, and understand intermarket dynamics. The Correlation Heatmap is a visual tool that shows how the correlation between multiple assets and a central reference asset (the Main Symbol) changes over time.
It supports four market types forex, stocks, crypto, and a custom mode making it adaptable to different trading environments. The heatmap uses a color-coded grid where warmer tones represent stronger negative correlations and cooler tones indicate stronger positive ones. This intuitive color system allows traders to quickly identify when assets move together or diverge, offering real-time insights that go beyond traditional correlation tables.
🟣 How to Interpret the Heatmap Visually ?
Each cell represents the correlation between the main symbol and one compared asset at a specific time.
Warm colors (e.g. red, orange) suggest strong negative correlation as one asset rises, the other tends to fall.
Cool colors (e.g. blue, green) suggest strong positive correlation both assets tend to move in the same direction.
Lighter shades indicate weaker correlations, while darker shades indicate stronger correlations.
The heatmap updates over time, allowing users to detect changes in correlation during market events or trading sessions.
One of the standout features of this indicator is its ability to overlay global market sessions such as Tokyo, London, New York, or major equity opens directly onto the heatmap timeline. This alignment lets traders observe how correlation structures respond to real-world session changes. For example, they can spot when assets shift from being inversely correlated to moving together as a new session opens, potentially signaling new momentum or macro flow. The customizable symbol setup (including up to 20 compared assets) makes it ideal not only for forex and crypto traders but also for multi-asset and sector-based stock analysis.
🟣 Use Cases and Advantages
Analyze sector rotation in equities by tracking correlation to major indices like SPX or DJI.
Monitor altcoin behavior relative to Bitcoin to find early entry opportunities in crypto markets.
Detect changes in currency alignment with DXY across trading sessions in forex.
Identify correlation breakdowns during market volatility, signaling possible new trends.
Use correlation shifts as confirmation for trade setups or to hedge multi-asset exposure
🔵 How to Use
Correlation is one of the core concepts in financial analysis and allows traders to understand how assets behave in relation to one another. The Correlation Heatmap extends this idea by going beyond a simple number or static matrix. Instead, it presents a dynamic visual map of how correlations shift over time.
In this indicator, a Main Symbol is selected as the reference point for analysis. In standard modes such as forex, stocks, or crypto, the symbol currently shown on the main chart is automatically used as the main symbol. This allows users to begin correlation analysis right away without adjusting any settings.
The horizontal axis of the heatmap shows time, while the vertical axis lists the selected assets. Each cell on the heatmap shows the correlation between that asset and the main symbol at a given moment.
This approach is especially useful for intermarket analysis. In forex, for example, tracking how currency pairs like OANDA:EURUSD EURUSD, FX:GBPUSD GBPUSD, and PEPPERSTONE:AUDUSD AUDUSD correlate with TVC:DXY DXY can give insight into broader capital flow.
If these pairs start showing increasing positive correlation with DXY say, shifting from blue to light green it could signal the start of a new phase or reversal. Conversely, if negative correlation fades gradually, it may suggest weakening relationships and more independent or volatile movement.
In the crypto market, watching how altcoins correlate with Bitcoin can help identify ideal entry points in secondary assets. In the stock market, analyzing how companies within the same sector move in relation to a major index like SP:SPX SPX or DJ:DJI DJI is also a highly effective technique for both technical and fundamental analysts.
This indicator not only visualizes correlation but also displays major market sessions. When enabled, this feature helps traders observe how correlation behavior changes at the start of each session, whether it's Tokyo, London, New York, or the opening of stock exchanges. Many key shifts, breakouts, or reversals tend to happen around these times, and the heatmap makes them easy to spot.
Another important feature is the market selection mode. Users can switch between forex, crypto, stocks, or custom markets and see correlation behavior specific to each one. In custom mode, users can manually select any combination of symbols for more advanced or personalized analysis. This makes the heatmap valuable not only for forex traders but also for stock traders, crypto analysts, and multi-asset strategists.
Finally, the heatmap's color-coded design helps users make sense of the data quickly. Warm colors such as red and orange reflect stronger negative correlations, while cool colors like blue and green represent stronger positive relationships. This simplicity and clarity make the tool accessible to both beginners and experienced traders.
🔵 Settings
Correlation Period: Allows you to set how many historical bars are used for calculating correlation. A higher number means a smoother, slower-moving heatmap, while a lower number makes it more responsive to recent changes.
Select Market: Lets you choose between Forex, Stock, Crypto, or Custom. In the first three options, the chart’s active symbol is automatically used as the Main Symbol. In Custom mode, you can manually define the Main Symbol and up to 20 Compared Symbols.
Show Open Session: Enables the display of major trading sessions such as Tokyo, London, New York, or equity market opening hours directly on the timeline. This helps you connect correlation shifts with real-world market activity.
Market Mode: Lets you select whether the displayed sessions relate to the forex or stock market.
🔵 Conclusion
The Correlation Heatmap is a robust and flexible tool for analyzing the relationship between assets across different markets. By tracking how correlations change in real time, traders can better identify alignment or divergence between symbols and gain valuable insights into market structure.
Support for multiple asset classes, session overlays, and intuitive visual cues make this one of the most effective tools for intermarket analysis.
Whether you’re looking to manage portfolio risk, validate entry points, or simply understand capital flow across markets, this heatmap provides a clear and actionable perspective that you can rely on.
PulseMA + MADescription
The PulseMA + MA indicator is an analytical tool that combines the analysis of the price relationship to a base Exponential Moving Average (EMA) with a smoothed Simple Moving Average (SMA) of this relationship. The indicator helps traders identify the direction and momentum of market trends and generates entry signals, displaying data as lines below the price chart.
Key Features
PulseMA: Calculates trend momentum by multiplying the number of consecutive candles above or below the base EMA by the slope of this average. The number of candles determines trend strength (positive for an uptrend, negative for a downtrend), while the EMA slope reflects the rate of change of the average. The PulseMA value is scaled by multiplying by 100.
Smoothed Average (PulseMA MA): Adds a smoothed SMA, facilitating the identification of long-term changes in market momentum.
Dynamic Colors: The PulseMA line changes color based on the price position relative to the base EMA (green for price above, red for price below).
Zero Line: Indicates the area where the price is close to the base EMA.
Applications
The PulseMA + MA indicator is designed for traders and technical analysts who aim to:
Analyze the direction and momentum of market trends, particularly with higher PulseMA Length values (e.g., 100), which provide a less sensitive EMA for longer-term trends.
Generate entry signals based on the PulseMA color change or the crossover of PulseMA with PulseMA MA.
Anticipate potential price reversals to the zero line when PulseMA is significantly distant from it, which may indicate market overextension.
How to Use
Add the Indicator to the Chart: Search for "PulseMA + MA" in the indicator library and add it to your chart.
Adjust Parameters:
PulseMA Length: Length of the base EMA (default: 50).
PulseMA Smoothing Length: Length of the smoothed SMA (default: 20).
Interpretation:
Green PulseMA Line: Price is above the base EMA, suggesting an uptrend.
Red PulseMA Line: Price is below the base EMA, indicating a downtrend.
PulseMA Color Change: May signal an entry point (recommended to wait for 2 candles to reduce noise).
PulseMA Crossing PulseMA MA from Below: May indicate a buy signal in an uptrend.
Zero Line: Indicates the area where the price is close to the base EMA.
Significant Deviation of PulseMA from the Zero Line: Suggests a potential price reversal to the zero line, indicating possible market overextension.
Notes
The indicator generates trend signals and can be used to independently identify entry points, e.g., on PulseMA color changes (waiting 2 candles is recommended to reduce noise) or when PulseMA crosses PulseMA MA from below.
In sideways markets, it is advisable to use the indicator with a volatility filter to limit false signals.
Adjusting the lengths of the averages to suit the specific instrument can improve signal accuracy.
Lyapunov Market Instability (LMI)Lyapunov Market Instability (LMI)
What is Lyapunov Market Instability?
Lyapunov Market Instability (LMI) is a revolutionary indicator that brings chaos theory from theoretical physics into practical trading. By calculating Lyapunov exponents—a measure of how rapidly nearby trajectories diverge in phase space—LMI quantifies market sensitivity to initial conditions. This isn't another oscillator or trend indicator; it's a mathematical lens that reveals whether markets are in chaotic (trending) or stable (ranging) regimes.
Inspired by the meditative color field paintings of Mark Rothko, this indicator transforms complex chaos mathematics into an intuitive visual experience. The elegant simplicity of the visualization belies the sophisticated theory underneath—just as Rothko's seemingly simple color blocks contain profound depth.
Theoretical Foundation (Chaos Theory & Lyapunov Exponents)
In dynamical systems, the Lyapunov exponent (λ) measures the rate of separation of infinitesimally close trajectories:
λ > 0: System is chaotic—small changes lead to dramatically different outcomes (butterfly effect)
λ < 0: System is stable—trajectories converge, perturbations die out
λ ≈ 0: Edge of chaos—transition between regimes
Phase Space Reconstruction
Using Takens' embedding theorem , we reconstruct market dynamics in higher dimensions:
Time-delay embedding: Create vectors from price at different lags
Nearest neighbor search: Find historically similar market states
Trajectory evolution: Track how these similar states diverged over time
Divergence rate: Calculate average exponential separation
Market Application
Chaotic markets (λ > threshold): Strong trends emerge, momentum dominates, use breakout strategies
Stable markets (λ < threshold): Mean reversion dominates, fade extremes, range-bound strategies work
Transition zones: Market regime about to change, reduce position size, wait for confirmation
How LMI Works
1. Phase Space Construction
Each point in time is embedded as a vector using historical prices at specific delays (τ). This reveals the market's hidden attractor structure.
2. Lyapunov Calculation
For each current state, we:
- Find similar historical states within epsilon (ε) distance
- Track how these initially similar states evolved
- Measure exponential divergence rate
- Average across multiple trajectories for robustness
3. Signal Generation
Chaos signals: When λ crosses above threshold, market enters trending regime
Stability signals: When λ crosses below threshold, market enters ranging regime
Divergence detection: Price/Lyapunov divergences signal potential reversals
4. Rothko Visualization
Color fields: Background zones represent market states with Rothko-inspired palettes
Glowing line: Lyapunov exponent with intensity reflecting market state
Minimalist design: Focus on essential information without clutter
Inputs:
📐 Lyapunov Parameters
Embedding Dimension (default: 3)
Dimensions for phase space reconstruction
2-3: Simple dynamics (crypto/forex) - captures basic momentum patterns
4-5: Complex dynamics (stocks/indices) - captures intricate market structures
Higher dimensions need exponentially more data but reveal deeper patterns
Time Delay τ (default: 1)
Lag between phase space coordinates
1: High-frequency (1m-15m charts) - captures rapid market shifts
2-3: Medium frequency (1H-4H) - balances noise and signal
4-5: Low frequency (Daily+) - focuses on major regime changes
Match to your timeframe's natural cycle
Initial Separation ε (default: 0.001)
Neighborhood size for finding similar states
0.0001-0.0005: Highly liquid markets (major forex pairs)
0.0005-0.002: Normal markets (large-cap stocks)
0.002-0.01: Volatile markets (crypto, small-caps)
Smaller = more sensitive to chaos onset
Evolution Steps (default: 10)
How far to track trajectory divergence
5-10: Fast signals for scalping - quick regime detection
10-20: Balanced for day trading - reliable signals
20-30: Slow signals for swing trading - major regime shifts only
Nearest Neighbors (default: 5)
Phase space points for averaging
3-4: Noisy/fast markets - adapts quickly
5-6: Balanced (recommended) - smooth yet responsive
7-10: Smooth/slow markets - very stable signals
📊 Signal Parameters
Chaos Threshold (default: 0.05)
Lyapunov value above which market is chaotic
0.01-0.03: Sensitive - more chaos signals, earlier detection
0.05: Balanced - optimal for most markets
0.1-0.2: Conservative - only strong trends trigger
Stability Threshold (default: -0.05)
Lyapunov value below which market is stable
-0.01 to -0.03: Sensitive - quick stability detection
-0.05: Balanced - reliable ranging signals
-0.1 to -0.2: Conservative - only deep stability
Signal Smoothing (default: 3)
EMA period for noise reduction
1-2: Raw signals for experienced traders
3-5: Balanced - recommended for most
6-10: Very smooth for position traders
🎨 Rothko Visualization
Rothko Classic: Deep reds for chaos, midnight blues for stability
Orange/Red: Warm sunset tones throughout
Blue/Black: Cool, meditative ocean depths
Purple/Grey: Subtle, sophisticated palette
Visual Options:
Market Zones : Background fields showing regime areas
Transitions: Arrows marking regime changes
Divergences: Labels for price/Lyapunov divergences
Dashboard: Real-time state and trading signals
Guide: Educational panel explaining the theory
Visual Logic & Interpretation
Main Elements
Lyapunov Line: The heart of the indicator
Above chaos threshold: Market is trending, follow momentum
Below stability threshold: Market is ranging, fade extremes
Between thresholds: Transition zone, reduce risk
Background Zones: Rothko-inspired color fields
Red zone: Chaotic regime (trending)
Gray zone: Transition (uncertain)
Blue zone: Stable regime (ranging)
Transition Markers:
Up triangle: Entering chaos - start trend following
Down triangle: Entering stability - start mean reversion
Divergence Signals:
Bullish: Price makes low but Lyapunov rising (stability breaking down)
Bearish: Price makes high but Lyapunov falling (chaos dissipating)
Dashboard Information
Market State: Current regime (Chaotic/Stable/Transitioning)
Trading Bias: Specific strategy recommendation
Lyapunov λ: Raw value for precision
Signal Strength: Confidence in current regime
Last Change: Bars since last regime shift
Action: Clear trading directive
Trading Strategies
In Chaotic Regime (λ > threshold)
Follow trends aggressively: Breakouts have high success rate
Use momentum strategies: Moving average crossovers work well
Wider stops: Expect larger swings
Pyramid into winners: Trends tend to persist
In Stable Regime (λ < threshold)
Fade extremes: Mean reversion dominates
Use oscillators: RSI, Stochastic work well
Tighter stops: Smaller expected moves
Scale out at targets: Trends don't persist
In Transition Zone
Reduce position size: Uncertainty is high
Wait for confirmation: Let regime establish
Use options: Volatility strategies may work
Monitor closely: Quick changes possible
Advanced Techniques
- Multi-Timeframe Analysis
- Higher timeframe LMI for regime context
- Lower timeframe for entry timing
- Alignment = highest probability trades
- Divergence Trading
- Most powerful at regime boundaries
- Combine with support/resistance
- Use for early reversal detection
- Volatility Correlation
- Chaos often precedes volatility expansion
- Stability often precedes volatility contraction
- Use for options strategies
Originality & Innovation
LMI represents a genuine breakthrough in applying chaos theory to markets:
True Lyapunov Calculation: Not a simplified proxy but actual phase space reconstruction and divergence measurement
Rothko Aesthetic: Transforms complex math into meditative visual experience
Regime Detection: Identifies market state changes before price makes them obvious
Practical Application: Clear, actionable signals from theoretical physics
This is not a combination of existing indicators or a visual makeover of standard tools. It's a fundamental rethinking of how we measure and visualize market dynamics.
Best Practices
Start with defaults: Parameters are optimized for broad market conditions
Match to your timeframe: Adjust tau and evolution steps
Confirm with price action: LMI shows regime, not direction
Use appropriate strategies: Chaos = trend, Stability = reversion
Respect transitions: Reduce risk during regime changes
Alerts Available
Chaos Entry: Market entering chaotic regime - prepare for trends
Stability Entry: Market entering stable regime - prepare for ranges
Bullish Divergence: Potential bottom forming
Bearish Divergence: Potential top forming
Chart Information
Script Name: Lyapunov Market Instability (LMI) Recommended Use: All markets, all timeframes Best Performance: Liquid markets with clear regimes
Academic References
Takens, F. (1981). "Detecting strange attractors in turbulence"
Wolf, A. et al. (1985). "Determining Lyapunov exponents from a time series"
Rosenstein, M. et al. (1993). "A practical method for calculating largest Lyapunov exponents"
Note: After completing this indicator, I discovered @loxx's 2022 "Lyapunov Hodrick-Prescott Oscillator w/ DSL". While both explore Lyapunov exponents, they represent independent implementations with different methodologies and applications. This indicator uses phase space reconstruction for regime detection, while his combines Lyapunov concepts with HP filtering.
Disclaimer
This indicator is for research and educational purposes only. It does not constitute financial advice or provide direct buy/sell signals. Chaos theory reveals market character, not future prices. Always use proper risk management and combine with your own analysis. Past performance does not guarantee future results.
See markets through the lens of chaos. Trade the regime, not the noise.
Bringing theoretical physics to practical trading through the meditative aesthetics of Mark Rothko
Trade with insight. Trade with anticipation.
— Dskyz , for DAFE Trading Systems
PhenLabs - Market Fluid Dynamics📊 Market Fluid Dynamics -
Version: PineScript™ v6
📌 Description
The Market Fluid Dynamics - Phen indicator is a new thinking regarding market analysis by modeling price action, volume, and volatility using a fluid system. It attempts to offer traders control over more profound market forces, such as momentum (speed), resistance (thickness), and buying/selling pressure. By visualizing such dynamics, the script allows the traders to decide on the prevailing market flow, its power, likely continuations, and zones of calmness and chaos, and thereby allows improved decision-making.
This measure avoids the usual difficulty of reconciling multiple, often contradictory, market indications by including them within a single overarching model. It moves beyond traditional binary indicators by providing a multi-dimensional view of market behavior, employing fluid dynamic analogs to describe complex interactions in an accessible manner.
🚀 Points of Innovation
Integrated Fluid Dynamics Model: Combines velocity, viscosity, pressure, and turbulence into a single indicator.
Normalized Metrics: Uses ATR and other normalization techniques for consistent readings across different assets and timeframes.
Dynamic Flow Visualization: Main flow line changes color and intensity based on direction and strength.
Turbulence Background: Visually represents market stability with a gradient background, from calm to turbulent.
Comprehensive Dashboard: Provides an at-a-glance summary of key fluid dynamic metrics.
Multi-Layer Smoothing: Employs several layers of EMA smoothing for a clearer, more responsive main flow line.
🔧 Core Components
Velocity Component: Measures price momentum (first derivative of price), normalized by ATR. It indicates the speed and direction of price changes.
Viscosity Component: Represents market resistance to price changes, derived from ATR relative to its historical average. Higher viscosity suggests it’s harder for prices to move.
Pressure Component: Quantifies the force created by volume and price range (close - open), normalized by ATR. It reflects buying or selling pressure.
Turbulence Detection: Calculates a Reynolds number equivalent to identify market stability, ranging from laminar (stable) to turbulent (chaotic).
Main Flow Indicator: Combines the above components, applying sensitivity and smoothing, to generate a primary signal of market direction and strength.
🔥 Key Features
Advanced Smoothing Algorithm: Utilizes multiple EMA layers on the raw flow calculation for a fluid and responsive main flow line, reducing noise while maintaining sensitivity.
Gradient Flow Coloring: The main flow line dynamically changes color from light to deep blue for bullish flow and light to deep red for bearish flow, with intensity reflecting flow strength. This provides an immediate visual cue of market sentiment and momentum.
Turbulence Level Background: The chart background changes color based on calculated turbulence (from calm gray to vibrant orange), offering an intuitive understanding of market stability and potential for erratic price action.
Informative Dashboard: A customizable on-screen table displays critical metrics like Flow State, Flow Strength, Market Viscosity, Turbulence, Pressure Force, Flow Acceleration, and Flow Continuity, allowing traders to quickly assess current market conditions.
Configurable Lookback and Sensitivity: Users can adjust the base lookback period for calculations and the sensitivity of the flow to viscosity, tailoring the indicator to different trading styles and market conditions.
Alert Conditions: Pre-defined alerts for flow direction changes (positive/negative crossover of zero line) and detection of high turbulence states.
🎨 Visualization
Main Flow Line: A smoothed line plotted below the main chart, colored blue for bullish flow and red for bearish flow. The intensity of the color (light to dark) indicates the strength of the flow. This line crossing the zero line can signal a change in market direction.
Zero Line: A dotted horizontal line at the zero level, serving as a baseline to gauge whether the market flow is positive (bullish) or negative (bearish).
Turbulence Background: The indicator pane’s background color changes based on the calculated turbulence level. A calm, almost transparent gray indicates low turbulence (laminar flow), while a more vibrant, semi-transparent orange signifies high turbulence. This helps traders visually assess market stability.
Dashboard Table: An optional table displayed on the chart, showing key metrics like ‘Flow State’, ‘Flow Strength’, ‘Market Viscosity’, ‘Turbulence’, ‘Pressure Force’, ‘Flow Acceleration’, and ‘Flow Continuity’ with their current values and qualitative descriptions (e.g., ‘Bullish Flow’, ‘Laminar (Stable)’).
📖 Usage Guidelines
Setting Categories
Show Dashboard - Default: true; Range: true/false; Description: Toggles the visibility of the Market Fluid Dynamics dashboard on the chart. Enable to see key metrics at a glance.
Base Lookback Period - Default: 14; Range: 5 - (no upper limit, practical limits apply); Description: Sets the primary lookback period for core calculations like velocity, ATR, and volume SMA. Shorter periods make the indicator more sensitive to recent price action, while longer periods provide a smoother, slower signal.
Flow Sensitivity - Default: 0.5; Range: 0.1 - 1.0 (step 0.1); Description: Adjusts how much the market viscosity dampens the raw flow. A lower value means viscosity has less impact (flow is more sensitive to raw velocity/pressure), while a higher value means viscosity has a greater dampening effect.
Flow Smoothing - Default: 5; Range: 1 - 20; Description: Controls the length of the EMA smoothing applied to the main flow line. Higher values result in a smoother flow line but with more lag; lower values make it more responsive but potentially noisier.
Dashboard Position - Default: ‘Top Right’; Range: ‘Top Right’, ‘Top Left’, ‘Bottom Right’, ‘Bottom Left’, ‘Middle Right’, ‘Middle Left’; Description: Determines the placement of the dashboard on the chart.
Header Size - Default: ‘Normal’; Range: ‘Tiny’, ‘Small’, ‘Normal’, ‘Large’, ‘Huge’; Description: Sets the text size for the dashboard header.
Values Size - Default: ‘Small’; Range: ‘Tiny’, ‘Small’, ‘Normal’, ‘Large’; Description: Sets the text size for the metric values in the dashboard.
✅ Best Use Cases
Trend Identification: Identifying the dominant market flow (bullish or bearish) and its strength to trade in the direction of the prevailing trend.
Momentum Confirmation: Using the flow strength and acceleration to confirm the conviction behind price movements.
Volatility Assessment: Utilizing the turbulence metric to gauge market stability, helping to adjust position sizing or avoid choppy conditions.
Reversal Spotting: Watching for divergences between price and flow, or crossovers of the main flow line above/below the zero line, as potential reversal signals, especially when combined with changes in pressure or viscosity.
Swing Trading: Leveraging the smoothed flow line to capture medium-term market swings, entering when flow aligns with the desired trade direction and exiting when flow weakens or reverses.
Intraday Scalping: Using shorter lookback periods and higher sensitivity to identify quick shifts in flow and turbulence for short-term trading opportunities, particularly in liquid markets.
⚠️ Limitations
Lagging Nature: Like many indicators based on moving averages and lookback periods, the main flow line can lag behind rapid price changes, potentially leading to delayed signals.
Whipsaws in Ranging Markets: During periods of low volatility or sideways price action (high viscosity, low flow strength), the indicator might produce frequent buy/sell signals (whipsaws) as the flow oscillates around the zero line.
Not a Standalone System: While comprehensive, it should be used in conjunction with other forms of analysis (e.g., price action, support/resistance levels, other indicators) and not as a sole basis for trading decisions.
Subjectivity in Interpretation: While the dashboard provides quantitative values, the interpretation of “strong” flow, “high” turbulence, or “significant” acceleration can still have a subjective element depending on the trader’s strategy and risk tolerance.
💡 What Makes This Unique
Fluid Dynamics Analogy: Its core strength lies in translating complex market interactions into an intuitive fluid dynamics framework, making concepts like momentum, resistance, and pressure easier to visualize and understand.
Market View: Instead of focusing on a single aspect (like just momentum or just volatility), it integrates multiple factors (velocity, viscosity, pressure, turbulence) to provide a more comprehensive picture of market conditions.
Adaptive Visualization: The dynamic coloring of the flow line and the turbulence background provide immediate, adaptive visual feedback that changes with market conditions.
🔬 How It Works
Price Velocity Calculation: The indicator first calculates price velocity by measuring the rate of change of the closing price over a given ‘lookback’ period. The raw velocity is then normalized by the Average True Range (ATR) of the same lookback period. Normalization enables comparison of momentum between assets or timeframes by scaling for volatility. This is the direction and speed of initial price movement.
Viscosity Calculation: Market ‘viscosity’ or resistance to price movement is determined by looking at the current ATR relative to its longer-term average (SMA of ATR over lookback * 2). The further the current ATR is above its average, the lower the viscosity (less resistance to price movement), and vice-versa. The script inverts this relationship and bounds it so that rising viscosity means more resistance.
Pressure Force Measurement: A ‘pressure’ variable is calculated as a function of the ratio of current volume to its simple moving average, multiplied by the price range (close - open) and normalized by ATR. This is designed to measure the force behind price movement created by volume and intraday price thrusts. This pressure is smoothed by an EMA.
Turbulence State Evaluation: A equivalent ‘Reynolds number’ is calculated by dividing the absolute normalized velocity by the viscosity. This is the proclivity of the market to move in a chaotic or orderly fashion. This ‘reynoldsValue’ is smoothed with an EMA to get the ‘turbulenceState’, which indicates if the market is laminar (stable), transitional, or turbulent.
Main Flow Derivation: The ‘rawFlow’ is calculated by taking the normalized velocity, dampening its impact based on the ‘viscosity’ and user-input ‘sensitivity’, and orienting it by the sign of the smoothed ‘pressureSmooth’. The ‘rawFlow’ is then put through multiple layers of exponential moving average (EMA) smoothing (with ‘smoothingLength’ and derived values) to reach the final ‘mainFlow’ line. The extensive smoothing is designed to give a smooth and clear visualization of the overall market direction and magnitude.
Dashboard Metrics Compilation: Additional metrics like flow acceleration (derivative of mainFlow), and flow continuity (correlation between close and volume) are calculated. All primary components (Flow State, Strength, Viscosity, Turbulence, Pressure, Acceleration, Continuity) are then presented in a user-configurable dashboard for ease of monitoring.
💡 Note:
The “Market Fluid Dynamics - Phen” indicator is designed to offer a unique perspective on market behavior by applying principles from fluid dynamics. It’s most effective when used to understand the underlying forces driving price rather than as a direct buy/sell signal generator in isolation. Experiment with the settings, particularly the ‘Base Lookback Period’, ‘Flow Sensitivity’, and ‘Flow Smoothing’, to find what best suits your trading style and the specific asset you are analyzing. Always combine its insights with robust risk management practices.
MÈGAS ALGO : ZIG-ZAG CYCLE INSIGTH [INDICATOR]Overview
The Zig-Zag Cycle Insigth is a revisited version of the classic Zig Zag indicator, designed to provide traders with a more comprehensive and actionable view of price movements.
This advanced tool not only highlights significant price swings but also incorporates additional features such as cycle analysis, real-time data tracking, and Fibonacci retracement levels. These enhancements make it an invaluable resource for identifying trends, potential reversal points, and market structure.
This indicator adheres to TradingView's guidelines and is optimized for both technical analysts and active traders who seek deeper insights into market dynamics.
Key Features:
1. Customizable Thresholds for Price Movements:
- Users can set personalized thresholds for price movement percentages and time periods.
This ensures that only significant price swings are plotted, reducing noise and increasing
clarity.
- Straight lines connect swing highs and lows, providing a cleaner visual representation of
the trend.
2. Cycle Analysis Table:
- A dynamic table is included to analyze price cycles based on three key factors:
- Price Change: Measures the magnitude of each swing (high-to-low or low-to-high).
- Time Duration (Bar Count): Tracks the number of bars elapsed between consecutive swings,
offering precise timing insights.
- Volume: Analyzes trading volume during each segment of the cycle.
- The indicator calculates the **maximum**, **minimum**, and **mean** values for each
parameter across all completed cycles, providing deeper statistical insights into market
behavior.
- This table updates in real-time, offering traders a quantitative understanding of how price
behaves over different cycles.
3. Real-Time Data Integration:
- The indicator displays live updates of current price action relative to the last identified
swing high/low. This includes:
- Current distance from the last pivot point.
- Percentage change since the last pivot.
- Volume traded since the last pivot.
4. Fibonacci Retracement Levels:
- Integrated Fibonacci retracement levels are dynamically calculated based on the most
recent significant swing high and low.
- Key retracement levels (23.6%, 38.2%, 50%, 61.8%, and 78.6%) are plotted alongside the Zig
Zag lines, helping traders identify potential support/resistance zones.
- Extension levels (100%, 161.8%, etc.) are also included to anticipate possible breakout
targets.
5. Customizable Alerts:
- Users can configure alerts for specific real-time conditions, such as:
- Price Change
- Duration
- Volume
- Fibonacci Retracement Levels
How It Works:
1. Zig Zag Identification:
- The indicator scans historical price data to identify significant turning points where the
price moves by at least the user-defined percentage threshold.
- These turning points are connected by straight lines to form the Zig Zag pattern.
2. Cycle Analysis:
For each completed cycle (from one swing high/low to the next), the indicator calculates:
- Price Change: Difference between the start and end prices of the cycle.
- Maximum Price Change: The largest price difference observed across all cycles.
- Minimum Price Change: The smallest price difference observed across all cycles.
- Mean Price Change: The average price difference across all cycles.
- Time Duration (Bar Count): Number of bars elapsed between consecutive swings.
- Maximum Duration: The longest cycle in terms of bar count.
- Minimum Duration: The shortest cycle in terms of bar count.
- Mean Duration: The average cycle length in terms of bar count.
- Volume: Total volume traded during the cycle.
- Maximum Volume: The highest volume traded during any single cycle.
- Minimum Volume: The lowest volume traded during any single cycle.
- Mean Volume: The average volume traded across all cycles.
- These calculations provide traders with a statistical overview of market behavior, enabling
them to identify patterns and anomalies in price, time, and volume.
3. Fibonacci Integration:
- Once a new swing high or low is identified, the indicator automatically calculates Fibonacci
retracement and extension levels.
- These levels serve as reference points for potential entry/exit opportunities.
4. Real-Time Updates:
- As the market evolves, the indicator continuously monitors the relationship between the
current price and the last identified swing point.
- Real-time metrics, such as percentage change and volume, are updated dynamically.
5. Alerts Based on Real-Time Parameters:
- The indicator allows users to set customizable alerts based on real-time conditions:
- Price Change Alert: Triggered when the real-time price change is less or greater than a
predefined percentage threshold (e.g., > or < fixed value).
- Duration Alert: Triggered when the cycle duration (in bars) is less or greater than a
predefined
bar count threshold (e.g., > or < fixed value).
- Volume Alert: Triggered when the trading volume during the current cycle is less or greater
than a predefined volume threshold (e.g., > or < fixed value).
Advantages of Zig-Zag Cycle Insigth
- Comprehensive Insights: Combining cycle analysis, Fibonacci retracements, and real-time data
provides a holistic view of market conditions.
- Statistical Analysis: The inclusion of maximum, minimum, and mean values for price change,
duration, and volume offers deeper insights into market behavior.
- Actionable Signals: Customizable alerts ensure traders never miss critical market events based
on real-time price, duration, and volume parameters.
- User-Friendly Design: Clear visuals and intuitive controls make it accessible for traders of all
skill levels.
Reference:
TradingView/ZigZag
TradingView/AutofibRetracement
Please Note:
This indicator is provided for informational and educational purposes only. It is not financial advice, and it should not be considered a recommendation to buy, sell, or trade any financial instrument. Trading involves significant risks, including the potential loss of your entire investment. Always conduct your own research and consult with a licensed financial advisor before making any trading decisions.
The results and images provided are based on algorithms and historical/paid real-time market data but do not guarantee future results or accuracy. Use this tool at your own risk, and understand that past performance is not indicative of future outcomes.
Uptrick: Acceleration ShiftsIntroduction
Uptrick: Acceleration Shifts is designed to measure and visualize price momentum shifts by focusing on acceleration —the rate of change in velocity over time. It uses various moving average techniques as a trend filter, providing traders with a clearer perspective on market direction and potential trade entries or exits.
Purpose
The main goal of this indicator is to spot strong momentum changes (accelerations) and confirm them with a chosen trend filter. It attempts to distinguish genuine market moves from noise, helping traders make more informed decisions. The script can also trigger multiple entries (smart pyramiding) within the same trend, if desired.
Overview
By measuring how quickly price velocity changes (acceleration) and comparing it against a smoothed average of itself, this script generates buy or sell signals once the acceleration surpasses a given threshold. A trend filter is added for further validation. Users can choose from multiple smoothing methods and color schemes, and they can optionally enable a small table that displays real-time acceleration values.
Originality and Uniqueness
This script offers an acceleration-based approach, backed by several different moving average choices. The blend of acceleration thresholds, a trend filter, and an optional extra-entry (pyramiding) feature provides a flexible toolkit for various trading styles. The inclusion of multiple color themes and a slope-based coloring of the trend line adds clarity and user customization.
Inputs & Features
1. Acceleration Length (length)
This input determines the number of bars used when calculating velocity. Specifically, the script computes velocity by taking the difference in closing prices over length bars, and then calculates acceleration based on how that velocity changes over an additional length. The default is 14.
2. Trend Filter Length (smoothing)
This sets the lookback period for the chosen trend filter method. The default of 50 results in a moderately smooth trend line. A higher smoothing value will create a slower-moving trend filter.
3. Acceleration Threshold (threshold)
This multiplier determines when acceleration is considered strong enough to trigger a main buy or sell signal. A default value of 2.5 means the current acceleration must exceed 2.5 times the average acceleration before signaling.
4. Smart Pyramiding Strength (pyramidingThreshold)
This lower threshold is used for additional (pyramiding) entries once the main trend has already been identified. For instance, if set to 0.5, the script looks for acceleration crossing ±0.5 times its average acceleration to add extra positions.
5. Max Pyramiding Entries (maxPyramidingEntries)
This sets a limit on how many extra positions can be opened (beyond the first main signal) in a single directional trend. The default of 3 ensures traders do not become overexposed.
6. Show Acceleration Table (showTable)
When enabled, a small table displaying the current acceleration and its average is added to the top-right corner of the chart. This table helps monitor real-time momentum changes.
7. Smart Pyramiding (enablePyramiding)
This toggle decides whether additional entries (buy or sell) will be generated once a main signal is active. If enabled, these extra signals act as filtered entries, only firing when acceleration re-crosses a smaller threshold (pyramidingThreshold). These signals have a '+' next to their signal on the label.
8. Select Color Scheme (selectedColorScheme)
Allows choosing between various pre-coded color themes, such as Default, Emerald, Sapphire, Golden Blaze, Mystic, Monochrome, Pastel, Vibrant, Earth, or Neon. Each theme applies a distinct pair of colors for bullish and bearish conditions.
9. Trend Filter (TrendFilter)
Lets the user pick one of several moving average approaches to determine the prevailing trend. The options include:
Short Term (TEMA)
EWMA
Medium Term (HMA)
Classic (SMA)
Quick Reaction (DEMA)
Each method behaves differently, balancing reactivity and smoothness.
10. Slope Lookback (slopeOffset)
Used to measure the slope of the trend filter over a set number of bars (default is 10). This slope then influences the coloring of the trend filter line, indicating bullish or bearish tilt.
Note: The script refers to this as the "Massive Slope Index," but it effectively serves as a Trend Slope Calculation, measuring how the chosen trend filter changes over a specified period.
11. Alerts for Buy/Sell and Pyramiding Signals
The script includes built-in alert conditions that can be enabled or configured. These alerts trigger whenever the script detects a main Buy or Sell signal, as well as extra (pyramiding) signals if Smart Pyramiding is active. This feature allows traders to receive immediate notifications or automate a trading response.
Calculation Methodology
1. Velocity and Acceleration
Velocity is derived by subtracting the closing price from its value length bars ago. Acceleration is the difference in velocity over an additional length period. This highlights how quickly momentum is shifting.
2. Average Acceleration
The script smooths raw acceleration with a simple moving average (SMA) using the smoothing input. Comparing current acceleration against this average provides a threshold-based signal mechanism.
3. Trend Filter
Users can pick one of five moving average types to form a trend baseline. These range from quick-reacting methods (DEMA, TEMA) to smoother options (SMA, HMA, EWMA). The script checks whether the price is above or below this filter to confirm trend direction.
4. Buy/Sell Logic
A buy occurs when acceleration surpasses avgAcceleration * threshold and price closes above the trend filter. A sell occurs under the opposite conditions. An additional overbought/oversold check (based on a longer SMA) refines these signals further.
When price is considered oversold (i.e., close is below a longer-term SMA), a bullish acceleration signal has a higher likelihood of success because it indicates that the market is attempting to reverse from a lower price region. Conversely, when price is considered overbought (close is above this longer-term SMA), a bearish acceleration signal is more likely to be valid. This helps reduce false signals by waiting until the market is extended enough that a reversal or continuation has a stronger chance of following through.
5. Smart Pyramiding
Once a main buy or sell signal is triggered, additional (filtered) entries can be taken if acceleration crosses a smaller multiplier (pyramidingThreshold). This helps traders scale into strong moves. The script enforces a cap (maxPyramidingEntries) to limit risk.
6. Visual Elements
Candles can be recolored based on the active signal. Labels appear on the chart whenever a main or pyramiding entry signal is triggered. An optional table can show real-time acceleration values.
Color Schemes
The script includes a variety of predefined color themes. For bullish conditions, it might use turquoise or green, and for bearish conditions, magenta or red—depending on which color scheme the user selects. Each scheme aims to provide clear visual differentiation between bullish and bearish market states.
Why Each Indicator Was Part of This Component
Acceleration is employed to detect swift changes in momentum, capturing shifts that may not yet appear in more traditional measures. To further adapt to different trading styles and market conditions, several moving average methods are incorporated:
• TEMA (Triple Exponential Moving Average) is chosen for its ability to reduce lag more effectively than a standard EMA while still reacting swiftly to price changes. Its construction layers exponential smoothing in a way that can highlight sudden momentum shifts without sacrificing too much smoothness.
• DEMA (Double Exponential Moving Average) provides a faster response than a single EMA by using two layers of exponential smoothing. It is slightly less smoothed than TEMA but can alert traders to momentum changes earlier, though with a higher risk of noise in choppier markets.
• HMA (Hull Moving Average) is known for its balance of smoothness and reduced lag. Its weighted calculations help track trend direction clearly, making it useful for traders who want a smoother line that still reacts fairly quickly.
• SMA (Simple Moving Average) is the classic baseline for smoothing price data. It offers a clear, stable perspective on long-term trends, though it reacts more slowly than other methods. Its simplicity can be beneficial in lower-volatility or more stable market environments.
• EWMA (Exponentially Weighted Moving Average) provides a middle ground by emphasizing recent price data while still retaining some degree of smoothing. It typically responds faster than an SMA but is less aggressive than DEMA or TEMA.
Alongside these moving average techniques, the script employs a slope calculation (referred to as the “Massive Slope Index”) to visually indicate whether the chosen filter is sloping upward or downward. This adds an extra layer of clarity to directional analysis. The indicator also uses overbought/oversold checks, based on a longer-term SMA, to help filter out signals in overstretched markets—reducing the likelihood of false entries in conditions where the price is already extensively extended.
Additional Features
Alerts can be set up for both main signals and additional pyramiding signals, which is helpful for automated or semi-automated trading. The optional acceleration table offers quick reference values, making momentum monitoring more intuitive. Including explicit alert conditions for Buy/Sell and Pyramiding ensures traders can respond promptly to market movements or integrate these triggers into automated strategies.
Summary
This script serves as a comprehensive momentum-based trading framework, leveraging acceleration metrics and multiple moving average filters to identify potential shifts in market direction. By combining overbought/oversold checks with threshold-based triggers, it aims to reduce the noise that commonly plagues purely reactive indicators. The flexibility of Smart Pyramiding, customizable color schemes, and built-in alerts allows users to tailor their experience and respond swiftly to valid signals, potentially enhancing trading decisions across various market conditions.
Disclaimer
All trading involves significant risk, and users should apply their own judgment, risk management, and broader analysis before making investment decisions.
Simple Sessions========== TLDR ==========
The "Simple Sessions" indicator plots vertical lines and labels at the open and close of the US (New York), Asia (Tokyo), and Europe (London), daily session. The existing session indicators I could find all changed the background color of the chart for the entire session or added extra information to the chart that cluttered up my view. This is meant to be a less noisy and easy to interpret indication that the session you trade has started or is ending.
========== Features ==========
- Show or hide vertical lines for session opens and closes
- Show or hide labels for session opens and closes
- Show or hide each session individually
- Show or hide just the session close indications
- Change the color used for each session open and close
- Change the labels text, size, and text color
========== Limitations ==========
The session start and end times are hard coded in for their time zones and can't be changed:
- US (New York) - 9:30 - 16:00
- Asia (Tokyo) - 9:00 - 15:00
- Europe (London) - 8:30 - 16:30
========== Use Cases ==========
- Easily see when each session started and ended without the chart being too noisy
- Make it easier to identify price action patterns and trade setups that may occur on the open of each session
=============================
If you'd like more features or options feel free to request them in the comments.
Global M2 Money Supply (USD) GrowthThe Global M2 Growth indicator evaluates the total liquid money supply, including cash, checking deposits, and assets that can be easily converted to cash. It reflects changes in global liquidity by tracking year-on-year (YoY) changes in the Global M2 money supply rather than its absolute value. This approach highlights the velocity of liquidity expansion or contraction, offering a clearer understanding of its correlation with asset performance, such as Bitcoin.
How It Works
When the Global M2 money supply expands, it reflects an increase in available liquidity. This often leads to an influx of capital into higher-yielding and riskier assets like Bitcoin, equities, and commodities. Conversely, when M2 contracts, liquidity tightens, leading to declines in the values of these assets.
An essential insight is that Bitcoin's price is not immediately affected by changes in M2. Research shows a lag of approximately 56-60 days (around two months) between liquidity changes and Bitcoin's price movements. Shifting the liquidity data forward by this period improves the correlation between Global M2 and Bitcoin performance.
How to Use
Track Global M2 YoY Change: Focus on liquidity's yearly change to identify trends. Rapid increases in liquidity often signify favorable conditions for Bitcoin and other risk assets to rise, while contractions often predict price declines or consolidation phases.
Account for the Lag Effect: Incorporate the two-month lag into your analysis to predict Bitcoin's potential moves more accurately. For instance, a recent resurgence in liquidity growth could signal a Bitcoin rally within the next two months.
Use as a Macro Indicator: Monitor liquidity trends alongside other economic indicators and asset performance metrics to build a more comprehensive investment framework.
By tracking these dynamics, traders and investors can better anticipate Bitcoin's trajectory and make informed decisions.
PDF-MA Supertrend [BackQuant]PDF-MA Supertrend
The PDF-MA Supertrend combines the innovative Probability Density Function (PDF) smoothing with the widely popular Supertrend methodology, creating a robust tool for identifying trends and generating actionable trading signals. This indicator is designed to provide precise entries and exits by dynamically adapting to market volatility while visualizing long and short opportunities directly on the chart.
Core Feature: PDF Smoothing
At the foundation of this indicator is the PDF smoothing technique, which applies a Probability Density Function to calculate a smoothed moving average. This method allows the indicator to assign adaptive weights to data points, making it responsive to market changes without overreacting to short-term volatility.
Key parameters include:
Variance: Controls the spread of the PDF weighting. A smaller variance results in sharper responses, while a larger variance smooths out the curve.
Mean: Shifts the PDF’s center, allowing traders to tweak how weights are distributed around the data points.
Smoothing Method: Offers the choice between EMA (Exponential Moving Average) and SMA (Simple Moving Average) for blending the PDF-smoothed data with traditional moving average methods.
By combining these parameters, the PDF smoothing creates a moving average that effectively captures underlying trends.
Supertrend: Adaptive Trend and Volatility Tracking
The Supertrend is a well-known volatility-based indicator that dynamically adjusts to market conditions using the ATR (Average True Range). In this script, the PDF-smoothed moving average acts as the price input, making the Supertrend calculation more adaptive and precise.
Key Supertrend Features:
ATR Period: Determines the lookback period for calculating market volatility.
Factor: Multiplies the ATR to set the distance between the Supertrend and the price. A higher factor creates wider bands, filtering out smaller price movements, while a lower factor captures tighter trends.
Dynamic Direction: The Supertrend flips its direction based on price interactions with the calculated upper and lower bands:
Uptrend : When the price is above the Supertrend, the direction turns bullish.
Downtrend : When the price is below the Supertrend, the direction turns bearish.
This combination of PDF smoothing and Supertrend calculation ensures that trends are detected with greater accuracy, while volatility filters out market noise.
Long and Short Signal Generation
The PDF-MA Supertrend generates actionable trading signals by detecting transitions in the trend direction:
Long Signal (𝕃): Triggered when the trend transitions from bearish to bullish. This is visually represented with a green triangle below the price bars.
Short Signal (𝕊): Triggered when the trend transitions from bullish to bearish. This is marked with a red triangle above the price bars.
These signals provide traders with clear entry and exit points, ensuring they can capitalize on emerging trends while avoiding false signals.
Customizable Visualization Options
The indicator offers a range of visualization settings to help traders interpret the data with ease:
Show Supertrend: Option to toggle the visibility of the Supertrend line.
Candle Coloring: Automatically colors candlesticks based on the trend direction:
Green for long trends.
Red for short trends.
Long and Short Signals (𝕃 + 𝕊): Displays long (𝕃) and short (𝕊) signals directly on the chart for quick identification of trade opportunities.
Line Color Customization: Allows users to customize the colors for long and short trends.
Alert Conditions
To ensure traders never miss an opportunity, the PDF-MA Supertrend includes built-in alerts for trend changes:
Long Signal Alert: Notifies when a bullish trend is identified.
Short Signal Alert: Notifies when a bearish trend is identified.
These alerts can be configured for real-time notifications via SMS, email, or push notifications, making it easier to stay updated on market movements.
Suggested Parameter Adjustments
The indicator’s effectiveness can be fine-tuned using the following guidelines:
Variance:
For low-volatility assets (e.g., indices): Use a smaller variance (1.0–1.5) for smoother trends.
For high-volatility assets (e.g., cryptocurrencies): Use a larger variance (1.5–2.0) to better capture rapid price changes.
ATR Factor:
A higher factor (e.g., 2.0) is better suited for long-term trend-following strategies.
A lower factor (e.g., 1.5) captures shorter-term trends.
Smoothing Period:
Shorter periods provide more reactive signals but may increase noise.
Longer periods offer stability and better alignment with significant trends.
Experimentation is encouraged to find the optimal settings for specific assets and trading strategies.
Trading Applications
The PDF-MA Supertrend is a versatile indicator suited to a variety of trading approaches:
Trend Following : Use the Supertrend line and signals to follow market trends and ride sustained price movements.
Reversal Trading : Spot potential trend reversals as the Supertrend flips direction.
Volatility Analysis : Adjust the ATR factor to filter out minor price fluctuations or capture sharp movements.
Final Thoughts
The PDF-MA Supertrend combines the precision of Probability Density Function smoothing with the adaptability of the Supertrend methodology, offering traders a powerful tool for identifying trends and volatility. With its customizable parameters, actionable signals, and built-in alerts, this indicator is an excellent choice for traders seeking a robust and reliable system for trend detection and entry/exit timing.
As always, backtesting and incorporating this indicator into a broader strategy are recommended for optimal results.
MERCURY-PRO by DrAbhiramSivprasd“MERCURYPRO”
The MERCURYPRO indicator is a custom technical analysis tool designed to provide dynamic trend signals based on a combination of the Chande Momentum Oscillator (CMO) and Standard Deviation (StDev). This indicator helps traders identify trend reversals or continuation based on the behavior of the price and momentum.
Key Features:
• Source Input: The indicator works with any price data, with the default set to close, which represents the closing price of each bar.
• Length Input: A period (default value 9) is used to determine the calculation window for the Chande Momentum Oscillator and Standard Deviation.
• Fixed CMO Length Option: Users can choose whether to use a fixed CMO length of 9 or adjust the length to the user-defined pds value.
• Calculation Method: The indicator allows switching between using the Chande Momentum Oscillator (CMO) or Standard Deviation (StDev) for the momentum calculation.
• Alpha: The smoothing factor used in the calculation of the MERCURYPRO value, which is based on the length of the period input (pds).
Core Calculation:
1. Momentum Calculation: The script calculates the momentum by determining the change in the source price (e.g., close) from one period to the next.
2. Chande Momentum Oscillator (CMO): The positive and negative momentum components are calculated and then summed over the specified period. This value is normalized to a percentage to determine the momentum strength.
3. K Value Calculation: The script selects either the CMO or Standard Deviation (depending on the user setting) to calculate the k value, which represents the dynamic price momentum.
4. MERCURYPRO Line: The final output of the indicator, MERCURYPRO, is computed using a weighted average of the k value and the previous MERCURYPRO value. The line is smoothed using the Alpha parameter.
Plot and Signal Generation:
• Color Coding: The line is color-coded based on the direction of MERCURYPRO:
• Blue: The trend is bullish (MERCURYPRO is rising).
• Maroon: The trend is bearish (MERCURYPRO is falling).
• Default Blue: Neutral or sideways market conditions.
• Plotting: The MERCURYPRO line is plotted with varying colors depending on the trend direction.
Alerts:
• Color Change Alert: The indicator has an alert condition based on when the MERCURYPRO line crosses its previous value. This helps traders stay informed about potential trend reversals or continuation signals.
Use Case:
• Trend Confirmation: Traders can use the MERCURYPRO indicator to identify whether the market is in a strong trend or not.
• Signal for Entries/Exits: The color change and crossovers of the MERCURYPRO line can be used as entry or exit signals, depending on the trader’s strategy.
Overall Purpose:
The MERCURYPRO indicator combines momentum analysis with smoothing techniques to offer a dynamic, responsive tool for identifying market trends and potential reversals. It is particularly useful in conjunction with other technical indicators to provide confirmation for trade setups.
How to Use the MERCURYPRO Indicator:
The MERCURYPRO indicator is designed to help traders identify trend reversals and market conditions. Here are a few ways you can use it:
1. Trend Confirmation (Bullish or Bearish)
• Bullish Trend: When the MERCURYPRO line is colored Blue, it indicates a rising trend, suggesting that the market is bullish.
• Action: You can consider entering long positions when the line turns blue, or holding your existing positions if you’re already long.
• Bearish Trend: When the MERCURYPRO line is colored Maroon, it signals a downward trend, indicating a bearish market.
• Action: You may consider entering short positions or closing any long positions when the line turns maroon.
2. Trend Reversal Alerts
• Color Change: The MERCURYPRO indicator changes color when there’s a trend reversal. The alert condition triggers when the MERCURYPRO crosses above or below its previous value, signaling a potential shift in the trend.
• Action: You can use this alert as a signal to monitor potential entry or exit points for trades. For example, a crossover from maroon to blue could indicate a potential buying opportunity, while a crossover from blue to maroon could suggest a selling opportunity.
3. Use with Other Indicators for Confirmation
• While the MERCURYPRO provides valuable trend insights, it’s often more effective when used in combination with other indicators like RSI (Relative Strength Index), MACD, or moving averages to confirm signals.
• Example: If MERCURYPRO turns blue and RSI is above 50, it may signal a strong bullish trend, enhancing the confidence to enter a long trade.
4. Divergence
• Watch for divergence between the MERCURYPRO line and the price chart:
• Bullish Divergence: If the price makes new lows while MERCURYPRO is showing higher lows, it suggests a potential bullish reversal.
• Bearish Divergence: If the price makes new highs while MERCURYPRO is showing lower highs, it suggests a potential bearish reversal.
Example of Use:
• Example 1: If the MERCURYPRO line changes from maroon to blue, you might enter a long position. After the MERCURYPRO line turns blue, use an alert to monitor the price action. If other indicators (like RSI) also suggest strength, your confidence in the trade will increase.
• Example 2: If the MERCURYPRO line shifts from blue to maroon, it could be a signal to close long positions and consider shorting the market if other conditions align (e.g., moving averages also turn bearish).
Warning for Using the MERCURYPRO Indicator:
1. Lagging Indicator:
• The MERCURYPRO is a lagging indicator, meaning it responds to price changes after they have occurred. This may delay entry and exit signals, and it’s crucial to combine it with other leading indicators to get timely information.
2. False Signals in Range-bound Markets:
• In choppy or sideways markets, the MERCURYPRO line can produce false signals, flipping between blue and maroon frequently without showing a clear trend. It’s important to avoid trading based on these false signals when the market is not trending.
3. Overreliance on One Indicator:
• Relying solely on MERCURYPRO can be risky. Always confirm signals with additional tools like volume analysis, price action, or other indicators to increase the accuracy of your trades.
4. Market Conditions Matter:
• The indicator may work well in trending markets, but in highly volatile or news-driven environments, it may provide misleading signals. Ensure that you take market fundamentals and external news events into consideration before acting on the indicator’s signals.
5. Risk Management:
• As with any technical indicator, MERCURYPRO is not infallible. Always use appropriate risk management techniques such as stop-loss orders to protect your capital. Never risk more than you can afford to lose on a trade.
6. Backtest First:
• Before implementing MERCURYPRO in live trading, make sure to backtest it on historical data. Test the strategy with various market conditions to assess its effectiveness and identify any potential weaknesses.
By considering these guidelines and warnings, you can use the MERCURYPRO indicator more effectively and mitigate potential risks in your trading strategy.
Z-Strike RecoveryThis strategy utilizes the Z-Score of daily changes in the VIX (Volatility Index) to identify moments of extreme market panic and initiate long entries. Scientific research highlights that extreme volatility levels often signal oversold markets, providing opportunities for mean-reversion strategies.
How the Strategy Works
Calculation of Daily VIX Changes:
The difference between today’s and yesterday’s VIX closing prices is calculated.
Z-Score Calculation:
The Z-Score quantifies how far the current change deviates from the mean (average), expressed in standard deviations:
Z-Score=(Daily VIX Change)−MeanStandard Deviation
Z-Score=Standard Deviation(Daily VIX Change)−Mean
The mean and standard deviation are computed over a rolling period of 16 days (default).
Entry Condition:
A long entry is triggered when the Z-Score exceeds a threshold of 1.3 (adjustable).
A high positive Z-Score indicates a strong overreaction in the market (panic).
Exit Condition:
The position is closed after 10 periods (days), regardless of market behavior.
Visualizations:
The Z-Score is plotted to make extreme values visible.
Horizontal threshold lines mark entry signals.
Bars with entry signals are highlighted with a blue background.
This strategy is particularly suitable for mean-reverting markets, such as the S&P 500.
Scientific Background
Volatility and Market Behavior:
Studies like Whaley (2000) demonstrate that the VIX, known as the "fear gauge," is highly correlated with market panic phases. A spike in the VIX is often interpreted as an oversold signal due to excessive hedging by investors.
Source: Whaley, R. E. (2000). The investor fear gauge. Journal of Portfolio Management, 26(3), 12-17.
Z-Score in Financial Strategies:
The Z-Score is a proven method for detecting statistical outliers and is widely used in mean-reversion strategies.
Source: Chan, E. (2009). Quantitative Trading. Wiley Finance.
Mean-Reversion Approach:
The strategy builds on the mean-reversion principle, which assumes that extreme market movements tend to revert to the mean over time.
Source: Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. Journal of Finance, 48(1), 65-91.
Adaptive Linear Regression ChannelOverview
The Adaptive Linear Regression Channel Script is an advanced, multi-functional trading tool crafted to help traders pinpoint market trends, identify potential reversals, assess volatility, and establish dynamic levels for profit-taking and position exits. By incorporating key concepts such as linear regression , standard deviation , and other volatility measures like the ATR , the script offers a comprehensive view of market behavior beyond traditional deviation metrics.
This dynamic model continuously adapts to changing market conditions, adjusting in real-time to provide clear visualizations of trends, channels, and volatility levels. This adaptability makes the script invaluable for both trend-following and counter-trend strategies, giving traders the flexibility to respond effectively to different market environments.
Background
What is Linear Regression?
Definition : Linear regression is a statistical technique used to model the relationship between a dependent variable (target) and one or more independent variables (predictors).
In its simplest form (simple linear regression), the relationship between two variables is represented by a straight line (the regression line).
y = mx + b
where :
- y is the target variable (price)
- m is the slope
- x is the independent variable (time)
- b is the intercept
Slope of the Regression Line
Definition: The slope (m) measures the rate at which the dependent variable (y) changes as the independent variable (x) changes.
Interpretation:
- A positive slope indicates an uptrend.
- A negative slope indicates a downtrend.
Uses in Trading:
- Identifying the strength and direction of market trends.
- Assessing the momentum of price movements.
R-squared (Coefficient of Determination)
Definition: A measure of how well the regression line fits the data, ranging from 0 to 1.
Calculation :
R2 = 1− (SS tot/SS res)
where:
- SSres is the sum of squared residuals.
- SStot is the total sum of squares.
Interpretation:
- Higher R2 indicates a better fit, meaning the model explains a larger proportion of the variance in the data.
Uses in Trading:
- Higher R-squared values give traders confidence in trend-based signals.
- Low R-squared values may suggest that the market is more random or volatile.
Standard Deviation
Definition: Standard Deviation quantifies the dispersion of data points in a dataset relative to the mean. A low standard deviation indicates that data points tend to be close to the mean, while a high standard deviation indicates that the data points are spread out over a larger range of values.
Calculation
σ=√∑(xi−μ)2/N
Where
- σ is the standard deviation.
- ∑ is the summation symbol, indicating that the expression that follows should be summed over all data points.
- xi, this represents the i-th data point in the dataset.
- μ\mu, this represents the mean(average) of all the data points in the dataset.
- (xi−μ)2, this is the squared difference between each data point and the mean.
- N is the total number of data points in the dataset.
- **Interpretation**
- A higher standard deviation indicates greater volatility.
- Useful for identifying overbought/oversold conditions in markets.
Key Features
Dynamic Linear Regression Channels:
The script automatically generates adaptive regression channels that expand or contract based on the current market volatility. This real-time adjustment ensures that traders are always working with the most relevant data, making it easier to spot key support and resistance levels.
The channel width itself serves as an indicator of market volatility, expanding during periods of heightened uncertainty and contracting during more stable phases. Additionally, the channel width is trained on previous channel widths , allowing the script to adapt and provide a more accurate view of volatility trends of the asset. Traders can also customize the script to train on less historical data , enabling a more recent view of volatility , which is particularly useful in fast-moving or changing markets.
Dynamic Profits and Stops:
What is it?
Dynamic profit levels allow traders to adjust take-profit targets based on real-time market conditions. Unlike static levels, which remain fixed regardless of market changes, these adaptive levels leverage past volatility data to create more flexible profit-taking strategies.
How does it work?
The script determines these levels using previously stored deviation values. These deviations are categorized into quantiles (like Q1, Q2, Q3, etc.) to classify current market conditions. As new deviation data is recorded, the profit levels are adjusted dynamically to reflect changes in market volatility. This approach helps to refine profit targets, especially when using regression channels with standard deviation rather than traditional ATR bands.
Why is it valuable?
By utilizing adaptive profit levels, traders can optimize their exits based on the current volatility landscape. For instance, when volatility increases, the dynamic levels expand, allowing trades to capture larger price movements. Conversely, during low volatility, profit targets tighten to lock in gains sooner, reducing exposure to market reversals. This flexibility is especially beneficial when combined with adaptive regression channels that respond to changes in standard deviation.
Slope-Based Trend Analysis:
One of the core elements of this script is the slope of the regression line , which helps define the direction and strength of the trend. Positive slopes indicate bullish momentum, while negative slopes suggest bearish conditions. The slope's steepness gives traders insight into the market's momentum, allowing them to adjust their strategies based on the strength of the trend.
Additionally, the script uses the slope to create a color gradient , which visually represents the intensity of the market's momentum. The gradient peaks at one color to show the maximum bullish momentum experienced in the past, while another color represents the maximum bearish momentum experienced in the past. This color-coded visualization makes it easier for traders to quickly assess the market's strength and direction at a glance.
Volatility Heatmap:
The integrated heatmap provides an intuitive, color-coded visualization of market volatility. The heatmap highlights areas where price action is expanding or contracting, giving traders a clear view of where volatility is rising or falling. By mapping out deviations from the regression line, the heatmap makes it easier to spot periods of high volatility that could lead to major market moves or potential reversals.
Deviation Concepts:
The script tracks price deviations from the regression line when a new range is formed, providing valuable insights when the price significantly deviates from the expected trend. These deviations are key in identifying potential breakout points or trend shifts .
This helps traders understand when the market is overextended or when a pullback may be imminent, allowing them to make more informed trading decisions.
Adaptive Model Properties:
Unlike static indicators, this script adapts over time . As the market changes, it stores historical data related to channel widths , slope dynamics , and volatility levels , adjusting its analysis accordingly to stay relevant to current market conditions.
Traders have the ability to train the model on all available data or specify a set number of bars to focus on more recent market activity. This flexibility allows for more tailored analysis , ensuring that traders can work with data that best fits their trading style and time horizon.
This continuous learning approach ensures that traders always have the most up-to-date insight into the market's structure.
Table
The table displays key metrics in real time to provide deeper insights into market behavior:
1. Deviation & Slope : Shows the current deviation if set to standard deviation or atr if set to atr(values used to calculated the channel widths) and the trend slope, helping to gauge market volatility and trend direction.
2. Rate of Change : For both deviation/atr and slope, the table also calculates the rate of change of their rates—essentially capturing the acceleration or deceleration of trends and volatility. This helps identify shifts in market momentum early.
3. R-squared : Indicates the strength and reliability of the trend fit. A higher value means the regression line better explains the price movements.
4. Quantiles : Uses historical deviation data to categorize current market conditions into quartiles (e.g., Q1, Q2, Q3). This helps classify the market's current volatility level, allowing traders to adjust strategies dynamically.
By combining these metrics, the table offers a comprehensive, real-time snapshot of market conditions, enabling more informed and adaptive trading decisions.
Settings
Here’s a breakdown of the script's settings for easy reference:
Linear Regression Settings
Show Dynamic Levels :Toggle to display dynamic profit levels on the chart.
Deviation Type :Select the method for calculating deviation—options include ATR (Average True Range) or Standard Deviation.
Timeframe :Sets the specific timeframe for the regression analysis (default is the chart’s timeframe).
Period :Defines the number of bars used for calculating the regression line (e.g., 50 bars).
Deviation Multiplier :Multiplier used to adjust the width of the deviation channel around the regression line.
Rate of Change :Sets the period for calculating the rate of change of the slope (used for momentum analysis).
Max Bars Back :Limits the number of historical bars to analyze (0 means all available data).
Slope Lookback :Number of bars used to calculate the slope gradient for trend detection.
Slope Gradient Display :Toggle to enable gradient coloring based on slope direction.
Slope Gradient Colors :Set colors for positive and negative slopes, respectively.
Slope Fill :Adjusts the transparency of the slope gradient fill.
Volatility Gradient Display :Toggle to enable gradient coloring based on volatility levels.
Volatility Gradient Colors :Set colors for low and high volatility, respectively.
Volatility Fill :Adjusts the transparency of the volatility gradient fill.
Table Settings
Show Table :Toggle to display the metrics table on the chart.
Table Position :Choose where to position the table (e.g., top-right, middle-center, etc.).
Font Size :Set the size of the text in the table. Options include Tiny, Small, Normal, Large, and Huge.
Autocorrelogram (YavuzAkbay)The Autocorrelogram (ACF) is a statistical tool designed for traders and analysts to evaluate the autocorrelation of price movements over time. Autocorrelation measures the correlation of a signal with a delayed version of itself, providing insights into the degree to which past price movements influence future price movements. This indicator is particularly useful for identifying trends and patterns in time series data, helping traders make informed decisions based on historical price behavior.
Key Components and Functionality
1. Input Parameters:
Sample Size: This parameter defines the number of data points used in the calculation of the autocorrelation function. A minimum value of 9 ensures statistical relevance. The default value is set to 100, which provides a broad view of the price behavior.
Data Source: Users can select the price data they wish to analyze (e.g., closing prices). This flexibility allows traders to apply the ACF to various price types, depending on their trading strategy.
Significance Level: This parameter determines the threshold for statistical significance in the autocorrelation values. The default value is set at 1.96, corresponding to a 95% confidence level, but users can adjust it to their preferences.
Calculate Change: This boolean option allows users to choose whether to calculate the change in the selected data source (e.g., daily price changes) rather than using the raw data. Analyzing changes can highlight momentum shifts that may be obscured in absolute price levels.
2. Core Calculations:
Simple Moving Average (SMA): The indicator computes the SMA of the selected data source over the defined sample size. This average serves as a baseline for assessing deviations in price behavior.
Variance Calculation: The variance of the price changes is calculated to understand the spread of the data. The variance is scaled by the sample size to ensure that the autocorrelation values are appropriately normalized.
Lag Value: The indicator calculates a lag value based on the sample size to determine how many periods back the autocorrelation will be calculated. This helps in assessing correlations at different time intervals.
3. Autocorrelation Calculation:
The script calculates the autocorrelation for lags ranging from 0 to 53. For each lag, it computes the autocovariance (the correlation of the signal with itself at different time intervals) and normalizes this by the variance. The result is a set of autocorrelation values that indicate the strength and direction of the relationship between current and past price movements.
4. Visualization:
The autocorrelation values are plotted as lines on the chart, with different colors indicating positive and negative correlations. Lines are dynamically drawn for each lag, providing a visual representation of how past prices influence current prices. A maximum of 54 lines (for lags 0 to 53) is maintained, with the oldest line being removed when the limit is exceeded.
Significance Levels: Horizontal lines are drawn at the defined significance levels, helping traders quickly identify when the autocorrelation values exceed the statistically significant threshold. These lines serve as benchmarks for interpreting the relevance of the autocorrelation values.
How to Use the ACF Indicator
Identifying Trends: Traders can use the ACF indicator to spot trends in the data. Strong positive autocorrelation at a given lag indicates that past price movements have a lasting influence on future movements, suggesting a potential continuation of the current trend. Conversely, significant negative autocorrelation may indicate reversals or mean reversion.
Decision Making: By comparing the autocorrelation values against the significance levels, traders can make informed decisions. For example, if the autocorrelation at lag 1 is significantly positive, it may suggest that a trend is likely to persist in the immediate future, prompting traders to consider long positions.
Setting Parameters: Adjusting the sample size and significance level allows traders to tailor the indicator to their specific market conditions and trading style. A larger sample size may provide more stable estimates but could obscure short-term fluctuations, while a smaller size may capture quick changes but with higher variability.
Combining with Other Indicators: The ACF can be used in conjunction with other technical indicators (like Moving Averages or RSI) to enhance trading strategies. Confirming signals from multiple indicators can provide stronger trade confirmations.
Hinton Map█ HINTON MAP
This script displays a Hinton Map visualization of market data for user-defined tickers and timeframes. It uses color gradients to represent the magnitude and direction of price change, RSI, and a combination of both.
This is one example. You can modify and try other values as you wish, but do keep the incoming values between -1 and 1.
In the Example Usage:
Users can input up to 5 symbols and 5 timeframes. For each ticker/timeframe combination:
The box size represents the relative magnitude of the 2-bar percentage change.
The box fill color represents the direction and magnitude of the 2-bar percentage change.
The box border color and thickness represent the RSI deviation from 50.
The inner box color represents a combination of price change magnitude and RSI deviation from 50.
Hovering over each box displays a tooltip with the ticker, timeframe, percentage change, and RSI.
Inputs:
• Unit Size (bars):
The size of each Hinton unit in bars.
Type: int
Default Value: 10
• Border Width:
The base width of the inner box border.
Type: int
Default Value: 3
• Negative Hue (0-360):
The hue value for negative price changes (0-360).
Type: float
Default Value: 100
• Positive Hue (0-360):
The hue value for positive price changes (0-360).
Type: float
Default Value: 180
• Ticker 1-5:
The tickers to display on the Hinton map.
Type: string
Default Value: AAPL
• Timeframes (comma separated):
The timeframes to display on the Hinton map (comma-separated).
Type: string
Default Value: 1, 5, 60, 1D, 1W
(Fun Note: My Home town is named `Hinton`)
Median For Loop | viResearchMedian For Loop | viResearch
Conceptual Foundation and Innovation
The "Median For Loop" indicator provides an innovative approach to analyzing market data by combining the power of the Median Price with a dynamic scoring system based on a for loop mechanism. This unique script evaluates the median price of the market over a user-defined period, then applies a loop function to generate a score that helps traders detect trends, reversals, and market momentum.
The median, being a robust measure of central tendency, helps filter out noise and better represent the middle of a price range. By applying a loop function that compares the current median to historical values, this script offers a detailed view of price momentum, allowing traders to detect potential trend changes with improved accuracy.
Technical Composition and Calculation
The "Median For Loop" script is composed of two primary components:
Median Calculation: The indicator calculates the median price of the market based on the chosen input source (default is HLC3: the average of high, low, and close) and the specified length. This creates a central value around which market movements can be evaluated.
For Loop Scoring System: This system compares the current median value with past values within a user-defined range, generating a score that reflects how the market is trending. The loop mechanism dynamically sums the score based on whether the current median is higher or lower than historical medians, providing a clear signal of trend strength and direction.
Key Calculations:
Median Calculation: The median is calculated using the percentile_nearest_rank function, providing the 50th percentile of the selected price data over the given length.
For Loop Scoring:
The loop evaluates the median over a defined range (from and to), comparing the current median to historical values.
If the current median is higher than a previous value, a positive score is added; if it is lower, a negative score is added. This forms the final total score, indicating the trend strength.
Features and User Inputs
The "Median For Loop" script offers flexibility and customization options for traders to adapt it to various market conditions and trading strategies:
Median Length: Control the period over which the median price is calculated, affecting the responsiveness of the indicator to price changes.
Loop Range (From and To): Define the range over which the loop evaluates historical median values, allowing traders to adjust how far back the script looks when assessing momentum.
Thresholds: User-defined thresholds are available to specify when the score indicates an uptrend or downtrend. This provides traders with control over the sensitivity of the trend signals.
Practical Applications
The "Median For Loop" indicator is ideal for traders seeking a balanced, noise-filtered approach to trend detection. It is particularly effective for:
Detecting Early Trend Reversals: The loop-based scoring system offers early signals of potential reversals by comparing the current median with past medians, giving traders an advantage in volatile markets.
Confirming Trend Strength: By analyzing the median over time, the script helps confirm whether trends are gaining or losing momentum, improving the accuracy of trade entries and exits.
Strategic Positioning: The customizable parameters allow traders to adapt the script to various market conditions, enhancing their ability to position themselves effectively in both trending and ranging markets.
Advantages and Strategic Value
The key advantage of the "Median For Loop" script is its ability to reduce market noise by focusing on the median price while providing a dynamic scoring system for trend detection. The combination of median calculation and loop-based evaluation offers a more refined view of market momentum, reducing false signals and increasing the reliability of trend identification. This makes it a valuable tool for traders aiming to enhance their market timing and strategy development.
Alerts and Visual Cues
The script includes built-in alerts to notify traders of potential trend changes:
Median For Loop Long: Triggers when the score exceeds the upper threshold, indicating a possible upward trend.
Median For Loop Short: Triggers when the score falls below the lower threshold, signaling a potential downward trend.
Visual cues are also provided, with background colors highlighting potential trend shifts when the score crosses certain levels, offering traders an easy-to-read signal on the chart.
Summary and Usage Tips
The "Median For Loop | viResearch" indicator provides a powerful combination of median price smoothing and dynamic trend scoring, allowing traders to gain a clearer understanding of market momentum. By incorporating this script into your trading strategy, you can improve your ability to detect trends and reversals while reducing the noise that often affects price data. Whether you're focusing on early reversals or confirming the strength of existing trends, this indicator offers a reliable and customizable solution.
Note: Backtests are based on past results and are not indicative of future performance.
Lsma For Loop | viResearchLsma For Loop | viResearch
Conceptual Foundation and Innovation
The "Lsma For Loop" indicator offers a unique combination of the Least Squares Moving Average (LSMA) with a dynamic scoring system based on a loop function. By comparing the current LSMA value with historical values over a user-defined range, this indicator generates a detailed score that helps detect trend strength and potential reversals. This approach provides traders with a more nuanced analysis of price action, allowing them to identify trends earlier and with more accuracy.
The LSMA, which minimizes lag compared to traditional moving averages, is ideal for detecting trends as it provides a smooth and quick-to-respond line. When combined with the loop-based scoring system, traders can benefit from a powerful tool for analyzing market momentum and capturing profitable trends.
Technical Composition and Calculation
The "Lsma For Loop" script features two essential components:
Least Squares Moving Average (LSMA): The LSMA is calculated over a user-defined length using a linear regression model. It provides a smooth line that follows price trends more closely, reducing the noise that is often present in simple moving averages.
For Loop Scoring System: This system evaluates the LSMA over a range of previous values, generating a score based on whether the current LSMA is higher or lower than its previous values within the specified range. The resulting score reflects the strength of the trend, with higher scores indicating a stronger uptrend and lower scores signaling a downtrend.
Key Calculations:
LSMA Calculation: The LSMA is derived from the closing price over the selected period (len), providing a smooth moving average that fits the price data closely.
For Loop Scoring:
The loop iterates over a range of previous LSMA values, comparing the current LSMA to each past value.
If the current LSMA is higher than a previous value, a positive score is added; if it is lower, a negative score is added. The sum of these comparisons forms the overall score.
Features and User Inputs
The "Lsma For Loop" script offers a range of customization options, allowing traders to tailor the indicator to their specific trading strategies and market conditions:
LSMA Length: Adjust the length of the LSMA, controlling the smoothness of the indicator and how quickly it reacts to price changes.
Loop Range (From and To): Define the range over which the for loop evaluates LSMA values. This provides flexibility in assessing momentum over different timeframes.
Thresholds: Customizable threshold levels are used to define when the score indicates an uptrend or downtrend. This allows traders to fine-tune the sensitivity of the indicator to market movements.
Practical Applications
The "Lsma For Loop" is a versatile tool for traders who want to leverage the advantages of LSMA smoothing while gaining a more detailed view of trend strength. This indicator is particularly useful for:
Identifying Trend Reversals: The loop-based scoring system provides an early indication of potential trend reversals, allowing traders to react before major market movements.
Confirming Trend Strength: By evaluating the LSMA against a range of previous values, the script helps confirm whether a trend is strengthening or weakening.
Enhanced Market Positioning: The customizable range and thresholds enable traders to adapt the script to different market conditions, whether they are day trading or swing trading.
Advantages and Strategic Value
The primary advantage of the "Lsma For Loop" script lies in its ability to provide a more granular analysis of LSMA behavior through the use of the for loop. This dynamic approach reduces the likelihood of false signals and offers greater accuracy in detecting trends. The indicator’s versatility makes it a valuable tool for both short-term and long-term trading strategies.
Alerts and Visual Cues
The script includes built-in alert conditions to notify traders of key trend changes:
Lsma For Loop Long: Indicates a potential upward trend when the score exceeds the upper threshold.
Lsma For Loop Short: Signals a potential downward trend when the score falls below the lower threshold.
Additionally, visual cues such as background color changes highlight when the score crosses certain key levels, providing an easy-to-read representation of market trends directly on the chart.
Summary and Usage Tips
The "Lsma For Loop | viResearch" indicator provides traders with a powerful tool that combines LSMA smoothing with a dynamic loop-based scoring system for trend detection. Incorporating this script into your trading strategy can help improve trend identification and enhance decision-making around entries and exits. Whether you are trading in trending markets or looking for early reversal signals, this script offers a reliable and flexible solution.
Note: Backtests are based on past results and are not indicative of future performance.
Xtrender and TSI FusionXtrender and TSI Fusion Indicator
I created this indicator for myself. I was inspired by the indicators created by Bjorgum, Duyck and QuantTherapy and decided to create multiple indicators that either work well combined with their indicators or something new that applies some of their indicator concepts. I decided to share all of the indicator I have created because I believe in learning and earing together as a community. If you guys have any questions or suggestions write them.
Overview: The Xtrender and TSI Fusion Indicator is a powerful tool designed to help traders analyze market momentum, trends, and potential reversals. By combining Xtrender with the True Strength Index (TSI), this indicator provides a comprehensive view of market dynamics, making it easier to identify trading opportunities.
Image: Timeframe is set to daily
Features:
1.Xtrender Analysis:
Short-Term Xtrender: Visualizes short-term momentum using RSI-based calculations on EMA differences. This helps in identifying immediate market trends and pullbacks.
Image above: showcases Short-Term Xtrender
Xtrender T3: A smoothed version of the Xtrender that reduces noise and highlights significant trend changes.
Image above: showcases Xtrender T3 with Xtrender T3 color
2.TSI (True Strength Index):
TSI Value: Measures momentum by comparing price changes over two time periods, offering a clear view of trend strength.
TSI Signal Line: A smoothed version of the TSI value, used to generate buy and sell signals when crossed by the TSI.
Image: showcases TSI Value with TSI Signal Line
TSI Histogram: Shows the difference between the TSI and its signal line, highlighting potential reversals and trend continuations.
Image: showcases TSI Histogram
3.Color Coding and Visual Cues:
Trend Colors: The indicator uses dynamic colors to represent bullish or bearish conditions, making it easy to interpret market sentiment.
Background Color : The background changes color based on TSI signals, further aiding in visual trend analysis.
Image: showcases Background color and Zero line
How to Use
1.Xtrender Analysis:
Short-Term Xtrender: The short-term Xtrender is plotted as columns, changing color based on its direction and value. Green or lime indicates positive momentum, while red or maroon indicates negative momentum.
Xtrender T3: The Xtrender T3 line (black) represents a smoothed version of the short-term Xtrender, providing a clearer picture of the overall trend. The color of this line changes based on the Xtrender's value, helping you spot potential trend changes.
2.TSI (True Strength Index):
TSI Value and Signal Line: The TSI value is plotted as a line, with its color changing based on its relationship to the signal line. A crossover of the TSI above the signal line suggests a potential bullish move, while a crossover below indicates a bearish trend.
TSI Histogram: The histogram represents the difference between the TSI and its signal line. Positive values indicate bullish momentum, while negative values suggest bearish momentum.
3.Background Color:
The background color changes based on the TSI signal, with a greenish hue indicating bullish conditions and a reddish hue indicating bearish conditions. This provides a quick visual reference for market sentiment.
4.Zero Line:
A horizontal gray dotted line at the zero level helps you easily identify when the Xtrender or TSI crosses into positive or negative territory, signaling potential trend shifts.
Image above: Timeframe on daily with the individual elements combined
Example of Use:
•Trend Confirmation: Use the Xtrender and Xtrender T3 to confirm the direction of the trend. If both are aligned with the same color and direction, it increases the probability of a strong trend.
•Momentum Reversals: Watch for TSI crosses and histogram shifts to identify potential reversals. For example, a TSI crossover above its signal line with a corresponding change in the histogram from negative to positive could signal a buying opportunity.
•Pullbacks: Identify pullbacks within a trend by observing temporary shifts in the short-term Xtrender or TSI histogram. Use these signals to enter trades in the direction of the overall trend.
Image above: Showcases, Trend confirmation, reversal and pullbacks on daily timeframe.
Customization:
•TSI Speed: Choose between "Fast" and "Slow" TSI settings based on your trading style. Fast settings are more responsive to price changes, while slow settings offer smoother signals.
•Color Settings: Customize the colors for bullish, bearish, and neutral TSI conditions to match your personal preferences or chart theme.
This indicator is versatile and can be used for various trading strategies, from trend following to momentum trading, making it a valuable tool in any trader's arsenal.
My Scripts/Indicators/Ideas /Systems that I share are only for educational purposes






















