HTF Liquidity Sweep EngineHTF Liquidity Sweep Detector (Dual HTF)
Overview
This indicator is designed to identify validated liquidity sweeps on Higher Timeframes (HTF) and project them accurately onto lower-timeframe charts.
Unlike basic sweep indicators that mark every high or low break, this tool applies context-aware validation and invalidation logic to distinguish meaningful liquidity events from random volatility.
The script supports two independent higher timeframes (HTF 1 & HTF 2), allowing traders to analyze liquidity hierarchy and confluence across multiple market structures within a single chart.
⸻
Core Concept
A liquidity sweep is not considered valid simply because price exceeds a previous high or low.
This script evaluates each sweep within the structural context of the HTF candle that formed it, accounting for:
• Bullish vs bearish candle structure
• Open, close, high, and low relationships
• Temporal sequencing between HTF candles
Sweeps are treated as stateful events with a full lifecycle rather than static lines.
⸻
Sweep Lifecycle & Invalidation Logic
Each detected sweep progresses through multiple states:
• Formation – A sweep is detected when price exceeds a prior HTF high or low under valid structural conditions.
• Validation – The sweep remains provisional until subsequent HTF candles confirm it.
• Invalidation – If later HTF price action violates the structural conditions, the sweep is automatically marked as invalidated.
• Removal – Sweeps that fail during their formation phase are removed entirely to avoid misleading signals.
This approach ensures that only structurally meaningful sweeps remain visible on the chart.
⸻
Dual Higher-Timeframe Analysis
HTF 1 and HTF 2 operate as separate liquidity layers, each with independent:
• Detection logic
• Validation and invalidation rules
• Visualization styles
This allows traders to identify:
• HTF liquidity alignment
• Higher-timeframe dominance
• Confluence or conflict between liquidity zones
⸻
Projection to Lower Timeframes
Detected HTF sweeps are dynamically projected onto the active chart timeframe.
Sweep levels update in real time and maintain accurate positioning relative to HTF candle boundaries, ensuring visual consistency across timeframes.
⸻
Valid Pullback Swing Line (Optional)
An optional internal swing structure module is included to identify valid pullback swings.
This feature tracks structural pivots, updates dynamically, and automatically invalidates broken swing structures, helping traders contextualize liquidity sweeps within current market structure.
⸻
Customization
Each HTF layer supports full independent customization:
• Enable / disable HTF layers
• Timeframe selection and lookback depth
• Sweep and invalidation line styles, colors, and widths
• Label and marker display options
• Label positioning and sizing
• Alert notifications for sweep formation
⸻
Alerts
Optional alerts trigger when a liquidity sweep is formed, allowing traders to monitor potential liquidity events without constant chart supervision.
⸻
This script is published as closed-source because its sweep validation, invalidation, and multi-timeframe interaction logic represents the core intellectual property of the tool.
The description above is intended to provide conceptual clarity without disclosing proprietary implementation details.
⸻
Intended Use
This indicator is designed as a market structure and liquidity analysis tool, not a standalone trading system.
It is best used in combination with price action, higher-timeframe bias, and risk management principles.
Indicators and strategies
Navigator Volume Profil FixedLong Term Investing
Day Trading
Navigator Volume Profile Fixed (Fixed + Current Session)
**Navigator Volume Profile Fixed** plots a horizontal volume profile on your chart using a **fixed timeframe anchor** (ex: Daily) and optionally overlays a **live “current” profile** for the active session/period.
It’s designed to help you quickly see where volume is building (acceptance) vs. thinning out (rejection), and to identify the key reference levels traders watch most: **PoC, VAH, and VAL**.
### What it plots
**Fixed Volume Profile (anchored to a timeframe)**
Builds a completed profile each time the selected anchor timeframe rolls over (ex: each new day on a Daily anchor).
**Current Volume Profile (live)**
Continuously updates the developing profile for the current anchor period (optional toggle).
**Point of Control (PoC)**
Highlights the single price level with the highest traded volume.
**Value Area (VAH / VAL)**
Plots the Value Area boundaries using a configurable percentage (default **68%**), and visually differentiates the value area from the rest of the profile.
Key settings
* **Enable Fixed VP**: turn the fixed/anchored profile on/off
* **Timeframe Anchor**: choose the profile reset period (ex: 1D)
* **Show Current Fixed VP**: show/hide the developing (current) profile
* **Number of Rows**: controls profile resolution (price “bins”)
* **Profile Width (%)** and **Bar Thickness**: visual scaling controls
* **PoC + Value Area toggles**: show/hide PoC and VA boundaries
* **Extend PoC Line**: optionally extend the PoC into the future
How to use it (practical)
* Treat **PoC** as the most accepted price for the anchored period.
* Use **VAH/VAL** as reference boundaries for balance vs. imbalance.
* Compare **Fixed** vs **Current** profiles to see whether volume is migrating higher/lower during the session and where price is building acceptance.
**Note:** This script draws using TradingView line objects and is optimized to stay within platform limits while maintaining a clean profile display.
Zee's A+ MOMO BreakThis just shows an indicator when you have a 5 minute momentum candle that breaks PMH under specific parameters, i.e candle size, wick size, relative volume, time of day, etc. It will plot the PMH with a gold line automatically. Entry would be at the close of the MOMO break. I highly encourage you to back test your results and see how strong this setup is. Any questions feel free to comment or reach out, thanks.
Double/Triple Tops & Bottoms & Rectangle BoxesThis indicator is an algorithmic pattern recognition tool designed to automatically identify, validate, and track significant reversal structures—specifically Double/Triple Tops and Bottoms. Unlike subjective drawing tools, this script uses a strict set of quantitative rules based on swing pivots and volatility (ATR) to define market structure.
The Logical Methodology The script operates on a three-stage "scientific" detection process:
Pivot Chaining (Level Detection): The algorithm scans for significant swing highs and lows using a user-defined lookback period. It stores these pivot levels and monitors subsequent price action. If price returns to a previous pivot level within a specific volatility threshold (normalized by ATR), it registers a "touch."
Pattern Construction (Neckline Identification): Once a level has been touched the required number of times (e.g., 2 for Double patterns, 3 for Triple patterns), the script calculates the "Neckline."
For Tops: It identifies the lowest trough between the peaks.
For Bottoms: It identifies the highest peak between the valleys. This creates a valid trading range, visualized as a blue box connecting the pivot level to the neckline.
Signal Validation (Breakout vs. Failure): The pattern remains in a "pending" state until a breakout occurs.
Confirmation: A signal is generated only when a candle closes beyond the neckline (below for Tops, above for Bottoms).
Invalidation: If price breaks the pivot level itself (e.g., makes a higher high on a Double Top) before breaking the neckline, the pattern is immediately marked invalid to prevent false signals.
Key Features
ATR-Based Sensitivity: Uses Average True Range to dynamically adjust how "precise" a re-test must be, adapting to changing market volatility.
Dual-Scanning: Can independently scan for Triple Tops (Bearish) and Double Bottoms (Bullish) simultaneously with separate settings.
Time & Width Constraints: Filters out "noise" by enforcing a minimum pattern width (in bars), ensuring only structurally significant patterns are displayed.
Settings Guide
Min Top/Bottom Touches: Set to 2 for Double patterns or 3 for Triple patterns.
Pivot Lookback: The number of bars used to define a swing point (higher = larger, more significant patterns).
Touch Sensitivity: Adjusts how strictly the price must match the previous level.
Min Pattern Width: Prevents the detection of micro-patterns that are too narrow to be reliable.
Round Strike Price, Levels Options Series➤ Strike Price Range Mode:
➤ Exact Strike Price Mode:
⭐ Overview and How It Works
Round Strike Price or Levels is a precision-focused visual tool designed for options and index traders.
It dynamically plots round strike levels around the current price and presents them either as:
⠀ — Exact strike prices, or
⠀ — Strike price ranges, where each zone represents the midpoint between two adjacent strikes.
The indicator continuously recalculates the base strike using the current price and aligns all surrounding levels using a fixed step size.
All lines and labels are updated only on the last bar for optimal performance and stability.
This makes StrikePrice ideal for:
🔹 Identifying key option strikes.
🔹 Visualizing price acceptance zones.
🔹 Understanding strike-to-strike movement during intraday trading.
⭐ Key Features and Functionality
Strike Price Range:
⠀ — Treats each pair of strike lines as a price zone.
⠀ — Labels are plotted at the midpoint between two lines.
⠀ — Last label is intentionally hidden (no upper range exists)
Exact Strike Price:
⠀ — Labels are plotted directly on each strike line.
⠀ — Useful for precise strike-based analysis.
Dynamic Base Calculation:
⠀ — Automatically snaps price to the nearest round strike.
⠀ — Re-centers the entire grid as price moves.
⠀ — No manual adjustment required.
Efficient Object Management:
⠀ — Uses persistent arrays for lines and labels.
⠀ — Objects are reused instead of recreated.
⠀ — Prevents flickering and avoids TradingView object limits.
🎨 Visualizations and User Experience
Clean horizontal strike grid with configurable:
⠀ — Line width, Line color, Line style (Solid / Dashed / Dotted), Extension direction (Left / Right / Both / None).
Labels are:
⠀ — Positioned to the right of price, Size-adjustable, Fully customizable in text color and background color.
Designed to stay visually clear even on:
⠀ — Fast-moving intraday charts, Options-focused layouts, Multi-indicator setups.
Tip: Increase Right Bars Margin in chart settings to give labels proper spacing.
⭐ Settings and Customization
🔹 Strike Settings:
⠀ — Step (points): Distance between adjacent strike levels (e.g., 50, 100)
⠀ — Levels per side: Number of strike levels plotted above and below the base.
⠀ — Strike Mode: Strike Price Range, Exact Strike Price.
🔹 Line Settings:
⠀ — Line width, Line color, Line style (Solid / Dashed / Dotted), Line extension direction.
🔹 Label Settings:
⠀ — Show / hide labels, Label distance (bars to the right), Label size, Label text color, Label background color.
All label properties are updated dynamically, allowing real-time UI tuning without reloading the script.
⭐ Uniqueness of the Concept:
Unlike generic round-number indicators, StrikePrice:
⠀ — Understands option-style strike structure.
⠀ — Separates range-based thinking from exact price levels.
⠀ — Uses midpoint logic to visualize strike-to-strike movement.
⠀ — Maintains strict performance discipline by updating only when necessary.
This makes it especially useful for:
⠀ • NIFTY / BANKNIFTY options.
⠀ • Index and futures traders.
⠀ • Intraday strike rotation analysis.
⠀ • Premium decay and range-bound setups.
🚀 Conclusion:
StrikePrice is a focused, professional-grade indicator for traders who think in strikes, ranges, and levels rather than arbitrary prices.
It offers:
⠀ • Clear structure
⠀ • Accurate strike alignment
⠀ • Clean visuals
⠀ • Zero repainting logic
Top Detector V2 This indicator detects valid tops for future double tops. Once a top is confirmed, it displays an entry line for a potential entry point and a stop-loss line for a potential stop loss.
The indicator is fully programmable.
Indicator for the best FINDING GOLDEN ZONES by OeZKAN 🌟 FIBONACCI FX ALARM PRO (V13): Precision Pullback & Reversal SystemThe FIBONACCI FX ALARM PRO (V13) is a sophisticated, single-overlay indicator designed for the tactical trader who masters high-probability pullback and reversal entries. By fusing key Multi-Timeframe (MTF) structural analysis with validated Fibonacci levels and momentum confirmation, this system provides crystal-clear Entry, Take Profit (TP), and Stop Loss (SL) targets.This is your ultimate tool for trading Mean Reversion and Retracement strategies, providing the exact levels needed for disciplined execution.
🔥 Key System Features & Core Logic1.
⚙️ Multi-Timeframe Structural MappingThe system maps the dominant structural context from a higher timeframe onto your current chart, ensuring your trades align with the institutional flow:Dynamic Supply & Demand Zones: Automatic calculation and visualization of the highest high (Supply) and lowest low (Demand) over the last 100 bars on a user-defined MTF (e.g., 60m, 240m). These zones act as highly reliable reversal and breakout levels.Structural Breakouts: Clear alerts and labels notify you the moment the price decisively breaches the main Supply or Demand boundaries, signaling potential trend continuation.2.
🎯 Fibonacci Precision (The Golden Trade Zone)At the core of the strategy is the intelligent use of Fibonacci Retracements, automatically anchored to the MTF High/Low:The Golden Ratio (61.8%): This is the Primary Entry Trigger. The system is optimized to generate a Buy or Sell signal when the price crosses the $61.8\%$ level, confirming a deep, high-value retracement.TP1 / TP2 Targets: Built-in profit targets are automatically set at the $50.0\%$ (TP1 Long) and $38.2\%$ (TP2 Long) levels for Long trades, and the $70.5\%$ (TP1 Short) and $78.6\%$ (TP2 Short) levels for Short trades, ensuring disciplined profit-taking.SL Placement: The initial Stop Loss is strategically placed at the deep $78.6\%$ (Long) or $38.2\%$ (Short) level, providing wide protection against volatility before the target is hit.3.
🚦 RSI Momentum ConfirmationMomentum is crucial for timing successful reversals. The indicator integrates the Relative Strength Index (RSI) for powerful confirmation:Oversold/Overbought Signals: Clear labels (OVERBOUGHT (SELL) / OVERSOLD (BUY)) are generated directly on the price chart when the RSI crosses the critical $70$ and $30$ levels, respectively.Dual Visibility: You get both a visual arrow/text on the main chart (governed by the show_rsi_indicator toggle) and independent alarms to confirm the momentum shift coinciding with a structural level.
🔔 FX ALARM System: Never Miss an OpportunityThe robust alert system ensures you are instantly notified of high-probability events, even when away from your screen:GOLDEN ENTRY ALARM: Triggers when price crosses the crucial $61.8\%$ Golden Ratio, signaling a potential trade setup.STRUCTURAL BREAKOUT ALARMS: Instant notification when Supply (Highest High) or Demand (Lowest Low) zones are breached.TP HIT ALARMS: Alerts for Long TP1 (50.0%) and Short TP1 (70.5%) hits, vital for managing partial exits and moving your stop loss to breakeven.
🔑 How to Use This Indicator for Disciplined TradingSet Your Context: Select a higher Timeframe for Zones & Fib (e.g., "D" or "240") than your execution timeframe (e.g., 5m or 15m).Wait for the Setup: Wait for the price to retrace and approach the $61.8\%$ Golden Ratio.Confirm & Execute: Confirm the setup with a concurrent RSI Oversold/Overbought signal. If the price crosses $61.8\%$, the system instantly plots the E (Entry), TP1/TP2, and SL levels for a disciplined trade.Elevate your strategy with the FIBONACCI FX ALARM PRO (V13). Precision, structure, and momentum—all in one powerful tool.
👉 Add it to your favorites now and start executing high-confidence trades!
Recovery Adaptive Optimizer [Starbots]Recovery Adaptive Optimizer is a high-performance, on-chart parameter optimization engine designed specifically for the Recovery Adaptive Strategy.
It enables professional traders and quantitative researchers to systematically evaluate thousands of parameter combinations directly within Pine Script, without relying on external tools.
The optimizer performs a full simulation of the strategy logic, replicating adaptive position sizing, dynamic take-profit expansion, and loss-streak behavior with precision.
🧠 Optimization Methodology
The optimizer executes a multi-configuration simulation grid in parallel, where each configuration represents a unique combination of:
Base Take-Profit (%)
Take-Profit Factor
Stop-Loss (%)
Position Size Factor
Volatility Filter (On / Off)
Flat-Market Filter (On / Off)
Trend Filter (On / Off)
Each configuration is evaluated using the same execution logic as the strategy:
Single-position model
Loss-streak-based scaling
Step-capped progression
Bar-confirmed entries and exits
Commission-aware equity accounting
This allows precise comparative analysis across high-volatility market conditions, where parameter sensitivity and expansion behavior are most relevant.
Optional features include:
Higher-timeframe signal evaluation
Volatility-conditioned execution
Flat-market exclusion
EMA trend alignment (manual toggle)
All filters can be evaluated independently across the optimization grid.
📊 Performance Metrics & Ranking
Each configuration is evaluated using multiple institutional-grade metrics:
Net Profit (%)
Maximum Drawdown (%)
Win Rate
Trade Count
Equity Curve Peak-to-Valley 'Drawdown'
Configurations are ranked using a score metric:
Score = Profit % ÷ Max Drawdown %
This allows rapid identification of parameter sets that balance performance efficiency and capital utilization.
🏆 Automated Best-Case Selection
At the end of the historical data window, the optimizer additionally identifies and displays:
🏆 Best Configuration by Net Profit
🛡️ Best Configuration by Lowest Drawdown
🎯 Best Configuration by Win Rate (with optional minimum profitability threshold)
Top-ranked configurations are displayed via ranked comparison table (Top 5 or Top 15 results)
🧩 Intended Use
This optimizer is designed for:
Professional traders
Systematic strategy developers
Quantitative research
Parameter tuning for volatile markets
Strategy calibration across different instruments and timeframes
It provides a structured, transparent environment for identifying robust parameter clusters rather than single isolated results.
PCR Put-Call Ratio//@version=5
indicator("PCR Put-Call Ratio", overlay=false, precision=4)
// Input parameters
pcrLength = input(20, "PCR Length", group="Settings")
maLength = input(5, "MA Length", group="Settings")
showOI = input(true, "Use Open Interest", group="Settings")
// Get PCR data from CBOE (requires daily data availability)
pcrData = request.security("CBOE:PC", "D", close)
// Calculate moving average of PCR
pcrMA = ta.sma(pcrData, maLength)
// Levels for interpretation
overbought = 1.2
oversold = 0.6
neutral = 0.9
// Plot PCR value
plot(pcrData, title="PCR Value", color=color.blue, linewidth=2)
plot(pcrMA, title="PCR MA", color=color.orange, linewidth=1)
// Add reference lines
hline(overbought, "Overbought (Bearish)", color.red, linestyle=hline.style_dashed)
hline(neutral, "Neutral", color.gray, linestyle=hline.style_dotted)
hline(oversold, "Oversold (Bullish)", color.green, linestyle=hline.style_dashed)
// Background coloring based on sentiment
bgColor = pcrData > overbought ? color.new(color.red, 80) :
pcrData < oversold ? color.new(color.green, 80) :
color.new(color.gray, 90)
bgcolor(bgColor)
ICT Premium/Discount Zones [Exponential-X]Premium/Discount Zones - Visual Market Structure Tool
Overview
This indicator helps traders visualize premium and discount price zones based on recent market structure. It automatically identifies swing highs and lows within a specified lookback period and divides the price range into three key areas: Premium Zone, Equilibrium, and Discount Zone.
What This Indicator Does
The script continuously monitors price action and calculates:
Highest High and Lowest Low within the lookback period
Equilibrium Level - the midpoint between the swing high and low
Premium Zone - the area from equilibrium to the swing high (typically viewed as relatively expensive price levels)
Discount Zone - the area from the swing low to equilibrium (typically viewed as relatively cheap price levels)
Core Calculation Method
The indicator uses pivot point logic to identify significant swing highs and lows based on the pivot strength parameter. It then calculates the highest high and lowest low over the specified lookback period. The equilibrium is computed as the arithmetic mean of these two extremes, creating a fair value reference point.
The zones are dynamically updated as new price data becomes available, ensuring the visualization remains relevant to current market conditions.
Key Features
Dynamic Zone Detection
Automatically adjusts zones based on recent price action
Uses customizable lookback period for flexibility across different timeframes
Employs pivot strength parameter to filter out minor price fluctuations
Visual Clarity
Color-coded zones for easy identification (red for premium, green for discount)
Optional equilibrium line display
Adjustable zone label placement
Customizable color schemes to match your charting preferences
Alert Capabilities
Alerts when price enters the premium zone
Alerts when price enters the discount zone
Alerts when price returns to equilibrium
Helps traders monitor key zone interactions without constant chart watching
Customization Options
Adjustable lookback period (5-500 bars)
Configurable pivot strength for swing detection (1-20 bars)
Control over box extension into the future
Toggle labels and equilibrium line on/off
Full color customization for all visual elements
How to Use This Indicator
Setup
Add the indicator to your chart
Adjust the lookback period to match your trading timeframe (shorter for intraday, longer for swing trading)
Set pivot strength to filter out noise (higher values for major swings, lower for more frequent updates)
Customize colors and labels to your preference
Interpretation
Premium Zone: Price trading here may indicate potential resistance or selling opportunities when aligned with other technical factors
Discount Zone: Price trading here may indicate potential support or buying opportunities when aligned with other technical factors
Equilibrium: Acts as a fair value reference point where price often consolidates or reacts
Trading Applications
This tool works well when combined with other forms of analysis such as:
Trend identification indicators
Volume analysis
Support and resistance levels
Price action patterns
Market structure analysis
Important Considerations
This indicator identifies zones based purely on historical price data
Premium and discount zones are relative to the recent lookback period
The effectiveness varies across different market conditions and timeframes
Should be used as part of a comprehensive trading strategy, not in isolation
Past price structure does not guarantee future price behavior
Technical Details
Calculation Method
Uses Pine Script's ta.pivothigh() and ta.pivotlow() functions for swing detection
Employs ta.highest() and ta.lowest() for range calculation
Updates dynamically with each new bar
Draws zones using box objects for clear visual representation
Performance Optimization
Efficiently manages box and line objects to minimize resource usage
Uses conditional plotting to reduce unnecessary calculations
Limited to essential visual elements for chart clarity
Timeframe Compatibility
This indicator works on all timeframes but the recommended settings vary:
1-5 minute charts: Lookback period 10-20, Pivot strength 3-5
15-60 minute charts: Lookback period 20-50, Pivot strength 5-10
Daily charts: Lookback period 50-100, Pivot strength 10-15
Weekly charts: Lookback period 20-50, Pivot strength 5-10
Adjust these values based on the volatility of your specific instrument.
Limitations and Considerations
What This Indicator Does NOT Do
Does not provide buy or sell signals on its own
Does not predict future price movements
Does not account for fundamental factors or market events
Does not guarantee profitability or accuracy
Market Condition Awareness
In strong trending markets, price may remain in premium or discount zones for extended periods
During ranging conditions, price typically oscillates between zones more predictably
High volatility can cause frequent zone recalculations
Low volatility may result in narrow zones with limited practical use
Risk Considerations
Premium and discount are relative concepts, not absolute values
What appears as a discount zone may continue lower in a downtrend
What appears as a premium zone may continue higher in an uptrend
Always use proper risk management and position sizing
Consider multiple timeframe analysis for context
Version Information
This indicator is written in Pine Script v6, ensuring compatibility with the latest TradingView features and optimal performance.
Final Notes
This tool is designed to enhance your market analysis by providing a clear visual representation of premium and discount price zones. It should be used as one component of a well-rounded trading approach that includes proper risk management, multiple forms of analysis, and realistic expectations about market behavior.
The concept of premium and discount zones is rooted in auction market theory and the idea that price oscillates around fair value. However, traders should understand that these zones are interpretive tools based on historical data and do not constitute trading advice or predictions about future price action.
Remember to backtest any strategy using this indicator on historical data before applying it to live trading, and always trade responsibly within your risk tolerance.
Disclaimer: The information provided by this indicator is for educational and informational purposes only. It does not constitute financial advice, investment advice, trading advice, or any other sort of advice. Always conduct your own research and consult with qualified financial professionals before making trading decisions.
GVWAP_Core (CalendarSpan + EventSpike)GVWAP Core Indicator
General Description (Public)
GVWAP (Generalized Volume-Weighted Average Price) is an advanced anchoring and averaging framework designed to reveal market structure rather than predict price. Unlike traditional VWAP, GVWAP is not limited to volume weighting or session-based anchoring. It can operate on any input series (price, indicators, transforms) and supports multiple weighting schemes, decay behavior, and structural reset logic.
At its core, GVWAP answers a simple question: “Where is the statistically relevant center of activity since the last meaningful structural event?”
The indicator continuously updates a weighted average of the input series, gradually forgetting older data using exponential decay. The anchor point can reset on calendar boundaries (day, week, month, etc.) or on statistically significant events such as abnormal volume spikes. Robust dispersion bands based on mean absolute deviation (MAD) surround the average, providing context for trend, rotation, and compression regimes.
GVWAP is not a trading signal by itself. It is best used as a structural reference layer or as an intermediate transform feeding other indicators, strategies, or regime filters.
Mathematical Description (Quantitative)
Let x_t be an arbitrary input series and w_t a selectable weight function. GVWAP is defined as a normalized exponentially decayed weighted estimator:
GVWAP_t = N_t / D_t
with recursive updates:
N_t = (1 − α)·N_{t−1} + α·w_t·x_t
D_t = (1 − α)·D_{t−1} + α·w_t
where α = 1 − 2^(−1/H) and H is the decay half-life in bars.
Weights may be defined as:
• w_t = V_t (volume)
• w_t = 1 (equal weight)
• w_t = 1 / ATR_t (volatility-normalized)
• w_t = f(n_t) (time-weighted, where n_t is bars since reset)
The estimator resets when a structural condition R_t is satisfied, at which point:
N_t = w_t·x_t, D_t = w_t
For event-based anchoring, volume surprise is computed using a Student‑t–compressed z‑score:
z_t = (V_t − μ_V) / σ_V
tZ_t = z_t / sqrt(1 + z_t² / ν)
A reset occurs when tZ_t exceeds a threshold τ.
Dispersion is measured via a decayed Mean Absolute Deviation:
MAD_t = (Σ λ^{t−i} w_i |x_i − GVWAP_t|) / (Σ λ^{t−i} w_i)
Bands are defined as GVWAP_t ± k·MAD_t.
GVWAP therefore represents a bounded-memory, robust, non‑Gaussian estimator of the local conditional expectation of x_t under dynamic anchoring and weighting.
POWER INDICATOR - PRO PREMIUM by OeZKAN 👑 POWER INDICATOR PRO PREMIUM V24: Predictive Intelligence Meets Precision ExecutionThe POWER INDICATOR PRO PREMIUM V24 is the pinnacle of algorithmic trading intelligence. This system transcends traditional indicators by utilizing a sophisticated framework of advanced mathematical equations to predict the impending trend direction before the market moves. It combines Smart Money Concepts (SMC), Multi-Timeframe (MTF) convergence, and Dynamic Risk Management to deliver unparalleled clarity and execution confidence.If you seek a trading partner that provides leading, predictive signals and high-probability entries, this system is your definitive solution.🧠 The Core Element: Predictive Market Context & Directional ForecastThe foundational strength of the POWER INDICATOR is its ability to forecast the market's bias through advanced quantification:🚀 Directional Pre-Cognition (LRC & Mathematical Models):The system utilizes the Linear Regression Curve (LRC) and proprietary statistical models as its core mathematical engine. This process extrapolates the probable trend path and generates a Directional Forecast for the coming bars, enabling you to anticipate moves rather than react to them. This forecast serves as the ultimate bias filter.🧠 The Convictional Filter: Quantifying Probability ($60\%$ Confidence):This filter is our proprietary Probability Brain. It eliminates market noise by forcing convergence across multiple high-level factors (MTF agreement, Momentum, SMC levels).High-Conviction Threshold: Independent analysis confirms that the Conviction Filter provides an exceptionally high win rate and signal quality starting at just $60\%$. Setting your threshold at this level ensures you only consider trades where the predictive mathematical components are in strong alignment.🌊 FVG & GP Predictive Zones:The system automatically identifies and projects critical Fair Value Gaps (FVG/LSOB) and the Golden Pocket (GP) Re-Test Zone. These zones are algorithmically identified as high-probability targets for pullbacks and reversals, providing a clear map of where liquidity will be sought.💡 The Convictional Trading Workflow: A 3-Step Guide to ExecutionContext Check: Confirm the LRC Directional Forecast aligns with your trade and the Conviction Score Meter is above your desired threshold (minimum $60\%$).Optimal Entry: Wait for the signal to trigger at a high-R:R entry point (GP, FVG, or Aggressive Impulse), guided by your chosen trading mode.Dynamic Management: Let the system handle risk, utilizing Structural SL and automatic Multi-Method Trailing Stops post-TP1.🎯 Mode Selection: Matching Strategy to MarketThe indicator's power lies in its Modularity. Selecting the correct mode is crucial for optimizing your results.Trading StyleRecommended ModesPrimary Rationale & Entry LogicHigh-Frequency ScalpingCT Scalp-OnlyDesigned for counter-trend entries in a pullback towards the Golden Pocket (GP). Uses tighter SL/TP multipliers for quick profit-taking. (Fast, high-R:R)ATR Channel Scalp (ACS)Utilizes volatility channels (ATR bands) for quick mean-reversion trades when price overextends.Strategic Day Trading / Swing TradingUltimate Fusion Mode (UFM)The highest probability mode. Best for catching major shifts confirmed by SMC (LRC, GP, FVG, MSS). Waits for a deep, high-R:R Re-Test Entry.Haupttrend & Scalp (Kombi)Excellent general-purpose mode. Focuses on trend continuation but allows for high-R:R pullback entries at key levels (GP/FVG). (Balanced)FVG Mitigation Entry (FME)Ideal for SMC traders. Waits for the price to precisely re-test and mitigate an unmitigated Fair Value Gap (FVG) or Liquidity Sweep (LSOB) zone before entry.Breakout & Momentum TradingBand Breakout-OnlyTriggers an entry only when price decisively breaks outside the SMA Volatility Bands (configurable). Filtered by momentum requirements.Dynamic Range Expansion (DRE)Specifically detects low-volatility consolidation before an anticipated high-momentum expansion phase.🔔 The Master Alert System: Your Execution EdgeThe powerful Alert functionality ensures you can monitor multiple assets and timeframes without being glued to the screen.1. ✅ Dynamic MASTER ALARM (Compact Text)The core alert uses a compact, dynamic JSON/text message that contains all necessary information for quick execution:Action: BUY / SELLMode Used: Conviction Score: Key Level: 2. LRC/GP Combo-Alert (High-R:R)This is the most valuable alert for strategic traders. It triggers only when the LRC direction is confirmed and the price enters the Golden Pocket (GP) Re-Test Zone, indicating an optimal high-R:R pullback opportunity.Final Note: To maximize the predictive power, ensure the useConvictionFilter is set to a minimum of $60\%$ and the useStructureSL is activated to protect your capital with intelligent stop placement.Stop reacting. Start predicting. Activate the POWER INDICATOR PRO PREMIUM V24 and lead the market today!
Relative Strength IndexRSI for indian market buy low and sell high.
rsi 3 low belo 15 buy and rsi high above 85 sell
Pro trade by Amit// This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0) creativecommons.org
//@version=5
import HeWhoMustNotBeNamed/utils/1 as ut
import Trendoscope/ohlc/1 as o
import Trendoscope/LineWrapper/1 as wr
import Trendoscope/ZigzagLite/2 as zg
import Trendoscope/abstractchartpatterns/5 as p
import Trendoscope/basechartpatterns/6 as bp
indicator("Installing Wait....", "Automatic Chart Pattern", overlay = true, max_lines_count=500, max_labels_count=500, max_polylines_count = 100)
openSource = input.source(open, '', inline='cs', group='Source', display = display.none)
highSource = input.source(high, '', inline='cs', group='Source', display = display.none)
lowSource = input.source(low, '', inline='cs', group='Source', display = display.none)
closeSource = input.source(close, '', inline='cs', group='Source', display = display.none, tooltip = 'Source on which the zigzag and pattern calculation is done')
useZigzag1 = input.bool(true, '', group = 'Zigzag', inline='z1', display = display.none)
zigzagLength1 = input.int(8, step=5, minval=1, title='', group='Zigzag', inline='z1', display=display.none)
depth1 = input.int(55, "", step=25, maxval=500, group='Zigzag', inline='z1', display=display.none, tooltip = 'Enable and set Length and Dept of Zigzag 1')
useZigzag2 = input.bool(false, '', group = 'Zigzag', inline='z2', display = display.none)
zigzagLength2 = input.int(13, step=5, minval=1, title='', group='Zigzag', inline='z2', display=display.none)
depth2 = input.int(34, "", step=25, maxval=500, group='Zigzag', inline='z2', display=display.none, tooltip = 'Enable and set Length and Dept of Zigzag 2')
useZigzag3 = input.bool(false, '', group = 'Zigzag', inline='z3', display = display.none)
zigzagLength3 = input.int(21, step=5, minval=1, title='', group='Zigzag', inline='z3', display=display.none)
depth3 = input.int(21, "", step=25, maxval=500, group='Zigzag', inline='z3', display=display.none, tooltip = 'Enable and set Length and Dept of Zigzag 3')
useZigzag4 = input.bool(false, '', group = 'Zigzag', inline='z4', display = display.none)
zigzagLength4 = input.int(34, step=5, minval=1, title='', group='Zigzag', inline='z4', display=display.none)
depth4 = input.int(13, "", step=25, maxval=500, group='Zigzag', inline='z4', display=display.none, tooltip = 'Enable and set Length and Dept of Zigzag 4')
numberOfPivots = input.int(5, "Number of Pivots", , 'Number of pivots used for pattern identification.', group='Scanning', display = display.none)
errorThresold = input.float(20.0, 'Error Threshold', 0.0, 100, 5, 'Error Threshold for trend line validation', group='Scanning', display = display.none)
flatThreshold = input.float(20.0, 'Flat Threshold', 0.0, 30, 5, 'Ratio threshold to identify the slope of trend lines', group='Scanning', display = display.none)
lastPivotDirection = input.string('both', 'Last Pivot Direction', , 'Filter pattern based on the last pivot direction. '+
'This option is useful while backtesting individual patterns. When custom is selected, then the individual pattern last pivot direction setting is used',
group='Scanning', display=display.none)
checkBarRatio = input.bool(true, 'Verify Bar Ratio ', 'Along with checking the price, also verify if the bars are proportionately placed.', group='Scanning', inline = 'br', display = display.none)
barRatioLimit = input.float(0.382, '', group='Scanning', display = display.none, inline='br')
avoidOverlap = input.bool(true, 'Avoid Overlap', group='Scanning', inline='a', display = display.none)
repaint = input.bool(false, 'Repaint', 'Avoid Overlap - Will not consider the pattern if it starts before the end of an existing pattern '+
'Repaint - Uses real time bars to search for patterns. If unselected, then only use confirmed bars.',
group='Scanning', inline='a', display = display.none)
allowChannels = input.bool(true, 'Channels', group='Pattern Groups - Geometric Shapes', display = display.none, inline='g')
allowWedges = input.bool(true, 'Wedge', group='Pattern Groups - Geometric Shapes', display = display.none, inline='g')
allowTriangles = input.bool(true, 'Triangle', group='Pattern Groups - Geometric Shapes', display = display.none, inline='g',
tooltip = 'Channels - Trend Lines are parralel to each other creating equidistance price channels'+
' \t- Ascending Channel \t- Descending Channel \t- Ranging Channel'+
' Wedges - Trend lines are either converging or diverging from each other and both the trend lines are moving in the same direction'+
' \t- Rising Wedge (Expanding) \t- Rising Wedge (Contracting) \t- Falling Wedge (Expanding) \t- Falling Wedge (Contracting)'+
' Triangles - Trend lines are either converging or diverging from each other and both trend lines are moving in different directions'+
' \t- Converging Triangle \t- Diverging Triangle \t- Ascending Triangle (Contracting) \t- Ascending Triangle (Expanding) \t- Descending Triangle(Contracting) \t- Descending Triangle(Expanding)')
allowRisingPatterns = input.bool(true, 'Rising', group='Pattern Groups - Direction', display = display.none, inline = 'd')
allowFallingPatterns = input.bool(true, 'Falling', group='Pattern Groups - Direction', display = display.none, inline = 'd')
allowNonDirectionalPatterns = input.bool(true, 'Flat/Bi-Directional', group='Pattern Groups - Direction', display = display.none, inline = 'd',
tooltip = 'Rising - Either both trend lines are moving up or one trend line is flat and the other one is moving up.'+
' \t- Ascending Channel \t- Rising Wedge (Expanding) \t- Rising Wedge (Contracting) \t- Ascending Triangle (Expanding) \t- Ascending Triangle (Contracting)'+
' Falling - Either both trend lines are moving down or one trend line is flat and the other one is moving down.'+
' \t- Descending Channel \t- Falling Wedge (Expanding) \t- Falling Wedge (Contracting) \t- Descending Triangle (Expanding) \t- Descending Triangle (Contracting)'+
' Flat/Bi-Directional - Trend Lines move in different directions or both flat.'+
' \t- Ranging Channel \t- Converging Triangle \t- Diverging Triangle')
allowExpandingPatterns = input.bool(true, 'Expanding', group='Pattern Groups - Formation Dynamics', display = display.none, inline = 'f')
allowContractingPatterns = input.bool(true, 'Contracting', group='Pattern Groups - Formation Dynamics', display = display.none, inline='f')
allowParallelChannels = input.bool(true, 'Parallel', group = 'Pattern Groups - Formation Dynamics', display = display.none, inline = 'f',
tooltip = 'Expanding - Trend Lines are diverging from each other.'+
' \t- Rising Wedge (Expanding) \t- Falling Wedge (Expanding) \t- Ascending Triangle (Expanding) \t- Descending Triangle (Expanding) \t- Diverging Triangle'+
' Contracting - Trend Lines are converging towards each other.'+
' \t- Rising Wedge (Contracting) \t- Falling Wedge (Contracting) \t- Ascending Triangle (Contracting) \t- Descending Triangle (Contracting) \t- Converging Triangle'+
' Parallel - Trend Lines are almost parallel to each other.'+
' \t- Ascending Channel \t- Descending Channel \t- Ranging Channel')
allowUptrendChannel = input.bool(true, 'Ascending ', group = 'Price Channels', inline='uc', display = display.none)
upTrendChannelLastPivotDirection = input.string('both', '', , inline='uc', group='Price Channels', display = display.none,
tooltip='Enable Ascending Channel and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowDowntrendChannel = input.bool(true, 'Descending', group = 'Price Channels', inline='dc', display = display.none)
downTrendChannelLastPivotDirection = input.string('both', '', , inline='dc', group='Price Channels', display = display.none,
tooltip='Enable Descending Channel and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowRangingChannel = input.bool(true, 'Ranging ', group = 'Price Channels', inline='rc', display = display.none)
rangingChannelLastPivotDirection = input.string('both', '', , inline='rc', group='Price Channels', display = display.none,
tooltip='Enable Ranging Channel and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowRisingWedgeExpanding = input.bool(true, 'Rising ', inline='rwe', group = 'Expanding Wedges', display = display.none)
risingWedgeExpandingLastPivotDirection = input.string('down', '', , inline='rwe', group='Expanding Wedges', display = display.none,
tooltip='Enable Rising Wedge (Expanding) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowFallingWedgeExpanding = input.bool(true, 'Falling ', inline='fwe', group = 'Expanding Wedges', display = display.none)
fallingWedgeExpandingLastPivotDirection = input.string('up', '', , inline='fwe', group='Expanding Wedges', display = display.none,
tooltip='Enable Falling Wedge (Expanding) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowRisingWedgeContracting = input.bool(true, 'Rising ', inline='rwc', group = 'Contracting Wedges', display = display.none)
risingWedgeContractingLastPivotDirection = input.string('down', '', , inline='rwc', group='Contracting Wedges', display = display.none,
tooltip='Enable Rising Wedge (Contracting) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowFallingWedgeContracting = input.bool(true, 'Falling ', inline='fwc', group = 'Contracting Wedges', display = display.none)
fallingWedgeContractingLastPivotDirection = input.string('up', '', , inline='fwc', group='Contracting Wedges', display = display.none,
tooltip='Enable Falling Wedge (Contracting) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowRisingTriangleExpanding = input.bool(true, 'Ascending ', inline='rte', group = 'Expanding Triangles', display = display.none)
risingTriangleExpandingLastPivotDirection = input.string('up', '', , inline='rte', group='Expanding Triangles', display = display.none,
tooltip='Enable Ascending Triangle (Expanding) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowFallingTriangleExpanding = input.bool(true, 'Descending', inline='fte', group = 'Expanding Triangles', display = display.none)
fallingTriangleExpandingLastPivotDirection = input.string('down', '', , inline='fte', group='Expanding Triangles', display = display.none,
tooltip='Enable Descending Triangle (Expanding) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowExpandingTriangle = input.bool(true, 'Diverging ', inline='dt', group = 'Expanding Triangles', display = display.none)
divergineTriangleLastPivotDirection = input.string('both', '', , inline='dt', group='Expanding Triangles', display = display.none,
tooltip='Enable Diverging Triangle and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowRisingTriangleConverging= input.bool(true, 'Ascending ', inline='rtc', group = 'Contracting Triangles', display = display.none)
risingTriangleContractingLastPivotDirection = input.string('up', '', , inline='rtc', group='Contracting Triangles', display = display.none,
tooltip='Enable Ascending Triangle (Contracting) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowFallingTriangleConverging = input.bool(true, 'Descending', inline='ftc', group = 'Contracting Triangles', display = display.none)
fallingTriangleContractingLastPivotDirection = input.string('down', '', , inline='ftc', group='Contracting Triangles', display = display.none,
tooltip='Enable Descending Triangle (Contracting) and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowConvergingTriangle = input.bool(true, 'Converging ', inline='ct', group = 'Contracting Triangles', display = display.none)
convergingTriangleLastPivotDirection = input.string('both', '', , inline='ct', group='Contracting Triangles', display = display.none,
tooltip='Enable Converging Triangle and select the last pivot direction filter. Last pivot direction will only be used if the Generic Last Pivot Direction parameter is set to Custom')
allowedPatterns = array.from(
false,
allowUptrendChannel and allowRisingPatterns and allowParallelChannels and allowChannels,
allowDowntrendChannel and allowFallingPatterns and allowParallelChannels and allowChannels,
allowRangingChannel and allowNonDirectionalPatterns and allowParallelChannels and allowChannels,
allowRisingWedgeExpanding and allowRisingPatterns and allowExpandingPatterns and allowWedges,
allowFallingWedgeExpanding and allowFallingPatterns and allowExpandingPatterns and allowWedges,
allowExpandingTriangle and allowNonDirectionalPatterns and allowExpandingPatterns and allowTriangles,
allowRisingTriangleExpanding and allowRisingPatterns and allowExpandingPatterns and allowTriangles,
allowFallingTriangleExpanding and allowFallingPatterns and allowExpandingPatterns and allowTriangles,
allowRisingWedgeContracting and allowRisingPatterns and allowContractingPatterns and allowWedges,
allowFallingWedgeContracting and allowFallingPatterns and allowContractingPatterns and allowWedges,
allowConvergingTriangle and allowNonDirectionalPatterns and allowContractingPatterns and allowTriangles,
allowFallingTriangleConverging and allowFallingPatterns and allowContractingPatterns and allowTriangles,
allowRisingTriangleConverging and allowRisingPatterns and allowContractingPatterns and allowTriangles
)
getLastPivotDirectionInt(lastPivotDirection)=>lastPivotDirection == 'up'? 1 : lastPivotDirection == 'down'? -1 : 0
allowedLastPivotDirections = array.from(
0,
lastPivotDirection == 'custom'? getLastPivotDirectionInt(upTrendChannelLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(downTrendChannelLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(rangingChannelLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(risingWedgeExpandingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(fallingWedgeExpandingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(divergineTriangleLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(risingTriangleExpandingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(fallingTriangleExpandingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(risingWedgeContractingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(fallingWedgeContractingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(convergingTriangleLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(fallingTriangleContractingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection),
lastPivotDirection == 'custom'? getLastPivotDirectionInt(risingTriangleContractingLastPivotDirection) : getLastPivotDirectionInt(lastPivotDirection)
)
theme = input.string('Dark', title='Theme', options= , group='Display', inline='pc',
tooltip='Chart theme settings. Line and label colors are generted based on the theme settings. If dark theme is selected, '+
'lighter colors are used and if light theme is selected, darker colors are used. '+
'Pattern Line width - to be used for drawing pattern lines', display=display.none)
patternLineWidth = input.int(2, '', minval=1, inline='pc', group = 'Display', display = display.none)
showPatternLabel = input.bool(true, 'Pattern Label', inline='pl1', group = 'Display', display = display.none)
patternLabelSize = input.string(size.normal, '', , inline='pl1', group = 'Display', display = display.none,
tooltip = 'Option to display Pattern Label and select the size')
showPivotLabels = input.bool(true, 'Pivot Labels ', inline='pl2', group = 'Display', display = display.none, tooltip = 'Option to display pivot labels and select the size')
pivotLabelSize = input.string(size.normal, '', , inline='pl2', group = 'Display', display = display.none)
showZigzag = input.bool(true, 'Zigzag', inline='z', group = 'Display', display = display.none)
zigzagColor = input.color(color.blue, '', inline='z', group = 'Display', display = display.none, tooltip = 'Option to display zigzag within pattern and the default zigzag line color')
deleteOldPatterns = input.bool(true, 'Max Patterns', inline='do', group = 'Display', display = display.none)
maxPatterns = input.int(20, '', minval=1, step=5, inline = 'do', group = 'Display', display = display.none, tooltip = 'If selected, only last N patterns will be preserved on the chart.')
errorRatio = errorThresold/100
flatRatio = flatThreshold/100
showLabel = true
offset = 0
type Scanner
bool enabled
string ticker
string timeframe
p.ScanProperties sProperties
p.DrawingProperties dProperties
array patterns
array zigzags
method getZigzagAndPattern(Scanner this, int length, int depth, array ohlcArray, int offset=0)=>
var zg.Zigzag zigzag = zg.Zigzag.new(length, depth, 0)
var map lastDBar = map.new()
zigzag.calculate(array.from(highSource, lowSource))
var validPatterns = 0
mlzigzag = zigzag
if(zigzag.flags.newPivot)
while(mlzigzag.zigzagPivots.size() >= 6+offset)
lastBar = mlzigzag.zigzagPivots.first().point.index
lastDir = int(math.sign(mlzigzag.zigzagPivots.first().dir))
if(lastDBar.contains(mlzigzag.level)? lastDBar.get(mlzigzag.level) < lastBar : true)
lastDBar.put(mlzigzag.level, lastBar)
= mlzigzag.find(this.sProperties, this.dProperties, this.patterns, ohlcArray)
if(valid)
validPatterns+=1
currentPattern.draw()
this.patterns.push(currentPattern, maxPatterns)
alert('New Pattern Alert')
else
break
mlzigzag := mlzigzag.nextlevel()
true
method scan(Scanner this)=>
var array ohlcArray = array.new()
var array patterns = array.new()
ohlcArray.push(o.OHLC.new(openSource, highSource, lowSource, closeSource))
if(useZigzag1)
this.getZigzagAndPattern(zigzagLength1, depth1, ohlcArray)
if(useZigzag2)
this.getZigzagAndPattern(zigzagLength2, depth2, ohlcArray)
if(useZigzag3)
this.getZigzagAndPattern(zigzagLength3, depth3, ohlcArray)
if(useZigzag4)
this.getZigzagAndPattern(zigzagLength4, depth4, ohlcArray)
var scanner = Scanner.new(true, "", "",
p.ScanProperties.new(offset, numberOfPivots, errorRatio, flatRatio, checkBarRatio, barRatioLimit, avoidOverlap, allowedPatterns=allowedPatterns, allowedLastPivotDirections= allowedLastPivotDirections, themeColors = ut.getColors(theme)),
p.DrawingProperties.new(patternLineWidth, showZigzag, 1, zigzagColor, showPatternLabel, patternLabelSize, showPivotLabels, pivotLabelSize, deleteOnPop = deleteOldPatterns),
array.new())
if(barstate.isconfirmed or repaint)
scanner.scan()
Macro Pulse Engine (Fixed Feeds)The Macro Engine aggregates key macro signals (DXY, 10Y yields, VIX, market breadth, and major indices) into a single risk-on vs risk-off read.
Green / positive readings favor risk-taking and dip-buying
Red / negative readings signal caution, volatility expansion, and defensive positioning
The score updates off confirmed daily closes, not noisy intraday data
It doesn’t predict direction — it confirms whether risk is being rewarded or punished.
zhanzhang6
Script Name: Zero Lag Trend Signals (MT5)
Description:
A high-sensitivity trend-tracking tool optimized for crypto and stock markets. It eliminates lag in price signals via advanced filtering, generating clear long/short prompts (marked by colored blocks) aligned with market momentum. Suitable for intraday and swing trading—works with all timeframes, with adjustable sensitivity to fit different asset volatilities.
Titan VSA + SMC Prime (Professional Institutional System)Titan VSA + SMC Prime is a comprehensive, hybrid trading system designed to bridge the gap between Volume Spread Analysis (VSA) and Smart Money Concepts (SMC) By Sultan of Multan. This script is built for traders who want to identify institutional activity, spot liquidity traps, and trade in harmony with the "Smart Money."
Unlike standard indicators that repaint or lag, Titan Prime focuses on price action, structural shifts, and volume anomalies to generate high-probability setups.
🔥 Key Features
1. Smart Money Concepts (SMC) Suite
Market Structure: Automatically maps BOS (Break of Structure) and CHoCH (Change of Character) with real-time trend identification (Bullish/Bearish).
Institutional Zones: clearly plots Order Blocks (OB), Breaker Blocks (BB), Fair Value Gaps (FVG), and Supply/Demand Zones.
Mitigation Tracking: Zones are automatically marked as "Mitigated" or removed once price has tested them, keeping your chart clean.
Premium & Discount Zones: Automatically draws the Equilibrium (EQ) to help you sell in Premium and buy in Discount areas.
2. Advanced Liquidity & Traps
Liquidity Sweeps (⚔): Identifies when key Highs or Lows are swept to grab liquidity.
Inducement (IDM 🪤): Highlights short-term highs/lows that act as "traps" for retail traders before the real move occurs. This helps you avoid false breakouts.
3. Volume Spread Analysis (VSA) Engine
Volume Bar Coloring: Candles are color-coded based on volume intensity:
🟨 Yellow: Ultra High Volume (Institutional Activity).
⬜ Gray: Low Volume (Lack of interest).
VSA Signals: Automatically detects powerful VSA patterns including:
No Demand (ND) / No Supply (NS)
Stopping Volume & Climaxes (SC/BC)
UpThrusts (UT) & Springs
Effort to Rise / Fall
Absorption
4. The "Smart Entry" System
This is the core of the indicator. It does not spam signals. It waits for a specific institutional sequence:
Liquidity Sweep: Price grabs liquidity.
Displacement: Price reverses aggressively.
Retest: The system waits for a pullback to the Order Block or FVG.
Confirmation: Only then does it display a "RETEST COMPLETE ✅ - SMART ENTRY" label with suggested TP/SL levels.
5. Professional Dashboards
Trade Status Panel (Top-Right): Monitors active signals, Entry, Stop Loss, Take Profit, and VSA Trend Score.
SMC Status Panel (Bottom-Right): A live scanner showing the status of Supply/Demand, FVGs, Structure, and overall Market Bias at a glance.
How to Use
Identify Trend: Use the dashboard to check if the market structure is Bullish or Bearish.
Wait for Traps: Look for IDM or Liquidity Sweep (⚔) labels. Smart moves usually happen after these traps.
Entry Confirmation: Do not enter blindly. Wait for the "RETEST COMPLETE" label which confirms that price has respected a Smart Money Zone.
Confluence: The best trades occur when an SMC Zone aligns with a VSA Signal (e.g., A Buying Climax inside a Demand Zone).
Customization
Visual Control: Fully adjustable text sizes, colors, and box lengths to fit your charting style.
Zoom Stability: Labels and text are pinned to ensure they remain readable when zooming in or out.
Disclaimer
This tool is for educational and analytical purposes. Always manage your risk and do not rely solely on any single indicator for financial decisions.
zhanzhang6666
Script Name: Zero Lag Trend Signals (MT5)
Description:
A high-sensitivity trend-tracking tool optimized for crypto and stock markets. It eliminates lag in price signals via advanced filtering, generating clear long/short prompts (marked by colored blocks) aligned with market momentum. Suitable for intraday and swing trading—works with all timeframes, with adjustable sensitivity to fit different asset volatilities.
RCI4linesRCI4lines plots four Rank Correlation Index (RCI) lines in a single panel to help you read momentum and trend conditions at a glance.
It shows two short-term RCIs (default: 7 and 9), a middle-term RCI (26), and a long-term RCI (52).
The script also draws shaded threshold zones between +80 to +95 and -80 to -95, making it easier to spot potential overbought / oversold areas and compare short-term moves with the bigger trend.
Useful for scalping to day trading, and for checking whether short-term momentum is aligned with mid/long-term direction.
FTL Context - Public TeaserFTL Context (Teaser) – Public
FTL Context (Teaser) is a visual market context layer designed to highlight periods of increased market risk and structural tension.
This script does NOT provide trading signals and is NOT intended for standalone trading decisions.
It serves as a contextual overlay only, helping traders visually identify when market conditions shift away from equilibrium.
The teaser version is intentionally limited and does not expose the underlying logic or decision framework.
Full functionality, advanced filters, and integrated decision logic are available in the invite-only FTL Context Layer (PRO).
Educational & informational use only.




















