RaVen V2.1Designed for Polymarket: Deeply adapted to the trading rules and rhythm of the Polymarket 15-minute crypto market.Pine Script® indicatorby RavenAnalyticsUpdated 4
TrendSchool V12 Pro🚀 TrendSchool V12 Pro: نظام التداول الشامل المبني على الذكاء المؤسسي يُمثل TrendSchool V12 Pro الجيل الجديد من أنظمة التحليل الفني، حيث يرتقي بمفهوم التداول إلى مستوى استراتيجي غير مسبوق. تم تصميم هذا الإصدار ليكون محطة عمل متكاملة للمتداول المحترف، حيث يدمج ببراعة بين تحليل السيولة الذكية (Smart Money Concepts)، والتحليل متعدد الأطر الزمنية (MTF)، ومحرك تقييم الإشارات الرقمي، كل ذلك في واجهة تفاعلية فائقة الوضوح. 💎 الميزات الحصرية والدقيقة لنسخة V12 Pro 1️⃣ محرك تقييم الإشارة الرقمي (Signal Scoring Engine) خوارزمية متطورة تقوم بتحليل السوق من عدة زوايا وتمنح كل فرصة "درجة قوة" رقمية (0-100%)، مما يتيح لك تصفية الضوضاء والتركيز فقط على الصفقات عالية الاحتمالية. يعتمد التقييم على توافق أكثر من 10 عوامل حيوية، منها: هيكل الاتجاه: توافق المتوسطات المتحركة (EMA 9/20/50/200). قوة الزخم: تحليل MACD و RSI و ADX. تدفق السيولة: دمج مؤشرات MFI و CMF. التوافق المؤسسي: تحليل تمركز صناع السوق وتوافق المؤشرات العامة. 2️⃣ نظام تتبع بصمات صناع السوق (Smart Money Footprint Tracker) أدوات دقيقة لقراءة نوايا الأموال الذكية قبل تحرك السوق: رصد سحب السيولة (Liquidity Sweeps): يحدد ببراعة عمليات "سحب علوي" (Bearish) و"سحب سفلي" (Bullish) التي تسبق الانعكاسات القوية. كسر الهيكل وتأكيده (BOS/CHOCH): يتعرف تلقائيًا على تغير شخصية السوق، مما يمنحك إشارات استباقية للدخول مع الاتجاه الجديد. المناطق المؤسسية الذكية: يرسم تلقائيًا مناطق العرض والطلب (S&D)، كتل الأوامر (Order Blocks)، وفجوات القيمة العادلة (FVG)، ويعتبرها مناطق جذب سعري ومناطق ارتداد محتملة. 3️⃣ منظومة التحليل متعدد الأطر الزمنية (Advanced MTF System) لا تتداول في عزلة! يربط هذا النظام بين ثلاثة أبعاد زمنية لضمان أن تكون صفقتك في صف التيار: الفريم الحالي: لتحليل نقطة الدخول. الفريم التأكيدي (HTF): للتأكد من أن الزخم قصير المدى يدعم صفقتك. الفريم الكلي (Macro): لمنع الدخول في صفقات معاكسة للاتجاه العام المسيطر على السوق. 4️⃣ إدارة المخاطر التكيفية (Adaptive Risk Management) نظام متكامل لإدارة الصفقات باحترافية ودقة: أهداف ديناميكية (Dynamic TPs): أهداف ربح (TP1, TP2, TP3) لا تعتمد على أرقام ثابتة، بل تُحسب آليًا بناءً على تقلبات السوق (ATR) والإطار الزمني، مما يجعلها أكثر واقعية وقابلية للتحقق. وقف خسارة ذكي: ثلاثة خيارات لحماية رأس المال: وقف ديناميكي (ATR)، أو ثابت (%)، أو بناءً على قمة/قاع الشمعة السابقة. الوقف المتحرك (Trailing Stop): تفعيل تلقائي لتأمين الأرباح بمجرد وصول السعر للهدف الأول، مما يتيح للصفقة النمو بأمان. 5️⃣ لوحة القيادة الشاملة (All-in-One Dashboard) مركز التحكم الخاص بك الذي يجمع كل المعلومات الحيوية في لمحة واحدة: حالة الاتجاه وقوته: معرفة فورية للاتجاه العام وقوته (باستخدام ADX). تمركز صانع السوق والسيولة: فهم أين تتدفق الأموال الذكية. عقد أوبشن مقترح: يقترح تلقائيًا أفضل عقد (Strike Price) بناءً على السعر الحالي. رادار الانفجار (Squeeze Radar): تنبيه مرئي عند اقتراب حركة سعرية عنيفة. توافق المؤشرات (Triple Convergence): تحليل فوري لتوافق مؤشرات (SPY, QQQ, VIX) لتأكيد قوة الاتجاه. ✅ لمن هذا المؤشر؟ ✔️ متداولي الخيارات (Options Trading) | ✔️ المتداولين اليوميين (Day Trading) | ✔️ المضاربين (Scalping) ⚠️ إخلاء مسؤولية: هذا المؤشر هو أداة تحليل فني متقدمة مصممة لتعزيز قدرتك على اتخاذ القرار، ولا يمثل توصية مالية مباشرة. التداول ينطوي على مخاطر، لذا التزم دائمًا بإدارة رأس مال صارمة. ✨ TrendSchool V12 Pro – تداول بذكاء، وليس بمشاعرك. 🚀 TrendSchool V12 Pro: The All-in-One Trading System Built on Institutional Intelligence TrendSchool V12 Pro represents the next generation of technical analysis systems, elevating the concept of trading to an unprecedented strategic level. This version is designed to be a complete workstation for the professional trader, masterfully integrating Smart Money Concepts (SMC), Multi-Timeframe (MTF) Analysis, and a Digital Signal Scoring Engine, all within a highly intuitive and clear interactive interface. 💎 Exclusive and Precise Features of the V12 Pro Version 1️⃣ Digital Signal Scoring Engine An advanced algorithm that analyzes the market from multiple angles and assigns each opportunity a numerical "strength score" (0-100%). This allows you to filter out market noise and focus only on high-probability trades. The score is based on the confluence of over 10 vital factors, including: Trend Structure: Confluence of moving averages (EMA 9/20/50/200). Momentum Strength: Analysis of MACD, RSI, and ADX. Liquidity Flow: Integration of MFI and CMF indicators. Institutional Confluence: Analysis of smart money positioning and major market indices alignment. 2️⃣ Smart Money Footprint Tracker Precise tools to read the intentions of smart money before the market moves: Liquidity Sweeps Detection: Brilliantly identifies "Bearish Sweeps" (raiding highs) and "Bullish Sweeps" (raiding lows) that precede strong reversals. Structure Break & Confirmation (BOS/CHOCH): Automatically recognizes changes in market character, providing proactive signals to enter with the new trend. Smart Institutional Zones: Automatically draws Supply and Demand (S&D) zones, Order Blocks, and Fair Value Gaps (FVG), treating them as price magnets and potential reversal areas. 3️⃣ Advanced Multi-Timeframe (MTF) System Don't trade in isolation! This system connects three time dimensions to ensure your trade is aligned with the current: Current Timeframe: For entry point analysis. Confirmation Timeframe (HTF): To ensure short-term momentum supports your trade. Macro Timeframe: To prevent entering trades against the dominant, overall market trend. 4️⃣ Adaptive Risk Management An integrated system for managing trades with professionalism and precision: Dynamic Take Profits (TPs): Profit targets (TP1, TP2, TP3) that are not based on fixed numbers but are calculated automatically based on market volatility (ATR) and the timeframe, making them more realistic and achievable. Smart Stop Loss: Three options to protect your capital: a Dynamic (ATR) stop, a Fixed (%) stop, or one based on the previous Candle's High/Low. Trailing Stop: Automatically activated to secure profits as soon as the first target is hit, allowing the trade to grow safely. 5️⃣ The All-in-One Dashboard Your personal control center that gathers all vital information at a single glance: Trend Status & Strength: Instant knowledge of the overall trend and its strength (using ADX). Smart Money Positioning & Liquidity: Understand where the smart money is flowing. Suggested Options Contract: Automatically suggests the optimal Strike Price based on the current price. Squeeze Radar: A visual alert for when a violent price movement is imminent. Indices Confluence (Triple Convergence): Instant analysis of the alignment between (SPY, QQQ, VIX) to confirm trend strength. ✅ Who is this indicator for? ✔️ Options Trading | ✔️ Day Trading | ✔️ Scalping ⚠️ Disclaimer: This indicator is an advanced technical analysis tool designed to enhance your decision-making ability and does not constitute direct financial advice. Trading involves risk, so always adhere to strict capital management. ✨ TrendSchool V12 Pro – Trade with intelligence, not with emotions.Pine Script® indicatorby yaldhumayri29
Volume Profile Pro [Canvas]The Topography of Value: An Analysis of the SVP Pro The Session Volume Profile (SVP) represents the "DNA" of a trading session. While standard volume bars tell you the intensity of a move, the SVP tells you the conviction of the market at specific price levels. 1. The Heartbeat: Point of Control (POC) The POC is the single price level that facilitated the most trading volume during the session. The Magnet Effect: Because the POC represents "Fair Value," price often returns to it like a magnet. The Institutional Anchor: It is the level where the largest players found the most liquidity to fill their orders. 2. The Playground: The Value Area ( TSX:VA $) The Value Area highlights the range where 70% of the session's volume took place. VAH (Value Area High): The upper boundary of "fairness." Above this, the market is considered "expensive" or overextended for that session. VAL (Value Area Low): The lower boundary. Below this, the market is considered "cheap" or a potential bargain. The Rule of 80%: Statistically, if price enters the Value Area and stays there for two consecutive 30-minute periods, there is an 80% chance it will traverse the entire Value Area to the other side. 3. High Volume Nodes (HVN) vs. Low Volume Nodes (LVN) The "bumps" and "hollows" of the histogram tell a story of market acceptance: HVNs (The Bumps): These are areas of high competition and consolidation. They act as Support and Resistance because they represent prices where traders are comfortable transacting. LVNs (The Hollows): These are "liquidity gaps" where price moved too fast for many trades to occur. Price tends to "slice" through these zones quickly, as there is little historical interest to slow it down. 4. Visual Sophistication: The Up/Down Split By splitting the histogram into Up Volume (Buying pressure) and Down Volume (Selling pressure), the indicator provides a "Delta-lite" view. You can see if a High Volume Node was built primarily by aggressive buyers or defensive sellers. It allows you to spot Absorption: When a massive block of "Down Volume" fails to push price lower, you are witnessing institutional buyers absorbing all available sell orders. 5. Temporal Precision Because this script resets with the Daily Session, it clears the noise of yesterday's battles. It forces the trader to focus on the current narrative. The inclusion of Extended Lines (POC/VAH/VAL) into the "empty space" to the right of the chart provides a forward-looking target for your take-profit or stop-loss orders. Strategic Application Mean Reversion: Trading from the VAH/VAL back toward the POC. Trend Following: Looking for price to find support at a previous session's POC (S/R Flip). Breakout Validation: A breakout is only "real" if it is accompanied by the Value Area migrating higher or lower alongside price.Pine Script® indicatorby afzaalkiani3
Volume Profile Pro [Canvas]The Topography of Value: An Analysis of the SVP Pro The Session Volume Profile (SVP) represents the "DNA" of a trading session. While standard volume bars tell you the intensity of a move, the SVP tells you the conviction of the market at specific price levels. 1. The Heartbeat: Point of Control (POC) The POC is the single price level that facilitated the most trading volume during the session. The Magnet Effect: Because the POC represents "Fair Value," price often returns to it like a magnet. The Institutional Anchor: It is the level where the largest players found the most liquidity to fill their orders. 2. The Playground: The Value Area ( TSX:VA $) The Value Area highlights the range where 70% of the session's volume took place. VAH (Value Area High): The upper boundary of "fairness." Above this, the market is considered "expensive" or overextended for that session. VAL (Value Area Low): The lower boundary. Below this, the market is considered "cheap" or a potential bargain. The Rule of 80%: Statistically, if price enters the Value Area and stays there for two consecutive 30-minute periods, there is an 80% chance it will traverse the entire Value Area to the other side. 3. High Volume Nodes (HVN) vs. Low Volume Nodes (LVN) The "bumps" and "hollows" of the histogram tell a story of market acceptance: HVNs (The Bumps): These are areas of high competition and consolidation. They act as Support and Resistance because they represent prices where traders are comfortable transacting. LVNs (The Hollows): These are "liquidity gaps" where price moved too fast for many trades to occur. Price tends to "slice" through these zones quickly, as there is little historical interest to slow it down. 4. Visual Sophistication: The Up/Down Split By splitting the histogram into Up Volume (Buying pressure) and Down Volume (Selling pressure), the indicator provides a "Delta-lite" view. You can see if a High Volume Node was built primarily by aggressive buyers or defensive sellers. It allows you to spot Absorption: When a massive block of "Down Volume" fails to push price lower, you are witnessing institutional buyers absorbing all available sell orders. 5. Temporal Precision Because this script resets with the Daily Session, it clears the noise of yesterday's battles. It forces the trader to focus on the current narrative. The inclusion of Extended Lines (POC/VAH/VAL) into the "empty space" to the right of the chart provides a forward-looking target for your take-profit or stop-loss orders. Strategic Application Mean Reversion: Trading from the VAH/VAL back toward the POC. Trend Following: Looking for price to find support at a previous session's POC (S/R Flip). Breakout Validation: A breakout is only "real" if it is accompanied by the Value Area migrating higher or lower alongside price.Pine Script® indicatorby afzaalkiani3
PowerPlots - Daily Liquidity PowerPlots — Daily Liquidity PowerPlots — Daily Liquidity is a high-precision institutional level tracker designed to map "Untested" or "Untapped" Daily Highs and Lows. These levels often represent significant pools of liquidity where stop losses and buy/sell orders often cluster. This indicator helps traders identify the "path of least resistance" by visualizing exactly which historical daily ranges have not yet been mitigated by price action. Core Functionality NY Midnight Alignment: Logic is anchored to the New York Midnight open, ensuring accurate daily range capture for Forex, Futures, and Crypto markets. Automatic Mitigation: Lines automatically extend until price touches or breaches the level. Once a level is "cleared," the script visually faints the line, signaling that the liquidity pool has been tapped. Dynamic Labeling: Clean, right-side labels identify whether the level is a PDH (Previous Daily High) or PDL (Previous Daily Low), along with the specific date of origin. Performance Optimized: Built on Pine Script v6 with an integrated memory management engine to ensure smooth chart performance even when tracking months of data. How to Use Liquidity Targets: Use untapped levels as high-probability take-profit targets. Price is naturally drawn to these "open" levels to satisfy market orders. Reversal Zones: Look for "Liquidity Grabs" where price briefly breaches an untapped level (our small diamond icons from the Next Gen series work great here) before reversing. Clean Charts: The indicator uses a minimalist aesthetic, featuring dotted lines and neutral tones to prevent cluttering your primary analysis. Settings Visuals: Customize colors for Highs vs. Lows to match your personal theme. History Depth: Control how many active levels are tracked simultaneously to keep your workspace efficient. Label Toggle: Enable or disable date labels depending on your preference for a cleaner look.Pine Script® indicatorby PowerEdgeTraderUpdated 3
[Saga Trading] OBV ProDescription OBV Pro is a statistically-normalized On-Balance Volume framework designed to transform traditional OBV into a structured, regime-aware participation model. This script is not a simple OBV with added labels. It is built around three core principles: - Adaptive OBV computation - Statistical normalization & regime measurement - Structured divergence qualification What makes this different from classic OBV scripts? Traditional OBV: - Is cumulative and unbounded. - Cannot be compared easily across assets or timeframes. - Often produces noisy divergences without contextual filtering. OBV Pro addresses these limitations through: 1) Multi-mode OBV engine Instead of a single formula, OBV Pro includes four calculation modes: - Classic OBV - Weighted % Change (volume weighted by percentage displacement) - Weighted Candle Body (volume weighted by directional body strength) - CVD Proxy (Buy–Sell) (directional volume proxy based on candle structure) This allows participation measurement to adapt to volatility structure rather than relying on a fixed cumulative model. 2) Statistical normalization framework The core innovation is the transformation of OBV into a measurable regime variable: - OBV is compared to its own moving average. - The distance is expressed in standard deviations (σ). - A dynamic visual zone reflects intensity based on σ distance. Additionally, three display domains are available: - Raw mode → structural participation bias. - Z-Score mode → standardized OBV (mean-normalized). - ROC mode → participation acceleration. - Z-Score mode enables objective statistical reference levels (±1 / ±2 / ±3σ). This makes OBV comparable across: - Crypto - Index - Forex - Commodities - Stocks 3) Pivot-based divergence model (not candle-to-candle) Divergences are calculated using: - Confirmed price pivots. - OBV sampled at the pivot bar itself. - Optional RSI / Bollinger condition filters. A composite Divergence Score (0–100) based on: - σ displacement at pivot - OBV slope impulse - Regime alignment bonus This scoring system is designed to reduce random divergence noise and prioritize structurally meaningful participation shifts. 4) Multi-timeframe regime alignment Optional higher timeframe OBV alignment can be required before signals are validated. This prevents lower timeframe divergences from triggering against higher timeframe participation structure. 5) Asset & timeframe adaptive presets The script includes internal adaptive parameters based on: - Asset category - Timeframe structure Users may override these manually, but the default system adapts smoothing and divergence lookback automatically. Why this script is invite-only / closed-source ? This script integrates: - Adaptive OBV modeling - Statistical σ-based regime detection - Divergence scoring logic - MTF regime gating - Asset/timeframe adaptive presets The value lies in the internal integration of these components into a coherent participation model. This is not a mashup of public scripts but a unified framework built around participation normalization and structured divergence qualification. This script is provided for analytical purposes only and does not constitute financial advice. It Include : - Core Engine - Multi-mode OBV calculation - Session reset options - Auto MA type & length by asset/timeframe - Manual override controls - Regime Framework - OBV vs OBV MA dynamic zone - σ-based distance measurement - Z-Score normalization - ROC acceleration view - Optional gradient visualization - Divergence Model - Pivot-confirmed divergences - Hidden divergences - RSI / Bollinger filters - Divergence Score (0–100) - Score-threshold alert gating - Context Tools - HTF OBV overlay - Optional MTF alignment requirement - OBV oscillator - OBV momentum - RSI of OBV - OBV/Price correlation - OBV rolling profile range - Alerts - OBV regime crossover - Pivot divergences - Z-Score extremes - ROC thresholds - Scored divergence alerts How to use ? A) Identify participation regime : Use Raw mode + Dynamic Zone OBV above MA → bullish participation bias OBV below MA → bearish participation bias Large σ distance → strong participation pressure B) Detect statistical extremes : Use Z-Score mode ±2σ → extended participation ±3σ → statistically extreme condition Combine with price structure. Extremes do not automatically imply reversal. C) Evaluate acceleration : Use ROC mode Helps identify: Participation expansion / Participation exhaustion D) Trade divergences selectively : Enable: Pivot divergences Filters (RSI / Bollinger) Divergence Score Higher score = stronger structural imbalance. Optional: enable MTF alignment for stricter confirmation.Pine Script® indicatorby KevSagaT4
MadAlpha Macro🔷 MadAlpha Macro Institutional Macro Intelligence. Built for Precision. MadAlpha Macro is an advanced indicator designed to translate global macroeconomic dynamics into actionable Forex signals. It integrates: Interest Rates Inflation Economic Growth (GDP) Labor Market Data Relative Monetary Pressure between currencies The objective is not to display numbers. The objective is to reveal the true macro dominance between two economies. 🎯 What MadAlpha Macro Actually Does MadAlpha Macro measures: ✔ The fundamental strength of a currency ✔ The dominant economic cycle ✔ Daily macro momentum ✔ Structural imbalances between two countries ✔ Institutional pressure zones It transforms complex economic data into clear, strategic insight. 🔬 Why It’s Different Most traders: Read the news after the move React to economic releases Fail to understand capital flows MadAlpha Macro anticipates structural direction by aligning with central bank logic and macro differentials between currencies. ⚡ Designed For Active Forex traders Fundamental analysts Macro swing traders Macro-focused content creators Traders who want to understand the “why” behind price action 🧠 Philosophy Price follows liquidity. Liquidity follows macroeconomics. MadAlpha follows liquidity. 🔷 Positioning This is not a technical indicator. It is a macro intelligence engine.Pine Script® indicatorby marianoherimaminiaina102
Whole Number🔹 Key Features • Smart Multi-Asset Detection Automatically adjusts step size based on: Forex (pip-based levels, JPY aware) Gold (XAUUSD) Crypto (BTC, XRP, USD-quoted pairs) NASDAQ / US100 / NQ Futures Fallback logic for other instruments • Customizable Level Sets Choose between: 1.25 | 2.5 | 5 | 10 | 25 | 50 | 100 | 250 Each set maps intelligently to the selected instrument. • Dynamic Grid System Toggle grid lines on/off Toggle zone bands (rectangles) on/off Adjustable band thickness (% of level distance) Fully customizable band color Adjustable transparency • Optimized Object Pooling Efficient line and box management for performance stability. 🔹 Optional Technical Overlays Independently toggle: EMA 50 SMA 20 EMA 9 Bollinger Bands (20, 2σ) These overlays are completely separate from the grid. 🔹 Why Use This Indicator? Markets often react around: Whole numbers Structured price increments Liquidity clusters Institutional round-number levels This tool visualizes those areas clearly and consistently across different markets without requiring manual recalibration. Ideal for: Scalping Intraday trading Structure-based trading Liquidity & reaction zone analysisPine Script® indicatorby chriskrakl1
RSI Alert - manuRSI Alert is an advanced oscillator that combines a logarithmic RSI, Stochastic Oscillator, and the Ehlers Super Smoother filter to detect turning points more accurately and reduce false signals. The indicator logarithmically transforms the price, applies a custom RSI, then calculates a Stochastic Oscillator based on that RSI, and finally smooths the signal using the Ehlers Super Smoother filter. This allows you to: - Identify extreme overbought and oversold zones - Detect momentum changes with less noise - Generate buy and sell signals filtered by curvature and crossoverPine Script® indicatorby manu_mdq3
V1 Long Trade EMA Elasticity Signal + Backtest🎯 Concept This strategy exploits the elastic behavior between two EMAs (fast & slow). When price stretches too far below the slow EMA (like a rubber band), it tends to snap back — creating a high-probability long entry. When price stretches too far above, positions are closed for profit. 🔧 How It Works Entry Logic (Long Only) A buy signal triggers when the fast EMA (default: 3) drops below the slow EMA (default: 90) by a percentage threshold. This "elasticity gap" indicates an oversold stretch likely to revert. Exit Logic — Profit-Guaranteed Close Positions are only closed when: The fast EMA crosses back above the slow EMA by the sell threshold AND the candle's LOW is above entry price + a safety margin — ensuring real profit even with slippage Adaptive ATR Filter The entry/exit thresholds dynamically adjust to market volatility using ATR, preventing false signals in choppy markets and catching bigger moves in trending ones. 📊 Features EMA Fan (Ribbon): Visual spread of intermediate EMAs between fast & slow — yellow = bullish, red = bearish Multi-position pyramiding: Up to 50 simultaneous long entries, each independently tracked with unique IDs Real-time info panel: Displays EMA values, elasticity gap %, open positions, ready/locked status, PnL, and win rate Built-in filters (optional): EMA 200 trend filter, RSI oversold confirmation, volume filter, time-of-day filter Color-coded zones: Green background = buy zone, red background = exit zone ⚙️ Key Parameters ParameterDefaultDescriptionFast EMA3Reactive EMA for signal detectionSlow EMA90Anchor EMA for mean reversionBuy Threshold0.5%Min gap to trigger entrySell Threshold0.5%Min gap to trigger exitATR AdaptiveONAuto-adjusts thresholds to volatilityProfit Margin0.5%Safety buffer above entry price for exitsPosition Size5% equityPer-signal allocationMax Positions20Simultaneous open longs 💡 Best Use Cases Crypto (BTC, ETH, altcoins) — high volatility = strong elastic snaps Indices & Stocks — works on trending assets with regular pullbacks Multiple timeframes — tested on 15m to Daily ⚠️ Notes Long only — no short signals Commission set at 0.04% (exchange-realistic for crypto) Slippage: 1 tick The profit margin check uses the candle LOW (worst case) to avoid paper profits that vanish on execution All filters are OFF by default for maximum signal generation — enable them to increase selectivityPine Script® strategyby MustangAlgo222
IT-SMC PRO | DEMO IT-SMC PRO | DEMO เวอร์ชันสาธิตของ IT-SMC PRO ✔ แสดงโครงสร้างตลาดแบบ ST (Short-Term) และ IT (Intermediate-Term) ✔ มุมมองกราฟสะอาด ไม่มีโซน ไม่มีเส้นเทรนไลน์ ไม่มี EMA ✔ แสดงสัญญาณโครงสร้างล่าสุดไม่เกิน 20 จุด (ลดความรกบนกราฟ) ✔ ใช้เงื่อนไข Close-based break ในการลบสัญญาณที่ถูกทำลาย เวอร์ชัน DEMO นี้จัดทำขึ้นเพื่อแสดงแนวคิด Market Structure โดยยังไม่รวมฟีเจอร์ขั้นสูงทั้งหมด ในเวอร์ชันเต็ม (Full Version) จะมีเพิ่มเติม เช่น: • Smart Supply & Demand Zones • Active IT Dashboard • ระบบ Bias วิเคราะห์แนวโน้ม • ตัวกรองสัญญาณขั้นสูง • ระบบแจ้งเตือนแบบมืออาชีพ เหมาะสำหรับเทรดเดอร์ที่ให้ความสำคัญกับโครงสร้างตลาดและความแม่นยำ ติดต่อเพื่อขอใช้งานเวอร์ชันเต็มได้โดยตรง © 2026 IT-SMC PRO. All rights reserved. IT-SMC PRO | DEMO This is a simplified demonstration version of IT-SMC PRO. ✔ Displays ST (Short-Term) and IT (Intermediate-Term) structure labels ✔ Clean chart view (no zones, no trendlines, no EMA) ✔ Automatically keeps only the latest 20 structure signals ✔ Close-based break logic This demo is designed to showcase the core Market Structure concept without revealing advanced features. The full version includes: • Smart Supply & Demand zones • Active IT Dashboard • Bias engine • Advanced structure filtering • Professional alert system For access to the full version, contact me directly. Built for serious traders who value structure and precision.Pine Script® indicatorby pparitussakunUpdated 229
BTC 1h Donchian strat2 Inside BarThis strategy trades Bitcoin breakouts using a Donchian channel and filters entries with Kaufman’s Efficiency Ratio to avoid choppy conditions. Position size is based on a fixed percentage of equity risked per trade, with an ATR-based trailing stop and an additional hard stop for protection. It aims to capture strong directional moves while keeping drawdowns under control through adaptive risk management.Pine Script® strategyby tem1ch2
Quantitative Momentum & Institutional Flow System🇨🇳 中文 🔍 概述 QuantFlow_MSVO 是一款专业量化指标,用于追踪机构资金流向、基准指数情绪及趋势衰竭。通过对比标的与参考指数(如上证指数)的资本动态,识别资金共振区——个股与大盘同步吸筹或派发的关键区域。 🧠 核心逻辑 机构资金流:基于加权价 (2*C+H+L)/4 * 10 构建类MACD振荡器(13/34指数平均,5期信号线),柱状图放大5.5倍,反映机构净参与力度。 基准情绪:对所选指数应用完全相同的算法,生成独立的流入/流出度量。 趋势矩阵:将收盘价在55根K线范围内标准化为0–100,经三重平滑(3×简单移动平均 → 指数平均)得到干净、不漂移的趋势线。 动能加速度:趋势线的环比变化率,用于捕捉早期突破。 🎨 视觉元素 机构资金 – 洋红(流入)/ 蓝色(流出),粗线。 基准资金 – 红色(正向)/ 绿色(负向),细线。 趋势线 – 橙色,范围0–100,辅以13(吸筹区)和90(超买区)参考线。 状态柱 – 🟠 趋势≤13时显示 蓄势脉冲 (20) 🔵 趋势≤13且加速度>13时显示 爆发确认 (50) 🔴 趋势>90且上升时显示 抛压警戒 (100) 共振柱 – 当机构流入或基准流入与趋势≤13共振时,显示洋红/红色柱 → 吸筹共振。 文字标签 – 筑底区域、买入确认、趋势衰减仅在信号首次出现时绘制,界面清爽。 📊 使用方法 底部区域(趋势≤13):寻找洋红/红色共振柱 → 潜在吸筹。蓝色爆发确认柱+标签是更强的入场信号。 顶部区域(趋势>90):橙色线走平或拐头,同时机构流入减弱,触发趋势衰减标签 → 派发预警。 零轴:机构资金流平衡线。 ⚙️ 参数设置 可在属性中更换参考指数(默认上证指数)。 所有周期(13、34、5、55、8、18等)均为原始算法固化的数值,无外部输入,确保一致性与不重绘。 🌍 适用市场 主要为中国A股设计,也适用于任何机构行为显著的流动性市场。日线及以下周期效果最佳。 English 🔍 Overview QuantFlow_MSVO is a professional quantitative indicator that tracks institutional money flow, benchmark sentiment, and trend exhaustion. By comparing the capital dynamics of the current symbol against a reference index (e.g., SSE 000001), it identifies capital resonance zones — areas where individual stocks and the broader market accumulate or distribute in sync. 🧠 Core Logic Institutional Flow: Derived from a MACD‑style oscillator on the weighted price (2*C+H+L)/4 * 10. Uses 13/34 EMAs and a 5‑period signal line. The histogram (scaled ×5.5) represents net institutional engagement. Benchmark Sentiment: Applies the identical algorithm to the selected index, generating independent inflow/outflow metrics. Trend Matrix: Normalizes the close within a 55‑bar range (0–100), then applies triple smoothing (3×SMA → EMA) to produce a clean, non‑repainting trend line. Momentum Acceleration: Period‑over‑period percentage change of the trend line detects early breakouts. 🎨 Visual Components Institutional Flow – Fuchsia (inflow) / Blue (outflow), bold lines. Benchmark Flow – Red (positive) / Green (negative), thin lines. Trend Line – Orange, scale 0–100, with reference lines at 13 (accumulation zone) and 90 (overbought zone). Status Columns – 🟠 蓄势脉冲 / Prepare Cash (20) when trend ≤ 13 🔵 爆发确认 / Breakout (50) when trend ≤ 13 and momentum accel > 13 🔴 抛压警戒 / Exhaustion (100) when trend > 90 and rising Resonance Columns – Magenta/Red columns when institutional inflow or benchmark inflow aligns with trend ≤ 13 → accumulation resonance. Labels – 筑底区域 / Accumulation, 买入确认 / BUY, 趋势衰减 / TOP EXIT appear only at the first occurrence to avoid clutter. 📊 Usage Guide Bottom zone (trend ≤ 13): Look for fuchsia/red resonance columns → potential accumulation. A blue Breakout column + label is a stronger entry trigger. Top zone (trend > 90): Orange line flattening or turning down, combined with weakening institutional inflow, generates a TOP EXIT label → distribution warning. Zero line: Balance axis for institutional flow. ⚙️ Parameters Reference index can be changed in the settings (default: SSE 000001). All periods (13, 34, 5, 55, 8, 18, etc.) are hard‑coded according to the original algorithm – no user inputs, ensuring consistency and non‑repainting. 🌍 Suitable Markets Primarily designed for Chinese A‑shares, but applicable to any liquid market where institutional activity matters. Works best on daily or lower timeframes.Pine Script® indicatorby william_wqUpdated 20
SNIPER PRO - Precision Entry Zones - HansTradeLabAdvanced Smart Money Concepts indicator utilizing High Value Zones and precision entry detection. Core Features: - Automated BUY/SELL zone identification - Zone Entry (ZE) system for optimal timing - Exponential Moving Average trend filter - Break of Structure (BOS) analysis - Real-time alert notifications - Comprehensive trading dashboard Application: Suitable for scalping, day trading, and swing trading strategies across multiple timeframes. Optimized For: - Instruments: XAUUSD, EURUSD, GBPUSD, Cryptocurrencies - Timeframes: M3, M5, M15, H1 Risk Disclaimer: This indicator is a technical analysis tool and should be used in conjunction with proper risk management practices. Past performance does not guarantee future results. No trading system is 100% accurate.Pine Script® indicatorby HansTradeLab6
zijinxianxibuxihuanhahahahahahahaha rangwoxienameduogm dddddddsdsdasdafsfasfsdfsadfsdfsfsadfsdfsdf sdfsdfsqwePine Script® indicatorby j97984
Williams Vix Fix Bottoms and Tops - DUAL MODEDual version of the original indicator. Analises volatility, bottoms and tops swing to color possible reversion points. Plots the original histogram but tow sided. Thanks to TheeHoganator for the original codePine Script® indicatorby lccazzani4435
xauusd Alert to Mt5This indicator combines RSI-adjusted SuperTrend logic with structured price action zones to generate high-probability buy and sell signals. The system is built around a three-phase confirmation model: Pattern-based zone formation Breakout from the zone Retest and confirmed second breakout Signals are optionally filtered using a dual SuperTrend trend filter (regular + RSI-adjusted), helping align entries with broader market direction and reduce counter-trend noise. Key Features: Non-repainting logic when confirmation on close is enabled Optional trend filtering for higher signal quality Time and day session filtering Clear BUY and SELL box signals on chart Alert support for both buy and sell conditions The indicator focuses on structure, confirmation, and momentum alignment rather than simple crossover signals. It is designed for traders who prefer rule-based entries with layered validation. Suitable for intraday trading and structured breakout-retest strategies.Pine Script® indicatorby dreamnland2013Updated 2
ABCin the abc please see cde and create xyty. so that you know that to doPine Script® indicatorby kikilawlaw520Updated 4
Market Structure- Zig Zag, BoS and Supply/Demand Zones// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org // © The_Forex_Steward //@version=6 indicator("Market Structure- Zig Zag, BoS and Supply/Demand Zones", overlay=true) // === User Inputs === htf = input.timeframe("", title="Timeframe") internalShiftMode = input.string("External Structure", title="Calculate Zig-Zag By", options= ) x = input.int(1, minval=1, maxval= 3, title="# of Candles for Zones (1-3)") HHHLcolor = input.color(color.green, title="Text Color (HH and HL)") LLLHcolor = input.color(color.red, title="Text Color (LL and LH)") LScolor = input.color(color.orange, title="Text Color (LS)") HHHLcolorbg = input.color(color.rgb(76, 175, 79, 85), title="Background Color (HH and HL)") LLLHcolorbg = input.color(color.rgb(255, 82, 82, 85), title="Background Color (LL and LH)") LScolorbg = input.color(color.rgb(255, 153, 0, 85), title="Background Color (LS)") showBearishOrderBlocks = input.bool(true, title="Show Supply Zones") showBullishOrderBlocks = input.bool(true, title="Show Demand Zones") orderBlockDuration = input.int(10, title="Zone Duration (bars)") deleteMitigatedBoxes = input.bool(false, title="Delete Mitigated Zones") deleteBrokenBoxes= input.bool(true, title = "Delete Broken Zones") dimMitigatedBoxes = input.bool(true, title="Dim Mitigated Zones") bearishBlockColor = input.color(color.rgb(255, 82, 82, 50), title="Supply Zone Fill") bullishBlockColor = input.color(color.rgb(76, 175, 79, 50), title="Demand Zone Fill") lighterBullishColor = color.new(bullishBlockColor, 85) // More transparent lighterBearishColor = color.new(bearishBlockColor, 85) zigzagLineColor = input.color(color.black, title="ZigZag Line Color") zigzagLineWidth = input.int(2, title="Width of Lines", minval=1, maxval=10) zigzagLineStyle = input.string("Solid", title="ZigZag Line Style", options= ) internalShiftColor = color.new(zigzagLineColor, 75) // More transparent bosBullishLineColor = input.color(color.green, title="Bullish BOS Line Color") bosBearishLineColor = input.color(color.red, title="Bearish BOS Line Color") bosLineStyle = input.string("Dotted", title="BOS Line Style", options= ) bosLineStyleConst = bosLineStyle == "Solid" ? line.style_solid : bosLineStyle == "Dotted" ? line.style_dotted : line.style_dashed alertMode = input.string("MTF", title= "Enable/Disable for Any Alert() Function Call↓ Alert Status→", options= ) alertSupplyandDemand = input.bool(true, title= "Supply & Demand Zones") alertHighsandLows = input.bool(true, title= "Swing Highs & Lows") alertBoS = input.bool(true, title= "BoS") alertMS = input.bool(true, title= "Market Shifts") HtfOpen = request.security(syminfo.tickerid, htf, open) HtfHigh = request.security(syminfo.tickerid, htf, high) HtfLow = request.security(syminfo.tickerid, htf, low) HtfClose = request.security(syminfo.tickerid, htf, close) prevHtfHigh = request.security(syminfo.tickerid, htf, high ) prevHtfLow = request.security(syminfo.tickerid, htf, low ) isHTFBarClose = ta.change(HtfClose) != 0 // Track the bar_index of the current bar when HTF closes var int HtfBarIndex = na if isHTFBarClose HtfBarIndex := bar_index // === Initialization === var int lastSignal = 0 // 0 = none, 1 = bull, -1 = bear var float runningLowestHigh = na var float runningHighestLow = na // Track engulfed ranges var float engulfedHigh = na var float engulfedLow = na // === Step 1: Detect "starter" engulfing === starterBull = HtfClose < HtfOpen and HtfClose > HtfOpen and HtfClose > HtfHigh starterBear = HtfClose > HtfOpen and HtfClose < HtfOpen and HtfClose < HtfLow if lastSignal == 0 if starterBull lastSignal := 1 runningHighestLow := HtfLow engulfedHigh := HtfHigh engulfedLow := HtfLow else if starterBear lastSignal := -1 runningLowestHigh := HtfHigh engulfedHigh := HtfHigh engulfedLow := HtfLow // === Step 2: Update running references === if lastSignal == -1 // last was bearish → waiting for bullish runningLowestHigh := na(runningLowestHigh) ? HtfHigh : math.min(runningLowestHigh, HtfHigh) else if lastSignal == 1 // last was bullish → waiting for bearish runningHighestLow := na(runningHighestLow) ? HtfLow : math.max(runningHighestLow, HtfLow) // === Step 3: Check for new engulfment === newBull = lastSignal == -1 and not na(runningLowestHigh) and HtfClose > runningLowestHigh newBear = lastSignal == 1 and not na(runningHighestLow) and HtfClose < runningHighestLow var int lastBullIndex = na var int lastBearIndex = na if newBull lastBullIndex := HtfBarIndex // store engulfed candle values (the one we just broke over) engulfedHigh := runningLowestHigh engulfedLow := HtfLow // or HtfLow depending on how you define "engulfed" if newBear lastBearIndex := HtfBarIndex engulfedLow := runningHighestLow engulfedHigh := HtfHigh // === Step 4: Confirm and flip state === if newBull lastSignal := 1 runningLowestHigh := na runningHighestLow := HtfLow else if newBear lastSignal := -1 runningHighestLow := na runningLowestHigh := HtfHigh // === Track Boxes === var box bullishBoxes = array.new() var box bearishBoxes = array.new() // === Mitigation Flags === var bool bullishMitigated = false var bool bearishMitigated = false var bool bullishBreak = false var bool bearishBreak = false // === Delete invalidated boxes === if deleteBrokenBoxes if array.size(bullishBoxes) > 0 for i = array.size(bullishBoxes) - 1 to 0 boxItem = array.get(bullishBoxes, i) if HtfClose < box.get_bottom(boxItem) box.delete(boxItem) array.remove(bullishBoxes, i) if array.size(bearishBoxes) > 0 for i = array.size(bearishBoxes) - 1 to 0 boxItem = array.get(bearishBoxes, i) if HtfClose > box.get_top(boxItem) box.delete(boxItem) array.remove(bearishBoxes, i) // === Delete mitigated boxes (optional) === if deleteMitigatedBoxes if array.size(bullishBoxes) > 0 for i = array.size(bullishBoxes) - 1 to 0 boxItem = array.get(bullishBoxes, i) if HtfLow < box.get_top(boxItem) bullishMitigated := true box.delete(boxItem) array.remove(bullishBoxes, i) if array.size(bearishBoxes) > 0 for i = array.size(bearishBoxes) - 1 to 0 boxItem = array.get(bearishBoxes, i) if HtfHigh > box.get_bottom(boxItem) bearishMitigated := true box.delete(boxItem) array.remove(bearishBoxes, i) if dimMitigatedBoxes if array.size(bullishBoxes) > 0 for i = 0 to array.size(bullishBoxes) - 1 boxItem = array.get(bullishBoxes, i) if HtfLow < box.get_top(boxItem) bullishMitigated := true box.set_bgcolor(boxItem, lighterBullishColor) box.set_border_color(boxItem, lighterBullishColor) if array.size(bearishBoxes) > 0 for i = 0 to array.size(bearishBoxes) - 1 boxItem = array.get(bearishBoxes, i) if HtfHigh > box.get_bottom(boxItem) bearishMitigated := true box.set_bgcolor(boxItem, lighterBearishColor) box.set_border_color(boxItem, lighterBearishColor) // Peramters for boxes zoneHigh = ta.highest(HtfHigh , x) zoneLow = ta.lowest(HtfLow , x) // Create new order blocks with adjusted alignment if showBullishOrderBlocks and newBull bullishBox = box.new(left= HtfBarIndex , right=HtfBarIndex + orderBlockDuration, top=zoneHigh, bottom=zoneLow, border_color=bullishBlockColor, bgcolor=bullishBlockColor) array.push(bullishBoxes, bullishBox) if showBearishOrderBlocks and newBear bearishBox = box.new(left= HtfBarIndex , right=HtfBarIndex + orderBlockDuration, top=zoneHigh, bottom=zoneLow, border_color=bearishBlockColor, bgcolor=bearishBlockColor) array.push(bearishBoxes, bearishBox) // === Internal Structure Logic === var int bullishCount = 0 var int bearishCount = 0 var float lowestBullishPrice = na var float highestBearishPrice = na var float firstBullishOpen = na var float firstBearishOpen = na var int lastInternalShift = 0 var float lastBullishInternalShiftPrice = na var float lastBearishInternalShiftPrice = na var float currentSwingHigh = na var int currentSwingHighIndex = na var float currentSwingLow = na var int currentSwingLowIndex = na var float prevSwingHigh = na var float prevSwingLow = na var bool isHH = false var bool isHL = false var bool isLL = false var bool isLH = false var bool isLiquiditySweep = false var float lastOpposingLow = na // For HH var float lastOpposingHigh = na // For LL var bool internalShiftBullish = false var bool internalShiftBearish = false if ((internalShiftMode == "Internal Structure") or (internalShiftMode == "External Structure")) internalShiftBullish := newBull internalShiftBearish := newBear allowInternalShiftBearish = internalShiftBearish and lastInternalShift != -1 allowInternalShiftBullish = internalShiftBullish and lastInternalShift != 1 var bool plotBearishInternalShift = false var bool plotBullishInternalShift = false // === Determine Internal Shift Based on User Input === plotBearishInternalShift := false plotBullishInternalShift := false if allowInternalShiftBearish plotBearishInternalShift := true lastInternalShift := -1 if allowInternalShiftBullish plotBullishInternalShift := true lastInternalShift := 1 // === Plot internal shift markers == plotshape(plotBullishInternalShift, title="Bullish Internal Shift", location=location.belowbar, color=internalShiftColor, style=shape.triangleup, size=size.tiny) plotshape(plotBearishInternalShift, title="Bearish Internal Shift", location=location.abovebar, color=internalShiftColor, style=shape.triangledown, size=size.tiny) // === Highest High Between Alternate Bearish Break and Last Bullish Break (Safe) === var float localHigh = na var int localHighIndex = na maxHistory = 10000 if plotBearishInternalShift and ((internalShiftMode == "Internal Structure") or (internalShiftMode == "External Structure")) float highestHigh = na int highestIndex = na int startIndex = math.max(lastBullIndex, bar_index - maxHistory) int endIndex = HtfBarIndex for i = startIndex to endIndex int lookback = bar_index - i // Convert i to relative offset for series access if lookback >= 0 and lookback < maxHistory and not na(HtfHigh ) if na(highestHigh) or HtfHigh > highestHigh highestHigh := HtfHigh highestIndex := i localHigh := highestHigh localHighIndex := highestIndex // === Lowest Low Between Alternate Bullish Break and Last Bearish Break (Safe) === var float localLow = na var int localLowIndex = na if plotBullishInternalShift and ((internalShiftMode == "Internal Structure") or (internalShiftMode == "External Structure")) float lowestLow = na int lowestIndex = na int startIndex = math.max(lastBearIndex, HtfBarIndex - maxHistory) int endIndex = bar_index for i = startIndex to endIndex int lookback = bar_index - i // Convert i to relative offset if lookback >= 0 and lookback < maxHistory and not na(HtfLow ) if na(lowestLow) or HtfLow < lowestLow lowestLow := HtfLow lowestIndex := i localLow := lowestLow localLowIndex := lowestIndex // === Track Last Non-Alternating Break of Structure (BoS) === var int lastBullishBoSBarNA = na var int lastBearishBoSBarNA = na var float lastBullishBoSPriceNA = na var float lastBearishBoSPriceNA = na var bool bullishBOSOccurred = false var bool bearishBOSOccurred = false var int lastLowIndex = na var int lastHighIndex = na var float lastSwingHigh = na var float lastSwingLow = na // Reset flags var bool canBreakBullish = true var bool canBreakBearish = true // BoS Conditions (non-alternating) bullishBoS = canBreakBullish and HtfOpen < localHigh and HtfClose > localHigh bearishBoS = canBreakBearish and HtfOpen > localLow and HtfClose < localLow if bullishBoS and internalShiftMode == "Internal Structure" lastBullishBoSBarNA := bar_index lastBullishBoSPriceNA := HtfClose canBreakBullish := false // prevent further BoS on same localHigh bullishBOSOccurred := true line.new(x1=localHighIndex, y1=localHigh, x2=bar_index, y2=localHigh, color=bosBullishLineColor, width=zigzagLineWidth, style=bosLineStyleConst) lastSwingHigh := na if bearishBoS and internalShiftMode == "Internal Structure" lastBearishBoSBarNA := bar_index lastBearishBoSPriceNA := HtfClose canBreakBearish := false // prevent further BoS on same localLow bearishBOSOccurred := true line.new(x1=localLowIndex, y1=localLow, x2=bar_index, y2=localLow, color=bosBearishLineColor, width=zigzagLineWidth, style=bosLineStyleConst) lastSwingLow := na // Reset logic — allow new break only if local high/low changes if ta.change(localHigh) != 0 canBreakBullish := true if ta.change(localLow) != 0 canBreakBearish := true // === Track Last MS Event === var int lastBullishBoSBar = na var int lastBearishBoSBar = na var float lastBullishBoSPrice = na var float lastBearishBoSPrice = na var bool SwingHighBOSOccurred = false var bool SwingLowBOSOccurred = false var int lastSwingLowIndex = na var int lastSwingHighIndex = na var float lastSSwingHigh = na var float lastSSwingLow = na // Track last BoS type: 1 = bullish, -1 = bearish, 0 = none yet var int lastBoSType = 0 // === Track Last MS Type === var int lastMSType = na // 1 = bullish, -1 = bearish // === MS Detection Logic === rawBullishMS = HtfClose > localHigh rawBearishMS = HtfClose < localLow // === Enforce Alternation === canBullishMS = na(lastMSType) or lastMSType == -1 canBearishMS = na(lastMSType) or lastMSType == 1 bullishMS = rawBullishMS and canBullishMS bearishMS = rawBearishMS and canBearishMS plotshape(bullishMS, title="Bullish Market Shift", location=location.belowbar, color=zigzagLineColor, style=shape.triangleup, size=size.tiny) plotshape(bearishMS, title="Bearish Market Shift", location=location.abovebar, color=zigzagLineColor, style=shape.triangledown, size=size.tiny) // === Update Last MS Type and BoS Bars === if bullishMS lastMSType := 1 lastBullishBoSBar := bar_index if bearishMS lastMSType := -1 lastBearishBoSBar := bar_index // === Lowest Low Between Last Bearish MS and This Bullish MS === var float msLocalLow = na var int msLocalLowIndex = na msMaxHistory = 5000 if bullishMS float msLowestLow = na int msLowestIndex = na int msStartIndex = na(lastBearishBoSBar) ? bar_index - msMaxHistory : lastBearishBoSBar int msEndIndex = bar_index // safer than using HtfBarIndex unless defined for i = msStartIndex to msEndIndex int msLookback = bar_index - i if msLookback >= 0 and msLookback < msMaxHistory and not na(HtfLow ) if na(msLowestLow) or HtfLow < msLowestLow msLowestLow := HtfLow msLowestIndex := i msLocalLow := msLowestLow msLocalLowIndex := msLowestIndex // === Highest High Between Last Bullish MS and This Bearish MS === var float msLocalHigh = na var int msLocalHighIndex = na if bearishMS float msHighestHigh = na int msHighestIndex = na int msStartIndex = na(lastBullishBoSBar) ? bar_index - msMaxHistory : lastBullishBoSBar int msEndIndex = bar_index for i = msStartIndex to msEndIndex int msLookback = bar_index - i if msLookback >= 0 and msLookback < msMaxHistory and not na(HtfHigh ) if na(msHighestHigh) or HtfHigh > msHighestHigh msHighestHigh := HtfHigh msHighestIndex := i msLocalHigh := msHighestHigh msLocalHighIndex := msHighestIndex // === Track Last Non-Alternating Break of Structure (BoS) === var int lastBullishBoSBarMSNA = na var int lastBearishBoSBarMSNA = na var float lastBullishBoSPriceMSNA = na var float lastBearishBoSPriceMSNA = na var bool bullishBOSOccurredMS = false var bool bearishBOSOccurredMS = false var int MSlastLowIndex = na var int MSlastHighIndex = na var float MSlastSwingHigh = na var float MSlastSwingLow = na // Reset flags var bool canBreakBullishMS = true var bool canBreakBearishMS = true // BoS Conditions (non-alternating) bullishBoSMS = canBreakBullish and HtfOpen < msLocalHigh and HtfClose > msLocalHigh bearishBoSMS = canBreakBearish and HtfOpen > msLocalLow and HtfClose < msLocalLow if bullishBoSMS and internalShiftMode == "External Structure" lastBullishBoSBarMSNA := bar_index lastBullishBoSPriceMSNA := HtfClose canBreakBullishMS := false // prevent further BoS on same localHigh bullishBOSOccurredMS := true line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=bar_index, y2=msLocalHigh, color=bosBullishLineColor, width=zigzagLineWidth, style=bosLineStyleConst) lastSwingHigh := na if bearishBoSMS and internalShiftMode == "External Structure" lastBearishBoSBarMSNA := bar_index lastBearishBoSPriceMSNA := HtfClose canBreakBearishMS := false // prevent further BoS on same localLow bearishBOSOccurredMS := true line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=bar_index, y2=msLocalLow, color=bosBearishLineColor, width=zigzagLineWidth, style=bosLineStyleConst) lastSwingLow := na // === Persistent variables for multiple line handling === var line zigzagLines = array.new() var int lastBearishShiftBar = na var int lastBullishShiftBar = na var float lastZigzagPrice = na var string lastSwingType = "" // Save shift bar indices if plotBearishInternalShift lastBearishShiftBar := bar_index if plotBullishInternalShift lastBullishShiftBar := bar_index // Bearish shift followed by Bullish shift → Track lowest low if plotBullishInternalShift and internalShiftMode == "Internal Structure" // Plot zigzag line // Plot zigzag line for LL and HL separately if not na(prevSwingLow) if localLow < prevSwingLow // LL if zigzagLineStyle == "Solid" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) else // LH if zigzagLineStyle == "Solid" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=localHighIndex, y1=localHigh, x2=localLowIndex, y2=localLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) // Update swing low and plot label (HL or LL) if not na(prevSwingLow) isLL := not na(prevSwingLow) and localLow < prevSwingLow isHL := not na(prevSwingLow) and localLow > prevSwingLow if isLL if bearishBOSOccurred label.new(localLowIndex, localLow, "LL", color=LLLHcolorbg, style=label.style_label_up, textcolor=LLLHcolor, size=size.small) isLiquiditySweep := false // Definitely not a sweep if BOS occurred else label.new(localLowIndex, localLow, "LS", color=LScolorbg, style=label.style_label_up, textcolor=LScolor, size=size.small) isLiquiditySweep := true else isLiquiditySweep := false // Reset only if not LL lastOpposingHigh := prevSwingHigh bearishBOSOccurred := false if isHL label.new(localLowIndex, localLow, "HL", color=HHHLcolorbg, style=label.style_label_up, textcolor=HHHLcolor, size=size.small) lastOpposingHigh := prevSwingHigh bearishBOSOccurred := false prevSwingLow := localLow lastZigzagPrice := localLow lastSwingLow := localLow lastLowIndex := localLowIndex lastBearishShiftBar := bar_index if bullishMS and internalShiftMode == "External Structure" // Plot zigzag line // Plot zigzag line for LL and HL separately if not na(prevSwingLow) if msLocalLow < prevSwingLow // LL if zigzagLineStyle == "Solid" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) else // LH if zigzagLineStyle == "Solid" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=msLocalHighIndex, y1=msLocalHigh, x2=msLocalLowIndex, y2=msLocalLow, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) // Update swing low and plot label (HL or LL) if not na(prevSwingLow) isLL := not na(prevSwingLow) and msLocalLow < prevSwingLow isHL := not na(prevSwingLow) and msLocalLow > prevSwingLow if isLL label.new(msLocalLowIndex, msLocalLow, "LL", color=LLLHcolorbg, style=label.style_label_up, textcolor=LLLHcolor, size=size.small) if isHL label.new(msLocalLowIndex, msLocalLow, "HL", color=HHHLcolorbg, style=label.style_label_up, textcolor=HHHLcolor, size=size.small) lastOpposingHigh := prevSwingHigh SwingLowBOSOccurred := false prevSwingLow := msLocalLow lastZigzagPrice := msLocalLow lastSwingLow := msLocalLow lastLowIndex := msLocalLowIndex lastBearishShiftBar := bar_index //======================================================================================== if plotBearishInternalShift and internalShiftMode == "Internal Structure" // Plot zigzag line if not na(prevSwingHigh) if localHigh > prevSwingHigh // HH if zigzagLineStyle == "Solid" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) else // LH if zigzagLineStyle == "Solid" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=localLowIndex, y1=localLow, x2=localHighIndex, y2=localHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) // Update swing high and plot label (HH or LH) if not na(prevSwingHigh) isHH := not na(prevSwingHigh) and localHigh > prevSwingHigh isLH := not na(prevSwingHigh) and localHigh < prevSwingHigh if isHH if bullishBOSOccurred label.new(localHighIndex, localHigh, "HH", color=HHHLcolorbg, style=label.style_label_down, textcolor=HHHLcolor, size=size.small) isLiquiditySweep := false else label.new(localHighIndex, localHigh, "LS", color=LScolorbg, style=label.style_label_down, textcolor=LScolor, size=size.small) isLiquiditySweep := true else isLiquiditySweep := false bullishBOSOccurred := false if isLH label.new(localHighIndex, localHigh, "LH", color=LLLHcolorbg, style=label.style_label_down, textcolor=LLLHcolor, size=size.small) lastOpposingLow := prevSwingLow bullishBOSOccurred := false prevSwingHigh := localHigh lastZigzagPrice := localHigh lastSwingHigh := localHigh lastHighIndex := localHighIndex lastBullishShiftBar := bar_index if bearishMS and internalShiftMode == "External Structure" // Plot zigzag line if not na(prevSwingHigh) if msLocalHigh > prevSwingHigh // HH if zigzagLineStyle == "Solid" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) else // LH if zigzagLineStyle == "Solid" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_solid) else if zigzagLineStyle == "Dotted" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dotted) else if zigzagLineStyle == "Dashed" line.new(x1=msLocalLowIndex, y1=msLocalLow, x2=msLocalHighIndex, y2=msLocalHigh, color=zigzagLineColor, width=zigzagLineWidth, style=line.style_dashed) // Update swing high and plot label (HH or LH) if not na(prevSwingHigh) isHH := not na(prevSwingHigh) and msLocalHigh > prevSwingHigh isLH := not na(prevSwingHigh) and msLocalHigh < prevSwingHigh if isHH label.new(msLocalHighIndex, msLocalHigh, "HH", color=HHHLcolorbg, style=label.style_label_down, textcolor=HHHLcolor, size=size.small) SwingHighBOSOccurred := false if isLH label.new(msLocalHighIndex, msLocalHigh, "LH", color=LLLHcolorbg, style=label.style_label_down, textcolor=LLLHcolor, size=size.small) lastOpposingLow := prevSwingLow SwingHighBOSOccurred := false prevSwingHigh := msLocalHigh lastZigzagPrice := msLocalHigh lastSwingHigh := msLocalHigh lastHighIndex := msLocalHighIndex lastBullishShiftBar := bar_index // === Alert Conditions === alertcondition(newBull, title="New Supply Zone", message="New supply zone available.") alertcondition(newBear, title="New Demand Zone", message="New demand zone available.") alertcondition(plotBullishInternalShift, title="Bullish Internal Shift (All Lows)", message="Bullish Internal Shift detected! Check Swing Low.") alertcondition(plotBearishInternalShift, title="Bearish Internal Shift (All Highs)", message="Bearish Internal Shift detected! Check Swing High.") alertcondition(bullishBOSOccurred, title="Bullish Break of Structure", message="Bullish BoS detected.") alertcondition(bearishBOSOccurred, title="Bearish Break of Structure", message="Bearish BoS detected.") alertcondition(bullishMS, title="Bullish Market Shift", message="Bullish market shift detected.") alertcondition(bearishMS, title="Bearish Market Shift", message="Bearish market shift detected.") alertcondition(isHH and plotBearishInternalShift and not isLiquiditySweep, title="Higher High (HH)", message="Higher High (HH) detected") alertcondition(isHL and plotBullishInternalShift, title="Higher Low (HL)", message="Higher Low (HL) detected") alertcondition(isLL and plotBullishInternalShift and not isLiquiditySweep, title="Lower Low (LL)", message="Lower Low (LL) detected") alertcondition(isLH and plotBearishInternalShift, title="Lower High (LH)", message="Lower High (LH) detected") alertcondition((isLiquiditySweep and isLL and plotBullishInternalShift) or (isLiquiditySweep and isHH and plotBearishInternalShift), title="Liquidity Sweep (LS)", message="Liquidity Sweep (LS) detected") // === Alerts === if alertMode == "LTF" if isHH and plotBearishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Higher High (HH) detected (LTF)", alert.freq_once_per_bar_close) if isHL and plotBullishInternalShift and (alertHighsandLows == true) alert("Higher Low (HL) detected (LTF)", alert.freq_once_per_bar_close) if isLL and plotBullishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Lower Low (LL) detected (LTF)" , alert.freq_once_per_bar_close) if isLH and plotBearishInternalShift and (alertHighsandLows == true) alert("Lower High (LH) detected (LTF)", alert.freq_once_per_bar_close) if ((isLiquiditySweep and isLL and plotBullishInternalShift) or (isLiquiditySweep and isHH and plotBearishInternalShift)) and (alertHighsandLows == true) alert("Liquidity Sweep (LS) detected (LTF)", alert.freq_once_per_bar_close) if newBear and (alertSupplyandDemand == true) alert("New supply zone available. (LTF)", alert.freq_once_per_bar_close) if newBull and (alertSupplyandDemand == true) alert("New demand zone available. (LTF)", alert.freq_once_per_bar_close) if bullishBOSOccurred and (alertBoS == true) alert("Bullish BoS detected. (LTF)", alert.freq_once_per_bar_close) if bearishBOSOccurred and (alertBoS == true) alert("Bearish BoS detected. (LTF)", alert.freq_once_per_bar_close) if bullishMS and (alertMS == true) alert("Bullish market shift detected (LTF).", alert.freq_once_per_bar_close) if bearishMS and (alertMS == true) alert("Bearish market shift detected (LTF).", alert.freq_once_per_bar_close) if alertMode == "MTF" if isHH and plotBearishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Higher High (HH) detected (MTF)", alert.freq_once_per_bar_close) if isHL and plotBullishInternalShift and (alertHighsandLows == true) alert("Higher Low (HL) detected (MTF)", alert.freq_once_per_bar_close) if isLL and plotBullishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Lower Low (LL) detected (MTF)" , alert.freq_once_per_bar_close) if isLH and plotBearishInternalShift and (alertHighsandLows == true) alert("Lower High (LH) detected (MTF)", alert.freq_once_per_bar_close) if ((isLiquiditySweep and isLL and plotBullishInternalShift) or (isLiquiditySweep and isHH and plotBearishInternalShift)) and (alertHighsandLows == true) alert("Liquidity Sweep (LS) detected (MTF)", alert.freq_once_per_bar_close) if newBear and (alertSupplyandDemand == true) alert("New supply zone available. (MTF)", alert.freq_once_per_bar_close) if newBull and (alertSupplyandDemand == true) alert("New demand zone available. (MTF)", alert.freq_once_per_bar_close) if bullishBOSOccurred and (alertBoS == true) alert("Bullish BoS detected. (MTF)", alert.freq_once_per_bar_close) if bearishBOSOccurred and (alertBoS == true) alert("Bearish BoS detected. (MTF)", alert.freq_once_per_bar_close) if bullishMS and (alertMS == true) alert("Bullish market shift detected (MTF).", alert.freq_once_per_bar_close) if bearishMS and (alertMS == true) alert("Bearish market shift detected (MTF).", alert.freq_once_per_bar_close) if alertMode == "HTF" if isHH and plotBearishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Higher High (HH) detected (HTF)", alert.freq_once_per_bar_close) if isHL and plotBullishInternalShift and (alertHighsandLows == true) alert("Higher Low (HL) detected (HTF)", alert.freq_once_per_bar_close) if isLL and plotBullishInternalShift and not isLiquiditySweep and (alertHighsandLows == true) alert("Lower Low (LL) detected (HTF)" , alert.freq_once_per_bar_close) if isLH and plotBearishInternalShift and (alertHighsandLows == true) alert("Lower High (LH) detected (HTF)", alert.freq_once_per_bar_close) if ((isLiquiditySweep and isLL and plotBullishInternalShift) or (isLiquiditySweep and isHH and plotBearishInternalShift)) and (alertHighsandLows == true) alert("Liquidity Sweep (LS) detected (HTF)", alert.freq_once_per_bar_close) if newBear and (alertSupplyandDemand == true) alert("New supply zone available. (HTF)", alert.freq_once_per_bar_close) if newBull and (alertSupplyandDemand == true) alert("New demand zone available. (HTF)", alert.freq_once_per_bar_close) if bullishBOSOccurred and (alertBoS == true) alert("Bullish BoS detected. (HTF)", alert.freq_once_per_bar_close) if bearishBOSOccurred and (alertBoS == true) alert("Bearish BoS detected. (HTF)", alert.freq_once_per_bar_close) if bullishMS and (alertMS == true) alert("Bullish market shift detected (HTF).", alert.freq_once_per_bar_close) if bearishMS and (alertMS == true) alert("Bearish market shift detected (HTF).", alert.freq_once_per_bar_close) Pine Script® indicatorby blissfulAccoun891176
RSI Divergence + OpacityRSI + Divergences + OB/OS Opacity Fill This indicator is a streamlined enhancement of the classic Relative Strength Index (RSI), designed to preserve the familiar TradingView RSI behavior while adding visual context for momentum extremes and potential reversals. The script keeps the original RSI calculation and structure intact, ensuring consistent readings across all timeframes. Features • Standard RSI (Wilder’s RMA) Identical calculation logic to the default TradingView RSI. • Regular Divergence Detection Automatically highlights: – Bullish divergence (price lower low + RSI higher low) – Bearish divergence (price higher high + RSI lower high) Divergences are drawn directly on the RSI pane using minimal, unobtrusive visuals. • Clipped Overbought / Oversold Fill Dynamic opacity fill activates only when RSI moves beyond key levels: – Above 70 (overbought region) – Below 30 (oversold region) Fill intensity increases as RSI pushes further into extremes and fades as it returns toward the threshold. • Vertical Opacity Behavior Color remains constant per bar; only transparency changes based on RSI distance from OB/OS levels. This avoids noisy gradients and preserves chart readability. Design Philosophy The goal of this script is not to reinvent RSI, but to provide clearer visual feedback for momentum conditions while keeping the indicator lightweight and predictable. No smoothing tricks, no alternate formulas, no hidden complexity. Notes • Divergences use pivot-based logic and will naturally appear after pivots are confirmed. • Like all divergence tools, signals should be interpreted within broader market context. • Default RSI levels (70 / 30) are intentionally preserved.Pine Script® indicatorby prater188
Dual Custom EMA with SignalsThis Pine Script indicator plots two customizable Exponential Moving Averages (EMAs) on the chart and generates Buy/Sell signals when they cross each other. It helps traders identify trend changes and entry points using EMA crossover logic.Pine Script® indicatorby IndianPullbackTrader5
Support Resistance EMA ORB PROSupport & Resistance + EMA + ORB — PRO (SREO-PRO) All-in-one intraday toolkit that combines pivot-based Support/Resistance, EMA trend signals, and a session Opening Range Breakout (ORB) into a single, chart-friendly indicator. What it includes EMA Trend Flags (ST/MT/LT) Up / Down: ST EMA crossing MT EMA Buy / Sell: MT EMA crossing LT EMA Optional EMA line plots for context Support & Resistance (Pivot Levels) Auto-draws pivot Resistance and Support bands Optional break markers (B) using a volume oscillator threshold Opening Range Breakout (ORB) Builds the opening range from your session start for a configurable number of minutes (e.g., 15m) Plots ORB High/Low levels Adds ORB breakout tags on confirmed breakouts Optional RR Lines Can draw Entry / Stop / Target lines using a risk multiple Disabled by default because extended target lines may affect chart autoscale on some symbols Designed to be chart-safe Uses in-range plots and bar-anchored markers. No off-chart drawings or extreme-value plots by default. RR lines are optional and off unless you enable them. Best use Ideal for index futures, options scalping, and intraday momentum trading where you want: quick EMA trend state, clear SR structure, and a reliable ORB breakout framework. Not financial advice. Use at your own risk.Pine Script® indicatorby chandranewagetrader25
Ripster Clouds + Dashboard + Levels (v6)This indicator combines Ripster-style EMA Clouds, multi-timeframe trend tiles, RVOL, and Saty ATR trigger levels into a clean, configurable dashboard—plus optional session and prior-period levels—built for Pine Script v6. It’s designed as a chart overlay tool (not a strategy) to help visualize trend context, volatility bands, and key reference levels without clutter. What it includes 1) Ripster EMA Clouds (overlay) Multiple EMA cloud pairs (classic Ripster approach) Optional display of cloud lines and cloud fills Trend coloring based on short vs long EMA relationship 2) MTF Trend Dashboard Multi-timeframe “Bullish / Bearish / Waiting Data” tiles (ex: 1H, Daily, Weekly) Uses request.security() with non-repainting configuration (lookahead off) 3) RVOL + Candle Volume Panel Shows current candle volume and RVOL % Shows previous candle RVOL % Color-coded thresholds (ex: Red/Orange/Yellow based on RVOL strength) 4) Saty ATR Levels ATR-based trigger levels (upper/lower trigger) ±1 ATR levels and optional ±2 ATR extensions Table summary showing range vs ATR context and trigger prices 5) Optional Key Levels Premarket High/Low (session-based) After Hours High/Low (session-based) Day High/Low Previous Day High/Low Previous Week High/Low (Displayed as right-edge labeled lines; each group can be toggled independently.) View-safe behavior (prevents candle “squeeze”) To avoid TradingView candle compression on lower timeframes, the script supports a view-safe / TF gating mode: “Heavy” elements (lots of lines/plots) can be automatically limited below a minimum timeframe Right-edge labels are kept in-range (so they don’t force autoscale) How to use Use the dashboard tiles to confirm trend alignment across timeframes. Use RVOL to quickly see participation spikes. Use ATR trigger levels to identify volatility break conditions and “range vs ATR” context. Use Premarket / prior-period levels as intraday reference zones. Notes / Disclaimer This is not financial advice. This indicator does not place trades and is not a backtest strategy. Some features may be intentionally disabled on very low timeframes when view-safe mode is enabled.Pine Script® indicatorby chandranewagetrader20