Indicator

SMC Institutional Clean Wave & Structure PROSMC Institutional Clean Wave & Structure PRO
SMC Institutional Clean Wave & Structure PRO is a refined technical analysis indicator engineered to provide institutional order flow insights, precise market structure tracking, and uncluttered visual clarity on both light and dark trading themes. It replaces unnecessary chart noise with clean dynamic trend wave fills, smart consolidation candle color detection, and confirmed structure shifts.
Key Features Overview
1. Dynamic Single Trend Wave & Background Fill
Provides a smooth continuous structural trend wave. Renders vibrant green during bullish expansion phases and solid red during bearish contraction phases with a soft, unobtrusive background fill.
2. Smart Consolidation Candle Engine
Automatically highlights price action state. Bullish candles render in bright green, bearish candles in red, while tight consolidation or inside bar candles dynamically shift to a distinct grayish-white color to quickly highlight market compression.
3. Clean Market Structure Shifts (BOS & CHoCH)
Tracks key market structure breakouts. Identifies initial trend reversals as Change of Character (CHoCH) and structural extensions as Break of Structure (BOS), rendered with centered non-overlapping labels.
4. Confirmed Major Swing BUY & SELL Badges
Highlights major institutional high and low pivots with confirmed BUY and SELL badges. Pivot sensitivity and badge styling can be customized independently.
5. Target Standard Deviation Level (-2.5 SD)
Calculates real-time structural volatility and projects a dynamic -2.5 Standard Deviation Target line to help anticipate key potential market reaction levels.
Settings Overview
Trend Wave Settings
- Show Trend Wave Line: Toggle wave line and fill display.
- Colors & Opacity: Adjust trend line colors and background opacity.
Candle Engine Settings
- Enable Smart Candle Color Engine: Toggle adaptive candle colors.
- Custom Colors: Define unique colors for bullish, bearish, and inside bars.
Structure Settings
- Show BOS & CHoCH Shifts: Toggle structure labels.
- Structure Sensitivity: Fine-tune pivot detection rules for cleaner charts.
Signal Badges
- Show Confirmed BUY / SELL Badges: Toggle buy and sell markers.
- Signal Swing Sensitivity: Adjust lookback periods for pivot signals.
Standard Deviation Settings
- Show -2.5 SD Target Line: Toggle volatility target line.
- Custom Style: Adjust line thickness, color, and line style options.
Disclaimer
This script is built strictly for educational, analytical, and charting enhancement purposes. It does not offer financial advice or guaranteed trading results. Practice strict risk management.
Indicator

Indicator

SMC Institutional Execution & Liquidity Matrix PROSMC Institutional Execution & Liquidity Matrix PRO
SMC Institutional Execution & Liquidity Matrix PRO is an advanced, institutional grade technical analysis framework engineered for modern technical traders and quantitative analysts. It provides an intuitive, high definition visual presentation of Smart Money Concepts, dynamic liquidity zones, market structure shifts, and institutional order flow bias without cluttering price action.
Key Features Overview
1. Glowing Trend Wave Engine
Features an ultra smooth dynamic trend wave layer with a soft glow effect. It seamlessly adapts color according to current market momentum, helping traders instantly identify overall dynamic directional bias.
2. Clean Split Line Market Structure
Maps Break of Structure (BOS) and Change of Character (CHoCH) points with extreme precision. The structure line splits neatly in the center with a dedicated gap around the text label, keeping price action clear and uncluttered.
3. Auto Cleaning Institutional Liquidity Zones
Automatically detects Supply and Demand imbalances and key liquidity pools. To maintain visual clarity, mitigated zones automatically adjust and delete themselves as soon as price fills the imbalance.
4. Text Free Major High and Low Badges
Isolates major macro swing high and low extremes using solid colored badges without text clutter. Highlights Intermediate Term High and Low alternatives for instant turning point identification.
5. Smart Candle Heatmap & Displacement Highlights
Dynamically colors price candlesticks based on overall macro trend state, while highlighting high momentum volume displacement expansion candles in a distinct gold color.
How to Use
Step 1: Determine Macro Bias
Observe the Glowing Trend Wave and dynamic candle theme to assess overall institutional trend bias and momentum.
Step 2: Monitor Clean Structure Signals
Look for precise Break of Structure lines and Change of Character signals to identify structural continuity or reversals.
Step 3: Execute in Active Liquidity Zones
Utilize active, unmitigated Supply and Demand boxes for high probability entry and exit locations aligned with order flow.
Settings Overview
Glowing Wave Settings
- Show Glowing Trend Wave: Toggle display of the dynamic trend wave.
- Wave Period & Line Thickness: Adjust wave sensitivity and visual halo glow.
Market Structure Settings
- Show BOS & CHoCH Lines: Toggle market structure signals.
- Customization: Independently adjust line styles, line width, and font size.
Liquidity Zone Settings
- Show Auto Liquidity Zones: Toggle Supply and Demand boxes.
- Zone Fill Transparency: Customize fill opacity from 0 to 100.
Major Swing Settings
- Show Clean Major Swing Badges: Toggle directional pivot badges.
Disclaimer
This script is built strictly for educational, analytical, and charting enhancement purposes. It does not provide financial advice, automated trade signals, or guaranteed results. Always practice strict risk management.
Indicator

RMI Signal RSI/MACD/IchimokuRMI Signalは、RSI・MACD・一目均衡表という3つの独立したテクニカル指標のバイアス(強気/弱気)を統合し、3指標の一致度に基づいて複合エントリーシグナルを生成するオシレーター型インジケーターです。
単一指標のダマシに惑わされず、複数の異なるロジックが同じ方向を示したときにのみシグナルを出すことで、判断の質を高めることを目的としています。
あわせてRSI上でのレギュラーダイバージェンス自動検出も搭載しています。
🔶 主な機能
- 📊 RSIバイアス — RSI(50)を基準に強気/弱気を判定。RSI-50をメインラインとしてプロット
- 📈 MACDバイアス — MACDヒストグラムの符号で強気/弱気を判定。MACDライン・シグナルラインも同時表示可能
- ☁️ 一目均衡表バイアス — 「価格が雲の上/下にあるか」と「転換線・基準線のクロス方向」が一致した場合のみ強気/弱気と判定(簡易版の三役好転/逆転ロジック)
- 🎯 複合シグナル — 3指標のうち何個が一致すればシグナルとするか(2/3または3/3)を設定可能。一致時は背景色点灯+BUY/SELLラベルを表示
- 🔍 RSIダイバージェンス検出 — RSIのピボット高値/安値と価格を比較し、強気/弱気のレギュラーダイバージェンスをRSIライン上にライン・ラベルで自動描画
- 📋 ステータステーブル — 各指標のバイアスと複合シグナルの状態を一覧表示
🔶 仕組み
★各指標は独立して +1(強気) / -1(弱気) / 0(中立) のスコアを算出します。
- RSI: RSI > 50 → 強気、RSI < 50 → 弱気
- MACD: ヒストグラム > 0 → 強気、< 0 → 弱気
- 一目均衡表: 価格が雲の上 かつ 転換線 > 基準線 → 強気(逆は弱気)
強気スコアの合計、または弱気スコアの合計が設定した一致数(既定3/3)に達した時点で、
複合【BUY/SELL】シグナルが確定します。
🔶 設定
- RSI: 期間・ソースの変更
- MACD: Fast/Slow/Signal期間、MACDライン表示のON/OFF
- 一目均衡表: 転換線・基準線・先行スパンB・移動幅の各期間
- 複合ロジック: シグナル成立に必要な一致数(2または3)
- ダイバージェンス: 検出Pivot長、有効期間、表示色
- 表示設定: テーブル表示・BUY/SELLラベル表示・テーブル位置
🔶 使い方
1. 背景色が点灯し、BUY/SELLラベルが表示されたタイミングを複合的なトレンド転換の目安として活用してください
2. テーブルで各指標が「どちらに何個一致しているか」を確認し、シグナルの根拠を把握できます
3. RSIライン上の"Bear Div"/"Bull Div"は、モメンタムの減衰を示す先行的なシグナルとして、複合シグナルの補助的な確認材料に利用してください
🔶 アラート
複合BUYシグナル・複合SELLシグナル・弱気ダイバージェンス・強気ダイバージェンスの発生時にそれぞれアラートを設定できます。
⚠️ 免責事項
本インジケーターは教育・情報提供のみを目的としたものであり、投資助言ではありません。過去のデータに基づくシグナルは将来の値動きを保証するものではなく、実際の取引判断はご自身の責任で行ってください。
---
RMI Signal — RSI + MACD + Ichimoku Composite Signal & Divergence Detector
🔶 OVERVIEW
RMI Signal is an oscillator-style indicator that combines the bias (bullish/bearish) of three independent technical tools — RSI, MACD, and Ichimoku Kinko Hyo — into a single composite entry signal based on how many of them agree.
Rather than relying on any single indicator (which can produce false signals on its own), this tool only triggers when multiple independent methods align, aiming to improve signal quality. It also includes automatic regular divergence detection plotted directly on the RSI line.
🔶 KEY FEATURES
- 📊 RSI Bias — Bullish above 50, bearish below. The RSI-50 series is plotted as the main oscillator line.
- 📈 MACD Bias — Determined by the sign of the MACD histogram. MACD/Signal lines can be overlaid on the same pane.
- ☁️ Ichimoku Bias — Bullish only when price is above the Kumo (cloud) AND Tenkan-sen is above Kijun-sen (bearish requires both conditions to align in the opposite direction) — a simplified version of the classic "three-line confirmation."
- 🎯 Composite Signal — Choose how many of the 3 indicators must agree (2-of-3 or 3-of-3) to trigger a signal. On alignment, the panel background highlights and a BUY/SELL label is plotted.
- 🔍 RSI Divergence Detection — Compares RSI pivot highs/lows against price to automatically detect and draw bullish/bearish regular divergence directly on the RSI line.
- 📋 Status Table — At-a-glance table showing the current bias of each indicator and the overall composite state.
🔶 HOW IT WORKS
Each component independently scores +1 (bullish), -1 (bearish), or 0 (neutral):
- RSI: RSI > 50 → bullish, RSI < 50 → bearish
- MACD: histogram > 0 → bullish, < 0 → bearish
- Ichimoku: price above cloud AND Tenkan > Kijun → bullish (opposite for bearish)
A composite BUY or SELL signal fires once the number of aligned bullish (or bearish) components reaches your chosen threshold (default: 3-of-3).
🔶 SETTINGS
- RSI: length, source
- MACD: fast/slow/signal length, toggle for MACD/Signal line plots
- Ichimoku: Tenkan, Kijun, Senkou Span B lengths, displacement
- Composite Logic: required agreement count (2 or 3)
- Divergence: pivot length, validity window, colors
- Display: table toggle, label toggle, table position
🔶 HOW TO USE
1. Treat the background highlight + BUY/SELL label as a confluence-based trend-shift cue.
2. Use the status table to see exactly which components are aligned and how many, to gauge signal conviction.
3. Treat "Bear Div" / "Bull Div" markers on the RSI line as an early warning of momentum exhaustion — a supporting confirmation alongside the composite signal, not a standalone trigger.
🔶 ALERTS
Alerts are available for: Composite Buy, Composite Sell, Bearish RSI Divergence, and Bullish RSI Divergence.
⚠️ DISCLAIMER
This indicator is provided for educational and informational purposes only and does not constitute financial advice. Signals are based on historical price data and do not guarantee future performance. Always do your own research and manage risk according to your own trading plan. Indicator

Session Reference Candle (J&P)//@version=6
indicator("Session Reference Candle v1.0", overlay=true, max_lines_count=500)
//────────────────────────────────────
// SESSION SETTINGS
//────────────────────────────────────
groupSession = "Session Settings"
refTimeframe = input.timeframe(
"60",
"Reference Timeframe",
group=groupSession)
timezone = input.string(
"America/New_York",
"Time Zone",
options= ,
group=groupSession)
sessionHour = input.int(
20,
"Reference Hour",
minval=0,
maxval=23,
group=groupSession)
sessionMinute = input.int(
0,
"Reference Minute",
minval=0,
maxval=59,
group=groupSession)
//────────────────────────────────────
// DISPLAY SETTINGS
//────────────────────────────────────
groupDisplay = "Display Settings"
highColor = input.color(
color.lime,
"High Line Color",
group=groupDisplay)
lowColor = input.color(
color.red,
"Low Line Color",
group=groupDisplay)
candleColor = input.color(
color.orange,
"Reference Candle Color",
group=groupDisplay)
lineWidth = input.int(
2,
"Line Width",
minval=1,
maxval=5,
group=groupDisplay)
keepSessions = input.int(
1,
"Previous Sessions To Keep",
minval=1,
maxval=10,
group=groupDisplay)
//────────────────────────────────────
// HIGHER TIMEFRAME DATA
//────────────────────────────────────
refHigh = request.security(
syminfo.tickerid,
refTimeframe,
high,
lookahead=barmerge.lookahead_off)
refLow = request.security(
syminfo.tickerid,
refTimeframe,
low,
lookahead=barmerge.lookahead_off)
refTime = request.security(
syminfo.tickerid,
refTimeframe,
time,
lookahead=barmerge.lookahead_off)
//────────────────────────────────────
// FIND REFERENCE CANDLE
//────────────────────────────────────
refHour = hour(refTime, timezone)
refMinute = minute(refTime, timezone)
referenceCandle =
refHour == sessionHour and
refMinute == sessionMinute
//────────────────────────────────────
// STORE LEVELS
//────────────────────────────────────
var line highLines = array.new_line()
var line lowLines = array.new_line()
var float sessionHigh = na
var float sessionLow = na
var bool highTriggered = false
var bool lowTriggered = false
//────────────────────────────────────
// CREATE NEW LEVELS
//────────────────────────────────────
if referenceCandle
sessionHigh := refHigh
sessionLow := refLow
highTriggered := false
lowTriggered := false
highLine = line.new(
bar_index,
sessionHigh,
bar_index + 1,
sessionHigh,
extend=extend.right,
color=highColor,
width=lineWidth)
lowLine = line.new(
bar_index,
sessionLow,
bar_index + 1,
sessionLow,
extend=extend.right,
color=lowColor,
width=lineWidth)
array.push(highLines, highLine)
array.push(lowLines, lowLine)
if array.size(highLines) > keepSessions
line.delete(array.shift(highLines))
if array.size(lowLines) > keepSessions
line.delete(array.shift(lowLines))
//────────────────────────────────────
// COLOR REFERENCE CANDLE
//────────────────────────────────────
barcolor(referenceCandle ? candleColor : na)
//────────────────────────────────────
// ALERTS
//────────────────────────────────────
highBreak =
not na(sessionHigh) and
ta.crossover(close, sessionHigh)
lowBreak =
not na(sessionLow) and
ta.crossunder(close, sessionLow)
if highBreak
highTriggered := true
if lowBreak
lowTriggered := true
alertcondition(
highBreak,
"Session High Broken",
"Session Reference Candle High Broken")
alertcondition(
lowBreak,
"Session Low Broken",
"Session Reference Candle Low Broken") Indicator

Market Correlation Visualizer (Z-Score)Market Correlation Visualizer (Z-Score & % Var)
OVERVIEW
The Market Correlation Visualizer is a multi-asset analysis tool designed for intraday traders and quant analysts. Instead of relying on static correlation tables, this script plots real-time relative performance across up to 8 benchmark assets (Indices, Volatility, Commodities, Bonds, and Crypto) directly on your chart panel.
By standardizing assets through either Z-Score (Standard Deviations) or Percentage Change, you can instantly spot institutional imbalances, intermarket divergences, and statistical overextensions before they manifest on price action alone.
KEY FEATURES
Dual Engine Calculation:
Z-Score Normalization scales price movements based on rolling standard deviation. It identifies when an asset is statistically overbought/oversold relative to its peers.
Daily % Change Anchor normalizes performance from a customizable anchor time (e.g. Daily Open) to track pure percentage strength or weakness throughout the session.
Smart Right-Hand Labels:
Clean, dynamic labels automatically lock onto the right boundary of the indicator panel, displaying the ticker name and exact current reading. No need to memorize line colors.
Statistical Excess Zones (+/- 2.0 SD):
Visual upper and lower threshold bands immediately highlight extreme mean-reversion zones when using Z-Score mode.
Selective Visibility Filters:
Toggle up to 8 custom symbols on or off directly from the settings menu to keep your workspace uncluttered.
Error-Handled Security Fetching:
Built with robust fallback logic to ensure smooth performance across various brokers without breaking the chart panel if a specific ticker fails to load.
HOW TO USE FOR INTRADAY TRADING
Spotting SMT / Intermarket Divergences:
Watch key correlated pairs (e.g. ES vs NQ). If one index makes a new high while the visualizer line on the other fails to confirm, a liquidity sweep or SMT divergence is in play.
Mean-Reversion & Arbitrage:
When an asset crosses outside the +/- 2.0 Standard Deviation band while others remain neutral, it indicates an overextended asset prone to snapping back toward the zero-line.
Volatility Confirmation:
Track VIX against equity futures (ES, NQ). If ES hits a new low but the VIX line fails to push upward, the selling momentum lacks institutional backing.
DEFAULT TICKERS INCLUDED
Asset 1: TVC:VIX (Volatility)
Asset 2: CME_MINI:ES1! (S&P 500)
Asset 3: CME_MINI:NQ1! (Nasdaq 100)
Asset 4: COMEX:GC1! (Gold)
Assets 5 to 8 (Optional): NYMEX:CL1! (Crude Oil), CBOT:ZB1! (30Y Bonds), CME_MINI:RTY1! (Russell 2000), BINANCE:BTCUSDT (Bitcoin).
All inputs can be fully customized in the script settings. Indicator

ICT 8 PM New York Levels (J & P)//@version=6
indicator('ICT 8 PM New York Levels', overlay = true)
// ===== Inputs =====
candleColor = input.color(color.orange, '8 PM Candle Color')
highColor = input.color(color.lime, 'High Line')
lowColor = input.color(color.red, 'Low Line')
lineWidth = input.int(2, 'Line Width', minval = 1, maxval = 5)
// ===== Detect 8:00 PM New York =====
nyHour = hour(time, 'America/New_York')
nyMin = minute(time, 'America/New_York')
is8PM = nyHour == 20 and nyMin == 0
// ===== Variables =====
var line highLine = na
var line lowLine = na
var label sessionLabel = na
// ===== Draw Levels =====
if is8PM
// Delete yesterday's levels
if not na(highLine)
line.delete(highLine)
if not na(lowLine)
line.delete(lowLine)
if not na(sessionLabel)
label.delete(sessionLabel)
// Draw today's High
highLine := line.new(bar_index, high, bar_index + 1, high, extend = extend.right, color = highColor, width = lineWidth)
// Draw today's Low
lowLine := line.new(bar_index, low, bar_index + 1, low, extend = extend.right, color = lowColor, width = lineWidth)
// Label
sessionLabel := label.new(bar_index, high, '8 PM NY', style = label.style_label_down, color = color.orange, textcolor = color.black)
sessionLabel
// ===== Color Candle =====
barcolor(is8PM ? candleColor : na)
Indicator

Khabib Takedown Fractal Nest Breakdown ViprasolKhabib Takedown — Fractal Nest Breakdown 🤼
CONCEPT
This tool looks for SELF-SIMILARITY in a decline: a big bearish leg (lower high -> lower low)
with a smaller bearish leg nested inside it that is a scaled copy — same shape, a fraction of
the size. When the small "fractal" completes in the direction of the big one (a break of the
last low), the structure grounds price -> SHORT. It is a fractal-echo measurement, not a plain
lower-low. The nesting ratio between the small leg and the big leg is the core filter.
HOW IT DETECTS
- Swings are found with confirmed pivot highs/lows (left/right bar lookback) and chained into a
lightweight zigzag.
- The tool reads the last four alternating swings (high, low, high, low).
- Big leg = first high minus first low; small leg = second high minus second low.
- A valid nest requires: lower high and lower low (bearish structure); big leg >= (Min big x ATR);
small leg positive; and the nesting ratio (small/big) inside the band .
- The signal fires when price closes below the most recent swing low and the bar closes red.
- ATR (Wilder) scales the minimum big-leg size across instruments and timeframes.
ENTRY / STOP / TARGET
- Entry: SHORT on the close of the confirming (red) bar that breaks the last low.
- Stop: above the second (inner) swing high plus an ATR buffer (default 0.3 x ATR).
- Target: entry minus R multiple x risk (default 2R, where risk = stop distance).
- The script draws the big leg and the nested small leg, plus filled TP and SL zones that extend
to the right until price touches one of them.
NON-REPAINTING
Pivots are only used once fully confirmed (they require the right-side bars), and the signal is
evaluated on bar close (barstate.isconfirmed). Drawings are created on the confirmed bar. The tool
does not repaint completed signals. Live, the forming bar can still change until it closes, as with
any bar-close tool.
FEATURES
- Fractal nesting (scaled self-similar legs), not a plain lower-low break.
- ATR-scaled minimum big-leg requirement and adjustable nesting-ratio band.
- Automatic R-multiple TP and ATR-buffered SL, drawn as zones that extend until hit.
- One-trade-at-a-time option and a minimum-bars-between-signals gap to reduce clustering.
- On-chart status table (open trades) and an alertcondition for automation.
INPUTS OVERVIEW
- Swing pivot left/right bars: swing sensitivity.
- Nesting ratio band (ratLo/ratHi): how close in scale the small leg must be to the big leg.
- Min big leg (x ATR) and ATR length: minimum move and volatility scaling.
- TP R multiple, SL buffer (x ATR), min bars between signals, one-trade-at-a-time.
- Visual colors, label offset, and zone transparency.
HOW TO USE
1. Add to any liquid symbol and timeframe; start with defaults.
2. Tighten the nesting-ratio band for stricter self-similarity, or widen it for more signals.
3. Raise Min big leg (x ATR) to demand larger, cleaner declines before a nest counts.
4. Use the drawn TP/SL zones for context; set an alert on the signal for hands-off monitoring.
5. Combine with your own trend/context read before acting.
LIMITATIONS
- This is a pattern/education tool, not a signal service, and not financial advice.
- Breakdown patterns fail; nesting geometry is a filter, not a guarantee. Losing signals will occur.
- Pivot confirmation adds inherent lag (it needs bars to the right of a swing to confirm).
- Very choppy or illiquid markets can produce misshapen legs and weak signals.
- Requires user discretion, risk management, and position sizing. No performance is implied.
CREDITS
The name is an inspirational sports homage only; it does not imply any endorsement or affiliation.
ATR uses Wilder's average true range. Pivot/zigzag swing detection uses standard public techniques.
The fractal-nest (scaled self-similar leg) geometry, the detection assembly, and the trade/zone
visualization are original Viprasol work.
Original Viprasol work; no third-party Pine code reused.
Indicator

MoonTarget Elliott Waves V.4 (Pro SMC & Whales)This script is a highly advanced, all-in-one trading assistant built for PulseWire. It does not just draw lines, but it actually reads the market like a professional trader. 🤖
At its core, it uses an **Elliott Wave engine** to track price movements. It spots the *exact* highs and lows to map out impulsive and corrective waves. 🌊
But it gets much smarter than that. It includes **Smart Money Concepts (SMC)** to find hidden bank order blocks. 🏦
It also tracks **RSI divergence** to tell you when a trend is losing its steam. This helps you avoid entering trades at the *wrong* time. 🛑
The trade management system is truly incredible. You can easily set up to **four Take Profit (TP) targets** for your trades. 🎯
Whenever a target is hit, the script *automatically* moves your stop-loss to secure your profits. It basically protects your money while you sleep. 🛡️
There is also a massive, interactive **dashboard** on your screen. It shows your win rate, live profits, and a complete confluence checklist before any trade. 📊
You will also find a built-in **Whale Radar** to measure market volume and liquidity. It tracks global market sessions and counts down to major economic news. 🌍
Finally, it gives you live **AI text alerts** right on the chart. It will gently warn you to wait or tell you when a golden setup is ready to go. ✨
2 days ago
Release Notes
Update Notes: Advanced Trade Management & Smart Auto-Timing
Dynamic Multi-TP System: Users can now select up to 4 Take Profit targets. The script automatically calculates progressive, risk-based spacing for each target to maximize profits during strong trends.
Smart Stop-Loss Trailing: Implemented an automated SL securing mechanism. The SL now perfectly trails your targets (moves to Break-Even at TP1, trails to TP1 when TP2 is hit, etc.) to lock in profits and protect capital.
Visual UI Enhancements: Added dynamic chart labels that instantly update when a target is hit (e.g., "TP1 Hit ✅ Success!") and clearly display when the Stop Loss is secured ("Secured 🛡️").
Automated Global Market Engine: Upgraded the session timer to automatically sync with the specific broker's official server time. It now flawlessly supports 24/7 Crypto markets, handles custom broker hours (like FXCM), and works perfectly during Bar Replay backtesting without any manual time inputs.
2 days ago
Release Notes
Release Notes: Compilation Fix & Smart Multi-Asset Sync
Code Stabilization: Fixed undeclared identifier bugs (liq_status, smart_alert, etc.) to guarantee 100% compilation stability and smooth execution across all charts.
Universal Broker Session Sync: Upgraded the market closing timer to automatically fetch official session times across all asset classes (Forex, Metals, Commodities, Stocks, and Crypto) directly from the broker's daily feed (time_close("D")).
Crypto UI Display Optimization: Added asset-aware visual rules so Crypto instruments clearly display "Open 24/7", preventing any misleading session countdowns.
2 days ago
Release Notes
Release Notes: Universal Timezone Sync for Economic News
Global UTC Timezone Selection: Added a dedicated Timezone option (user_tz) in settings, allowing traders anywhere in the world to select their exact local UTC offset (from UTC-12 to UTC+12).
Accurate News Countdown Engine: Updated the economic news calculations to process times strictly against your chosen local timezone, preventing premature "Released" statuses caused by differing broker server times.
2 days ago
Release Notes
Release Notes: Real-Time Date Sync Fix
Dashboard Header Rollover: Fixed the stats header date display to strictly align with syminfo.timezone.
Accurate Date Roll: Ensures the dashboard date immediately reflects your active chart timezone at midnight, resolving any broker server lag without altering any core trading rules or wave logic.
2 days ago
Release Notes
Release Notes: Higher Timeframe (1D+) Date Resolution Fix
Multi-Timeframe Header Accuracy: Fixed a timestamp offset where Daily (1D) bars and higher timeframes displayed the previous session's date due to early bar-open timestamps.
Real-Time Calendar Sync: The dashboard header date now stays perfectly synced with the current calendar date across all timeframes (from 1m up to 1D and Monthly bars) seamlessly.
2 days ago
Release Notes
Release Notes: Customizable MTF, Sub-Wave Trading & Adjustable RSI
Customizable MTF Filter Timeframe: Replaced the fixed 4H MTF filter with a flexible timeframe selector (mtf_res), allowing traders to evaluate trend alignment across any desired higher timeframe (from 1m up to 1M).
Optional Sub-Wave Trading Mode: Added a new toggle (trade_sub_waves) allowing the execution engine to capture faster entries on internal sub-wave pivots, strictly obeying Elliott Wave entry logic.
Adjustable RSI Thresholds: Exposed RSI buy and sell levels (rsi_buy_level & rsi_sell_level) in inputs so traders can freely customize momentum filter sensitivity.
2 days ago
Release Notes
Release Notes: Precise Local Timezone Date Sync
Dashboard Date Sync: Updated the header date display calculation to bind directly with the user-selected local timezone (user_tz).
Midnight Rollover Fix: Ensures the dashboard date immediately rolls over precisely at local midnight regardless of broker server time, maintaining complete accuracy across all timeframes.
2 days ago
Release Notes
Release Notes: Strict Elliott Wave 4 Invalidation Filter
Wave 4 Overlap & Breach Filter: Added strict validation logic preventing Wave 4 from forming if price breaches the Wave 2 low (pl <= w2_low).
Clean Pattern Recognition: Automatically cancels false wave counts during sharp trend collapses, eliminating chart clutter and keeping trade signals aligned with strict Elliott Wave rules. Indicator

Ronaldo Bicycle Kick Orbit Break Reversal [ Viprasol ]Ronaldo Bicycle Kick — Orbit Break Reversal (Viprasol)
WHAT IT DOES (the idea)
Most reversal tools watch a single line. This one watches a region. It treats recent price structure as a set of confirmed swing points that "orbit" a structural centre of mass, and it trades the moment price escapes that orbit to the upside. Like a ball coiling around a centre and then leaving orbit — that break is the signal. The name is a sporting homage to a spectacular finish; the tool itself is pure geometry.
HOW IT DETECTS
1. Swings: a lightweight zigzag keeps the last several confirmed pivots. A pivot is only accepted after the required number of bars close to its right, so swings do not move once printed.
2. Orbit geometry: from the last K swings (default 6) it computes the geometric centroid — the mean bar position and mean price. It then measures the average (root-mean-square) distance those swings sit from the centroid price. That distance, scaled by "Orbit radius," becomes the orbit ring. A minimum radius floor (in ATR) filters out flat, meaningless rings.
3. Escape: the setup arms only when the orbit is valid. The signal fires on the first bar that CLOSES above the top of the orbit ring (centroid price + radius) having closed at or below it on the prior bar.
ENTRY / STOP / TARGET
- Entry: the close of the escape bar (long only).
- Stop: the lowest swing price inside the orbit, minus an ATR buffer.
- Target: Entry + R multiple x risk (default 2R), where risk = Entry - Stop.
Each trade draws an entry line plus filled TP and SL zones that extend forward bar by bar until price touches one of them, then freeze.
NON-REPAINTING
Signals are built from confirmed pivots and only evaluated on a confirmed (closed) bar. Nothing is placed on the developing bar, so a printed signal does not disappear or shift on later ticks. The dotted "live orbit" preview is a forward-looking sketch of the current geometry and is not a signal.
KEY FEATURES
- A real orbit ellipse is drawn around the centroid so you can see the ring being broken.
- Extend-until-hit TP/SL zones with a one-trade-at-a-time option.
- Optional hide-new-setup-while-in-trade to reduce clutter.
- Adjustable pivot width, swing count, orbit radius, ATR floor, R multiple, stop buffer, and a minimum-bars-between-signals gap.
INPUTS OVERVIEW
Swing pivot left/right bars; swings used for the orbit; minimum swings for validity; orbit radius multiplier; minimum orbit radius in ATR; ATR length; TP R multiple; SL ATR buffer; signal gap; one-trade toggle; visual colours and label offset.
HOW TO USE
1. Add to any liquid symbol and timeframe; it works on all.
2. Watch for the dotted orbit ring to form around recent structure.
3. Take note when a bar closes above the ring and the GOAL label prints.
4. Use the drawn entry, TP, and SL zones as a visual trade map; adjust the R multiple and stop buffer to your own plan.
5. Raise the pivot width or ATR floor on noisy, low-timeframe charts to demand cleaner structure.
LIMITATIONS (honest)
- This is a pattern and education tool, not a signal service or an autotrading system. It highlights a geometric condition; it does not predict outcomes.
- Long-only by design. It will not flag downside setups.
- In strong one-way trends the orbit ring can be escaped repeatedly; in choppy ranges valid orbits may be sparse. Context and discretion still matter.
- Requiring confirmed pivots means the orbit is defined slightly after a swing forms, which is the cost of non-repainting behaviour.
- Past behaviour of any pattern does not guarantee future results.
CREDITS
Built on public, well-known concepts: Average True Range (J. Welles Wilder) for volatility scaling, and standard pivot/zigzag swing detection. The orbit-centroid geometry and the escape logic are original Viprasol work. The "Bicycle Kick" name is an affectionate sporting homage and does not imply any endorsement or affiliation.
This script is an educational tool and is not financial advice. Trade your own plan and manage risk.
Original Viprasol work; no third-party Pine code reused.
Indicator

Indicator

Ichimoku Status Panel - Projection and Price TargetsIchimoku Status Panel - Projection and Price Targets
WHAT THIS IS
A read-only status panel for Ichimoku Kinko Hyo. It produces no buy or sell
signals and takes no view on direction. It reports what the chart currently
shows, in a form that is quicker to read than the lines themselves, and leaves
the judgement to the reader.
The panel is aimed at people who already trade with Ichimoku and want the
bookkeeping done for them: which conditions hold, for how long, and what is
already determined about the next few bars.
WHAT IT ADDS OVER A PLAIN ICHIMOKU
1. Projection of the Tenkan-sen and Kijun-sen.
The Tenkan-sen and Kijun-sen are midpoints of rolling high/low windows. That
means the bar on which the current extreme leaves the window is already known,
and so is the value the line will take once it does. The panel reports this as
"in N bars, up/down to X". Unless a new extreme is made in the meantime, that
move is settled in advance. A moving average cannot be read this way, and this
property is generally not surfaced by Ichimoku tools.
2. Chikou Span measured against the cloud, not only against price.
Most implementations compare the Chikou Span with the price 26 periods back
and stop there. Classical treatments also compare it with the cloud that sits
at that same location. A break of the cloud by price that is not confirmed by
the Chikou Span clearing the cloud behind it is a well documented failure
pattern. The panel shows this as a separate row, and calls out when the Chikou
Span is inside the cloud.
3. Counting that matches the original construction.
The original definition displaces by "26 periods including the current one",
which is a 25-bar shift. The script uses this by default and exposes a toggle
for anyone who prefers a plain 26-bar shift, so the reading can be matched to
whichever convention the rest of a workflow uses.
4. Construction from closes only, for indices.
Classical practice takes the intraday high and low, with the note that stock
indices remain valid when built from closes alone. Both are available.
5. Wave price targets, with a validity rule.
V, N, E and NT calculations from the last three alternating swing points, with
the percentage of the move already completed, and an option to hide targets
that price has passed. Consecutive swing points of the same kind are merged
into the more extreme one, so a usable wave is always available rather than
the display stalling whenever two highs or two lows confirm in a row.
More importantly, a wave whose starting point A has been taken out by price is
no longer a valid premise for a target. Pivots confirm several bars late, so
after a breakout the most recent completed wave often still runs against the
market, and every target it produces sits on the wrong side. When this happens
the script falls back to the preceding wave, which by construction runs the
other way, and the panel marks the condition. This keeps the levels on the
side the market is actually working toward.
PANEL ROWS
Bullish count how many of the six conditions currently hold
Price - Tenkan side, plus distance from the Tenkan-sen in percent
Tenkan - Kijun bullish or bearish, and how many bars it has held
Chikou - Price bullish or bearish, and how many bars it has held
Chikou - Kumo above, below, or inside the cloud behind price
Price - Kumo above, below, or inside the current cloud
Kijun slope rising, falling, or flat with a count of flat bars
Proj Tenkan bars until the Tenkan-sen moves, and to what value
Proj Kijun bars until the Kijun-sen moves, and to what value
Kumo twist bars until the next crossing of the leading spans
Bars since bars since the recent high and low, flagged when close to
the classical time numbers 9, 17, 26, 33, 42, 65 and 76
Wave the A, B and C points currently used for the targets,
marked when the preceding wave is in use or when the
starting point has been broken
All panel values are also written to the data window, so past bars can be
inspected by moving the cursor across the chart.
PRICE TARGET FORMULAS
With A as the start of the wave, B as the first objective and C as the
pullback or rally against it:
V = B + (B - C)
N = C + (B - A)
E = B + (B - A)
NT = C + (C - A)
The same four formulas serve both directions. In a down wave A is the starting
high, B the low and C the rally high, which makes the bracketed terms negative
and places the targets below B.
NT is off by default. Classical texts describe it as the rarest of the four,
and leaving all four on tends to produce a level near any price.
ON LAG AND REVISION
Swing points are found with a pivot lookback, so they confirm a number of bars
after the fact, set by "Swing sensitivity". Until a pivot confirms, the most
recent leg is not part of the wave, and the wave used for the targets can
change as new pivots arrive. The target lines move when it does. This is
inherent to identifying waves mechanically and is not hidden: the A, B and C
values in use are always shown in the panel so the reading can be checked.
The six conditions, the projections and the Kumo twist count are all evaluated
on confirmed values and do not revise.
Choosing the wave is a judgement in classical practice, not a calculation. The
automatic detection here is a convenience. Where it disagrees with the wave you
would have drawn, trust your own.
SETTINGS WORTH KNOWING
Wave selection "Latest valid" falls back to the preceding wave when
price takes out the starting point of the latest one.
"Latest only" always uses the most recent wave.
Swing sensitivity larger picks up larger waves, and confirms later
Target line length how far left the target lines are drawn
Panel theme the panel is opaque, so it stays readable on any
chart background; the theme is a preference
Draw the Ichimoku lines
turn this off if you already have the built-in
Ichimoku Cloud on the chart
The time-number flags on the "Bars since" row derive from calendar-based
reasoning in the original theory. They are meaningful on daily charts. On
intraday charts the rest of the panel still applies, but those flags are best
ignored.
CREDIT
Ichimoku Kinko Hyo was developed by Goichi Hosoda. The projection property,
the Chikou Span versus cloud relationship, the inclusive counting convention
and the four price target formulas are all part of the classical body of
theory. The code and the panel design are my own. Indicator

Chronological Elliott Wave Tracker With ProjectionsTired of automated Elliott Wave scripts that plot Wave 5 on a dip or scramble the sequence during consolidation?
Standard zigzag indicators often fail in complex market environments because they hunt for price extremes in a vacuum. They ignore the strict chronological timeline required by Elliott Wave Theory, leading to broken counts and overlapping labels.
This indicator solves that problem by utilizing a Strict Alternating ZigZag Engine. It tracks the actual chronological path of the market (High ➔ Low ➔ High ➔ Low) and anchors the motive (1-5) and corrective (A-B-C) labels exactly where they belong, ensuring a structurally accurate map of the price action.
Key Features
True Chronological Wave Mapping: Forces impulse waves (1, 3, 5) strictly to peaks and corrective waves (2, 4) strictly to dips (in a bullish setup). The internal logic respects the timeline of the chart.
Dynamic Wedge Detection: Automatically scans a macro lookback window to find the absolute structural extremes, drawing a clean, converging wedge pattern based on historical anchors.
Actionable Zones: Automatically generates a shaded Buy Zone (accumulation area based on recent corrective dips) and a Bull Case breakout line for quick invalidation/validation reference.
Adaptive Fibonacci Targets: Projects Wave III (1.618 extension) and Wave IV (0.382 retracement) targets based on the actual detected sub-wave structure, rather than random wicks.
Tick-Safe Memory Management: Built with advanced array cleanup to completely bypass the notorious PulseWire "label limit" bug. Your counts will never flicker or disappear on the live tick.
How to Use & Customize
Pivot Sensitivity: The core of the indicator. Lower this number (e.g., 3 to 5) to catch tighter, more frequent waves on higher timeframes (like the Daily chart). Raise it (e.g., 10 to 15) to ignore noise and only map major macro swings.
Bullish vs. Bearish Toggle: By default, the script assumes you are mapping a bullish motive phase (where 1, 3, and 5 are peaks). If you are mapping a downward impulse, simply uncheck the "Bullish Impulse" box in the settings to perfectly invert the structure.
Label Distance (ATR): If the counts are clashing with long candle wicks, adjust the ATR multiplier in the settings to push the labels further away from the price action.
Disclaimer: This script is designed for structural analysis and educational purposes. Automated Elliott Wave counting is highly complex, and this tool is best used as a structural baseline to assist your own manual charting, not as a standalone financial signal. Indicator

Elliott Impulse Engine [WillyAlgoTrader]📊 Elliott Impulse Engine (EIE) is an overlay indicator that counts a full Elliott cycle — impulse 0-1-2-3-4-5 plus correction A-B-C — completely automatically, using a Change-of-Character (CHoCH) trigger to start each count, a strict state machine to accept every wave point, Fibonacci target boxes to show where the next point is expected, a dashed "ghost" projection of the entire remaining path, and a trailing red invalidation line that tells you the exact price where the current count dies.
The core insight: most Elliott Wave tools either repaint their labels endlessly or force you to draw everything by hand. EIE does neither. It treats every count as a hypothesis : a CHoCH break seeds it, each confirmed pivot advances it one wave at a time, and a single hard price level can kill it. When the hypothesis dies, the chart is wiped clean and the engine waits for the next CHoCH — no stale labels, no silent redrawing of history. You always know three things at a glance: what wave the market is in, where price should go next, and where the idea is wrong.
Works on any symbol and any timeframe. Free and open for everyone.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A ZigZag alone gives you swings but no wave logic. A Fibonacci tool alone gives you levels but no structure. A CHoCH detector alone tells you the trend flipped but not what comes next. And a manual Elliott count gives you structure but demands hours of drawing and constant re-labeling.
EIE chains all of these into one pipeline:
Swing structure engine → CHoCH detection → count seeding (point 0 + point 1) → fib grid on leg 0-1 → target boxes for points 2/3/4 → pivot-based point acceptance with soft-marking → ghost projection of the remaining path → trailing invalidation level → reset with a stated reason
The swing engine finds structural highs and lows. A confirmed close through a swing level against the previous trend is a CHoCH — the only event allowed to start a new count, so counts always begin at genuine structure shifts, not random noise. The moment leg 0-1 is confirmed, the engine builds a Fibonacci grid on that leg and projects the whole expected structure forward as a dashed ghost path. Each subsequent wave point is accepted from a separate, faster pivot stream, checked against its expected fib range, and either labeled clean ("2") or soft-marked ("2~") if it landed outside the range. At every state the engine maintains exactly one critical price — the trailing invalidation level — and if price breaks it, the count is declared dead with an explicit reason (BELOW_0, BELOW_W2, W3_SHORTEST, and so on), the markup is wiped, and the engine returns to scanning.
No single public tool does this loop. The combination turns Elliott counting from a subjective drawing exercise into a rule-driven process you can watch unfold bar by bar.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ CHoCH-seeded counting — every count starts at a real structure break.
The engine tracks swing highs and lows using symmetric pivots (default 10 bars left / 10 bars right). A break is registered only on a confirmed bar close through the swing level. If that break goes against the current internal trend, it is a CHoCH — and only then does the engine arm a new count: point 0 is set to the extreme of the run that preceded the break, and the engine waits for a with-trend pivot beyond the CHoCH level to lock point 1.
Anti-noise guards built into the seeding:
— a warm-up gate (no CHoCH before max(3 × swing length, 50) bars of history),
— an optional cooldown (N bars after any count ends before a new CHoCH may seed),
— a level lock: after an invalidation, the same CHoCH level cannot immediately re-seed a new count (compared with half-a-tick tolerance, so floating-point equality can never leak a duplicate seed).
Why this matters: counts started from random pivots produce random labels. Counts started from structure breaks start where trend logic actually changed.
2️⃣ Non-blocking Fibonacci ranges with soft-marking — geometry informs, price decides.
Each wave point has an expected fib range measured on the 0→1 grid (retracement for 2, negative extension beyond point 1 for 3, 5 and B; point 4 uses its own 2→3 grid; C uses 0→1 again):
— Point 2: 0.5 – 0.705 (retracement of 0→1)
— Point 3: −0.5 – −0.618 (extension beyond point 1)
— Point 4: 0.5 – 0.705 (retracement of leg 2→3)
— Point 5: −0.618 – −1.0
— Point B: −0.5 – −0.618
— Point C: 0.0 – 0.236
The fib level of any price p on the 0→1 grid is computed as L = (p1 − p) / (p1 − p0); on the 2→3 grid as F = (p3 − p) / (p3 − p2). A pivot inside its range is labeled clean ("3"); a pivot outside it is still accepted but soft-marked ("3~") — because in real markets a valid wave frequently overshoots textbook levels. Only the hard invalidation rules can reject a point. Every range is a user input (min/max per point), so you can tighten or widen the geometry to your market.
Why this matters: strict-range engines discard perfectly good structure; free-form engines accept garbage. Soft-marking keeps the count honest while telling you visually which points are textbook and which are stretched.
3️⃣ Ghost projection — the whole remaining path drawn before it happens.
As soon as leg 0-1 is confirmed, EIE draws a dashed projection of every remaining point: 2? 3? 4? 5? A? B? C?. Each ghost point is placed inside its fib range at a position you choose (Middle of the range, Near edge, or Far edge), and spaced horizontally at step = round((b1 − b0) × coefficient) bars — i.e., the time geometry of the projection scales with the actual duration of leg 0-1. Ghost point 5? sits at extension −1.0 plus a configurable offset.
The projection is re-anchored from every newly accepted real point : once point 2 locks, the ghost path redraws starting from the real 2; once point 3 locks, from the real 3, and so on. Point 4's ghost is computed on the 2→3 grid using the best available references (real points when confirmed, ghost estimates before that).
Why this matters: you see the expected shape of the entire move — including the A-B-C correction after the impulse — while the impulse is still in wave 2.
4️⃣ Trailing invalidation level — one red line that answers "where am I wrong?".
At every state the engine maintains exactly one critical level, drawn as a dashed red line with an "INVALID + price" label:
— waiting for 1 / wave 2 in progress: point 0
— wave 3 before point 1 is broken: point 0; after the break: point 2
— wave 4: point 2
— wave 5 before point 3 is broken: point 2; after the break: point 4
— correction A/B/C: point 2
A break of this level resets the hypothesis with a named reason. The check runs every bar, before pivot processing , so a violent bar cannot both break the invalidation level and sneak a new wave point into the count on the same bar. Wick-driven pivots that slip past a close-based check are caught by a second, pivot-level guard (a pivot beyond point 2 / point 4 in the protected phases also triggers the reset). Classic Elliott rules are enforced on top: wave 2 may never retrace below point 0, wave 4 may never enter below point 2, and if wave 3 turns out shortest among 1, 3 and 5 at the moment point 5 is proposed, the count is rejected with reason W3_SHORTEST.
Why this matters: an Elliott count without a falsification level is a story, not a hypothesis. EIE makes the falsification price explicit on every bar.
5️⃣ Two-speed pivot system — stable structure, fast confirmation.
Structure and CHoCH run on the main swing length (default 10/10). Wave points 1-5 and A-C are accepted from a separate, shorter pivot stream (default 5/5, always ≤ swing length — validated at load). This decouples two jobs that a single pivot length cannot do well simultaneously: the long pivots keep the structural skeleton stable, the short pivots confirm wave points with roughly half the lag.
A dedicated backfill scan (up to ~480 bars) closes the pivot-lag gap for point 2: when point 1 locks or repositions, the engine re-scans all bars since point 1 for the true retracement extreme, so the best low/high inside the confirmation window is never missed. If price breaks point 1 before any counter-trend pivot confirmed point 2, the tracked extreme itself is accepted as point 2 and wave 3 is activated immediately.
Why this matters: one pivot length forces a trade-off between stability and speed. Two lengths plus a backfill scan give you both.
6️⃣ Repositioning logic — labels refine forward, never silently rewrite history.
Until the next wave locks, the engine allows controlled repositioning: a higher high repositions point 1 (rebuilding the grid and the point-2 box on the new geometry), a deeper pullback repositions point 2 (only until point 1 is broken — after the break, a deeper pivot is an invalidation, not a reposition), point 3 extends while wave 4 forms, point 4 deepens until point 3 is broken, point 5 extends during the correction, A deepens until B appears, B rises until C appears. Every reposition deletes and redraws only the affected segment and label, and the associated target box and its center line are rebuilt on the fresh grid — no stale geometry is left behind.
Why this matters: this is the honest middle ground between "repaints everything" and "freezes wrong labels forever". The rules for what may move, and until when, are fixed and stated.
7️⃣ OTE target boxes for points 2, 3 and 4 — the next objective is always a zone, not a guess.
When point 1 locks, a yellow box covering the point-2 fib range appears with a dashed center line at the range midpoint. When point 2 locks, the point-3 target box (on the extension side) appears. When point 3 locks, the point-4 box appears on the 2→3 grid. Each box extends forward a configurable number of bars (default 20) and its right edge snaps to the bar where the point actually forms. Box fill transparency adapts to the theme (65 dark / 55 light); the border and center line stay fully opaque.
Why this matters: "wave 4 should come" is vague. "Wave 4 is expected inside this drawn box, centered here" is actionable.
8️⃣ Explicit reset reasons + persistent CHoCH history — the chart tells you why.
Every count ends with a machine reason: FALSE_CHOCH (price broke back through point 0 before point 1 formed), BELOW_0, BELOW_W2, BELOW_W4, W3_SHORTEST, DEEP_C (correction retraced beyond point 2), TIMEOUT (optional: state lasted longer than k × leg 0-1 duration), B_ABOVE_5 (the "correction" broke above point 5 — the impulse is closed as done), or DONE (point C accepted, full cycle complete). On invalidation a ✖ marker with the reason in its tooltip is placed on the bar, and the dashboard keeps showing the last reason.
The active markup is wiped on reset — but CHoCH lines and labels live on a separate persistent layer (FIFO history, up to 100, default 50). When price later closes back through a CHoCH level, that line is clipped to the mitigation bar and turns dotted. So your chart accumulates a clean structural map of every trend change while dead counts disappear.
A special same-bar case is handled explicitly: if a reset and a fresh opposite CHoCH land on the same bar (with cooldown off), the engine wipes first, then seeds the new count on that same bar — the new hypothesis is never lost to ordering.
Why this matters: most auto-counters just vanish or redraw without explanation. EIE always states its reason, and the CHoCH map survives as context.
9️⃣ Anti-repaint discipline — confirmed pivots, close-confirmed breaks, honest Wick mode.
Three independent mechanisms:
— All pivot values are consumed only on confirmed bars: a forming real-time bar can make a pivot flicker, so transient pivot values are masked out and can never trigger an irreversible state transition. Historical bars are unaffected (they are all confirmed).
— In the default Close confirmation mode, invalidation breaks and wave-top breaks are evaluated only on the confirmed bar close — an intrabar excursion of the close cannot fire a reset that "un-happens" seconds later.
— The optional Wick mode reacts to any intrabar touch — faster, and by design irreversible within the bar. This is stated openly so you can choose speed vs. strictness.
Zone-entry events (price entering the point-2 OTE zone, the point-4 box, or tagging the −1.0 target) intentionally use wick extremes — a touch is a touch — and are one-way flags.
🔟 Theme-adaptive visual system with auto-contrast labels.
Theme is Auto-detected from the chart background (or forced Dark/Light). By default, long counts use a theme-adaptive green (dark green on light charts, bright green on dark charts) and short counts use red. If you enable custom colors, label text color is derived from the luminance of your chosen background — luma = 0.299R + 0.587G + 0.114B, threshold 140 — so digits stay readable on any shade you pick. The fib grid uses role-based color inputs (red 0.236, teal 0.705 OTE, blue retracement levels, gray round levels), all editable. Label font size is selectable from Tiny to Huge.
⚡ HOW IT WORKS — CALCULATION FLOW
Step 1 — Structure scan: Symmetric pivots (default 10/10) maintain the latest swing high and swing low; the engine also tracks the running extreme since the last swing (the future point 0).
Step 2 — CHoCH: A confirmed close through a swing level against the internal trend flips the trend and — if the engine is idle, cooled down, and the level is not locked — seeds a count: direction, CHoCH level, point 0.
Step 3 — Point 1: The first fast pivot beyond the CHoCH level becomes point 1. The 0→1 fib grid, the point-2 target box, and the full ghost projection are drawn.
Step 4 — Impulse counting: Fast counter-trend pivots propose points 2 and 4; fast with-trend pivots propose 3 and 5. Each is checked against its fib range (clean or "~"), each unlocks the next state, target boxes appear for the next objective, and the ghost path re-anchors from every real point.
Step 5 — Hard rules per bar: Before any pivot is processed, the trailing invalidation level is checked (Close or Wick mode). Wave 2 below point 0, wave 4 below point 2, a broken point 4 in late wave 5, or a shortest wave 3 all kill the count with a named reason.
Step 6 — Impulse complete: Point 5 accepted → the impulse counter increments and the engine rolls into correction tracking.
Step 7 — Correction A-B-C: A forms on a counter-trend pivot, B on a with-trend pivot (a B at or beyond point 5 closes the whole structure as B_ABOVE_5 instead), C completes the cycle → DONE.
Step 8 — Reset: On any ending — invalidation or completion — the active markup is wiped, the cooldown starts, and the engine returns to scanning. CHoCH history stays.
📖 HOW TO USE
🎯 Quick start (works even if you have never counted a wave):
1. Add the indicator to a clean chart. Nothing to configure — defaults are ready to use.
2. Wait for a CHoCH label. That is the engine saying: "the trend character just changed, I am watching for a new impulse here."
3. When labels 0 and 1 appear, the count is live. The dashed gray path with 2? 3? 4? 5? A? B? C? is the expected roadmap of the entire move.
4. Watch the yellow box — that is where the next wave point is expected. The dashed line inside it is the center of the zone.
5. Keep one eye on the red dashed INVALID line at all times. If price breaks it, the count is over — a ✖ appears, the markup clears, and the engine starts hunting for the next CHoCH. Hover the ✖ to read the exact reason.
👁️ Reading the chart:
— 🟢 Green numbered labels (0, 1, 2, 3, 4, 5) = accepted impulse points of a long count; red labels = a short count. Letters A, B, C = the correction.
— A label with ~ (like "2~") = the point is accepted, but it landed outside its textbook fib range — the count continues, treat it with slightly more caution.
— Solid colored path = confirmed structure. Dashed gray path with "?" labels = the ghost projection of what is still expected.
— 🟡 Yellow boxes = target zones for points 2, 3 and 4, each with a dashed center line.
— Dotted horizontal grid = the Fibonacci grid of leg 0-1 (retracements 0.236…1.0 above, extensions −0.5 / −0.618 / −1.0 below), each level labeled with its ratio and price.
— 🔴 Red dashed line + "INVALID price" = the trailing invalidation level of the current count.
— Dashed horizontal CHoCH lines = historical structure breaks; a line that turns dotted has been mitigated (price closed back through it).
— ✖ = the count was invalidated on this bar (reason in the tooltip).
📊 Dashboard fields:
— State: current phase (Scanning / CHoCH · wait 1 / Wave 2…5 / Corr · A-B-C).
— Direction: Long, Short, or — when idle.
— Invalidation: the current critical price.
— Last Reset: why the previous count ended (reason, DONE, or B_ABOVE_5). Resets on chart reload.
— Impulses: completed 5-wave impulses on the loaded history. Resets on chart reload.
— TF: chart timeframe. Version: engine version.
🔧 Tuning guide:
— Counts appear too rarely: lower Swing Detection Length (structure forms faster, more CHoCH seeds) — or the market is simply ranging without character changes.
— Too many counts die instantly (FALSE_CHOCH / BELOW_0): raise Swing Detection Length, or add a Cooldown of 5-20 bars so the engine skips the chop right after a failed count.
— Points confirm too slowly: lower Point Confirmation (min 1); remember it must stay ≤ Swing Detection Length.
— Too many "~" soft marks: widen the fib ranges for those points — your market may simply run hotter than the defaults.
— Old counts hang around in dead phases: set Timeout k > 0 (e.g. 3.0) — any state lasting longer than k × the duration of leg 0-1 resets automatically.
— Chart feels crowded: toggle off the Fib Grid, OTE Boxes, or the Projection independently; reduce Historical CHoCH; shrink label font size.
⚙️ KEY SETTINGS
⚙️ Main Settings:
— Swing Detection Length (default 10): pivot length for structure and CHoCH. Higher = larger structure, fewer seeds.
— Point Confirmation, bars (default 5): the separate short pivot used to accept wave points. Must be ≤ swing length (validated).
— Breaks: Invalidation Mode (default Close): Close = confirmed bar close beyond the level (non-repainting); Wick = any intrabar touch (instant, irreversible within the bar).
📐 Point Ranges (fib): min/max expectation range per point — Point 2 (0.5–0.705), Point 3 (−0.5…−0.618), Point 4 (0.5–0.705 on the 2→3 grid), Point 5 (−0.618…−1.0), Point B (−0.5…−0.618), Point C (0–0.236). All validated at load (2 and 4 must be inside (0,1); 3, 5, B must be negative; C inside [0,1); no zero-width ranges).
👻 Ghost Projection:
— Show Projection (on), Point Inside Range (Middle / Near / Far), Time Step Coef (default 1.0 × leg 0-1 duration), 5?: Offset From −1.0 (default 0.05).
♻️ Reset:
— Cooldown After Reset, bars (default 0 = off) and Timeout, k × leg 0-1 (default 0 = off; in the wait-for-1 phase the timeout scales on swing length instead, since no leg exists yet).
🎨 Visual Settings: Theme (Auto / Dark / Light), Fib Grid toggle, OTE Boxes toggle, CHoCH layer toggle, Path Width (2), Box Length Forward (20), Historical CHoCH max (50), Label Font Size (Tiny…Huge), Watermark toggle.
📏 Grid Levels: individual on/off for 0.236, 0.382, 0.5, 0.618, 0.705, 0.786, 0.886, 1.0, −0.5, −0.618, −1.0.
🎨 Colors: Use Custom Colors switch (off = theme-adaptive defaults), long/short point label backgrounds (text auto-contrasts), target box color, path and ghost colors, bull/bear CHoCH colors, and role-based fib grid colors.
📊 Dashboard: on/off, position (5 anchors), font size (the version row renders one step smaller).
🔔 ALERTS
Ten alert conditions covering the full lifecycle:
— 🟢 1. CHoCH + projection — CHoCH confirmed, movement projection built
— 🟡 2. Price in W2 OTE — price entered the point-2 zone
— 🟢 3. Point 2 accepted
— 🟢 4. Break of point 1 — wave 3 active
— 🟡 5. Price in W4 box
— 🟢 6. Break of point 3 — wave 5 active
— 🎯 7. Target −1.0 reached
— 🟢 8. Impulse complete — point 5 locked
— 🎯 9. Target C — correction complete, full cycle done
— 🔴 10. Invalidation — hypothesis reset
In addition, the engine fires dynamic alert() messages on every reset and on B_ABOVE_5 completion, including the reason text. In Close mode these announce on confirmed bar close; in Wick mode once per bar.
⚠️ IMPORTANT NOTES
— 🚫 No repainting of confirmed structure. Pivots use equal left/right lookback and their values are consumed only on confirmed bars; CHoCH breaks require a confirmed close; in the default Close mode, invalidation and wave-top breaks are evaluated on confirmed closes only. A pivot is, by nature, confirmed N bars after the actual extreme — the indicator draws from the confirmed bar backward to the true swing point. This is delayed confirmation, not repainting of settled values.
— 📐 Controlled repositioning is part of the design. Until the next wave locks, the latest point may legitimately move to a more extreme pivot (e.g., point 1 to a higher high). The rules for what may move, and until when, are fixed and described above. Wick mode reacts intrabar by design and is irreversible within the bar.
— 📊 The Impulses counter and Last Reset field are computed on loaded chart history and reset when the chart reloads.
— ⚖️ EIE counts one impulse degree at a time from the latest CHoCH. It does not label nested sub-waves, diagonals, or complex W-X-Y corrections — it is a focused impulse + zigzag engine, and the fib ranges reflect one practical interpretation of Elliott guidelines, which you can re-tune.
— 🛠️ This is a wave-counting and projection tool, not an automated trading system. It identifies structure, projects expected zones, and shows the invalidation price — trade decisions remain yours.
— 🌐 Works on all markets (crypto, forex, stocks, indices, commodities) and all timeframes. Indicator

Indicator

Indicator

Leg Anatomy - Measured Retracement and ExtensionEvery trader draws the same three numbers on every chart: 38.2, 50 and 61.8. Those numbers were not derived from this market, this timeframe, or this instrument. They were not derived from any market. They are a convention that spread because it spread.
This script measures the real thing instead.
WHAT IT MEASURES
Price is broken into confirmed swing legs. A running extreme is tracked, and when price closes back from that extreme by more than a configurable multiple of ATR, the extreme is confirmed as a swing and a new leg begins.
Every completed leg is measured as a ratio of the leg immediately before it. A leg that travelled 60 percent of the previous leg records 0.60. A leg that went 140 percent past it records 1.40. That single number, the leg-to-leg ratio, is the entire dataset.
From the last N legs on the chart you have open, the panel reports:
The median leg, expressed as a multiple of the one before it.
The interquartile range, the middle half of the distribution.
The share of legs that were shallow, under 0.62.
The share that were deep, between 0.62 and 1.00.
The share that were extensions, past 1.00.
On some symbols and timeframes the conventional levels sit close to the measured centre. On many they do not, and the gap between what a chart actually does and what the convention assumes is visible in one row of the panel.
THE PROJECTION
The distribution is not left as a table. It is applied forward.
The leg currently forming starts from the last confirmed swing, and the leg before it has a known size. Multiplying that size by the measured median, upper quartile and ninetieth percentile gives three projected endpoints, drawn as a shaded zone in front of price with a dashed median line and a price label.
The panel shows how far the forming leg has travelled as a percentage of its median expectation. Below 100 percent the leg is still inside its normal range. Above it, the leg has already outrun the typical case for this chart, which is information whether you are holding it or fading it.
The zone is not a forecast. It is where the middle of the distribution sits, and roughly half of past legs fell short of it.
THE SKELETON
Confirmed legs are drawn as a thick zigzag across the chart, each one labelled with its own ratio, so the distribution in the panel can be read directly off the price action that produced it. Candles are tinted by the direction of the leg currently forming.
Because swings only confirm on closed bars and a confirmed swing is never revisited, the skeleton behind price is final. Only the leg at the right edge is still forming, and the projection zone updates only when a new leg is confirmed.
SETUPS
When a swing confirms, a new leg begins, and the script produces a complete setup at that close.
The stop sits just beyond the swing that was just confirmed, plus an ATR buffer. That swing is the level the leg depends on. If it goes, the leg reading was wrong.
The three targets are the lower quartile, the median and the upper quartile of the measured distribution, projected from the swing. They are not multiples of risk and they are not conventional ratios. They are the shape of this chart's own legs.
Only one setup is tracked at a time. The panel records whether the first target or the stop was reached first, and prints collecting until the sample is large enough to mean anything. That number measures one mechanical rule and is not a backtest.
SETTINGS
Reversal Threshold is the only structural dial. It decides what counts as a leg. A low value produces many small legs and a distribution dominated by noise. A high value produces few large legs and a distribution with a small sample. The default sits between the two, and changing it changes the entire analysis, which is the point: a leg on a scalping horizon is not a leg on a swing horizon, and the measured distribution should differ between them.
Volatility Length sets the ATR lookback used for the reversal threshold and the stop buffer.
Legs Kept In Sample bounds the history, so the distribution tracks the current regime instead of averaging in a market from years ago.
REPAINTING
Swing confirmation, leg measurement, the distribution, setups and alerts all evaluate on confirmed bars. A confirmed swing is never moved and a drawn leg is never redrawn. The projection zone in front of price is recomputed only when a new leg begins. The script requests no higher timeframe data.
HOW TO READ IT
Start with the three share rows. If a chart shows most of its legs under 0.62, it is a market that retraces shallowly and continuation is the base case. If most legs sit between 0.62 and 1.00, it is a market that gives deep pullbacks and entering early is expensive. A high share above 1.00 is a trending regime where each leg outruns the last.
Then look at the forming leg's progress. A leg at 40 percent of median with a distribution that favours extension is a different situation from a leg at 130 percent in a market that rarely extends.
The ratios printed on the skeleton let you check the panel against your own eyes rather than trusting it.
This is an analysis tool, not financial advice, and not a trading system. A measured distribution describes what happened, not what will. Sample sizes are small by the standards of statistics and regimes change. Use it with your own risk management and position sizing. Indicator

Indicator

Fractal ZigZag with Retest & Filters By WiselyWealthIndicator ; Fractal ZigZag with Retest & Filters
Introduction
Welcome to the comprehensive guide for the 'Fractal ZigZag with Retest & Filters' indicator. This custom-built Pine Script indicator is an advanced technical analysis tool designed explicitly for the PulseWire platform. At its core, the primary objective of this script is to provide traders with high-probability entry signals by systematically filtering out market noise, avoiding false breakouts, and ensuring alignment with the overarching macroeconomic trend.
Many retail traders fall into the trap of entering positions during sudden, volatile price spikes, only to suffer heavy drawdowns when the market naturally pulls back. This script mitigates that risk by enforcing a strict, rules-based approach: identifying structural shifts, confirming the initial breakout, and mathematically demanding a pullback (or "retest") before issuing a final trading signal. Additionally, it features built-in alert conditions, making it perfectly suited for algorithmic traders who wish to automate their strategies via Webhooks, Telegram bots, or MT5 API integrations.
Technical Mechanism
The mechanical operation of this script is multi-layered, relying on a confluence of structural mapping, trend filtering, and volatility-based retest calculations. Here is a detailed, step-by-step technical breakdown of how the script detects and generates its buy and sell signals:
Mapping Market Structure with Williams Fractals:The foundation of the script relies on identifying key swing highs and swing lows using Williams Fractals. By default, the indicator evaluates a 5-bar lookback and look-forward period to pinpoint these structural pivots. Once a valid upward or downward fractal is identified, the script connects them using a dynamic ZigZag line. This creates an unambiguous visual map of the market's underlying structure, cleanly displaying the sequence of higher highs or lower lows.
Initial Breakout Identification: The indicator actively monitors the current closing price in relation to the most recently confirmed fractal levels. A raw bullish breakout is registered the moment a candle closes definitively above the last established fractal high. Conversely, a raw bearish breakout is noted when the closing price drops below the most recent fractal low. To prevent redundant alerts, the script locks the current trend state upon a successful breakout.
The ATR-Based Retest Engine: This is the most sophisticated aspect of the indicator. When "Enable Retest Mode" is activated, the script refuses to issue an immediate entry signal at the exact moment of the breakout. Instead, it uses the Average True Range (ATR) over a 14-period lookback to measure current market volatility. For a bullish setup, it calculates a "Retest Target" by subtracting a user-defined ATR multiplier (default 1.0) from the breakout close price. It then starts a countdown timer, allowing a maximum number of candles (default 3) for the price to drop back down and touch this target. If the pullback is successful within the time limit, the raw buy signal is triggered. If the time expires without a retest, the setup is safely invalidated.
Macro Trend Filtering: Before finalizing any signal, the script consults a 200-period Exponential Moving Average (EMA). If the trend filter is enabled, a buy signal is entirely suppressed unless the closing price is strictly above the EMA200. Sell signals similarly require the price to remain below the EMA200. Users can also force the script into a "Buy Only" or "Sell Only" mode to align with their long-term directional bias.
How to Use and Best Practices
To extract maximum profitability and accuracy from this script, traders must apply the correct settings and deploy it in appropriate market environments.
Recommended Settings and Configuration:
Conservative Swing Trading: Ensure the EMA200 Trend Filter remains enabled to keep you on the side of institutional momentum. You may also want to increase the Fractal Periods from 5 to 7 or 9. This filters out minor price fluctuations and forces the script to base its breakouts on major structural swing points.
Retest Calibration for Volatility:** The default ATR multiplier is 1.0, and the wait limit is 3 candles. If you are trading on lower timeframes (e.g., 5-minute or 15-minute charts), breakouts can take slightly longer to retest. Consider increasing the "Max Candles to wait" to 5 or 6. For highly volatile assets, increasing the ATR Multiplier to 1.5 can help you secure a deeper, more favorable pullback entry.
Directional Lock: If higher timeframe analysis dictates a strong bull market, use the "Trade Direction" setting to restrict signals to "Buy Only," eliminating counter-trend noise during minor market corrections.
Suitable Markets and Timeframes:
Forex and Indices: This indicator performs exceptionally well on major Forex pairs (EUR/USD, GBP/JPY) and Global Indices (US30, NAS100) on the 1-Hour and 4-Hour timeframes. These assets heavily respect market structure, and liquidity grabs (retests) are highly common after structural breakouts.
Cryptocurrency: Bitcoin and Ethereum on the 15-minute to 1-Hour charts are excellent candidates, provided you adjust the ATR multiplier to account for crypto's volatile, whipsaw movements.
Markets to Avoid: Avoid using this script in heavily consolidated, range-bound, or sideways markets. Breakout and trend-continuation logic inherently struggles during prolonged periods of low volatility, where price chops indiscriminately around the 200 EMA without clear directional follow-through. Indicator

FIE GraphFIE Graph (Frequency • Influence • Efficiency)
FIE Graph is a companion indicator designed for use alongside FIE Price Action Overlay.
While the Price Action overlay focuses on signal generation, participation, and market context directly on the chart, FIE Graph provides a dedicated visualization of the underlying FIE calculations over time, making it easier to observe trends, shifts in participation, and changes in component behaviour.
FIE Graph allows traders to monitor how Frequency, Influence, Efficiency, Share Participation, Active Average, and other FIE metrics evolve throughout a trading session without cluttering the main price chart.
Features
Time-series visualization of FIE metrics
Component participation trends
Active Average and Share monitoring
Normalized Efficiency (E-Norm) visualization
Clean companion display for deeper analysis
Designed to complement the FIE Price Action overlay
Directionality to observe current and historical bull/bear pressure
FIE Graph is intended as an analytical companion rather than a standalone trading indicator. For entry signals, market context, and the complete FIE framework, use it together with FIE Price Action Overlay, available in my indicators. Indicator

Dynamic Market Structure & Liquidity Engine PRO [DMSL]Dynamic Market Structure and Liquidity Engine PRO
The Dynamic Market Structure and Liquidity Engine PRO is an all in one technical analysis tool designed to help price action and institutional traders navigate market structure without cluttering their charts.
Instead of drawing dozens of random support and resistance boxes, this indicator dynamically calculates high probability supply and demand zones, tracks institutional market structure shifts like BOS and CHoCH, marks major swing extremes, and highlights macro equilibrium levels in real time.
Key Features
1. High Probability Supply and Demand Zones
Every zone is scored based on volatility, body displacement, and wick rejection strength. Weak and low volume zones are automatically filtered out. Zones disappear as soon as price breaks through them, keeping your workspace very clean.
2. Major Swing Points
High contrast visual dots mark structural high and low pivot points to help traders identify the overall trend direction instantly.
3. Institutional Market Structure
BOS or Break of Structure signals trend continuation when price breaks major swing points. CHoCH or Change of Character warns of potential trend reversals when price breaks counter trend pivots.
4. Major 50 Percent Equilibrium Range
It automatically projects the 50 percent Fibonacci level of the recent macro swing range. This helps determine whether price is trading in a Premium Zone above 50 percent which is ideal for short setups, or a Discount Zone below 50 percent which is ideal for long setups.
5. Compact Dashboard
A clean and simple on screen table displays active resistance and support counts in real time.
How to Use
Use the major swing dots and structure labels to establish market direction.
Look for sell or short opportunities when price is above the 50 percent equilibrium line and reacting near a resistance zone.
Look for buy or long opportunities when price is below the 50 percent equilibrium line and reacting near a support zone.
Wait for price to touch a power scored zone, confirm with price action patterns, and manage risk according to the structural swing points.
Settings Overview
Pivot Lookback Length controls structural sensitivity. Higher values detect macro trends, while lower values detect scalping structure.
Min Zone Power Score sets the minimum threshold to filter out low probability zones.
Max Active Zones limits the maximum active boxes per side to maintain chart clarity.
Show Major Range 50 Percent EQ Line lets you toggle the macro equilibrium line on or off.
Styling and Visual Customization gives you full control over zone opacity, border width, line styles, text sizes, and colors.
Things to Avoid
Do not buy right into a resistance zone when price is deep in the premium area above 50 percent without a clear CHoCH confirmation.
Do not place blind limit orders directly on zones during high impact news events. Always look for price action confirmation at the zone.
Setting the lookback length too short below 5 may increase market noise on lower timeframes like 1 minute or 3 minute charts.
Disclaimer
This indicator is designed purely for educational and analytical purposes. It does not provide financial advice or automated trading signals. Always practice proper risk management.
Indicator

Bitcoin Rainbow Wave (2026 Recalibration)Bitcoin Rainbow Wave — 2026 Recalibration
This is a halving-anchored envelope model for BTC/USD, recalibrated after the 2024–25 cycle topped at ~$126K roughly half of what the classic Rainbow Wave projected.
What it does
Maps time onto a "halving clock" (h = block height / 210,000) built from actual block timestamps, fits a power-law trend with a curvature term through it, and wraps it in a decaying sine-wave envelope. The outer bands are calibrated so the red upper band tracks every cycle ATH and the aqua lower band tracks every bear-market low, from 2013 to today, one continuous formula, no cutoffs, no per-cycle tricks.
What changed vs the original
The old calibration expected ~$250K+ this cycle; price stopped at $126K. All five model parameters were re-fitted by least squares against the full 2013–2026 set of cycle tops and bottoms. A single curvature term (c) was added to the trend — set c = 0 and you get the original pure power law back.
What it shows
Rainbow power-law bands + fair-value zone
The Wave with upper (ATH) and lower (ATL) bands, miner-profitability floor
Halving lines with date + day-count labels (h=1…7)
Fibonacci time marks: tops have printed near h = n.382, bottoms near h = n.618
Optional No-Miss-Zone highlighting and rainbow-colored price line
Future projection (default 690 weekly bars)
Current read (Jul 2026): lower band ~$52K, fair value ~$71K, upper band peaks ~$300K around h = 5.382 (mid-2029).
Works best on BTCUSD (Bitstamp), 1W timeframe, log scale. Based on the original Bitcoin Rainbow Wave by @leoum this release recalibrates the parameters and rebuilds the chart markings. Indicator
