Momentum ArrowsThis simple indicators paints the Momentum based on Stochastic, RSI or WaveTrend onto the Price Chart by showing Green or Red arrows.
In the settings it can be selected which indicator is used, Stochastic is selected by default.
Length of the arrows is determined by the strength of the momentum:
Stochastic:    Difference between D and K
RSI:               Difference from RSI-50
WaveTrend:   Difference between the Waves
(Thanks to @LazyBear for the WaveTrend inspiration)
PS:
If anyone has an idea how to conditionally change the color of the arrows, then please let me know -  that would be the icing on the cake. Then it would be possible to indicate Overbought/Oversold levels with different colors.
Unfortunately it currently seems not to be possible to dynamically change the arrow colour.
Cari dalam skrip untuk "wave"
WWV_LB pivotfix histogram jayy
This is a modification of LazyBear's WWV_LB which plots cumulative volume of waves.  The reversal points are defined through relative closing prices. I made adjustments to the script to show waves turning on actual/true low or high pivots as opposed to the bar/candle identified in the LazyBear script. What I mean by that is that the actual/true low or high pivots are in fact the true WWV_LB pivots. The original WWV_LB script calculates cumulative volume from reversal confirmation bar  to reversal confirmation bar as opposed to the true WWV_LB pivot bar to pivot bar.  As such the waves can have slightly different start and end points.  As such the cumulative volume can also be different from te WWV_LB script.  This is because confirmation of a wave reversal can lag a few bars after the true reversal pivot bar.  In the script notes, you will see the original key WWV_LB script lines that identify the true high or low pivots and confirm the wave direction has reversed. I have taken these lines from LazyBear's original script. I have included the LazyBear script within the script notes so that the original can be compared to what I have added/changed. Instead of "trendDetectionLength"  I have inserted "Trend Detection Length".   You can of course change the descriptor to what you wish by editing script line 33 to the original term or whatever you wish.  You might also wish to set the default to the value "2" as per the original script.  I have set the default to "3". This script should be used in conjunction with "WWV-LB zigzag pivot fix jayy" script which is shown on this screen for comparison. 
Here is a link to the original LazyBear histogram script which can be used for comparison.  The differences are subtle, however, the histograms will regularly be different by a bar or two:
  
The lowest panel has the original LazyBear WWV_LB script for comparison.  All three scripts have been set to a Trend Detection Length of 3.jayy
Vegas tunnelHi all,
This is the first step in putting together a more comprehensive suite of indicators and strategies based around the original Vegas tunnel method.
You will need to know what that is before trying to use this indicator. I would implore you to take the time to read the document. It's free to the universe and is a very valuable piece of work in my opinion.
Here is the link to the original documentation dl.fxf1.com
This indicator is set up to use the original levels as described by Vegas. Future releases will allow for more custom levels.
A note on the target waves. Vegas gives us the levels of 55, 89 and 233...all in FX pips. You will need to adjust that for your instrument and it is your personal preference. If you are using BTC , you might use $55, $89 etc, for ETH $5.50, $8.90 etc, for S+P 55, 89, 233 or for FX, the number might be 0.0055 etc
The indicator has been left blank so you can fill the target waves in yourself.
A note on the templates
The original template is simply as Vegas described it in his document, change it as you wish
The TD template comes from where I first was introduced to the concept. I can't mention the full source here, but some of you will know to what I am referring to. A massive thanks to TD for all the material they have provided the world.
The HH (Hero Hedge) template is just my way of looking at the wave. It's green when the faster MA is above the slower MA and red for the opposite. It doesn't really mean much, it's just a visual reference. Perhaps you can use it to filter signals if you so wish.
Finally, some of you may notice that I am an amateur coder at best. If you think you can improve or tidy up the code, then by all means, please reach out and collaborate with me.
I am trying to produce something to the benefit of all. I hope this can help you. If it does, then please pay it forward as I am trying to do.
Hero Hedge.
Vegas tunnelHi all,
This is the first step in putting together a more comprehensive suite of indicators and strategies based around the original Vegas tunnel method.
You will need to know what that is before trying to use this indicator. I would implore you to take the time to read the document. It's free to the universe and is a very valuable piece of work in my opinion.
Here is the link to the original documentation dl.fxf1.com
This indicator is set up to use the original levels as described by Vegas. Future releases will allow for more custom levels.
A note on the target waves. Vegas gives us the levels of 55, 89 and 233...all in FX pips. You will need to adjust that for your instrument and it is your personal preference. If you are using BTC , you might use $55, $89 etc, for ETH $5.50, $8.90 etc, for S+P 55, 89, 233 or for FX, the number might be 0.0055 etc
The indicator has been left blank so you can fill the target waves in yourself.
A note on the templates
The original template is simply as Vegas described it in his document, change it as you wish
The TD template comes from where I first was introduced to the concept. I can't mention the full source here, but some of you will know to what I am referring to. A massive thanks to TD for all the material they have provided the world.
The HH (Hero Hedge) template is just my way of looking at the wave. It's green when the faster MA is above the slower MA and red for the opposite. It doesn't really mean much, it's just a visual reference. Perhaps you can use it to filter signals if you so wish.
Finally, some of you may notice that I am an amateur coder at best. If you think you can improve or tidy up the code, then by all means, please reach out and collaborate with me.
I am trying to produce something to the benefit of all. I hope this can help you. If it does, then please pay it forward as I am trying to do.
Hero Hedge.
Cora Combined Suite v1 [JopAlgo]Cora Combined Suite v1   (CCSV1)
This is an 2 in 1 indicator (Overlay & Oscillator) the Cora Combined Suite v1  .
CCSV1 combines a price-pane Overlay for structure/trend with a compact Oscillator for timing/pressure. It’s designed to be clear, beginner-friendly, and largely automatic: you pick a profile (Scalp / Intraday / Swing), choose whether to run as Overlay or Oscillator, and CCSV1 tunes itself in the background.
What’s inside — at a glance
1) Overlay (price pane)
CoRa Wave: a smooth trend line based on a compound-ratio WMA (CRWMA).
Green when the slope rises (bull bias), Red when it falls (bear bias).
Asymmetric ATR Cloud around the CoRa Wave
Width expands more up when buyer pressure dominates and more down when seller pressure dominates.
Fill is intentionally light, so candlesticks remain readable.
Chop Guard (Range-Lock Gate)
When the cloud stays very narrow versus ATR (classic “dead water”), pullback alerts are muted to avoid noise.
Visuals don’t change—only the alerting logic goes quiet.
Typical Overlay reads
Trend: Follow the CoRa color; green favors long setups, red favors shorts.
Value: Pullbacks into/through the cloud in trend direction are higher-quality than chasing breaks far outside it.
Dominance: A visibly asymmetric cloud hints which side is funding the move (buyers vs sellers).
2) Oscillator (subpane or inline preview)
Stretch-Z (columns): how far price is from the CoRa mean (mean-reversion context), clipped to ±clip.
Near 0 = equilibrium; > +2 / < −2 = stretched/extended.
Slope-Z (line): z-score of CoRa’s slope (momentum of the trend line).
Crossing 0 upward = potential bullish impulse; downward = potential bearish impulse.
VPO (stepline): a normalized Volume-Pressure read (positive = buyers funding, negative = sellers).
Rendered as a clean stepline to emphasize state changes.
Event Bands ±2 (subpane): thin reference lines to spot extension/exhaustion zones fast.
Floor/Ceiling lines (optional): quiet boundaries so the panel doesn’t feel “bottomless.”
Inline vs Subpane
Inline (overlay): the oscillator auto-anchors and scales beneath price, so it never crushes the price scale.
Subpane (raw): move to a new pane for the classic ±clip view (with ±2 bands). Recommended for systematic use.
Why traders like it
Two in one: Structure on the chart, timing in the panel—built to complement each other.
Retail-first automation: Choose Scalp / Intraday / Swing and let CCSV1 auto-tune lengths, clips, and pressure windows.
Robust statistics: On fast, spiky markets/timeframes, it prefers outlier-resistant math automatically for steadier signals.
Optional HTF gate: You can require higher-timeframe agreement for oscillator alerts without changing visuals.
Quick start (simple playbook)
Run As
Overlay for structure: assess trend direction, where value is (the cloud), and whether chop guard is active.
Oscillator for timing: move to a subpane to see Stretch-Z, Slope-Z, VPO, and ±2 bands clearly.
Profile
Scalp (1–5m), Intraday (15–60m), or Swing (4H–1D). CCSV1 adjusts length/clip/pressure windows accordingly.
Overlay entries
Trade with CoRa color.
Prefer pullbacks into/through the cloud (trend direction).
If chop guard is active, wait; let the market “breathe” before engaging.
Oscillator timing
Look for Funded Flips: Slope-Z crossing 0 in the direction of VPO (i.e., momentum + funded pressure).
Use ±2 bands to manage risk: stretched conditions can stall or revert—better to scale or wait for a clean reset.
Optional HTF gate
Enable to green-light only those oscillator alerts that align with your chosen higher timeframe.
What each signal means (plain language)
CoRa turns green/red (Overlay): trend bias shift on your chart.
Cloud width tilts asymmetrically: one side (buyers/sellers) is dominating; extensions on that side are more likely.
Stretch-Z near 0: fair value around CoRa; pullback timing zone.
Stretch-Z > +2 / < −2: extended; watch for slowing momentum or scale decisions.
Slope-Z cross up/down: new impulse starting; combine with VPO sign to avoid unfunded crosses.
VPO positive/negative: net buying/selling pressure funding the move.
Alerts included
Overlay
Pullback Long OK
Pullback Short OK
Oscillator
Funded Flip Up / Funded Flip Down (Slope-Z crosses 0 with VPO agreement)
Pullback Long Ready / Pullback Short Ready (near equilibrium with aligned momentum and pressure)
Exhaustion Risk (Long/Short) (Stretch-Z beyond ±2 with weakening momentum or pressure)
Tip: Keep chart alerts concise and use strategy rules (TP/SL/filters) in your trade plan.
Best practices
One glance workflow
Read Overlay for direction + value.
Use Oscillator for trigger + confirmation.
Pairing
Combine with S/R or your preferred execution framework (e.g., your JopAlgo setups).
The suite is neutral: it won’t force trades; it highlights context and quality.
Markets
Works on crypto, indices, FX, and commodities.
Where real volume is available, VPO is strongest; on synthetic volume, treat VPO as a soft filter.
Timeframes
Use the Profile preset closest to your style; feel free to fine-tune later.
For multi-TF trading, enable the HTF gate on the oscillator alerts only.
Inputs you’ll actually use (the rest can stay on Auto)
Run As: Overlay or Oscillator.
Profile: Scalp / Intraday / Swing.
Oscillator Render: “Subpane (raw)” for a classic panel; “Inline (overlay)” only for a quick preview.
HTF gate (optional): require higher-timeframe Slope-Z agreement for oscillator alerts.
Everything else ships with sensible defaults and auto-logic.
Limitations & tips
Not a strategy: CCSV1 is a decision support tool; you still need your entry/exit rules and risk management.
Non-repainting design: Signals finalize on bar close; intrabar graphics can adjust during the bar (Pine standard).
Very flat sessions: If price and volume are extremely quiet, expect fewer alerts; that restraint is intentional.
Who is this for?
Beginners who want one clean overlay for structure and one simple oscillator for timing—without wrestling settings.
Intermediates seeking a coherent trend/pressure framework with HTF confirmation.
Advanced users who appreciate robust stats and clean engineering behind the visuals.
Disclaimer: Educational purposes only. Not financial advice. Trading involves risk. Use at your own discretion.
[Fune]-Trend Technology🌊   - Trend Technology
“Flow with the trend — read every wave.”
🎯 Concept
Micro EMA (White) – Short-term pulse
Mid EMA (Aqua) – Medium-term direction
Macro EMA (Orange) – Long-term flow
Mid- to long-term references:
100 EMA = Yellow (trend balance)
300 EMA = Blue (structural anchor)
In addition, the PLR (Periodic Linear Regression) reveals the cyclical rhythm of the market trend — a recurring regression curve that reflects the underlying heartbeat of price movement.
📊 Trend Logic Summary
Condition	Color	Meaning	Action
Mid > Macro	🟢 Green background	Bullish trend	Look for long opportunities
Mid < Macro	🔴 Red background	Bearish trend	Look for short opportunities
PLR slope > 0	📈	Upward bias	Confirms bullish momentum
PLR slope < 0	📉	Downward bias	Confirms bearish momentum
Micro EMA (White) dominant	⚪ White background	Neutral / Resting phase	Stand aside and wait
🧭 Trading Guidance
🟢 Long Setup: Green background + PLR slope upward + price above 100/300 EMA
🔴 Short Setup: Red background + PLR slope downward + price below 100/300 EMA
⚪ No Trade: White background, EMAs converging, or PLR slope flattening
⚓ Philosophy of  
“  (The Boat) is a vessel sailing across the ocean of the market.
The EMAs are its sails, the PLR its compass.
The trader holds the helm, while the divine wind guides the waves.
Only those who move with the current — not against it —
will one day reach the state of ‘mindless clarity.’”
WT + Stoch RSI Reversal Combo📊MR.Z RSI : WT + Stochastic RSI Reversal Combo  
This custom indicator combines WaveTrend oscillator and Stochastic RSI to detect high-confidence market reversal points, filtering signals so they only appear when both indicators align.
🔍 Core Components:
✅ WaveTrend Oscillator
Based on smoothed deviation from EMA (similar to TCI logic)
Plots:
WT1 (main line)
WT2 (signal line = SMA of WT1)
Uses overbought/oversold thresholds (default: ±53) to filter signals
✅ Stochastic RSI
Momentum oscillator based on RSI's stochastic value
Plots:
%K: smoothed Stoch of RSI
%D: smoothed version of %K
Adjustable oversold/overbought thresholds (default: 20/80)
🔁 Combined Reversal Signal Logic:
🔼 Buy Signal
WT1 crosses above WT2 below WT oversold level (e.g., -53)
%K crosses above %D below Stoch RSI oversold level (e.g., 20)
🔽 Sell Signal
WT1 crosses below WT2 above WT overbought level (e.g., 53)
%K crosses below %D above Stoch RSI overbought level (e.g., 80)
🔔 Signals are only plotted and alerted if both conditions are true.
📌 Features:
Toggle on/off:
WaveTrend lines and histogram
Stochastic RSI
Combined Buy/Sell signals
Horizontal reference lines (±100, OB/OS)
Fully customizable smoothing lengths and thresholds
Signal plots:
✅ Green up-triangle = Combo Buy
✅ Red down-triangle = Combo Sell
Optional: Circle/cross markers for WT-only and Stoch-only signals
🔔 Built-in alerts for Buy/Sell signals
📈 Use Cases:
Reversal Trading: Wait for both indicators to confirm momentum shift
Entry Filter: Use in combination with trend indicators (like EMA)
Scalping or Swing: Works on intraday and higher timeframes
Quantum Dip Hunter | AlphaNattQuantum Dip Hunter | AlphaNatt 
 🎯 Overview 
The Quantum Dip Hunter is an advanced technical indicator designed to identify high-probability buying opportunities when price temporarily dips below dynamic support levels. Unlike simple oversold indicators, this system uses a sophisticated quality scoring algorithm to filter out low-quality dips and highlight only the best entry points.
 "Buy the dip" - but only the right dips. Not all dips are created equal. 
 ⚡ Key Features 
 
 5 Detection Methods:  Choose from Dynamic, Fibonacci, Volatility, Volume Profile, or Hybrid modes
 Quality Scoring System:  Each dip is scored from 0-100% based on multiple factors
 Smart Filtering:  Only signals above your quality threshold are displayed
 Visual Effects:  Glow, Pulse, and Wave animations for the support line
 Risk Management:  Automatic stop-loss and take-profit calculations
 Real-time Statistics:  Live dashboard showing current market conditions
 
 📊 How It Works 
 
 The indicator calculates a dynamic support line using your selected method
 When price dips below this line, it evaluates the dip quality
 Quality score is calculated based on: trend alignment (30%), volume (20%), RSI (20%), momentum (15%), and dip depth (15%)
 If the score exceeds your minimum threshold, a buy signal arrow appears
 Stop-loss and take-profit levels are automatically calculated and displayed
 
 🚀 Detection Methods Explained 
 Dynamic Support 
 
 Adapts to recent price action
 Best for: Trending markets
 Uses ATR-adjusted lowest points
 
 Fibonacci Support 
 
 Based on 61.8% and 78.6% retracement levels
 Best for: Pullbacks in strong trends
 Automatically switches between fib levels
 
 Volatility Support 
 
 Uses Bollinger Band methodology
 Best for: Range-bound markets
 Adapts to changing volatility
 
 Volume Profile Support 
 
 Finds high-volume price levels
 Best for: Identifying institutional support
 Updates dynamically as volume accumulates
 
 Hybrid Mode 
 
 Combines all methods for maximum accuracy
 Best for: All market conditions
 Takes the most conservative support level
 
 ⚙️ Key Settings 
 Dip Detection Engine 
 
 Detection Method:  Choose your preferred support calculation
 Sensitivity:  Higher = more sensitive to price movements (0.5-3.0)
 Lookback Period:  How far back to analyze (20-200 bars)
 Dip Depth %:  Minimum dip size to consider (0.5-10%)
 
 Quality Filters 
 
 Trend Filter:  Only buy dips in uptrends when enabled
 Minimum Dip Score:  Quality threshold for signals (0-100%)
 Trend Strength:  Required trend score when filter is on
 
 📈 Trading Strategies 
 Conservative Approach 
 
 Use Dynamic method with Trend Filter ON
 Set minimum score to 80%
 Risk:Reward ratio of 2:1 or higher
 Best for: Swing trading
 
 Aggressive Approach 
 
 Use Hybrid method with Trend Filter OFF
 Set minimum score to 60%
 Risk:Reward ratio of 1:1
 Best for: Day trading
 
 Scalping Setup 
 
 Use Volatility method
 Set sensitivity to 2.0+
 Focus on Target 1 only
 Best for: Quick trades
 
 🎨 Visual Customization 
 Color Themes: 
 
 Neon:  Bright cyan/magenta for dark backgrounds
 Ocean:  Cool blues and teals
 Solar:  Warm yellows and oranges
 Matrix:  Classic green terminal look
 Gradient:  Smooth color transitions
 
 Line Styles: 
 
 Solid:  Clean, simple line
 Glow:  Adds depth with glow effect
 Pulse:  Animated breathing effect
 Wave:  Oscillating wave pattern
 
 💡 Pro Tips 
 
 Start with the Trend Filter ON to avoid catching falling knives
 Higher quality scores (80%+) have better win rates but fewer signals
 Use Volume Profile method near major support/resistance levels
 Combine with your favorite momentum indicator for confirmation
 The pulse animation can help draw attention to key levels
 
 ⚠️ Important Notes 
 
 This indicator identifies potential entries, not guaranteed profits
 Always use proper risk management
 Works best on liquid instruments with good volume
 Backtest your settings before live trading
 Not financial advice - use at your own risk
 
 📊 Statistics Panel 
The live statistics panel shows:
 
 Current detection method
 Support level value
 Trend direction
 Distance from support
 Current signal status
 
 🤝 Support 
Created by  AlphaNatt 
For questions or suggestions, please comment below!
 Happy dip hunting! 🎯 
 Not financial advice, always do your own research
Topological Market Stress (TMS) - Quantum FabricTopological Market Stress (TMS) - Quantum Fabric 
 What Stresses The Market? 
 Topological Market Stress (TMS)  represents a revolutionary fusion of algebraic topology and quantum field theory applied to financial markets. Unlike traditional indicators that analyze price movements linearly, TMS examines the underlying topological structure of market data—detecting when the very fabric of market relationships begins to tear, warp, or collapse.
Drawing inspiration from the ethereal beauty of quantum field visualizations and the mathematical elegance of topological spaces, this indicator transforms complex mathematical concepts into an intuitive, visually stunning interface that reveals hidden market dynamics invisible to conventional analysis.
 Theoretical Foundation:  Topology Meets Markets
Topological Holes in Market Structure
In algebraic topology, a "hole" represents a fundamental structural break—a place where the normal connectivity of space fails. In markets, these topological holes manifest as:
 Correlation Breakdown:  When traditional price-volume relationships collapse
 Volatility Clustering Failure:  When volatility patterns lose their predictive power
 Microstructure Stress:  When market efficiency mechanisms begin to fail
 The Mathematics of Market Topology 
TMS constructs a topological space from market data using three key components:
 1. Correlation Topology 
ρ(P,V) = correlation(price, volume, period)
Hole Formation = 1 - |ρ(P,V)|
When price and volume decorrelate, topological holes begin forming.
2. Volatility Clustering Topology
 σ(t)  = volatility at time t
 Clustering  = correlation(σ(t), σ(t-1), period)
 Breakdown  = 1 - |Clustering|
Volatility clustering breakdown indicates structural instability.
 3. Market Efficiency Topology 
 Efficiency  = |price - EMA(price)| / ATR
Measures how far price deviates from its efficient trajectory.
 Multi-Scale Topological Analysis 
Markets exist across multiple temporal scales simultaneously. TMS analyzes topology at three distinct scales:
 Micro Scale (3-15 periods):  Immediate structural changes, market microstructure stress
 Meso Scale (10-50 periods):  Trend-level topology, medium-term structural shifts
 Macro Scale (50-200 periods):  Long-term structural topology, regime-level changes
The final stress metric combines all scales:
Combined Stress = 0.3×Micro + 0.4×Meso + 0.3×Macro
 How TMS Works 
 1. Topological Space Construction 
Each market moment is embedded in a multi-dimensional topological space where:
- Price efficiency forms one dimension
- Correlation breakdown forms another
- Volatility clustering breakdown forms the third
 2. Hole Detection Algorithm 
The indicator continuously scans this topological space for:
 Hole Formation:  When stress exceeds the formation threshold
 Hole Persistence:  How long structural breaks maintain
 Hole Collapse:  Sudden topology restoration (regime shifts)
 3. Quantum Visualization Engine 
The visualization system translates topological mathematics into intuitive quantum field representations:
 Stress Waves:  Main line showing topological stress intensity
 Quantum Glow:  Surrounding field indicating stress energy
 Fabric Integrity:  Background showing structural health
 Multi-Scale Rings:  Orbital representations of different timeframes
 4. Signal Generation 
 Stable Topology (✨):  Normal market structure, standard trading conditions
 Stressed Topology (⚡):  Increased structural tension, heightened volatility expected
 Topological Collapse (🕳️):  Major structural break, regime shift in progress
 Critical Stress (🌋):  Extreme conditions, maximum caution required
 Inputs & Parameters 
 🕳️ Topological Parameters 
Analysis Window (20-200, default: 50)
 Primary period for topological analysis 
 20-30:  High-frequency scalping, rapid structure detection
 50:  Balanced approach, recommended for most markets
 100-200:  Long-term position trading, major structural shifts only
 Hole Formation Threshold (0.1-0.9, default: 0.3) 
 Sensitivity for detecting topological holes 
 0.1-0.2:  Very sensitive, detects minor structural stress
 0.3:  Balanced, optimal for most market conditions
 0.5-0.9:  Conservative, only major structural breaks
 Density Calculation Radius (0.1-2.0, default: 0.5) 
 Radius for local density estimation in topological space 
0.1-0.3: Fine-grained analysis, sensitive to local changes
0.5: Standard approach, balanced sensitivity
1.0-2.0: Broad analysis, focuses on major structural features
 Collapse Detection (0.5-0.95, default: 0.7) 
 Threshold for detecting sudden topology restoration 
0.5-0.6: Very sensitive to regime changes
0.7: Balanced, reliable collapse detection
0.8-0.95: Conservative, only major regime shifts
 📊 Multi-Scale Analysis 
 Enable Multi-Scale (default: true) 
- Analyzes topology across multiple timeframes simultaneously
- Provides deeper insight into market structure at different scales
- Essential for understanding cross-timeframe topology interactions
 Micro Scale Period (3-15, default: 5) 
Fast scale for immediate topology changes
 3-5:  Ultra-fast, tick/minute data analysis
 5-8:  Fast, 5m-15m chart optimization
 10-15:  Medium-fast, 30m-1H chart focus
 Meso Scale Period (10-50, default: 20) 
Medium scale for trend topology analysis
 10-15:  Short trend structures
 20-25:  Medium trend structures (recommended)
 30-50:  Long trend structures
 Macro Scale Period (50-200, default: 100) 
Slow scale for structural topology
 50-75:  Medium-term structural analysis
 100:  Long-term structure (recommended)
 150-200:  Very long-term structural patterns
 ⚙️ Signal Processing 
Smoothing Method (SMA/EMA/RMA/WMA, default: EMA) Method for smoothing stress signals
 SMA:  Simple average, stable but slower
 EMA:  Exponential, responsive and recommended
 RMA:  Running average, very smooth
 WMA:  Weighted average, balanced approach
 Smoothing Period (1-10, default: 3) 
Period for signal smoothing
 1-2:  Minimal smoothing, noisy but fast
 3-5:  Balanced, recommended for most applications
 6-10:  Heavy smoothing, slow but very stable
 Normalization (Fixed/Adaptive/Rolling, default: Adaptive) 
Method for normalizing stress values
 Fixed:  Static 0-1 range normalization
 Adaptive:  Dynamic range adjustment (recommended)
 Rolling:  Rolling window normalization
 🎨 Quantum Visualization 
 Fabric Style Options: 
 Quantum Field:  Flowing energy visualization with smooth gradients
 Topological Mesh:  Mathematical topology with stepped lines
 Phase Space:  Dynamical systems view with circular markers
 Minimal:  Clean, simple display with reduced visual elements
 Color Scheme Options: 
 Quantum Gradient:  Deep space blue → Quantum red progression
 Thermal:  Black → Hot orange thermal imaging style
 Spectral:  Purple → Gold full spectrum colors
 Monochrome:  Dark gray → Light gray elegant simplicity
 Multi-Scale Rings (default: true) 
- Display orbital rings for different time scales
- Visualizes how topology changes across timeframes
- Provides immediate visual feedback on cross-scale dynamics
 Glow Intensity (0.0-1.0, default: 0.6) 
Controls the quantum glow effect intensity
 0.0:  No glow, pure line display
 0.6:  Balanced, recommended setting
 1.0:  Maximum glow, full quantum field effect
 📋 Dashboard & Alerts 
Show Dashboard (default: true)
Real-time topology status display
Current market state and trading recommendations
Stress level visualization and fabric integrity status
Show Theory Guide (default: true)
 Educational panel explaining topological concepts 
Dashboard interpretation guide
Trading strategy recommendations
Enable Alerts (default: true)
 Extreme stress detection alerts 
Topological collapse notifications
Hole formation and recovery signals
Visual Logic & Interpretation
Main Visualization Elements
 Quantum Stress Line 
Primary indicator showing topological stress intensity
Color intensity reflects current market state
Line style varies based on selected fabric style
Glow effect indicates stress energy field
 Equilibrium Line 
Silver line showing average stress level
Reference point for normal market conditions
Helps identify when stress is elevated or suppressed
 Upper/Lower Bounds 
 Red upper bound:  High stress threshold
 Green lower bound:  Low stress threshold
Quantum fabric fill between bounds shows stress field
 Multi-Scale Rings 
 Aqua circles : Micro-scale topology (immediate changes)
 Orange circles:  Meso-scale topology (trend-level changes)
Provides cross-timeframe topology visualization
 Dashboard Information 
 Topology State Icons: 
 ✨ STABLE:  Normal market structure, standard trading conditions
 ⚡ STRESSED:  Increased structural tension, monitor closely
 🕳️ COLLAPSE:  Major structural break, regime shift occurring
 🌋 CRITICAL:  Extreme conditions, reduce risk exposure
 Stress Bar Visualization: 
Visual representation of current stress level (0-100%)
Color-coded based on current topology state
Real-time percentage display
 Fabric Integrity Dots: 
 ●●●●● Intact:  Strong market structure (0-30% stress)
 ●●●○○ Stressed:  Weakening structure (30-70% stress)
 ●○○○○ Fractured:  Breaking down structure (70-100% stress)
 Action Recommendations: 
 ✅ TRADE:  Normal conditions, standard strategies apply
 ⚠️ WATCH:  Monitor closely, increased vigilance required
 🔄 ADAPT:  Change strategy, regime shift in progress
 🛑 REDUCE:  Lower risk exposure, extreme conditions
 Trading Strategies 
 In Stable Topology (✨ STABLE) 
- Normal trading conditions apply
- Use standard technical analysis
- Regular position sizing appropriate
- Both trend-following and mean-reversion strategies viable
 In Stressed Topology (⚡ STRESSED) 
- Increased volatility expected
- Widen stop losses to account for higher volatility
- Reduce position sizes slightly
- Focus on high-probability setups
- Monitor for potential regime change
 During Topological Collapse (🕳️ COLLAPSE) 
- Major regime shift in progress
- Adapt strategy immediately to new market character
- Consider closing positions that rely on previous regime
- Wait for new topology to stabilize before major trades
- Opportunity for contrarian plays if collapse is extreme
 In Critical Stress (🌋 CRITICAL) 
- Extreme market conditions
- Significantly reduce risk exposure
- Avoid new positions until stress subsides
- Focus on capital preservation
- Consider hedging existing positions
 Advanced Techniques 
 Multi-Timeframe Topology Analysis 
- Use higher timeframe TMS for regime context
- Use lower timeframe TMS for precise entry timing
- Alignment across timeframes = highest probability trades
 Topology Divergence Trading 
- Most powerful at regime boundaries
- Price makes new high/low but topology stress decreases
- Early warning of potential reversals
- Combine with key support/resistance levels
 Stress Persistence Analysis 
- Long periods of stable topology often precede major moves
- Extended stress periods often resolve in regime changes
- Use persistence tracking for position sizing decisions
 Originality & Innovation 
TMS represents a genuine breakthrough in applying advanced mathematics to market analysis:
 True Topological Analysis:  Not a simplified proxy but actual topological space construction and hole detection using correlation breakdown, volatility clustering analysis, and market efficiency measurement.
 Quantum Aesthetic:  Transforms complex topology mathematics into an intuitive, visually stunning interface inspired by quantum field theory visualizations.
 Multi-Scale Architecture:  Simultaneous analysis across micro, meso, and macro timeframes provides unprecedented insight into market structure dynamics.
 Regime Detection:  Identifies fundamental market character changes before they become obvious in price action, providing early warning of structural shifts.
 Practical Application:  Clear, actionable signals derived from advanced mathematical concepts, making theoretical topology accessible to practical traders.
This is not a combination of existing indicators or a cosmetic enhancement of standard tools. It represents a fundamental reimagining of how we measure, visualize, and interpret market dynamics through the lens of algebraic topology and quantum field theory.
 Best Practices 
 Start with defaults:  Parameters are optimized for broad market applicability
 Match timeframe:  Adjust scales based on your trading timeframe
 Confirm with price action:  TMS shows market character, not direction
 Respect topology changes:  Reduce risk during regime transitions
 Use appropriate strategies:  Adapt approach based on current topology state
 Monitor persistence:  Track how long topology states maintain
 Cross-timeframe analysis:  Align multiple timeframes for highest probability trades
 Alerts Available 
 Extreme Topological Stress:  Market fabric under severe deformation
 Topological Collapse Detected:  Regime shift in progress
 Topological Hole Forming:  Market structure breakdown detected
 Topology Stabilizing:  Market structure recovering to normal
 Chart Requirements 
 Recommended Markets:  All liquid markets (forex, stocks, crypto, futures)
 Optimal Timeframes:  5m to Daily (adaptable to any timeframe)
 Minimum History:  200 bars for proper topology construction
 Best Performance:  Markets with clear regime characteristics
 Academic Foundation 
This indicator draws from cutting-edge research in:
- Algebraic topology and persistent homology
- Quantum field theory visualization techniques
- Market microstructure analysis
- Multi-scale dynamical systems theory
- Correlation topology and network analysis
 Disclaimer 
This indicator is for educational and research purposes only. It does not constitute financial advice or provide direct buy/sell signals. Topological analysis reveals market structure characteristics, not future price direction. Always use proper risk management and combine with your own analysis. Past performance does not guarantee future results.
See markets through the lens of topology. Trade the structure, not the noise.
Bringing advanced mathematics to practical trading through quantum-inspired visualization.
Trade with insight. Trade with structure.
—  Dskyz , for DAFE Trading Systems
MLExtensions_CoreLibrary   "MLExtensions_Core" 
A set of extension methods for a novel implementation of a Approximate Nearest Neighbors (ANN) algorithm in Lorentzian space, focused on computation.
 normalizeDeriv(src, quadraticMeanLength) 
  Returns the smoothed hyperbolic tangent of the input series.
  Parameters:
     src (float) :  The input series (i.e., the first-order derivative for price).
     quadraticMeanLength (int) :   The length of the quadratic mean (RMS).
  Returns: nDeriv  The normalized derivative of the input series.
 normalize(src, min, max) 
  Rescales a source value with an unbounded range to a target range.
  Parameters:
     src (float) :  The input series
     min (float) :  The minimum value of the unbounded range
     max (float) :  The maximum value of the unbounded range
  Returns:  The normalized series
 rescale(src, oldMin, oldMax, newMin, newMax) 
  Rescales a source value with a bounded range to anther bounded range
  Parameters:
     src (float) :  The input series
     oldMin (float) :  The minimum value of the range to rescale from
     oldMax (float) :  The maximum value of the range to rescale from
     newMin (float) :  The minimum value of the range to rescale to
     newMax (float) :  The maximum value of the range to rescale to
  Returns:  The rescaled series
 getColorShades(color) 
  Creates an array of colors with varying shades of the input color
  Parameters:
     color (color) :  The color to create shades of
  Returns:  An array of colors with varying shades of the input color
 getPredictionColor(prediction, neighborsCount, shadesArr) 
  Determines the color shade based on prediction percentile
  Parameters:
     prediction (float) :  Value of the prediction
     neighborsCount (int) :  The number of neighbors used in a nearest neighbors classification
     shadesArr (array) :  An array of colors with varying shades of the input color
  Returns: shade  Color shade based on prediction percentile
 color_green(prediction) 
  Assigns varying shades of the color green based on the KNN classification
  Parameters:
     prediction (float) : Value (int|float) of the prediction
  Returns: color 
 color_red(prediction) 
  Assigns varying shades of the color red based on the KNN classification
  Parameters:
     prediction (float) : Value of the prediction
  Returns: color
 tanh(src) 
  Returns the the hyperbolic tangent of the input series. The sigmoid-like hyperbolic tangent function is used to compress the input to a value between -1 and 1.
  Parameters:
     src (float) :  The input series (i.e., the normalized derivative).
  Returns: tanh  The hyperbolic tangent of the input series.
 dualPoleFilter(src, lookback) 
  Returns the smoothed hyperbolic tangent of the input series.
  Parameters:
     src (float) :  The input series (i.e., the hyperbolic tangent).
     lookback (int) :  The lookback window for the smoothing.
  Returns: filter  The smoothed hyperbolic tangent of the input series.
 tanhTransform(src, smoothingFrequency, quadraticMeanLength) 
  Returns the tanh transform of the input series.
  Parameters:
     src (float) :  The input series (i.e., the result of the tanh calculation).
     smoothingFrequency (int) 
     quadraticMeanLength (int) 
  Returns: signal  The smoothed hyperbolic tangent transform of the input series.
 n_rsi(src, n1, n2) 
  Returns the normalized RSI ideal for use in ML algorithms.
  Parameters:
     src (float) :  The input series (i.e., the result of the RSI calculation).
     n1 (simple int) :  The length of the RSI.
     n2 (simple int) :  The smoothing length of the RSI.
  Returns: signal  The normalized RSI.
 n_cci(src, n1, n2) 
  Returns the normalized CCI ideal for use in ML algorithms.
  Parameters:
     src (float) :  The input series (i.e., the result of the CCI calculation).
     n1 (simple int) :  The length of the CCI.
     n2 (simple int) :  The smoothing length of the CCI.
  Returns: signal  The normalized CCI.
 n_wt(src, n1, n2) 
  Returns the normalized WaveTrend Classic series ideal for use in ML algorithms.
  Parameters:
     src (float) :  The input series (i.e., the result of the WaveTrend Classic calculation).
     n1 (simple int) 
     n2 (simple int) 
  Returns: signal  The normalized WaveTrend Classic series.
 n_adx(highSrc, lowSrc, closeSrc, n1) 
  Returns the normalized ADX ideal for use in ML algorithms.
  Parameters:
     highSrc (float) :  The input series for the high price.
     lowSrc (float) :  The input series for the low price.
     closeSrc (float) :  The input series for the close price.
     n1 (simple int) :  The length of the ADX.
 regime_filter(src, threshold, useRegimeFilter) 
  Parameters:
     src (float) 
     threshold (float) 
     useRegimeFilter (bool) 
 filter_adx(src, length, adxThreshold, useAdxFilter) 
  filter_adx
  Parameters:
     src (float) :  The source series.
     length (simple int) :  The length of the ADX.
     adxThreshold (int) :  The ADX threshold.
     useAdxFilter (bool) :  Whether to use the ADX filter.
  Returns:  The ADX.
 filter_volatility(minLength, maxLength, sensitivityMultiplier, useVolatilityFilter) 
  filter_volatility
  Parameters:
     minLength (simple int) :  The minimum length of the ATR.
     maxLength (simple int) :  The maximum length of the ATR.
     sensitivityMultiplier (float) :  Multiplier for the historical ATR to control sensitivity.
     useVolatilityFilter (bool) :  Whether to use the volatility filter.
  Returns:  Boolean indicating whether or not to let the signal pass through the filter.
Quantum Motion Oscillator-QMO (TechnoBlooms)Quantum Motion Oscillator (QMO) is a momentum indicator designed for traders who demand precision. Combining multi-timeframe weighted linear regression with EMA crossovers, QMO offers a dynamic view of market momentum, helping traders anticipate trend shifts with greater accuracy.
This oscillator is inspired by quantum mechanics and wave theory, where market movement is seen as a series of probabilistic waves rather than rigid structures.
The histogram is plotted in proportion to the price movement of the candlesticks.
KEY FEATURES
1. Multi-Timeframe Histogram - Integrates 1 to 5 weighted linear regression averages, reducing lag while maintaining accuracy.
2. EMA Crossover Signal - Uses a Short and Long EMA to confirm trend shifts with minimal noise. 
3. Adaptive Trend Analysis - Self-adjusting mechanics make QMO effective in both ranging and trending markets.
4. Scalable for Different Trading Styles - Works seamlessly for scalping, intraday, swing and position trading.
ADVANCED PROFESSIONAL INSIGHTS
1. Wave Dynamics and Market Flow - Inspired by wave mechanics, QMO reflects the energy accumulation and dissipation in price movements.
Expanding histogram waves = Strong momentum surge
Contracting waves = Momentum weakening, potential reversal zone.
2. Liquidity and Order Flow Applications - QMO works well alongside liquidity concepts and smart money techniques:
Combine with Fair Value Gaps & Order Blocks -> Enter when QMO signals align with liquidity zones. 
Avoid False Moves - If price sweeps liquidity, but QMO momentum diverges, it is a sign of potential smart money manipulation.
TASC 2025.04 The Ultimate Oscillator█ OVERVIEW 
This script implements an alternative, refined version of the Ultimate Oscillator (UO) designed to reduce lag and enhance responsiveness in momentum indicators, as introduced by John F. Ehlers in his article "Less Lag In Momentum Indicators, The Ultimate Oscillator" from the  April 2025 edition of TASC's Traders' Tips .
 █ CONCEPTS 
In his article, Ehlers states that indicators are essentially  filters  that remove unwanted  noise  (i.e., unnecessary information) from market data. Simply put, they process a series of data to place focus on specific information, providing a different perspective on price dynamics. Various filter types attenuate different periodic signals within the data. For instance, a lowpass filter allows only low-frequency signals, a highpass filter allows only high-frequency signals, and a bandpass filter allows signals within a specific  frequency range . 
Ehlers explains that the key to removing indicator lag is to combine filters of different types in such a way that the result preserves necessary, useful signals while minimizing delay (lag). His proposed UltimateOscillator aims to maintain responsiveness to a specific frequency range by measuring the difference between two highpass filters' outputs. The oscillator uses the following formula:
 UO = (HP1 - HP2) / RMS 
Where:
 
 HP1 is the first highpass filter. 
 HP2 is another highpass filter that allows only shorter wavelengths than the critical period of HP1.
 RMS is the  root mean square  of the highpass filter difference, used as a scaling factor to standardize the output. 
 
The resulting oscillator is similar to a  bandpass filter , because it emphasizes wavelengths between the critical periods of the two highpass filters. Ehlers' UO responds quickly to value changes in a series, providing a responsive view of momentum with little to no lag. 
 █ USAGE 
Ehlers' UltimateOscillator sets the critical periods of its highpass filters using two parameters:  BandEdge  and  Bandwidth : 
 
 The BandEdge sets the critical period of the second highpass filter, which determines the  shortest  wavelengths in the response. 
 The Bandwidth is a multiple of the BandEdge used for the critical period of the first highpass filter, which determines the  longest wavelengths  in the response. Ehlers suggests that a Bandwidth value of 2 works well for most applications. However, traders can use any value above or equal to 1.4. 
 
Users can customize these parameters with the "Bandwidth" and "BandEdge" inputs in the "Settings/Inputs" tab. 
The script plots the UO calculated for the specified "Source" series in a separate pane, with a color based on the chart's foreground color. Positive UO values indicate upward momentum or trends, and negative UO values indicate the opposite. 
Additionally, this indicator provides the option to display a "cloud" from 10 additional UO series with different settings for an aggregate view of momentum. The "Cloud" input offers four display choices: "Bandwidth", "BandEdge", "Bandwidth + BandEdge", or "None".
The "Bandwidth" option calculates oscillators with different Bandwidth values based on the main oscillator's setting. Likewise, the "BandEdge" option calculates oscillators with varying BandEdge values. The "Bandwidth + BandEdge" option calculates the extra oscillators with different values for both parameters.  
When a user selects any of these options, the script plots the maximum and minimum oscillator values and fills their space with a color gradient. The fill color corresponds to the net sum of each UO's  sign , indicating whether most of the UOs reflect positive or negative momentum. Green hues mean most oscillators are above zero, signifying stronger upward momentum. Red hues mean most are below zero, indicating stronger downward momentum. 
SemiCircle Cycle Notation PivotsFor decades, traders have sought to decode the rhythm of the markets through cycle theory. From the groundbreaking work of HM Gartley in the 1930s to modern-day cycle trading tools on TradingView, the concept remains the same: markets move in repeating waves with larger cycles influencing smaller ones in a fractal-like structure, and understanding their timing gives traders an edge to better anticipate future price movements🔮.
Traditional cycle analysis has always been manual, requiring traders to painstakingly plot semicircles, diamonds, or sine waves to estimate pivot points and time reversals. Drawing tools like semicircle & sine wave projections exist on TradingView, but they lack automation—forcing traders to adjust cycle lengths by eye, often leading to inconsistencies.
This is where SemiCircle Cycle Notation Pivots indicator comes in. Semicircle cycle chart notation appears to have evolved as a practical visualization tool among cycle theorists rather than being pioneered by a single individual; some key influences include HM Gartley, WD Gann, JM Hurst, Walter Bressert, and RayTomes. Built upon  LonesomeTheBlue's  foundational  ZigZag Waves indicator , this indicator takes cycle visualization to the next level by dynamically detecting price pivots and then automatically plotting semicircles based on real-time cycle length calculations & expected rhythm of price action over time.
Key Features:
 
 Automated Cycle Detection: The indicator identifies pivot points based on your preference—highs, lows, or both—and plots semicircle waves that correspond to Hurst's cycle notation.
 Customizable Cycle Lengths: Tailor the analysis to your trading strategy with adjustable cycle lengths, defaulting to 10, 20, and 40 bars, allowing for flexibility across various timeframes and assets.
 Dynamic Wave Scaling: The semicircle waves adapt to different price structures, ensuring that the visualization remains proportional to the detected cycle lengths and aiding in the identification of potential reversal points.
 Automated Cycle Detection: Dynamically identifies price pivot points and automatically adjusts offsets based on real-time cycle length calculations, ensuring precise semicircle wave alignment with market structure.
 Color-Coded Cycle Tiers: Each cycle tier is distinctly color-coded, enabling quick differentiation and a clearer understanding of nested market cycles.
TASC 2025.02 Autocorrelation Indicator█ OVERVIEW 
This script implements the Autocorrelation Indicator introduced by John Ehlers in the "Drunkard's Walk: Theory And Measurement By Autocorrelation" article from the  February 2025 edition of TASC's Traders' Tips . The indicator calculates the  autocorrelation  of a price series across several  lags  to construct a  periodogram , which traders can use to identify market cycles, trends, and potential reversal patterns. 
 █ CONCEPTS 
 Drunkard's walk 
A  drunkard's walk , formally known as a  random walk , is a type of  stochastic process  that models the evolution of a system or variable through successive random steps. 
In his article, John Ehlers relates this model to market data. He discusses two first- and second-order partial differential equations, modified for discrete (non-continuous) data, that can represent solutions to the discrete random walk problem: the diffusion equation and the wave equation. According to Ehlers, market data takes on a mixture of two "modes" described by these equations. He theorizes that when "diffusion mode" is dominant, trading success is almost a matter of luck, and when "wave mode" is dominant, indicators may have improved performance. 
 Pink spectrum 
John Ehlers explains that many recent academic studies affirm that market data has a  pink spectrum , meaning the power spectral density of the data is proportional to the wavelengths it contains, like  pink noise . A random walk with a pink spectrum suggests that the states of the random variable are  correlated  and not independent. In other words, the random variable exhibits  long-range dependence  with respect to previous states. 
 Autocorrelation function (ACF) 
 Autocorrelation  measures the correlation of a time series with a delayed copy, or  lag , of itself. The autocorrelation function (ACF) is a method that evaluates autocorrelation across a  range of lags , which can help to identify patterns, trends, and cycles in stochastic market data. Analysts often use ACF to detect and characterize long-range dependence in a time series. 
The Autocorrelation Indicator evaluates the ACF of market prices over a fixed range of lags, expressing the results as a color-coded heatmap representing a dynamic periodogram. Ehlers suggests the information from the periodogram can help traders identify different market behaviors, including:  
 Cycles : Distinguishable as  repeated patterns  in the periodogram.
 Reversals : Indicated by sharp vertical changes in the periodogram when the indicator uses a  short data length . 
 Trends : Indicated by increasing correlation across lags, starting with the shortest, over time. 
 
 █ USAGE 
This script calculates the Autocorrelation Indicator on an input "Source" series, smoothed by Ehlers'  UltimateSmoother  filter, and plots several color-coded lines to represent the periodogram's information. Each line corresponds to an analyzed lag, with the shortest lag's line at the bottom of the pane. Green hues in the line indicate a positive correlation for the lag, red hues indicate a negative correlation (anticorrelation), and orange or yellow hues mean the correlation is near zero. 
Because Pine has a limit on the number of plots for a single indicator, this script divides the periodogram display into  three  distinct ranges that cover different lags. To see the full periodogram, add three instances of this script to the chart and set the "Lag range" input for each to a different value, as demonstrated in the chart above. 
With a modest autocorrelation length, such as 20 on a "1D" chart, traders can identify seasonal patterns in the price series, which can help to pinpoint cycles and moderate trends. For instance, on the daily ES1! chart above, the indicator shows repetitive, similar patterns through fall 2023 and winter 2023-2024. The green "triangular" shape rising from the zero lag baseline over different time ranges corresponds to seasonal trends in the data.
To identify turning points in the price series, Ehlers recommends using a short autocorrelation length, such as 2. With this length, users can observe sharp, sudden shifts along the vertical axis, which suggest potential turning points from upward to downward or vice versa.
TASC 2025.01 Linear Predictive Filters█ OVERVIEW
This script implements a suite of tools for identifying and utilizing  dominant cycles  in time series data, as introduced by John Ehlers in the "Linear Predictive Filters And Instantaneous Frequency" article featured in the  January 2025 edition of TASC's Traders' Tips . Dominant cycle information can help traders adapt their indicators and strategies to changing market conditions. 
█ CONCEPTS
Conventional technical indicators and strategies often rely on static, unchanging parameters, which may fail to account for the dynamic nature of market data. In his article, John Ehlers applies digital signal processing principles to address this issue, introducing  linear predictive filters  to identify  cyclic  information for adapting indicators and strategies to evolving market conditions. 
This approach treats market data as a  complex  series in the time domain. Analyzing the series in the  frequency domain  reveals information about its cyclic components. To reduce the impact of frequencies outside a range of interest and focus on a specific range of cycles, Ehlers applies second-order  highpass  and  lowpass filters  to the price data, which attenuate or remove wavelengths outside the desired range. This  band-limited  analysis isolates specific parts of the frequency spectrum for various trading styles, e.g., longer wavelengths for position trading or shorter wavelengths for swing trading.  
After filtering the series to produce band-limited data, Ehlers applies a linear predictive filter to predict future values a few bars ahead. The filter, calculated based on the techniques proposed by Lloyd Griffiths, adaptively minimizes the error between the latest data point and prediction, successively adjusting its coefficients to align with the band-limited series. The filter's coefficients can then be applied to generate an adaptive estimate of the band-limited data's structure in the frequency domain and identify the dominant cycle. 
█ USAGE
This script implements the following tools presented in the article:
 
 Griffiths Predictor  
This tool calculates a linear predictive filter to forecast future data points in band-limited price data. The crosses between the prediction and signal lines can provide potential trade signals.
 Griffiths Spectrum  
This tool calculates a partial frequency spectrum of the band-limited price data derived from the linear predictive filter's coefficients, displaying a color-coded representation of the frequency information in the pane. This mode's display represents the data as a  periodogram . The bottom of each plotted bar corresponds to a specific analyzed period (inverse of frequency), and the bar's color represents the presence of that periodic cycle in the time series relative to the one with the highest presence (i.e., the dominant cycle). Warmer, brighter colors indicate a higher presence of the cycle in the series, whereas darker colors indicate a lower presence. 
 Griffiths Dominant Cycle   
This tool compares the cyclic components within the partial spectrum and identifies the frequency with the highest power, i.e., the  dominant cycle . Traders can use this dominant cycle information to tune other indicators and strategies, which may help promote better alignment with dynamic market conditions.
 
 Notes on parameters 
 Bandpass boundaries: 
In the article, Ehlers recommends an upper bound of 125 bars or higher to capture longer-term cycles for position trading. He recommends an upper bound of 40 bars and a lower bound of 18 bars for swing trading. If traders use smaller lower bounds, Ehlers advises a minimum of eight bars to minimize the potential effects of aliasing. 
 Data length: 
The Griffiths predictor can use a relatively small data length, as autocorrelation diminishes rapidly with lag. However, for optimal spectrum and dominant cycle calculations, the length must match or exceed the upper bound of the bandpass filter. Ehlers recommends avoiding excessively long lengths to maintain responsiveness to shorter-term cycles. 
Gaussian RSI For Loop [TrendX_]The Gaussian RSI For Loop indicator is a sophisticated tool designed for trend-following traders seeking to identify strong uptrends in the market. By integrating a Gaussian and Weighted-MA (GWMA) with the Relative Strength Index (RSI), this indicator employs a loop-based scoring system to provide clear signals for potential trading opportunities. The combination of Gaussian smoothing techniques and overbought/oversold filtering enhances the indicator's ability to capture significant price movements while reducing noise, making it an optimal choice for traders aiming to capitalize on robust upward trends.
 💎  KEY FEATURES 
 
 Gaussian Weighted Moving Average (GWMA): Smooths price data to reduce noise and enhance responsiveness to significant price changes.
 Filtered RSI: Applies the RSI to Gaussian-filtered data, allowing for more accurate momentum readings.
 Wavetrend Analysis: Calculates the difference between the Filtered RSI and its short-term moving average, providing additional insights into momentum shifts.
 Loop-Based Scoring System: Evaluates the strength and direction of uptrends through a systematic analysis of the Filtered RSI against defined thresholds.
 
 ⚙️  USAGES 
 
 Identifying Strong Uptrends: Traders can use this indicator to pinpoint periods of strong upward momentum, helping them make informed decisions about entering long positions and its exits.
 Trend and Signal Confirmation: The Score confirms Long and Exit signals which traders can see through the Dots on the Gaussian RSI.
  
 
 🔎  BREAKDOWN 
 Gaussian-Filtered Data: 
 
 The first component of the Gaussian RSI For Loop is the application of a GWMA to the sourced price data. This smoothing technique uses weighted averages based on a Gaussian distribution, which emphasizes more recent prices while diminishing the impact of older prices. This GWMA effectively reduces market noise, allowing traders to focus on significant price movements. By adjusting weights using sigma parameters, traders can fine-tune the sensitivity of the indicator, making it more responsive to genuine market trends while filtering out minor fluctuations that could lead to misleading signals.
 
 Filtered RSI: 
 
 Next, the RSI is applied to the Gaussian-filtered data. The RSI measures the speed and change of price movements, providing insights into overbought or oversold conditions. By applying the RSI to smoothed price data, traders obtain a clearer view of momentum without the distortion caused by sudden price spikes or drops. This results in more reliable readings that help identify potential trend reversals or continuations.
 
 Wavetrend Analysis: 
 
 The Wavetrend component calculates the difference between the Filtered RSI and its short-term moving average (MA). This difference serves as an additional momentum indicator. When the Filtered RSI is above its short-term MA, it suggests that upward momentum is strengthening; conversely, when it falls below, it indicates weakening momentum. This analysis helps traders confirm whether an uptrend is gaining strength or losing traction.
 
 Loop-Based Scoring System: 
 
 Range Analysis: The system evaluates the Filtered RSI by comparing its current value against overbought (OB) and oversold (OS) thresholds over a defined range. This systematic approach ensures that each value within this range contributes to understanding overall trend strength.
 Score Calculation: As the loop iterates through values within the defined range, it adjusts a score based on whether the current Filtered RSI and its previous values are higher or lower than established OB and OS levels. This scoring mechanism quantifies trend strength and direction.
 Strong Uptrend Trigger: A strong uptrend signal is generated when the score exceeds a predefined Score Threshold (Long). This indicates that bullish momentum is robust enough to warrant entry into long positions.
 None Trend: Conversely, if the score falls below the Score Threshold (Short), it suggests that upward momentum has weakened significantly, signaling potential exit points and it can be consolidated or downtrend.
 
 DISCLAIMER 
This indicator is not financial advice, it can only help traders make better decisions. There are many factors and uncertainties that can affect the outcome of any endeavor, and no one can guarantee or predict with certainty what will occur. Therefore, one should always exercise caution and judgment when making decisions based on past performance.
Bat Harmonic Pattern [TradingFinder] Bat Chart Indicator🔵 Introduction 
The Bat Harmonic Pattern, created by Scott Carney in the 1990s, is a sophisticated tool in technical analysis, used to identify potential reversal points in price movements by leveraging Fibonacci ratios. 
This pattern is classified into two primary types: the Bullish Bat Pattern, which signals the end of a downtrend and the beginning of an uptrend, and the Bearish Bat Pattern, which indicates the conclusion of an uptrend and the onset of a downtrend.
🟣 Bullish Bat Pattern 
The Bullish Bat Pattern is designed to identify when a downtrend is likely to end and a new uptrend is about to begin. The key feature of this pattern is Point D, which typically aligns near the 88.6% Fibonacci retracement of the XA leg. 
This point is considered a strong buy zone. When the price reaches Point D after a significant downtrend, it often indicates a potential reversal, presenting a buying opportunity for traders anticipating the start of an upward movement.
  
🟣 Bearish Bat Pattern 
In contrast, the Bearish Bat Pattern forms when an uptrend is nearing its conclusion. Point D, which also typically aligns near the 88.6% Fibonacci retracement of the XA leg, serves as a critical point for traders. 
This point is regarded as a strong sell zone, signaling that the uptrend may be ending, and a downtrend could be imminent. Traders often open short positions when they identify this pattern, aiming to capitalize on the anticipated downward movement.
  
🔵 How to Use 
The Bat Pattern consists of five key points: X, A, B, C, and D, and four waves: XA, AB, BC, and CD. Fibonacci ratios play a crucial role in this pattern, helping traders pinpoint precise entry and exit points. In both the Bullish and Bearish Bat Patterns, the 88.6% retracement of the XA leg is a critical level for identifying potential reversal points.
🟣 Bullish Bat Pattern 
 
Traders typically enter buy positions after Point D forms, expecting the downtrend to end and a new uptrend to start. This point, located near the 88.6% retracement of the XA leg, serves as a reliable buy signal.
  
🟣 Bearish Bat Pattern 
Traders usually open short positions after identifying Point D, expecting the uptrend to end and a downtrend to begin. This point, also near the 88.6% retracement of the XA leg, acts as a valid sell signal.
  
🟣 Trading Tips for the Bat Pattern 
 
 Accurate Fibonacci Point Identification : Accurately identify Points X, A, B, C, and D, and calculate the Fibonacci ratios between these points. Point D should ideally be near the 88.6% retracement of the XA leg.
 Signal Confirmation with Other Tools : To enhance the pattern's accuracy, avoid trading solely based on the Bat Pattern.
 Risk Management : Always use stop-loss orders. In a Bullish Bat Pattern, place the stop-loss below Point X, and in a Bearish Bat Pattern, above Point X. This helps limit potential losses if the pattern fails.
 Wait for Price Movement Confirmation : After identifying Point D, wait for the price to move in the anticipated direction to confirm the pattern's validity before entering a trade.
 Set Realistic Profit Targets : Use Fibonacci retracement levels to set realistic profit targets, such as 38.2%, 50%, and 61.8% retracement levels of the CD leg. This strategy helps maximize profits and prevents premature exits.
 
🔵 Setting  
🟣 Logical Setting  
 ZigZag Pivot Period : You can adjust the period so that the harmonic patterns are adjusted according to the pivot period you want. This factor is the most important parameter in pattern recognition. 
 Show Valid Forma t: If this parameter is on "On" mode, only patterns will be displayed that they have exact format and no noise can be seen in them. If "Off" is, the patterns displayed that maybe are noisy and do not exactly correspond to the original pattern.
   
 Show Formation Last Pivot Confirm : if Turned on, you can see this ability of patterns when their last pivot is formed. If this feature is off, it will see the patterns as soon as they are formed. The advantage of this option being clear is less formation of fielded patterns, and it is accompanied by the latest pattern seeing and a sharp reduction in reward to risk. 
 Period of Formation Last Pivot : Using this parameter you can determine that the last pivot is based on Pivot period.
  
🟣 Genaral Setting  
 Show : Enter "On" to display the template and "Off" to not display the template. 
 Color : Enter the desired color to draw the pattern in this parameter. 
 LineWidth : You can enter the number 1 or numbers higher than one to adjust the thickness of the drawing lines. This number must be an integer and increases with increasing thickness. 
 LabelSize : You can adjust the size of the labels by using the "size.auto", "size.tiny", "size.smal", "size.normal", "size.large" or "size.huge" entries. 
🟣 Alert Setting  
 Alert : On / Off 
 Message Frequency : This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar". 
 Show Alert Time by Time Zone : The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
🔵 Conclusion 
The Bat Harmonic Pattern is a powerful tool in technical analysis, offering traders the ability to identify critical reversal points using Fibonacci ratios. By recognizing the Bullish and Bearish Bat Patterns, traders can anticipate potential trend reversals and make informed trading decisions.
 However, it is essential to combine the Bat Pattern with other technical analysis tools and confirm signals for better trading outcomes. With proper use, this pattern can help traders minimize risk and optimize their entry and exit points in the market.
ZigzagLibrary   "Zigzag" 
Zigzag related user defined types. Depends on DrawingTypes library for basic types
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts ZigzagTypes/Pivot object to string representation
  Namespace types: Pivot
  Parameters:
     this (Pivot) : ZigzagTypes/Pivot
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of ZigzagTypes/Pivot
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts Array of Pivot objects to string representation
  Namespace types: Pivot 
  Parameters:
     this (Pivot ) : Pivot object array
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of Pivot object array
 method tostring(this) 
  Converts ZigzagFlags object to string representation
  Namespace types: ZigzagFlags
  Parameters:
     this (ZigzagFlags) : ZigzagFlags object
  Returns: string representation of ZigzagFlags
 method tostring(this, sortKeys, sortOrder, includeKeys) 
  Converts ZigzagTypes/Zigzag object to string representation
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : ZigzagTypes/Zigzagobject
     sortKeys (bool) : If set to true, string output is sorted by keys.
     sortOrder (int) : Applicable only if sortKeys is set to true. Positive number will sort them in ascending order whreas negative numer will sort them in descending order. Passing 0 will not sort the keys
     includeKeys (string ) : Array of string containing selective keys. Optional parmaeter. If not provided, all the keys are considered
  Returns: string representation of ZigzagTypes/Zigzag
 method calculate(this, ohlc, indicators, indicatorNames) 
  Calculate zigzag based on input values and indicator values
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
     ohlc (float ) : Array containing OHLC values. Can also have custom values for which zigzag to be calculated
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns: current Zigzag object
 method calculate(this) 
  Calculate zigzag based on properties embedded within Zigzag object
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
  Returns: current Zigzag object
 method nextlevel(this) 
  Calculate Next Level Zigzag based on the current calculated zigzag object
  Namespace types: Zigzag
  Parameters:
     this (Zigzag) : Zigzag object
  Returns: Next Level Zigzag object
 method clear(this) 
  Clears zigzag drawings array
  Namespace types: ZigzagDrawing 
  Parameters:
     this (ZigzagDrawing ) : array
  Returns: void
 method drawplain(this) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object without trying to calculate
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
  Returns: ZigzagDrawing object
 method drawfresh(this, ohlc, indicators, indicatorNames) 
  draws fresh zigzag based on properties embedded in ZigzagDrawing object
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns: ZigzagDrawing object
 method drawcontinuous(this, ohlc, indicators, indicatorNames) 
  draws zigzag based on the zigzagmatrix input
  Namespace types: ZigzagDrawing
  Parameters:
     this (ZigzagDrawing) : ZigzagDrawing object
     ohlc (float ) : values on which the zigzag needs to be calculated and drawn. If not set will use regular OHLC
     indicators (matrix) : Array of indicator values
     indicatorNames (string ) : Array of indicator names for which values are present. Size of indicators array should be equal to that of indicatorNames
  Returns:  
 method getPrices(pivots) 
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) 
 method getBars(pivots) 
  Namespace types: Pivot 
  Parameters:
     pivots (Pivot ) 
 Indicator 
  Indicator is collection of indicator values applied on high, low and close
  Fields:
     indicatorHigh (series float) : Indicator Value applied on High
     indicatorLow (series float) : Indicator Value applied on Low
 PivotCandle 
  PivotCandle represents data of the candle which forms either pivot High or pivot low or both
  Fields:
     _high (series float) : High price of candle forming the pivot
     _low (series float) : Low price of candle forming the pivot
     length (series int) : Pivot length
     pHighBar (series int) : represents number of bar back the pivot High occurred.
     pLowBar (series int) : represents number of bar back the pivot Low occurred.
     pHigh (series float) : Pivot High Price
     pLow (series float) : Pivot Low Price
     indicators (Indicator ) : Array of Indicators - allows to add multiple
 Pivot 
  Pivot refers to zigzag pivot. Each pivot can contain various data
  Fields:
     point (chart.point) : pivot point coordinates
     dir (series int) : direction of the pivot. Valid values are 1, -1, 2, -2
     level (series int) : is used for multi level zigzags. For single level, it will always be 0
     componentIndex (series int) : is the lower level zigzag array index for given pivot. Used only in multi level Zigzag Pivots
     subComponents (series int) : is the number of sub waves per each zigzag wave. Only applicable for multi level zigzags
     microComponents (series int) : is the number of base zigzag components in a zigzag wave
     ratio (series float) : Price Ratio based on previous two pivots
     sizeRatio (series float) 
     subPivots (Pivot ) 
     indicatorNames (string ) : Names of the indicators applied on zigzag
     indicatorValues (float ) : Values of the indicators applied on zigzag
     indicatorRatios (float ) : Ratios of the indicators applied on zigzag based on previous 2 pivots
 ZigzagFlags 
  Flags required for drawing zigzag. Only used internally in zigzag calculation. Should not set the values explicitly
  Fields:
     newPivot (series bool) : true if the calculation resulted in new pivot
     doublePivot (series bool) : true if the calculation resulted in two pivots on same bar
     updateLastPivot (series bool) : true if new pivot calculated replaces the old one.
 Zigzag 
  Zigzag object which contains whole zigzag calculation parameters and pivots
  Fields:
     length (series int) : Zigzag length. Default value is 5
     numberOfPivots (series int) : max number of pivots to hold in the calculation. Default value is 20
     offset (series int) : Bar offset to be considered for calculation of zigzag. Default is 0 - which means calculation is done based on the latest bar.
     level (series int) : Zigzag calculation level - used in multi level recursive zigzags
     zigzagPivots (Pivot ) : array which holds the last n pivots calculated.
     flags (ZigzagFlags) : ZigzagFlags object which is required for continuous drawing of zigzag lines.
 ZigzagObject 
  Zigzag Drawing Object
  Fields:
     zigzagLine (series line) : Line joining two pivots
     zigzagLabel (series label) : Label which can be used for drawing the values, ratios, directions etc.
 ZigzagProperties 
  Object which holds properties of zigzag drawing. To be used along with ZigzagDrawing
  Fields:
     lineColor (series color) : Zigzag line color. Default is color.blue
     lineWidth (series int) : Zigzag line width. Default is 1
     lineStyle (series string) : Zigzag line style. Default is line.style_solid.
     showLabel (series bool) : If set, the drawing will show labels on each pivot. Default is false
     textColor (series color) : Text color of the labels. Only applicable if showLabel is set to true.
     maxObjects (series int) : Max number of zigzag lines to display. Default is 300
     xloc (series string) : Time/Bar reference to be used for zigzag drawing. Default is Time - xloc.bar_time.
 ZigzagDrawing 
  Object which holds complete zigzag drawing objects and properties.
  Fields:
     zigzag (Zigzag) : Zigzag object which holds the calculations.
     properties (ZigzagProperties) : ZigzagProperties object which is used for setting the display styles of zigzag
     drawings (ZigzagObject ) : array which contains lines and labels of zigzag drawing.
LibrarySupertrendLibrary   "LibrarySupertrend" 
 selective_ma(condition, source, length) 
  Parameters:
     condition (bool) 
     source (float) 
     length (int) 
 trendUp(source) 
  Parameters:
     source (float) 
 smoothrng(source, sampling_period, range_mult) 
  Parameters:
     source (float) 
     sampling_period (simple int) 
     range_mult (float) 
 rngfilt(source, smoothrng) 
  Parameters:
     source (float) 
     smoothrng (float) 
 fusion(overallLength, rsiLength, mfiLength, macdLength, cciLength, tsiLength, rviLength, atrLength, adxLength) 
  Parameters:
     overallLength (simple int) 
     rsiLength (simple int) 
     mfiLength (simple int) 
     macdLength (simple int) 
     cciLength (simple int) 
     tsiLength (simple int) 
     rviLength (simple int) 
     atrLength (simple int) 
     adxLength (simple int) 
 zonestrength(amplitude, wavelength) 
  Parameters:
     amplitude (int) 
     wavelength (simple int) 
 atr_anysource(source, atr_length) 
  Parameters:
     source (float) 
     atr_length (simple int) 
 supertrend_anysource(source, factor, atr_length) 
  Parameters:
     source (float) 
     factor (float) 
     atr_length (simple int)
Best Support And Resistance Indicator V1 [ForexBee]This Indicator Identifies and draws the support and resistance Zones On the Chart
 🔶Overview 
The support and resistance indicator is a technical indicator that will plot the support zone and resistance zone on the candlestick chart. It determines the price touches to find the strong support resistance zones.
The support and resistance indicator is the most basic technical analysis in trading. Instead of drawing zones manually, this indicator can save you time by plotting zones automatically.
  
 🔶Working 
There are specific characteristics of a valid support and resistance zone. Price always bounces upward from the support zone while it bounces downward from the resistance zone. On the other hand, when a breakout of the support or resistance zone happens, the price trends toward the breakout.
 🔶Valid support zone 
When the price touches a zone two to three times and bounces in a bullish direction, it is a good support zone.
The main point is that you should always find the bounces in clear price swings. The touches or bounces of the price must not be in the form of a choppy market. Price always moves in the form of swings or waves.
  
 🔶Valid resistance zone 
When the price touches a zone two to three times with a bounce in a bearish direction, then a valid resistance zone forms.
Here the price bounces must be in the form of swings or waves. You must avoid a choppy market.
So the support and resistance zone indicator finds these parameters on the chart and draws only valid zones.
  
 🔶Settings of indicator 
  
There are two inputs available in the indicator.
 Number of bars for swing 
The number of bars for the swing bars represents the size of the swing for a valid support or resistance touch. This parameter helps to filter the ranging price. the default value is 10.
 Number of Tests for valid support and resistance 
In this indicator, the number of pivots represents the support or resistance touches. so if you select the number 3, the indicator will only draw a zone with three touches.
 🔶Features 
There are the following features that this indicator identifies automatically, so you don’t need to do manual work.
 
 Identify the valid support and resistance zones
 Add the confluence of swings or waves during zone identification
 Choppy market filter
 
We are also adding the feature of a candlestick pattern at the zone, which will be added in the next update.
Mad_MATHLibrary   "MAD_MATH" 
This is a mathematical library where I store useful kernels, filters and selectors for the different types of computations.
 This library also contains opensource code from other scripters.
Future extensions are very likely, there are some functions I would like to add, but I have to wait for approvals so i can include them. 
 Ehlers_EMA(_src, _length) 
  Calculates the Ehlers Exponential Moving Average (Ehlers_EMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers EMA
  Returns: The Ehlers EMA value
 Ehlers_Gaussian(_src, _length) 
  Calculates the Ehlers Gaussian Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Gaussian Filter
  Returns: The Ehlers Gaussian Filter value
 Ehlers_supersmoother(_src, _length) 
  Calculates the Ehlers Supersmoother
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Supersmoother
  Returns: The Ehlers Supersmoother value
 Ehlers_SMA_fast(_src, _length) 
  Calculates the Ehlers Simple Moving Average (SMA) Fast
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers SMA Fast
  Returns: The Ehlers SMA Fast value
 Ehlers_EMA_fast(_src, _length) 
  Calculates the Ehlers Exponential Moving Average (EMA) Fast
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers EMA Fast
  Returns: The Ehlers EMA Fast value
 Ehlers_RSI_fast(_src, _length) 
  Calculates the Ehlers Relative Strength Index (RSI) Fast
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers RSI Fast
  Returns: The Ehlers RSI Fast value
 Ehlers_Band_Pass_Filter(_src, _length) 
  Calculates the Ehlers BandPass Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers BandPass Filter
  Returns: The Ehlers BandPass Filter value
 Ehlers_Butterworth(_src, _length) 
  Calculates the Ehlers Butterworth Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Butterworth Filter
  Returns: The Ehlers Butterworth Filter value
 Ehlers_Two_Pole_Gaussian_Filter(_src, _length) 
  Calculates the Ehlers Two-Pole Gaussian Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Two-Pole Gaussian Filter
  Returns: The Ehlers Two-Pole Gaussian Filter value
 Ehlers_Two_Pole_Butterworth_Filter(_src, _length) 
  Calculates the Ehlers Two-Pole Butterworth Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Two-Pole Butterworth Filter
  Returns: The Ehlers Two-Pole Butterworth Filter value
 Ehlers_Band_Stop_Filter(_src, _length) 
  Calculates the Ehlers Band Stop Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Band Stop Filter
  Returns: The Ehlers Band Stop Filter value
 Ehlers_Smoother(_src) 
  Calculates the Ehlers Smoother
  Parameters:
     _src (float) : The source series for calculation
  Returns: The Ehlers Smoother value
 Ehlers_High_Pass_Filter(_src, _length) 
  Calculates the Ehlers High Pass Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers High Pass Filter
  Returns: The Ehlers High Pass Filter value
 Ehlers_2_Pole_High_Pass_Filter(_src, _length) 
  Calculates the Ehlers Two-Pole High Pass Filter
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the Ehlers Two-Pole High Pass Filter
  Returns: The Ehlers Two-Pole High Pass Filter value
 pr(_src, _length) 
  pr Calculates the percentage rank (PR) of a value within a range.
  Parameters:
     _src (float) : The source value for which the percentage rank is calculated. It represents the value to be ranked within the range.
     _length (simple int) : The _length of the range over which the percentage rank is calculated. It determines the number of bars considered for the calculation.
  Returns: The percentage rank (PR) of the source value within the range, adjusted by adding 50 to the result.
 smma(_src, _length) 
  Calculates the SMMA (Smoothed Moving Average)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) 
  Returns: The SMMA value
 hullma(_src, _length) 
  Calculates the Hull Moving Average (HullMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the HullMA
  Returns: The HullMA value
 tma(_src, _length) 
  Calculates the Triple Moving Average (TMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the TMA
  Returns: The TMA value
 dema(_src, _length) 
  Calculates the Double Exponential Moving Average (DEMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the DEMA
  Returns: The DEMA value
 tema(_src, _length) 
  Calculates the Triple Exponential Moving Average (TEMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the TEMA
  Returns: The TEMA value
 w2ma(_src, _length) 
  Calculates the Normalized Double Moving Average (N2MA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the N2MA
  Returns: The N2MA value
 wma(_src, _length) 
  Calculates the Normalized Moving Average (NMA)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The _length of the NMA
  Returns: The NMA value
 nma(_open, _close, _length) 
  Calculates the Normalized Moving Average (NMA)
  Parameters:
     _open (float) : The open price series
     _close (float) : The close price series
     _length (simple int) : The _length for finding the highest and lowest values
  Returns: The NMA value
 lma(_src, _length) 
  Parameters:
     _src (float) 
     _length (simple int) 
 zero_lag(_src, _length, gamma1, zl) 
  Calculates the Zero Lag Moving Average (ZeroLag)
  Parameters:
     _src (float) : The source series for calculation
     _length (simple int) : The length for the moving average
     gamma1 (simple int) : The coefficient for calculating 'd'
     zl (simple bool) : Boolean flag for applying Zero Lag
  Returns: An array containing the ZeroLag Moving Average and a boolean flag indicating if it's flat
copyright HPotter, thanks for that great function
 chebyshevI(src, len, ripple) 
  Calculates the Chebyshev Type I Filter
  Parameters:
     src (float) : The source series for calculation
     len (int) : The length of the filter
     ripple (float) : The ripple factor for the filter
  Returns: The output of the Chebyshev Type I Filter
math from Pafnuti Lwowitsch Tschebyschow (1821–1894)
Thanks peacefulLizard50262 for the find and translation
 chebyshevII(src, len, ripple) 
  Calculates the Chebyshev Type II Filter
  Parameters:
     src (float) : The source series for calculation
     len (int) : The length of the filter
     ripple (float) : The ripple factor for the filter
  Returns: The output of the Chebyshev Type II Filter
math from Pafnuti Lwowitsch Tschebyschow (1821–1894)
Thanks peacefulLizard50262 for the find
 wavetrend(_src, _n1, _n2) 
  Calculates the WaveTrend indicator
  Parameters:
     _src (float) : The source series for calculation
     _n1 (simple int) : The period for the first EMA calculation
     _n2 (simple int) : The period for the second EMA calculation
  Returns: The WaveTrend value
 f_getma(_type, _src, _length, ripple) 
  Calculates various types of moving averages
  Parameters:
     _type (simple string) : The type of indicator to calculate
     _src (float) : The source series for calculation
     _length (simple int) : The length for the moving average or indicator
     ripple (simple float) 
  Returns: The calculated moving average or indicator value
 f_getfilter(_type, _src, _length) 
  Calculates various types of filters
  Parameters:
     _type (simple string) : The type of indicator to calculate
     _src (float) : The source series for calculation
     _length (simple int) : The length for the moving average or indicator
  Returns: The filtered value
 f_getoszillator(_type, _src, _length) 
  Calculates various types of Deviations and other indicators
  Parameters:
     _type (simple string) : The type of indicator to calculate
     _src (float) : The source series for calculation
     _length (simple int) : The length for the moving average or indicator
  Returns: The calculated moving average or indicator value
wbburgin_utilsLibrary   "wbburgin_utils" 
 trendUp(source) 
  Parameters:
     source 
 smoothrng(source, sampling_period, range_mult) 
  Parameters:
     source 
     sampling_period 
     range_mult 
 rngfilt(source, smoothrng) 
  Parameters:
     source 
     smoothrng 
 fusion(overallLength, rsiLength, mfiLength, macdLength, cciLength, tsiLength, rviLength, atrLength, adxLength) 
  Parameters:
     overallLength 
     rsiLength 
     mfiLength 
     macdLength 
     cciLength 
     tsiLength 
     rviLength 
     atrLength 
     adxLength 
 zonestrength(amplitude, wavelength) 
  Parameters:
     amplitude 
     wavelength 
 atr_anysource(source, atr_length) 
  Parameters:
     source 
     atr_length 
 supertrend_anysource(source, factor, atr_length) 
  Parameters:
     source 
     factor 
     atr_length
Hurst Spectral Analysis Oscillator"It is a true fact that any given time history of any event (including the price history of a stock) can always be considered as reproducible to any desired degree of accuracy by the process of algebraically summing a particular series of sine waves. This is intuitively evident if you start with a number of sine waves of differing frequencies, amplitudes, and phases, and then sum them up to get a new and more complex waveform."  (Spectral Analysis chapter of J M Hurst's book,  Profit Magic )
 Background:  A band-pass filter or bandpass filter is a device that passes frequencies within a certain range and rejects (attenuates) frequencies outside that range. Bandpass filters are widely used in wireless transmitters and receivers. Well-designed bandpass filters (having the optimum bandwidth) maximize the number of signal transmitters that can exist in a system while minimizing the interference or competition among signals. Outside of electronics and signal processing, other examples of the use of bandpass filters include atmospheric sciences, neuroscience, astronomy, economics, and finance.
 About the indicator:  This indicator will accept float/decimal length inputs to display a spectrum of 11 bandpass filters. The trader can select a single bandpass for analysis that includes future high/low predictions. The trader can also select which bandpasses contribute to a composite model of expected price action.
 10 Statements to describe the 5 elements of Hurst's price-motion model: 
 
 Random events account for only  2%  of the price change of the overall market and of individual issues.
 National and world historical events influence the market to a negligible degree.
 Foreseeable fundamental events account for about  75%  of all price motion. The effect is smooth and slow changing.
 Unforeseeable fundamental events influence price motion. They occur relatively seldom, but the effect can be large and must be guarded against.
 Approximately  23%  of all price motion is cyclic in nature and semi-predictable (basis of the "cyclic model").
 Cyclicality in price motion consists of the sum of a number of (non-ideal) periodic cyclic "waves" or "fluctuations" (summation principle).
 Summed cyclicality is a common factor among all stocks (commonality principle).
 Cyclic component magnitude and duration fluctuate slowly with the passage of time. In the course of such fluctuations, the greater the magnitude, the longer the duration and vice-versa (variation principle).
 Principle of nominality: an element of commonality from which variation is expected.
 The greater the nominal duration of a cyclic component, the larger the nominal magnitude (principle of proportionality).
 
Shoutouts & Credits for all the raw code, helpful information, ideas & collaboration, conversations together, introductions, indicator feedback, and genuine/selfless help:
🏆 @TerryPascoe
🏅 DavidF at Sigma-L, and @HPotter
👏 @Saviolis, parisboy, and @upslidedown






















