Dynamic EngulfmentsSpot candle engulfments easier and set alerts for them. Dynamic to your selected timeframe. #fiblabمؤشر Pine Script®من John3verse39
Rate of Change - ROC | TR🎯 Overview Rate of Change - ROC | TR is a classic momentum oscillator that measures the percentage change in price over a specified period. Developed by Tiagorocha1989, this enhanced version of the traditional Rate of Change indicator offers dual-mode operation with moving average customization and comprehensive visual features, helping traders identify the speed of price movements, momentum shifts, and potential reversal points with clarity and precision. 🔧 How It Works The Rate of Change indicator calculates the percentage difference between the current price and the price from a specified number of periods ago. This measurement reveals whether price is accelerating (increasing ROC) or decelerating (decreasing ROC). Core Calculation Logic: The indicator calculates ROC using the standard formula: ROC = × 100 Where n is the user-defined Length ROC The resulting oscillator fluctuates around zero, with: Positive ROC values indicating that prices are higher than they were n-periods ago (upward momentum) Negative ROC values indicating that prices are lower than they were n-periods ago (downward momentum) Zero line representing no net change over the period The magnitude of the value indicates momentum strength: Large positive values → Strong upward momentum Large negative values → Strong downward momentum Values approaching zero → Weakening momentum or consolidation The indicator compares ROC to a reference line that can be either: The traditional zero level A user-defined moving average of ROC itself (ROC MA mode) ✨ Key Features 🔹 Dual Operating Modes Zero Line Mode: Classic ROC implementation where signals occur when ROC crosses above or below the zero line ROC MA Mode: Enhanced version where signals occur when ROC crosses its own moving average, providing smoother, filtered entries 🔹 Flexible Moving Average Selection Choose from six MA types for the ROC MA mode: EMA (Exponential Moving Average) for responsive signals SMA (Simple Moving Average) for smoother readings RMA (Rolling Moving Average) for weighted recent data WMA (Weighted Moving Average) for customizable weighting VWMA (Volume-Weighted Moving Average) incorporating volume HMA (Hull Moving Average) for reduced lag 🔹 Customizable ROC Parameters Length ROC: Lookback period for ROC calculation (default 35) Source ROC: Price source for calculations (default Close) 🔹 Extended Range Visualization The indicator includes gradient fills at +/-40, providing reference points for extreme momentum readings, though actual overbought/oversold levels vary by instrument. 🔹 Customizable Color Themes Eight distinct color schemes to match your charting preferences: Classic – Green for bullish, Red for bearish Modern – White for bullish, Purple for bearish Robust – Amber for bullish, Maroon for bearish Accented – Violet for bullish, Pink for bearish Monochrome – Light gray for bullish, Dark gray for bearish Moderate – Green for bullish, Red for bearish Aqua – Blue for bullish, Orange for bearish Cosmic – Pink for bullish, Purple for bearish 🔹 Comprehensive Visual Feedback Colored ROC Line: Changes color based on position relative to the reference line Signal Line: Yellow line showing zero or MA reference Gradient Fill Zones: Clear visualization of extreme momentum readings Dynamic Zone Fills: Semi-transparent fills showing when ROC is above or below the reference line Color-Coded Candles: Bars reflect current ROC bias (above or below reference) Signal Markers: Triangle up/down symbols at crossover points Live Value Display: Current ROC value shown in a floating label Trend Table: Bullish/Bearish status displayed on the chart 🔹 Ready-to-Use Alerts Built-in alert conditions trigger LONG signals on bullish crossovers and SHORT signals on bearish crossunders across both operating modes. ⚙️ Settings Summary Color Choice: Select from eight visual themes (Default: Classic) Length ROC: Lookback period for ROC calculation (Default: 35) Source ROC: Price source for calculations (Default: Close) Entry/Exit Signal: Choose between zero line or ROC MA mode (Default: Zero Line) Length MA: Moving average period for ROC MA mode (Default: 365) ROC MA Type: Moving average method for signal line (Default: EMA) 📈 Practical Applications 🔹 Trend Direction Identification The ROC line's position relative to zero indicates trend direction: ROC above zero → Bullish trend ROC below zero → Bearish trend The steepness of the slope indicates momentum strength 🔹 Zero Line Crossovers In Zero Line mode, crossovers provide momentum signals: Crossover above zero → Bullish momentum strengthening, potential trend reversal up Crossunder below zero → Bearish momentum strengthening, potential trend reversal down These are among the simplest and most intuitive trading signals 🔹 Signal Line Crossovers In ROC MA mode, crossovers between ROC and its moving average provide filtered signals: ROC crosses above its MA → Bullish signal ROC crosses below its MA → Bearish signal These signals reduce whipsaws in choppy markets 🔹 Divergence Trading ROC is excellent for spotting divergences: Bullish Divergence: Price makes lower low, ROC makes higher low → Potential upside reversal Bearish Divergence: Price makes higher high, ROC makes lower high → Potential downside reversal Divergences are most significant when occurring at extreme levels 🔹 Momentum Confirmation The slope and magnitude of ROC confirm trend strength: Rising ROC values → Strengthening bullish momentum Falling ROC values → Strengthening bearish momentum Flattening ROC → Momentum slowing, potential trend change 🔹 Centerline Rejections When ROC approaches zero but reverses before crossing, it can signal trend continuation: ROC pulls back toward zero but reverses up → Bullish continuation ROC rallies toward zero but reverses down → Bearish continuation 🔹 Multiple Timeframe Analysis Compare ROC readings across different timeframes: Higher timeframe ROC confirms primary trend direction Lower timeframe ROC identifies entry timing and short-term momentum shifts 🎯 Ideal For ✅ Trend Traders seeking to confirm trend direction and strength ✅ Momentum Traders wanting to measure the rate of price change ✅ Divergence Traders looking for early reversal signals ✅ Swing Traders capturing medium-term momentum shifts ✅ System Developers needing simple, reliable crossover logic ✅ Beginner Traders starting with one of the most intuitive indicators 📌 Key Takeaways Percentage-Based Measurement: ROC expresses momentum as a percentage, making it comparable across different price levels and instruments Dual-Mode Flexibility: Choose between classic zero-line crossovers for simplicity or MA-smoothed signals for filtered entries Unbounded Nature: Unlike RSI or Stochastic, ROC has no upper or lower limits, making it suitable for strongly trending markets Comprehensive Visualization: Color themes, gradient fills for extreme readings, candles, and labels provide immediate market awareness Divergence Capability: Excellent for spotting both regular and hidden divergences Alert-Ready: Built-in alerts for both LONG and SHORT signals across both operating modes ⚠️ Important Notes Because ROC is unbounded, the scale will vary significantly between different instruments and timeframes. The gradient fills at +/-40 are arbitrary reference points and may not represent actual overbought/oversold conditions for all instruments. The default length of 35 provides a medium-term perspective; shorter lengths (9-14) provide more responsive signals, while longer lengths identify longer-term trends. The 365-day MA default in ROC MA mode is designed for longer-term trend context on daily charts. Divergences are most reliable when they occur after extended trends. Always combine with proper risk management and additional confirmation for best results. Disclaimer: This indicator is provided for educational and informational purposes only. Past performance is not indicative of future results. Always conduct thorough testing and align with your risk management strategy before live deployment.مؤشر Pine Script®من Tiagorocha19892
Commodity Channel Index - CCI | TR🎯 Overview Commodity Channel Index - CCI | TR is a versatile momentum oscillator that measures the current price level relative to an average price over a specified period. Developed by Tiagorocha1989, this enhanced version of Donald Lambert's classic CCI indicator offers dual-mode operation with moving average customization and comprehensive visual features, helping traders identify overbought and oversold conditions, detect trend strength, and generate clear entry and exit signals. 🔧 How It Works The CCI measures the deviation of a typical price (usually the average of high, low, and close) from its statistical mean, normalized by the mean deviation. Values oscillate above and below zero, with extreme readings suggesting potential reversals. Core Calculation Logic: The indicator calculates the CCI using the standard formula: Typical Price = (High + Low + Close) / 3 SMA of Typical Price over the specified period Mean Deviation = Average of absolute differences between Typical Price and its SMA CCI = (Typical Price - SMA) / (0.015 × Mean Deviation) The resulting oscillator typically fluctuates between +300 and -300, with: Readings above +100 suggesting overbought conditions (potential reversal down) Readings below -100 suggesting oversold conditions (potential reversal up) Zero line representing the average level The indicator compares CCI to a reference line that can be either: The traditional zero level A user-defined moving average of the CCI itself (CCI MA mode) ✨ Key Features 🔹 Dual Operating Modes Zero Line Mode: Classic CCI implementation where signals occur when CCI crosses above or below the zero line CCI MA Mode: Enhanced version where signals occur when CCI crosses its own moving average, providing smoother, filtered entries 🔹 Flexible Moving Average Selection Choose from six MA types for the CCI MA mode: EMA (Exponential Moving Average) for responsive signals SMA (Simple Moving Average) for smoother readings RMA (Rolling Moving Average) for weighted recent data WMA (Weighted Moving Average) for customizable weighting VWMA (Volume-Weighted Moving Average) incorporating volume HMA (Hull Moving Average) for reduced lag 🔹 Customizable CCI Parameters Length CCI: Lookback period for CCI calculation (default 55) Source CCI: Price source for calculations (default Close) 🔹 Customizable Color Themes Eight distinct color schemes to match your charting preferences: Classic – Green for bullish, Red for bearish Modern – White for bullish, Purple for bearish Robust – Amber for bullish, Maroon for bearish Accented – Violet for bullish, Pink for bearish Monochrome – Light gray for bullish, Dark gray for bearish Moderate – Green for bullish, Red for bearish Aqua – Blue for bullish, Orange for bearish Cosmic – Pink for bullish, Purple for bearish 🔹 Comprehensive Visual Feedback Colored CCI Line: Changes color based on position relative to the reference line Signal Line: Yellow line showing zero or MA reference Gradient Fill Zones: Clear visualization of overbought (above +300) and oversold (below -300) conditions Dynamic Zone Fills: Semi-transparent fills showing when CCI is above or below the reference line Color-Coded Candles: Bars reflect current CCI bias (above or below 50) Signal Markers: Triangle up/down symbols at crossover points Live Value Display: Current CCI value shown in a floating label Trend Table: Bullish/Bearish status displayed on the chart 🔹 Ready-to-Use Alerts Built-in alert conditions trigger LONG signals when CCI is above zero/bullish, and SHORT signals when CCI is below zero/bearish. ⚙️ Settings Summary Color Choice: Select from eight visual themes (Default: Classic) Length CCI: Lookback period for CCI calculation (Default: 55) Source CCI: Price source for calculations (Default: Close) Entry/Exit Signal: Choose between zero line or CCI MA mode (Default: Zero Line) Length MA: Moving average period for CCI MA mode (Default: 365) CCI MA Type: Moving average method for signal line (Default: EMA) 📈 Practical Applications 🔹 Overbought/Oversold Detection Traditional CCI usage identifies extreme conditions: Readings above +100 suggest overbought conditions and potential reversal down Readings below -100 suggest oversold conditions and potential reversal up The indicator provides gradient fills in these zones for visual clarity The 300-level fills provide even more extreme zone visualization 🔹 Zero Line Crossovers In Zero Line mode, crossovers provide momentum signals: Crossover above zero → Bullish momentum strengthening Crossunder below zero → Bearish momentum strengthening These signals often align with trend direction changes 🔹 Signal Line Crossovers In CCI MA mode, crossovers between CCI and its moving average provide filtered signals that reduce whipsaws in ranging markets while maintaining sensitivity in trends. 🔹 Divergence Trading CCI is excellent for spotting divergences: Bullish Divergence: Price makes lower low, CCI makes higher low → Potential upside reversal Bearish Divergence: Price makes higher high, CCI makes lower high → Potential downside reversal Divergences are most significant when occurring at extreme levels (+100/-100) 🔹 Centerline Confirmation The 50 level (used for candle coloring) provides additional context: CCI above 50 → Stronger bullish bias CCI below 50 → Stronger bearish bias This can be used as a filter for other signals 🔹 Trend Strength Assessment The magnitude of CCI readings indicates trend strength: Readings consistently above +100 suggest strong uptrend Readings consistently below -100 suggest strong downtrend Fluctuations around zero suggest ranging conditions 🔹 Multiple Timeframe Analysis The normalized nature of CCI makes it suitable for comparing readings across different timeframes, helping identify confluence for stronger trade setups. 🎯 Ideal For ✅ Mean Reversion Traders seeking overbought and oversold opportunities ✅ Divergence Traders looking for hidden reversal signals ✅ Momentum Traders wanting to identify trend strength and direction ✅ Swing Traders capturing medium-term momentum shifts ✅ Commodity and Forex Traders (originally designed for commodities but works across all markets) 📌 Key Takeaways Dual-Mode Flexibility: Choose between classic zero-line crossovers for traditional signals or MA-smoothed signals for filtered entries Comprehensive Visualization: Color themes, gradient fills for overbought/oversold zones, candles, and labels provide immediate market awareness Divergence Capability: Excellent for spotting both regular and hidden divergences that signal trend reversals or continuations Extended Range Visualization: The 300-level gradient fills provide clear identification of extreme conditions Alert-Ready: Built-in alerts for both LONG and SHORT signals ⚠️ Important Notes In strong trends, CCI can remain in overbought or oversold territory for extended periods, so traditional overbought/oversold signals should be used with caution. The default length of 55 is longer than traditional CCI settings (typically 20), making this version more suitable for medium to longer-term trend identification. The 365-day MA default in CCI MA mode is designed for longer-term trend context on daily charts. Divergences are most reliable when they occur at extreme readings (above +100 or below -100). Always combine with proper risk management and additional confirmation for best results. Disclaimer: This indicator is provided for educational and informational purposes only. Past performance is not indicative of future results. Always conduct thorough testing and align with your risk management strategy before live deployment.مؤشر Pine Script®من Tiagorocha1989تم تحديثه 13
Vector Radius PBR ScalingVector Radius PBR Scaling — √Price Geometric Chart Calibration WHAT THIS INDICATOR DOES This indicator calculates a theoretically derived PBR (Points Per Bar) scaling value based on the concept of √price space geometry. You select a swing high and low using date inputs, and it outputs PBR values that can be used with TradingView's chart scaling for experimental geometric analysis with circle and arc tools. It is designed for students and researchers of geometric market theory who want to explore how √price transformations affect chart scaling and circle geometry. THE CONCEPT Standard PBR divides the price range by the number of bars. This treats all price levels equally — a $100 move at $50 is handled the same as a $100 move at $50,000. This indicator explores an alternative approach: what if price is better understood as a radial distance from zero? In this theoretical framework, √Price represents the radius — the distance from zero to any price level. The difference √H - √L represents the distance a move covers in this curved space, which is not the same as taking the square root of the range √(H-L). The velocity through this space, measured per bar, produces a scaling factor that accounts for the absolute price level of the instrument. The formula explored is: PBR = ((√H - √L) / B) × Radius Where H is the high price, L is the low price, B is the number of bars, and Radius is either √H or √Mid depending on the mode selected. TWO MODES Impulse (× √H) scales by the outer radius, which is the maximum price reached during the swing. The theory suggests this may suit trending or impulsive market conditions where the high represents peak energy expression. Equilibrium (× √Mid) scales by the midpoint radius, where Mid = (H + L) / 2. The theory suggests this may suit ranging or consolidating conditions where balance around the centre of the move matters more than its extremes. WHY √H IS USED FOR BOTH UP AND DOWN LEGS In this geometric framework, √H represents the outer boundary of the swing regardless of direction. Whether price moved up to a high or down from a high, the maximum price level defines the largest radius of the system. This is analogous to how a pendulum's behaviour is governed by its maximum displacement, not its direction of travel. WHAT THIS DOES NOT DO This indicator does not predict where price will go. It does not identify support or resistance levels. It does not generate trading signals. It does not guarantee that circles or arcs will align with future price action. It does not replace proper risk management or trading discipline. Any observed alignments between geometric projections and actual price behaviour may be coincidental. Markets are influenced by fundamentals, sentiment, liquidity, and countless other factors that no geometric formula can fully capture. HOW TO USE (FOR RESEARCH) Add the indicator to your chart. Select start and end dates around a swing you want to study. Read the PBR values from the table. Experiment with entering the PBR into your chart scaling settings. Draw circles or arcs and observe. Do not treat any observations as predictive. TABLE OUTPUT The indicator displays the high, low, and mid prices of the selected range, the price range and bar count, the √H, √L, and √Mid values, the root speed (√H - √L) / B, and the final PBR for both Impulse and Equilibrium modes. WHO THIS IS FOR This is for researchers and students of geometric market analysis who want a tool to quickly calculate √price-based scaling values. It assumes familiarity with PBR scaling, square-the-range concepts, and circle or arc geometry on price charts. If you are not familiar with these concepts, this indicator will not be useful to you out of the box. It is not a plug-and-play trading tool. INDICATOR IN ACTION NOTES Works on all timeframes and all instruments. The formula uses absolute price levels, not just the range, so the same dollar move at different price levels produces different PBR values. This is a theoretical exploration, not a proven trading methodology. No representation is made about the accuracy, reliability, or profitability of any analysis derived from this tool. This is an educational tool for geometric research. It is not financial advice. Do not trade based solely on geometric projections. Always use proper risk management. DISCLAIMER: This indicator is strictly educational and experimental. It is based on geometric theory applied to price charts. It does not generate buy or sell signals, it does not predict future price movement, and it does not guarantee any outcome. Use at your own risk. Past geometric alignments do not imply future alignments. This is a research and study tool only. مؤشر Pine Script®من geneclash8
Early Momentum Build Detector V2🔥 Early Momentum Build Detector (15m+ Optimized) 📌 What This Indicator Does Early Momentum Build Detector is designed to identify the ignition phase of momentum — the moment when a stock transitions from consolidation into expansion. Instead of reacting late to moving average crosses, this tool detects: • Break of recent structure • EMA spread expansion (momentum acceleration starting) • ATR expansion (volatility ignition) • Volume participation It highlights the earliest statistically favorable point where momentum begins to build. Tiny, non-intrusive visuals are plotted slightly away from price for clean chart structure. 🧠 The Core Idea Momentum doesn’t start with a big candle. It starts when: - Structure breaks - Moving averages begin separating - Volatility expands - Participation increases This indicator combines all four into one clean signal. - No clutter. - No oscillators. - No lagging confirmation crosses. 🎯 Who It’s For • 15-minute, 30-minute, and 1-hour traders • Intraday and short swing traders • Breakout and expansion traders • Traders who prefer price-action logic over heavy indicators Not designed for scalping under 5 minutes. 🚀 How It Helps Traders ✔ Detects early trend ignition ✔ Filters many false breakouts ✔ Avoids late EMA cross entries ✔ Keeps chart visually clean ✔ Provides alert capability This allows traders to enter closer to the start of expansion rather than chasing extended candles. 📈 How To Use It Effectively Bullish Setup - Signal appears below candle - Confirm higher timeframe bias (optional but recommended) - Use in conjunction with MACD/RSI/CVD/ADL for confluences - Enter on signal candle close - Stop below recent structure low - Target 2R+ or trail with EMA Bearish Setup Same logic in reverse. ⚠️ Important Notes • Works best in stocks with liquidity • Avoid extremely low volume environments • Strong news candles may trigger signals — manage risk accordingly • Always use proper position sizing This is a momentum ignition detector — not a full trading system. 🔔 Alerts Custom alert conditions included for both bullish and bearish early momentum. You can set alerts to: “Once Per Bar Close” for cleaner execution. 💡 Trading Philosophy Behind It Most traders enter too late — at the EMA cross or after a large breakout candle. This tool focuses on: - Structure break + acceleration shift - That’s where asymmetric risk/reward lives.مؤشر Pine Script®من arupnj201810
High-Low Range Window//@version=6 indicator("High-Low Range Window", overlay = false) مؤشر Pine Script®من estefania_vega3
Globus Capitas EMA 9 & EMA 14 RibbonGLOBUS CAPITAS EMA 9 & EMA 14 RIBBON INDICATOR The EMA 9 & 14 Ribbon Indicator is a precision built trend visualization tool designed for modern intraday traders and scalpers who demand clarity speed and structure in fast moving markets. This indicator leverages the power of two exponential moving averages EMA 9 and EMA 14 and converts their interaction into a dynamic color ribbon allowing traders to instantly identify trend direction momentum shifts and potential trade bias without lag or clutter. HOW THE INDICATOR WORKS At its core the indicator tracks the relationship between EMA 9 Fast EMA reacts quickly to price changes EMA 14 Slow EMA provides short term trend stability Instead of relying only on line crossovers the indicator fills the area between both EMAs with a contextual ribbon making trend conditions visually obvious at a glance. RIBBON COLOR LOGIC SMART VISUAL FEEDBACK Green Ribbon Bullish Bias EMA 9 crosses and stays above EMA 14 Indicates increasing buying momentum Favors long positions and buy side setups Red Ribbon Bearish Bias EMA 14 crosses and stays above EMA 9 Indicates increasing selling pressure Favors short positions and sell side setups Neutral Zone Flat Market EMAs are tightly compressed Signals low momentum and consolidation Best avoided unless confirmed by volume or structure WHY THIS INDICATOR STANDS OUT 1 Instant trend recognition no guesswork no lag 2 Clean and minimal design ideal for scalping charts 3 Psychology friendly reduces emotional decision making 4 Works across all markets indices gold forex crypto options buying options selling 5 Works with all minute timeframes This ribbon structure allows traders to stay aligned with price flow instead of reacting late to cross signals. BEST USE CASES Intraday trading and scalping Trend continuation entries Pullback trades in strong trends Directional bias confirmation Trade filtering with price action or structure Pro Tip Combine this indicator with key support and resistance levels liquidity zones or VWAP for higher probability setups. TRADING PHILOSOPHY BEHIND IT This indicator is built around one core principle Trade what the market is doing not what you think it should do The EMA Ribbon removes noise and bias helping traders Follow trends objectively Avoid counter trend emotional trades Protect capital during choppy conditions IMPORTANT NOTES This is not a standalone system Best used as a trend filter not a signal generator Avoid trading during major news events without confirmation DISCLAIMER This indicator is provided strictly for educational purposes. It does not offer buy or sell recommendations. Trading involves risk always manage your position size use stop losses and consult a certified financial advisor if needed. Globus Capitas is not responsible for any profit or loss. FINAL WORD The Globus Capitas EMA 9 & 14 Ribbon is a clarity tool for serious traders designed to keep you aligned with momentum disciplined with entries and focused on capital protection. Trade smart. Stay aligned. Trade what you see. Follow the trend. Protect capital. Let the chart lead.مؤشر Pine Script®من globuscapitas225
XAUUSD Institutional OB MTF v1 Zeyno First) XAUUSD Institutional OB MTF v2 (Daily S/R + Candle Mode | 2R / 5R System) This strategy is designed specifically for XAUUSD (Gold) using a multi-timeframe institutional concept. 🔎 Strategy Logic This system combines: • Daily Support & Resistance (PDH / PDL / PDC) • 1H Trend Direction Filter • 15m Entry Confirmation • Optional Lower Timeframe Scalp Confirmation (5m / 1m) • Engulfing + Strong Body Candle Confirmation • Momentum (RSI-based strength filter) • Split Take Profit system (2R / 5R) ⸻ 📊 How It Works 1️⃣ Trend is confirmed on 1H timeframe 2️⃣ Price reacts from Daily S/R zone 3️⃣ Entry confirmed on 15m with candle confirmation 4️⃣ Optional scalp entries on 5m / 1m if momentum appears 5️⃣ Position split into: • TP1 = 2R • TP2 = 5R • Dynamic Stop Loss based on ATR ⸻ ⚡ Scalp Mode If strong momentum appears after main entry: • Additional scalp trades may trigger • Scalp trades are independent from main position • Can repeat if conditions repeat ⸻ ⚠ Risk Management Recommended: • 1% – 2% risk per trade • Avoid trading during high-impact news • Best performance on London & NY session volatility ⸻ 🎯 Best Timeframes • Trend: 1H • Entry: 15m • Confirmation: 5m / 1m ⸻استراتيجية الذهب المؤسسية متعددة الفريمات تعتمد هذه الاستراتيجية على مفهوم السيولة المؤسسية باستخدام: • دعم ومقاومة يومية • تحديد الاتجاه من فريم الساعة • دخول من فريم 15 دقيقة • تأكيد شموع ابتلاعية + جسم قوي • فلتر زخم RSI • تقسيم الهدف إلى 2R و 5R • وقف خسارة ديناميكي حسب ATR ⸻ آلية العمل 1️⃣ تحديد الاتجاه من الساعة 2️⃣ انتظار ارتداد أو كسر وتثبيت عند دعم/مقاومة يومية 3️⃣ تأكيد شموع على 15 دقيقة 4️⃣ دخول سكالب إضافي عند ظهور زخم قوي على 5 أو 1 دقيقة 5️⃣ تقسيم الصفقة إلى هدفين ⸻ إدارة رأس المال • مخاطرة لا تتجاوز 1–2% لكل صفقة • تجنب الأخبار القوية • أفضل أداء في جلسة لندن ونيويورك استراتيجية Pine Script®من Mzz1013
ATR Alpha: Volatility-Adjusted ExitsOverview The ATR Volatility Guardian is a precision risk management tool designed to filter out market noise and provide mathematically sound exit levels. Instead of using arbitrary percentages, this indicator calculates stops and targets based on the asset's current Average True Range (ATR), ensuring your trade has enough "breathing room" to survive normal volatility. Key Features: Dynamic Volatility Monitoring: Displays the real-time ATR value and the Volatility Percentage (ATR/Price), allowing you to instantly gauge the risk profile of any asset. Noise-Filtered Stop Loss: Automatically calculates a suggested Stop Loss based on a customizable ATR multiplier (defaulted to 1.05 for tight risk management). Volatility-Based Targets: Provides a projected take-profit level using a 1:2 Risk/Reward ratio derived from the current ATR. Clean UI: All critical data is streamed directly to the indicator's status line to keep your chart clutter-free and professional. How to use: Check Volatility %: If the percentage is exceptionally high (e.g., >15%), consider reducing your position size to account for the increased swing range. Set Your Stop: Use the "Stop Loss" value as your technical floor. This level represents the boundary where price action exceeds "normal" expected volatility. مؤشر Pine Script®من davidamar19883
Strong Push + Engulfing# Strong Push + Engulfing – TradingView Indicator Description Copy one of the blocks below into your indicator's description field on TradingView (e.g. when publishing or in settings). --- ## Short (Overview) **Strong Push + Engulfing** Identifies reversal setups where a strong push candle (body ≥ average × multiplier) is engulfed by a larger candle in the opposite direction. Long: bearish push → bullish engulfing. Short: bullish push → bearish engulfing. Entry at close of the engulfing candle. Configurable lookback, body ratio, and optional ATR filter. No repaint. --- ## Medium (Publishing) **Strong Push + Engulfing** A candlestick pattern indicator that combines **Strong Push** candles with **Engulfing** patterns to spot potential reversals. **Concept:** A strong push candle shows momentum in one direction. When the next candle engulfs it in the opposite direction, it suggests a reversal. The engulfing candle confirms the shift. **Long Setup:** Bearish push candle → bullish engulfing candle → entry at close of the engulfing candle. **Short Setup:** Bullish push candle → bearish engulfing candle → entry at close of the engulfing candle. **Strong Push Definition:** A candle whose body length is at least X times the average body length over the lookback period (default: 1.5× over 20 bars). **Engulfing Definition:** The current candle's body completely contains the previous candle's body (open/close range). The engulfing candle must be at least as large as the push candle (configurable ratio). **Settings:** - Lookback (default 20): Periods for average body calculation - Body multiplier (default 1.5): Push candle must be ≥ average × multiplier - Engulfing body ratio (default 1.0): Engulfing candle must be ≥ push candle × ratio - Optional ATR filter: Only show signals in higher volatility **Visuals:** Arrows, labels, background highlight, and optional box around the 2-candle setup. Customizable colors and transparency. **Repaint:** None. Signals are confirmed at bar close. --- ## Full (Detailed) **Strong Push + Engulfing** A candlestick pattern indicator that identifies reversal setups by combining two concepts: **Strong Push** candles and **Engulfing** patterns. --- ### How It Works 1. **Strong Push Candle (Bar 1)** A candle with an unusually long body compared to recent bars. Body length = |Close − Open|. The candle qualifies if: `body ≥ SMA(body, lookback) × multiplier` Default: body at least 1.5× the 20-bar average. 2. **Engulfing Candle (Bar 2)** The next candle must engulf the push candle in the opposite direction: - **Bullish engulfing:** Current candle is green, open ≤ prior close, close ≥ prior open (body fully contains prior body). - **Bearish engulfing:** Current candle is red, open ≥ prior close, close ≤ prior open (body fully contains prior body). The engulfing candle must be at least as large as the push candle (configurable). 3. **Entry** At the close of the engulfing candle (bar 2). --- ### Setups | Direction | Bar 1 (Push) | Bar 2 (Engulfing) | Entry | |-----------|--------------|-------------------|-------| | **Long** | Bearish | Bullish | Close of bar 2 | | **Short** | Bullish | Bearish | Close of bar 2 | --- ### Inputs **Strong Push** - Lookback (default 20): Periods for average body - Body multiplier (default 1.5): Push threshold - ATR filter (optional): Minimum volatility **Engulfing** - Min. body ratio (default 1.0): Engulfing candle size vs. push candle **Display** - Arrows, labels, background, box - Colors and transparency --- ### Repaint Signals are generated only after the engulfing candle closes. No repaint or lookahead. --- ### Credits Lean Strategy Blueprint مؤشر Pine Script®من Lean_Trading4
Price Action Concepts +2// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org // © iss2k/StratifyTrade – modified to add lines, fixed levels & Heikin‑Ashi //@version=5 indicator("Price Action Concepts +", shorttitle = "PA Concepts+", overlay = true, max_lines_count = 500, max_labels_count = 500, max_boxes_count = 500) //-----------------------------------------------------------------------------{ //Boolean set //-----------------------------------------------------------------------------{ s_bos = 0 s_choch = 1 i_bos = 2 i_choch = 3 i_pp_choch = 4 green_candle = 5 red_candle = 6 boolean = array.from( false // s_bos , false // s_choch , false // i_bos , false // i_choch , false // i_pp_choch , false // up , false // dn ) //-----------------------------------------------------------------------------{ // User inputs //-----------------------------------------------------------------------------{ // // //==> Market Structure show_swing_ms = input.string ("All" , "Swing " , inline = "1", group = "MARKET STRUCTURE" , options = ) show_internal_ms = input.string ("All" , "Internal" , inline = "2", group = "MARKET STRUCTURE" , options = ) internal_r_lookback = input.int (5 , "" , inline = "2", group = "MARKET STRUCTURE" , minval = 2) swing_r_lookback = input.int (50 , "" , inline = "1", group = "MARKET STRUCTURE" , minval = 2) plotcandle_bool = input.bool (false , "Plotcandle" , inline = "3", group = "MARKET STRUCTURE" , tooltip = "Plot a better coloring chart (require disable the current ticker)") barcolor_bool = input.bool (false , "Bar Color" , inline = "4", group = "MARKET STRUCTURE" , tooltip = "Normal bar coloring") internal_l_lookback = math.round (internal_r_lookback) swing_l_lookback = (swing_r_lookback ) i_ms_up_bos = input.color (#42bda8 , "" , inline = "2", group = "MARKET STRUCTURE") i_ms_up_choch = input.color (#056656 , "" , inline = "2", group = "MARKET STRUCTURE") i_ms_dn_bos = input.color (#ff5252 , "" , inline = "2", group = "MARKET STRUCTURE") i_ms_dn_choch = input.color (#b22833 , "" , inline = "2", group = "MARKET STRUCTURE") s_ms_up_bos = input.color (#42bda8 , "" , inline = "1", group = "MARKET STRUCTURE") s_ms_up_choch = input.color (#056656 , "" , inline = "1", group = "MARKET STRUCTURE") s_ms_dn_bos = input.color (#ff5252 , "" , inline = "1", group = "MARKET STRUCTURE") s_ms_dn_choch = input.color (#b22833 , "" , inline = "1", group = "MARKET STRUCTURE") // // //==> PHL lvl_daily = input.bool (false , "Day " , inline = "1", group = "HIGHS & LOWS MTF") lvl_weekly = input.bool (false , "Week " , inline = "2", group = "HIGHS & LOWS MTF") lvl_monthly = input.bool (false , "Month" , inline = "3", group = "HIGHS & LOWS MTF") lvl_yearly = input.bool (false , "Year " , inline = "4", group = "HIGHS & LOWS MTF") css_d = input.color (color.blue , "" , inline = "1", group = "HIGHS & LOWS MTF") css_w = input.color (color.blue , "" , inline = "2", group = "HIGHS & LOWS MTF") css_m = input.color (color.blue , "" , inline = "3", group = "HIGHS & LOWS MTF") css_y = input.color (color.blue , "" , inline = "4", group = "HIGHS & LOWS MTF") s_d = input.string ('⎯⎯⎯' , '' , inline = '1', group = 'HIGHS & LOWS MTF' , options = ) s_w = input.string ('⎯⎯⎯' , '' , inline = '2', group = 'HIGHS & LOWS MTF' , options = ) s_m = input.string ('⎯⎯⎯' , '' , inline = '3', group = 'HIGHS & LOWS MTF' , options = ) s_y = input.string ('⎯⎯⎯' , '' , inline = '4', group = 'HIGHS & LOWS MTF' , options = ) // // //==> Volumetric Order Blocks ob_show = input.bool (true , "Show Last " , inline = "1", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Display volumetric order blocks on the chart Ammount of volumetric order blocks to show") ob_num = input.int (2 , "" , inline = "1", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Orderblocks number", minval = 1, maxval = 10) ob_metrics_show = input.bool (true , "Internal Buy/Sell Activity" , inline = "2", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Display volume metrics that have formed the orderblock") css_metric_up = input.color (color.new(color.teal, 50) , " " , inline = "2", group = "VOLUMETRIC ORDER BLOCKS") css_metric_dn = input.color (color.new(color.red , 50) , "" , inline = "2", group = "VOLUMETRIC ORDER BLOCKS") ob_swings = input.bool (false , "Swing Order Blocks" , inline = "a", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Display swing volumetric order blocks") css_swing_up = input.color (color.new(#42bda8, 40) , " " , inline = "a", group = "VOLUMETRIC ORDER BLOCKS") css_swing_dn = input.color (color.new(#ff5252, 40) , "" , inline = "a", group = "VOLUMETRIC ORDER BLOCKS") ob_lookback_bool = input.bool (false , "Lenght " , inline = "3", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = " Use the lenght period to determine the lowest/highest point of the orderblock creation Use the last opposite candle to determine the orderblock creation") ob_filter = input.string ("None" , "Filtering " , inline = "d", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Filter out volumetric order blocks by BOS/CHoCH/CHoCH+", options = ) ob_looback = input.int (5 , "" , inline = "3", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Lookback to find lowest point for the construction of the volumetric order blocks") ob_mitigation = input.string ("Absolute" , "Mitigation " , inline = "4", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Trigger to remove volumetric order blocks", options = ) ob_timeframe = input.timeframe ("" , "Timeframe " , inline = "5", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Timeframe of the volumetric order blocks") use_grayscale = input.bool (true , "Grayscale" , inline = "6", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Use gray as basic order blocks color") use_show_metric = input.bool (true , "Show Metrics" , inline = "7", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Show volume associated with the orderblock and his relevance") use_middle_line = input.bool (true , "Show Middle-Line" , inline = "8", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Show mid-line order blocks") use_overlap = input.bool (true , "Hide Overlap" , inline = "9", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = "Hide overlapping order blocks") use_overlap_method = input.string ("Previous" , "Overlap Method " , inline = "Z", group = "VOLUMETRIC ORDER BLOCKS" , tooltip = " Preserve the most recent volumetric order blocks Preserve the previous volumetric order blocks", options = ) ob_bull_css = input.color (color.new(color.teal, 90) , "" , inline = "1", group = "VOLUMETRIC ORDER BLOCKS") ob_bear_css = input.color (color.new(color.red , 90) , "" , inline = "1", group = "VOLUMETRIC ORDER BLOCKS") // // //==> Premium/Discount Zone show_lbl = input.bool (false , "Show swing point" , inline = "1", group = "High and Low" , tooltip = "Display swing point") show_mtb = input.bool (false , "Show High/Low/Equilibrium" , inline = "2", group = "High and Low" , tooltip = "Display Strong/Weak High And Low and Equilibrium") toplvl = input.color (color.red , "Premium Zone " , inline = "3", group = "High and Low") midlvl = input.color (color.white , "Equilibrium Zone" , inline = "4", group = "High and Low") btmlvl = input.color (color.teal , "Discount Zone " , inline = "5", group = "High and Low") // // //==> FVG fvg_enable = input.bool (false , "FVG " , inline = "1", group = "FVG" , tooltip = "Display fair value gap") fvg_upcss = input.color (color.new(color.aqua, 80) , "" , inline = "1", group = "FVG") fvg_dncss = input.color (color.new(color.red , 80) , "" , inline = "1", group = "FVG") fvg_extend = input.int (10 , "Extend FVG" , inline = "2", group = "FVG" , tooltip = "Extend FVG") fvg_src = input.string ("Close" , "Mitigation " , inline = "3", group = "FVG" , tooltip = " Use the close of the body as trigger Use the extreme point of the body as trigger", options = ) fvg_tf = input.timeframe ("" , "Timeframe " , inline = "4", group = "FVG" , tooltip = "Timeframe of the fair value gap") // // //==> EXTRA SETTINGS (added for picture 15 look) show_ob_lines = input.bool (true , "Show OB Lines (instead of boxes)", group = "EXTRA SETTINGS") line_extend_bars = input.int (50 , "Line Extension (bars)" , group = "EXTRA SETTINGS") show_fixed_lines = input.bool (false , "Show Fixed Price Levels" , group = "EXTRA SETTINGS") fixed_prices = input.string ("4983.772,4982,4980,4978.74,4979,4975.276,4974.5,4972,4971,4969.024", "Fixed Prices (comma)", group = "EXTRA SETTINGS") fixed_line_color = input.color (color.gray , "Fixed Line Color" , group = "EXTRA SETTINGS") show_heikin_ashi = input.bool (false , "Overlay Heikin‑Ashi" , group = "EXTRA SETTINGS") // // //==> Utility Colors t = color.t (ob_bull_css) invcol = color.new (color.white , 100) switch use_grayscale true => ob_bull_css := color.gray, ob_bear_css := color.gray => na //-----------------------------------------------------------------------------{ // Switch market strcture visuals //-----------------------------------------------------------------------------{ switch show_swing_ms "All" => boolean.set(s_bos, true ), boolean.set(s_choch, true ) "CHoCH" => boolean.set(s_bos, false), boolean.set(s_choch, true ) "BOS" => boolean.set(s_bos, true ), boolean.set(s_choch, false) "None" => boolean.set(s_bos, false), boolean.set(s_choch, false) => na switch show_internal_ms "All" => boolean.set(i_bos, true ), boolean.set(i_choch, true ), boolean.set(i_pp_choch, true ) "CHoCH" => boolean.set(i_bos, false), boolean.set(i_choch, true ), boolean.set(i_pp_choch, false) "BOS" => boolean.set(i_bos, true ), boolean.set(i_choch, false), boolean.set(i_pp_choch, false) "CHoCH+" => boolean.set(i_bos, false), boolean.set(i_choch, false), boolean.set(i_pp_choch, true ) "None" => boolean.set(i_bos, false), boolean.set(i_choch, false), boolean.set(i_pp_choch, false) => na //-----------------------------------------------------------------------------{ // Custom Type (renamed from 'bar' to 'BarData') //-----------------------------------------------------------------------------{ type BarData float o = open float c = close float h = high float l = low float v = volume int n = bar_index int t = time string xt = xloc.bar_time string xn = xloc.bar_index // fixed typo: was yloc.bar_index type bin float i_hpoint float i_lpoint int i_nBull int i_nBear float s_hpoint float s_lpoint int s_nBull int s_nBear float up_ms_logs float dn_ms_logs string i_bulltxt string i_beartxt type ob float up_vol float up_top float up_bottom int up_current_time int up_last_time int up_n float dn_vol float dn_top float dn_bottom int dn_current_time int dn_last_time int dn_n float metric_up float metric_dn type Zphl line top line bottom label top_label label bottom_label bool stopcross bool sbottomcross bool itopcross bool ibottomcross string txtup string txtdn float topy float bottomy float topx float bottomx float tup float tdn int tupx int tdnx float itopy float itopx float ibottomy float ibottomx type tfvg box bull_max box bull_min box bear_max box bear_min //-----------------------------------------------------------------------------{ // Type set //-----------------------------------------------------------------------------{ BarData b = BarData.new() // updated to use BarData // ---- Heikin‑Ashi calculation (if overlay is on) ---- var float ha_open = na var float ha_close = na float ha_high = na float ha_low = na if show_heikin_ashi ha_close := (open + high + low + close) / 4 ha_open := na(ha_open ) ? (open + close) / 2 : (ha_open + ha_close ) / 2 ha_high := math.max(high, ha_open, ha_close) ha_low := math.min(low , ha_open, ha_close) // ---------------------------------------------------- var pp = bin.new( array.new< float >(1, na) , array.new< float >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) , array.new< string >(1, na) , array.new< string >(1, na) ) var obv = ob.new( array.new< float >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< int >(1, na) , array.new< float >(1, na) , array.new< float >(1, na) ) var phl = Zphl.new( na , na , label.new(na , na , color = invcol , textcolor = i_ms_dn_bos , style = label.style_label_down , size = size.tiny , text = "") , label.new(na , na , color = invcol , textcolor = i_ms_up_bos , style = label.style_label_up , size = size.tiny , text = "") , true , true , true , true , "" , "" , 0 , 0 , 0 , 0 , high , low , 0 , 0 , 0 , 0 , 0 , 0 ) var fvg = tfvg.new( array.new() , array.new() , array.new() , array.new() ) var msline = array.new(0) // ---- Additional arrays for lines/labels (for OB lines) ---- var line ob_top_lines = array.new() var line ob_bottom_lines = array.new() var line ob_mid_lines = array.new() var label ob_labels = array.new() // ---------------------------------------------------------- obsec(float src) => id = request.security("", ob_timeframe, src) id lstyle(style) => out = switch style '⎯⎯⎯' => line.style_solid '----' => line.style_dashed '····' => line.style_dotted zhl(len)=> upper = ta.highest(len) lower = ta.lowest(len) var float out = 0 out := b.h > upper ? 0 : b.l < lower ? 1 : out top = out == 0 and out != 0 ? b.h : 0 btm = out == 1 and out != 1 ? b.l : 0 = zhl(swing_r_lookback ) = zhl(internal_r_lookback) mtfphl(h, l ,tf ,css, pdhl_style) => var line hl = line.new( na , na , na , na , xloc = xloc.bar_time , color = css , style = lstyle(pdhl_style) ) var line ll = line.new( na , na , na , na , xloc = xloc.bar_time , color = css , style = lstyle(pdhl_style) ) var label lbl = label.new( na , na , xloc = xloc.bar_time , text = str.format('P{0}L', tf) , color = invcol , textcolor = css , size = size.small , style = label.style_label_left ) var label hlb = label.new( na , na , xloc = xloc.bar_time , text = str.format('P{0}H', tf) , color = invcol , textcolor = css , size = size.small , style = label.style_label_left ) hy = ta.valuewhen(h != h , h , 1) hx = ta.valuewhen(h == high , time , 1) ly = ta.valuewhen(l != l , l , 1) lx = ta.valuewhen(l == low , time , 1) if barstate.islast extension = time + (time - time ) * 50 // difference in time line.set_xy1(hl , hx , hy) line.set_xy2(hl , extension , hy) label.set_xy(hlb, extension , hy) line.set_xy1(ll , lx , ly) line.set_xy2(ll , extension , ly) label.set_xy(lbl, extension , ly) upphl(trend) => var label lbl = label.new( na , na , color = invcol , textcolor = toplvl , style = label.style_label_down , size = size.small ) if top phl.stopcross := true phl.txtup := top > phl.topy ? "HH" : "LH" if show_lbl topl = label.new( b.n - swing_r_lookback , top , phl.txtup , color = invcol , textcolor = toplvl , style = label.style_label_down , size = size.small ) line.delete(phl.top ) phl.top := line.new( b.n - swing_r_lookback , top , b.n , top , color = toplvl) phl.topy := top phl.topx := b.n - swing_r_lookback phl.tup := top phl.tupx := b.n - swing_r_lookback if itop phl.itopcross := true phl.itopy := itop phl.itopx := b.n - internal_r_lookback phl.tup := math.max(high, phl.tup) phl.tupx := phl.tup == high ? b.n : phl.tupx if barstate.islast line.set_xy1( phl.top , phl.tupx , phl.tup ) line.set_xy2( phl.top , b.n + 50 , phl.tup ) label.set_x( lbl , b.n + 50 ) label.set_y( lbl , phl.tup ) dist = math.abs((phl.tup - close) / close) * 1000 label.set_text (lbl, trend < 0 ? "Strong High" + " (" + str.tostring(math.round(dist,0)) + "%)" : "Weak High" + " (" + str.tostring(math.round(dist,0)) + "%)") dnphl(trend) => var label lbl = label.new( na , na , color = invcol , textcolor = btmlvl , style = label.style_label_up , size = size.small ) if btm phl.sbottomcross := true phl.txtdn := btm > phl.bottomy ? "HH" : "LH" if show_lbl btml = label.new( b.n - swing_r_lookback , btm, phl.txtdn , color = invcol , textcolor = btmlvl , style = label.style_label_up , size = size.small ) line.delete(phl.bottom ) phl.bottom := line.new( b.n - swing_r_lookback , btm , b.n , btm , color = btmlvl ) phl.bottomy := btm phl.bottomx := b.n - swing_r_lookback phl.tdn := btm phl.tdnx := b.n - swing_r_lookback if ibtm phl.ibottomcross := true phl.ibottomy := ibtm phl.ibottomx := b.n - internal_r_lookback phl.tdn := math.min(low, phl.tdn) phl.tdnx := phl.tdn == low ? b.n : phl.tdnx if barstate.islast line.set_xy1( phl.bottom , phl.tdnx , phl.tdn ) line.set_xy2( phl.bottom , b.n + 50 , phl.tdn ) label.set_x( lbl , b.n + 50 ) label.set_y( lbl , phl.tdn ) dist = math.abs((phl.tdn - close) / close) * 1000 label.set_text (lbl, trend > 0 ? "Strong Low" + " (" + str.tostring(math.round(dist,0)) + "%)" : "Weak Low" + " (" + str.tostring(math.round(dist,0)) + "%)") midphl() => avg = math.avg(phl.bottom.get_y2(), phl.top.get_y2()) var line l = line.new( y1 = avg , y2 = avg , x1 = b.n - swing_r_lookback , x2 = b.n + 50 , color = midlvl , style = line.style_solid ) var label lbl = label.new( x = b.n + 50 , y = avg , text = "Equilibrium" , style = label.style_label_left , color = invcol , textcolor = midlvl , size = size.small ) if barstate.islast more = (phl.bottom.get_x1() + phl.bottom.get_x2()) > (phl.top.get_x1() + phl.top.get_x2()) ? phl.top.get_x1() : phl.bottom.get_x1() line.set_xy1(l , more , avg) line.set_xy2(l , b.n + 50, avg) label.set_x (lbl , b.n + 50 ) label.set_y (lbl , avg ) dist = math.abs((l.get_y2() - close) / close) * 1000 label.set_text (lbl, "Equilibrium (" + str.tostring(math.round(dist,0)) + "%)") vol() => float posVol = 0.0 float negVol = 0.0 switch close > open => posVol += volume close < open => negVol -= volume close >= close => posVol += volume close < close => negVol -= volume = request.security("", ob_timeframe, vol()) volblock(bool condition, bool bull, string mitigation, float top, float bottom, int left, int right, color css, float upx, float dnx, int position, float upv, float dnv) => var ob_top = array.new< float >() var ob_bottom = array.new< float >() var ob_left = array.new< int >() var ob_right = array.new< int >() var ob_avg = array.new< float >() var ob_vol = array.new< float >() var redvol = array.new< float >() var greenvol = array.new< float >() var pos = array.new< int >() var when = array.new< int >() var countup = array.new< int >() var countdn = array.new< int >() var orderblock = array.new< box >() var continuationorderblock = array.new< box >() var uporderblock = array.new< box >() var dnorderblock = array.new< box >() var middlelvl = array.new< line >() float sum = math.abs(ob_vol.sum()) if condition paperlow = array.new< float >() paperhigh = array.new< float >() paperindex = array.new< int >() paperlow .clear() paperhigh.clear() float avg = na var bool isna = na for i = 1 to ob_looback + 1 paperlow .push(low ) paperhigh .push(high ) paperindex.push(time ) if ob_lookback_bool == false avg := math.avg(top, bottom) ob_top .unshift(top ) ob_bottom.unshift(bottom) ob_left .unshift(left ) if ob_lookback_bool avg := bull ? math.avg(paperlow.min(), paperhigh.get(paperlow.indexof(paperlow.min()))) : math.avg(paperhigh.max(), paperlow.get(paperhigh.indexof(paperhigh.max()))) ob_top .unshift(bull ? paperhigh .get(paperlow.indexof(paperlow.min())) : paperhigh .max()) ob_bottom.unshift(bull ? paperlow .min() : paperlow .get(paperhigh.indexof(paperhigh.max()))) ob_left .unshift(bull ? paperindex.get(paperlow.indexof(paperlow.min())) : paperindex.get(paperhigh.indexof(paperhigh.max()))) ob_right .unshift(right ) ob_avg .unshift(avg ) ob_vol .unshift(bull ? dnv : upv) redvol .unshift(dnx ) greenvol .unshift(upx ) pos .unshift(position ) when .unshift(1 ) countup .unshift(0 ) countdn .unshift(0 ) if use_overlap int num = use_overlap_method == "Recent" ? 1 : 0 if ob_avg.size() > 1 if (bull ? ob_bottom.first() < ob_top.get(1) : ob_top.first() > ob_bottom.get(1)) ob_top .remove(num) ob_bottom.remove(num) ob_left .remove(num) ob_right .remove(num) ob_avg .remove(num) ob_vol .remove(num) redvol .remove(num) greenvol .remove(num) pos .remove(num) when .remove(num) countup .remove(num) countdn .remove(num) if barstate.isconfirmed out = switch mitigation "Middle" => ob_avg "Absolute" => bull ? ob_bottom : ob_top target = out for stuff in target idx = target.indexof(stuff) if (bull ? close < stuff : close > stuff) ob_top .remove(idx) ob_bottom.remove(idx) ob_left .remove(idx) ob_right .remove(idx) ob_avg .remove(idx) ob_vol .remove(idx) redvol .remove(idx) greenvol .remove(idx) pos .remove(idx) when .remove(idx) countup .remove(idx) countdn .remove(idx) if true if barstate.isfirst for i = 0 to ob_num - 1 orderblock .unshift(box.new (na, na, na, na, xloc = xloc.bar_time, extend = extend.none , bgcolor = use_grayscale ? color.new(css,t) : css, border_color = color.new(color.white,100))) continuationorderblock .unshift(box.new (na, na, na, na, xloc = xloc.bar_time, extend = extend.right, bgcolor = use_grayscale ? color.new(css,t) : css, border_color = color.new(color.white,100))) uporderblock .unshift(box.new (na, na, na, na, xloc = xloc.bar_time, extend = extend.none , bgcolor = use_grayscale ? color.new(css,t) : css, border_color = color.new(color.white,100))) dnorderblock .unshift(box.new (na, na, na, na, xloc = xloc.bar_time, extend = extend.none , bgcolor = use_grayscale ? color.new(css,t) : css, border_color = color.new(color.white,100))) middlelvl .unshift(line.new(na, na, na, na, xloc = xloc.bar_time, extend = extend.none , color = color.new(css,0), style = line.style_dashed, width = 1)) // ---- Also create placeholder line/label objects for the line style ---- array.unshift(ob_top_lines, line.new(na, na, na, na, xloc = xloc.bar_index)) array.unshift(ob_bottom_lines, line.new(na, na, na, na, xloc = xloc.bar_index)) array.unshift(ob_mid_lines, line.new(na, na, na, na, xloc = xloc.bar_index)) array.unshift(ob_labels, label.new(na, na, xloc = xloc.bar_index)) // ------------------------------------------------------------------------ if barstate.islast if ob_top.size() > 0 for i = 0 to math.min(ob_num - 1, ob_top.size() - 1) get_orderblock = orderblock .get(i) get_continuationorderblock = continuationorderblock.get(i) get_uporderblock = uporderblock .get(i) get_dnorderblock = dnorderblock .get(i) get_middlelvl = middlelvl .get(i) // MAIN ORDERBLOCK box.set_top (get_orderblock, ob_top .get(i) ) box.set_bottom(get_orderblock, ob_bottom .get(i) ) box.set_left (get_orderblock, ob_left .get(i) ) box.set_right (get_orderblock, time ) // ---- CONTINUATION: either boxes (default) or lines (if show_ob_lines) ---- if show_ob_lines // Delete old continuation box (not needed) box.delete(get_continuationorderblock) // Draw lines instead right_index = bar_index + line_extend_bars // Top line line.set_xy1(array.get(ob_top_lines, i), ob_left.get(i), ob_top.get(i)) line.set_xy2(array.get(ob_top_lines, i), right_index , ob_top.get(i)) line.set_color(array.get(ob_top_lines, i), css) line.set_width(array.get(ob_top_lines, i), 1) line.set_style(array.get(ob_top_lines, i), line.style_solid) // Bottom line line.set_xy1(array.get(ob_bottom_lines, i), ob_left.get(i), ob_bottom.get(i)) line.set_xy2(array.get(ob_bottom_lines, i), right_index , ob_bottom.get(i)) line.set_color(array.get(ob_bottom_lines, i), css) line.set_width(array.get(ob_bottom_lines, i), 1) line.set_style(array.get(ob_bottom_lines, i), line.style_solid) // Middle line (optional) if use_middle_line line.set_xy1(array.get(ob_mid_lines, i), ob_left.get(i), ob_avg.get(i)) line.set_xy2(array.get(ob_mid_lines, i), right_index , ob_avg.get(i)) line.set_color(array.get(ob_mid_lines, i), color.new(css,70)) line.set_width(array.get(ob_mid_lines, i), 1) line.set_style(array.get(ob_mid_lines, i), line.style_dashed) else line.delete(array.get(ob_mid_lines, i)) // Volume label if use_show_metric vol_text = str.tostring(math.round(ob_vol.get(i) / 1000, 3)) + "K" // Calculate percentage relative to the total volume of all displayed OBs total_vol = 0.0 for j=0 to math.min(ob_num-1, ob_vol.size()-1) total_vol += math.abs(ob_vol.get(j)) perc = math.round(ob_vol.get(i) / total_vol * 100, 1) vol_text += " (" + str.tostring(perc) + "%)" label.set_x(array.get(ob_labels, i), right_index) label.set_y(array.get(ob_labels, i), ob_avg.get(i)) label.set_text(array.get(ob_labels, i), vol_text) label.set_color(array.get(ob_labels, i), color.new(color.white,100)) label.set_textcolor(array.get(ob_labels, i), css) label.set_style(array.get(ob_labels, i), label.style_label_left) label.set_size(array.get(ob_labels, i), size.small) else label.delete(array.get(ob_labels, i)) else // Use original continuation box box.set_top (get_continuationorderblock, ob_top .get(i) ) box.set_bottom(get_continuationorderblock, ob_bottom.get(i) ) box.set_left (get_continuationorderblock, time ) box.set_right (get_continuationorderblock, time + (time - time ) * 100) // Delete any lines from previous line mode line.delete(array.get(ob_top_lines, i)) line.delete(array.get(ob_bottom_lines, i)) line.delete(array.get(ob_mid_lines, i)) label.delete(array.get(ob_labels, i)) // ------------------------------------------------------------------------- // MIDDLE LEVEL (inside main box) – keep as before if use_middle_line and not show_ob_lines // only show inside box if not using lines? can keep both, but we already drew mid line above if lines enabled. line.set_x1(get_middlelvl, ob_left .get(i)) line.set_x2(get_middlelvl, time ) line.set_y1(get_middlelvl, ob_avg .get(i)) line.set_y2(get_middlelvl, ob_avg .get(i)) if ob_metrics_show box.set_top (get_uporderblock , ob_top .get(i)) box.set_bottom(get_uporderblock , ob_avg .get(i)) box.set_left (get_uporderblock , ob_left .get(i)) box.set_right (get_uporderblock , ob_left .get(i)) box.set_bgcolor(get_uporderblock , css_metric_up ) box.set_top (get_dnorderblock, ob_avg .get(i)) box.set_bottom(get_dnorderblock, ob_bottom .get(i)) box.set_left (get_dnorderblock, ob_left .get(i)) box.set_right (get_dnorderblock, ob_left .get(i)) box.set_bgcolor(get_dnorderblock, css_metric_dn ) takeup = box.get_right(get_uporderblock) takedn = box.get_right(get_dnorderblock) box.set_right (get_dnorderblock, takedn + (time - time ) * countdn.get(i)) box.set_right (get_uporderblock, takeup + (time - time ) * countup.get(i)) if use_show_metric and not show_ob_lines // only show text inside continuation box if not using lines box.set_text (get_continuationorderblock, str.tostring(math.round(ob_vol.get(i) / 1000,3)) + "K" + " (" + str.tostring( math.abs(math.round((ob_vol.get(i) - (i == 0 ? sum : ob_vol.get(0)) ) / (i == 0 ? sum : ob_vol.get(0)) ,3)) * 10) + "%)") box.set_text_size (get_continuationorderblock, size.auto) box.set_text_halign(get_continuationorderblock, text.align_left) box.set_text_color (get_continuationorderblock, color.new(css,0)) if ob_metrics_show if barstate.isconfirmed and when.size() > 0 for i = 0 to countup.size() - 1 if redvol.get(i) < greenvol.get(i) switch when.get(i) 1 => countup.set(i, countup.get(i) + 1), when.set(i, 2) 2 => countup.set(i, countup.get(i) + 1), when.set(i, 3) 3 => countdn.set(i, countdn.get(i) + 1), when.set(i, 1) if redvol.get(i) > greenvol.get(i) switch when.get(i) 1 => countdn.set(i, countdn.get(i) + 1), when.set(i, 2) 2 => countdn.set(i, countdn.get(i) + 1), when.set(i, 3) 3 => countup.set(i, countup.get(i) + 1), when.set(i, 1) f_line(x, y, z, css, txt, down, size, style) => var line id = na var label lbl = na id := line.new( x , y , z , y , xloc = b.xn , color = css , width = 1 , style = style ) if msline.size() == 450 // Limit to 450 to avoid issue with other drawing object line.delete(msline.shift()) msline.push(id) lbl := label.new( int(math.avg(x, z)) , y , txt , color = invcol , textcolor = css , style = down ? label.style_label_down : label.style_label_up , size = size ) //-----------------------------------------------------------------------------{ // Market strcture pivot point //-----------------------------------------------------------------------------{ switch b.c > b.o => boolean.set(green_candle, true) b.c < b.o => boolean.set(red_candle , true) _v = request.security("", ob_timeframe, volume) switch boolean.get(green_candle) => obv.up_bottom.push(obsec(low)), obv.up_top.push(obsec(high)), obv.up_vol.push(math.abs(_v)), obv.up_current_time.push(time), obv.up_last_time.push(time ), obv.up_n.push(bar_index), obv.metric_up.push(upvol), obv.metric_dn.push(math.abs(dnvol)) boolean.get(red_candle) => obv.dn_bottom.push(obsec(low)), obv.dn_top.push(obsec(high)), obv.dn_vol.push(math.abs(_v)), obv.dn_current_time.push(time), obv.dn_last_time.push(time ), obv.dn_n.push(bar_index), obv.metric_up.push(upvol), obv.metric_dn.push(math.abs(dnvol)) => na ph_i = ta.pivothigh(b.h , internal_l_lookback , internal_r_lookback) pl_i = ta.pivotlow (b.l , internal_l_lookback , internal_r_lookback) ph_s = ta.pivothigh(b.h , swing_l_lookback , swing_r_lookback ) pl_s = ta.pivotlow (b.l , swing_l_lookback , swing_r_lookback ) switch ph_i => pp.i_hpoint.clear(), pp.i_nBull.clear(), pp.i_hpoint.push(b.h ), pp.i_nBull.push(b.n ), pp.up_ms_logs.push(b.h ) pl_i => pp.i_lpoint.clear(), pp.i_nBear.clear(), pp.i_lpoint.push(b.l ), pp.i_nBear.push(b.n ), pp.dn_ms_logs.push(b.l ) ph_s => pp.s_hpoint.clear(), pp.s_nBull.clear(), pp.s_hpoint.push(b.h ) , pp.s_nBull.push(b.n ) pl_s => pp.s_lpoint.clear(), pp.s_nBear.clear(), pp.s_lpoint.push(b.l ) , pp.s_nBear.push(b.n ) => na //-----------------------------------------------------------------------------{ // strcture set //-----------------------------------------------------------------------------{ method structure(bin zz) => var color css = na var int count = 0 var int trend = 0 var int itrend = 0 var bool ob_bear = false bool bear_ob = false bool bull_ob = false bool swing_up = false bool swing_dn = false if true //-----------------------------------------------------------------------------{ //Internal structure bullish //-----------------------------------------------------------------------------{ if zz.dn_ms_logs.size() > 1 and zz.i_hpoint.size() > 0 and zz.i_nBull.size() > 0 if ta.crossover(b.c, zz.i_hpoint.last()) bool choch = na string txt = na if itrend < 0 choch := true switch choch and not (zz.dn_ms_logs.last() > zz.dn_ms_logs.get(zz.dn_ms_logs.indexof(zz.dn_ms_logs.last()) - 1)) => txt := "CHoCH" choch and (zz.dn_ms_logs.last() > zz.dn_ms_logs.get(zz.dn_ms_logs.indexof(zz.dn_ms_logs.last()) - 1)) => txt := "CHoCH+" not choch => txt := "BOS" itrend := 1 switch txt "CHoCH" => css := i_ms_up_choch "BOS" => css := i_ms_up_bos "CHoCH+" => css := i_ms_up_choch => css if ((txt == "BOS" and boolean.get(i_bos) == true) or (txt == "CHoCH" and boolean.get(i_choch) == true) or (txt =="CHoCH+" and boolean.get(i_pp_choch) == true)) f_line(zz.i_nBull.last(), zz.i_hpoint.last(), b.n, i_ms_up_bos, txt, true, size.small, line.style_dashed) switch ob_filter == "None" => bull_ob := true ob_filter == "BOS" and txt == "BOS" => bull_ob := true ob_filter == "CHoCH" and txt == "CHoCH" => bull_ob := true ob_filter == "CHoCH+" and txt == "CHoCH+" => bull_ob := true => bull_ob := false zz.i_nBull.clear () zz.i_hpoint.clear() zz.i_bulltxt.push(txt) //-----------------------------------------------------------------------------{ //Internal structure bearish //-----------------------------------------------------------------------------{ if zz.up_ms_logs.size() > 1 and zz.i_lpoint.size() > 0 and zz.i_nBear.size() > 0 if ta.crossunder(b.c, zz.i_lpoint.last()) bool choch = na string txt = na if itrend > 0 choch := true switch choch and not (zz.up_ms_logs.last() < zz.up_ms_logs.get(zz.up_ms_logs.indexof(zz.up_ms_logs.last()) - 1)) => txt := "CHoCH" choch and (zz.up_ms_logs.last() < zz.up_ms_logs.get(zz.up_ms_logs.indexof(zz.up_ms_logs.last()) - 1)) => txt := "CHoCH+" not choch => txt := "BOS" itrend := -1 switch txt "CHoCH" => css := i_ms_dn_choch "BOS" => css := i_ms_dn_bos "CHoCH+" => css := i_ms_dn_choch => css if ((txt == "BOS" and boolean.get(i_bos) == true) or (txt == "CHoCH" and boolean.get(i_choch) == true) or (txt =="CHoCH+" and boolean.get(i_pp_choch) == true)) f_line(zz.i_nBear.last(), zz.i_lpoint.last(), b.n, i_ms_dn_bos, txt, false, size.small, line.style_dashed) switch ob_filter == "None" => bear_ob := true ob_filter == "BOS" and txt == "BOS" => bear_ob := true ob_filter == "CHoCH" and txt == "CHoCH" => bear_ob := true ob_filter == "CHoCH+" and txt == "CHoCH+" => bear_ob := true => bear_ob := false zz.i_nBear.clear () zz.i_lpoint.clear() zz.i_beartxt.push(txt) //-----------------------------------------------------------------------------{ //Swing structure bullish //-----------------------------------------------------------------------------{ if zz.s_hpoint.size() > 0 if ta.crossover(b.c, zz.s_hpoint.last()) bool choch = na string txt = na if trend < 0 choch := true txt := choch ? "CHoCH" : "BOS" trend := 1 css := i_ms_up_bos if ((txt == "BOS" and boolean.get(s_bos) == true) or (txt == "CHoCH" and boolean.get(s_choch) == true)) f_line(zz.s_nBull.last(), zz.s_hpoint.last(), b.n, i_ms_up_bos, txt, true, size.small, line.style_solid) zz.s_nBull.clear () zz.s_hpoint.clear() if ob_swings swing_up := true //-----------------------------------------------------------------------------{ //Swing structure bearish //-----------------------------------------------------------------------------{ if zz.s_lpoint.size() > 0 if ta.crossunder(b.c, zz.s_lpoint.last()) bool choch = na string txt = na if trend > 0 choch := true txt := choch ? "CHoCH" : "BOS" trend := -1 css := i_ms_dn_bos if ((txt == "BOS" and boolean.get(s_bos) == true) or (txt == "CHoCH" and boolean.get(s_choch) == true)) f_line(zz.s_nBear.last(), zz.s_lpoint.last(), b.n, i_ms_dn_bos, txt, false, size.small, line.style_solid) zz.s_nBear.clear () zz.s_lpoint.clear() if ob_swings swing_dn := true = pp.structure() if show_mtb upphl (trend) dnphl (trend) midphl( ) p_css = css b_css = css w_css = css p_css := plotcandle_bool ? css : na b_css := barcolor_bool ? css : na w_css := plotcandle_bool ? color.rgb(120, 123, 134, 50) : na hl () => ohlc() => [close , open , high, low, high , low ] = request.security(syminfo.tickerid , 'D' , hl() , lookahead = barmerge.lookahead_on) = request.security(syminfo.tickerid , 'W' , hl() , lookahead = barmerge.lookahead_on) = request.security(syminfo.tickerid , 'M' , hl() , lookahead = barmerge.lookahead_on) = request.security(syminfo.tickerid , '12M', hl() , lookahead = barmerge.lookahead_on) f_fvg(fvg_tf, fvg_extend, bear_fvg_css, bull_fvg_css, fvg_src) => = request.security(syminfo.tickerid, fvg_tf, ohlc()) bull_fvg = false bear_fvg = false delta = (c1 - o1) / o1 * 100 change_tf = timeframe.change(fvg_tf) threshold = 0 bull_fvg := l0 > h2 and c1 > h2 and delta > threshold and change_tf bear_fvg := h0 < l2 and c1 < l2 and -delta > threshold and change_tf if bull_fvg fvg.bull_max.unshift( box.new( b.n - 1 , l0 , b.n + fvg_extend , math.avg(l0, h2) , border_color = bull_fvg_css , bgcolor = bull_fvg_css) ) fvg.bull_min.unshift( box.new( b.n - 1 , math.avg(l0, h2) , b.n + fvg_extend , h2 , border_color = bull_fvg_css , bgcolor = bull_fvg_css) ) if bear_fvg fvg.bear_max.unshift( box.new( b.n - 1 , h0 , b.n + fvg_extend , math.avg(h0, l2) , border_color = bear_fvg_css , bgcolor = bear_fvg_css) ) fvg.bear_min.unshift( box.new( b.n - 1 , l2 , b.n + fvg_extend , math.avg(h0, l2) , border_color = bear_fvg_css , bgcolor = bear_fvg_css) ) for bx in fvg.bull_min if (fvg_src == "Wick" ? low : close) < box.get_bottom(bx) bx.delete() fvg.bull_max.get(array.indexof(fvg.bull_min, bx)).delete() for bx in fvg.bear_min if (fvg_src == "Wick" ? high : close) > box.get_top(bx) bx.delete() fvg.bear_max.get(array.indexof(fvg.bear_min, bx)).delete() if fvg_enable f_fvg(fvg_tf , fvg_extend, fvg_dncss, fvg_upcss, fvg_src) if lvl_daily mtfphl(pdh , pdl , 'D' , css_d, s_d) if lvl_weekly mtfphl(pmh , pml , 'W' , css_w, s_w) if lvl_monthly mtfphl(pwh , pwl, 'M' , css_m, s_m) if lvl_yearly mtfphl(pyh , pyl , '12M', css_y, s_y) if ob_show volblock(bull_ob_check , true , ob_mitigation , obv.dn_top.last() , obv.dn_bottom.last() , obv.dn_current_time.last() , time , ob_bull_css , obv.metric_up.last() , obv.metric_dn.last() , obv.dn_n.last() , obv.up_vol.last() , obv.dn_vol.last()) volblock(bear_ob_check , false , ob_mitigation , obv.up_top.last() , obv.up_bottom.last() , obv.up_current_time.last() , time , ob_bear_css , obv.metric_up.last() , obv.metric_dn.last() , obv.up_n.last() , obv.up_vol.last() , obv.dn_vol.last()) if ob_swings volblock(swing_up_check , true , ob_mitigation , obv.dn_top.last() , obv.dn_bottom.last() , obv.dn_current_time.last() , time , css_swing_up , obv.metric_up.last() , obv.metric_dn.last() , obv.dn_n.last() , obv.up_vol.last() , obv.dn_vol.last()) volblock(swing_dn_check , false , ob_mitigation , obv.up_top.last() , obv.up_bottom.last() , obv.up_current_time.last() , time , css_swing_dn , obv.metric_up.last() , obv.metric_dn.last() , obv.up_n.last() , obv.up_vol.last() , obv.dn_vol.last()) // ---- Fixed price levels ---- if show_fixed_lines prices_str = fixed_prices prices_array = str.split(prices_str, ",") for price_str in prices_array price = str.tonumber(price_str) if not na(price) line.new( x1 = bar_index - line_extend_bars, y1 = price, x2 = bar_index + line_extend_bars, y2 = price, xloc = xloc.bar_index, color = fixed_line_color, width = 1, style = line.style_solid) // ---------------------------- // ---- Plot candles (Heikin‑Ashi or normal) - FIXED: moved to global scope ---- plot_open = show_heikin_ashi ? ha_open : open plot_high = show_heikin_ashi ? ha_high : high plot_low = show_heikin_ashi ? ha_low : low plot_close = show_heikin_ashi ? ha_close : close plot_color = show_heikin_ashi ? color.rgb(33,150,243) : p_css plot_wick = show_heikin_ashi ? color.gray : w_css plot_border = show_heikin_ashi ? color.rgb(33,150,243) : p_css plotcandle(plot_open, plot_high, plot_low, plot_close, color = plot_color, wickcolor = plot_wick, bordercolor = plot_border, title = "Price Action Candles", // fixed constant title editable = false) barcolor(b_css, editable = false)مؤشر Pine Script®من carlmolinata16972
Linda Bradford Raschke's 80-20 Momentum Candlestick StrategyLinda Bradford Raschke's "80-20" strategy from "Street Smarts: High Probability Short-Term Trading Strategies" (co-authored with Laurence Connors). Core idea: Identify a strong "momentum candlestick" on daily (body ≥80% of range, shadows ≤20%) signaling potential reversal. Then on intraday TF, trade false breakouts: price breaks close ± threshold (e.g. 20 points), reverses back to close → enter counter-direction. - LONG: False downside break → revert up → buy at momentum close. - SHORT: False upside break → revert down → sell at momentum close. - Target: ~50% of momentum body (center). - SL: ATR-based or beyond momentum extremes. - Valid for 1-3 days post-momentum candle. Best for indices (S&P, Nasdaq), forex majors, volatile stocks. Use daily for detection, H1/M15 for entries. Not financial advice — Backtest thoroughly, use with discretion and proper risk management. Original concept: Street Smarts book + discussions (e.g., RoboForex blog, MQL5 articles). Open-source v6 — suggestions welcome!استراتيجية Pine Script®من uzair2join2
Shafi: IntraDay DealsRSI above 52 for Buy RSI below 48 for Sell Usually it will be as mentioned, yet should be cross checkedاستراتيجية Pine Script®من alruwwaduae4
Ultimate Div - High Vis + Weekend Close Ultimate Intraday Divergence Terminal This is a comprehensive, institutional-grade trading system built specifically for Forex major pairs (EURUSD, USDJPY, GBPUSD) on the 15m and 1H timeframes. It combines momentum divergence confluence with trend filtering and professional risk management. 🔹 Core Strategy Logic The system identifies Regular and Hidden Divergences across three major oscillators simultaneously. To filter out low-probability signals, it requires a "Confluence" of at least two oscillators before triggering an entry. RSI (Relative Strength Index): Captures overextended momentum. MACD (Moving Average Convergence Divergence): Captures trend shifts. Stochastic: Captures rapid cyclic exhaustion. 🔹 Trend & Protection Filters Ichimoku Cloud Filter: Signals are only valid if they align with the higher-order trend defined by the Kumo Cloud (Bullish signals above, Bearish signals below). Volatility (News) Filter: Automatically detects abnormal ATR spikes (common during NFP or CPI) and pauses trading for 5 bars to prevent "whipsaw" losses. Weekend Protection: Automatically closes all positions on Friday evening to avoid Sunday gap risks. 🔹 Visual Experience (Optimized for Dark Mode) Dynamic Backgrounds: The chart background shifts to Dark Green (Bullish) or Dark Maroon (Bearish) based on the Ichimoku trend. Neon High-Vis Markers: Neon Cyan (Bullish) and Neon Red (Bearish) shapes ensure signals pop against black backgrounds. Real-Time Dashboard: Monitor your current Win Rate, Confluence levels, and Daily PnL at a glance. Floating PnL Label: A live-tracking label follows price during active trades, showing real-time profit/loss in pips and percentage. 🔹 Risk Management SOP Risk-per-Trade: Automatically calculates position sizes based on 1% of equity. Daily Drawdown Limit: Halts trading for the day if a 3% loss limit is hit. Take Profit / Stop Loss: Dynamic calculation based on user-defined Risk:Reward ratios. 🛠 How to Use Add to Chart: Set your timeframe to 15m. Verify Trend: Ensure the background color matches the direction you intend to trade. Wait for Confluence: Watch the dashboard for a 2/3 or 3/3 signal. Manage: Let the automated SL and TP handle the exit, or use the floating PnL label to manually scale out.استراتيجية Pine Script®من chgotom3
Quadzilla LiteMinor code change to make indicator compliant to TV rules. Functionality unchanged.مؤشر Pine Script®من SaveWithCryptoتم تحديثه 1135
Demand and Supply Indicator with FVG, trend by ZeeshanA compact, easy‑to‑use indicator that highlights No Demand and No Supply bars plus help in identifying demand supply signals. It draws Fair Value Gap (FVG) rectangles that stay on the chart until price fills them or they expire, and it marks pivot highs/lows with HH/LH / HL/LL labels and connecting trend lines. Good luck!مؤشر Pine Script®من zeecitizenتم تحديثه 16
SMA 534 ColourMinimalist SMA indicator plotting 5 and 34 period simple moving averages with soft grey lines and subtle trend shading. Designed for a clean, distraction-free chart view.مؤشر Pine Script®من yazcloud2
15-Min ORB Strategy for NQ Here I created a very simple 15M ORB strategy for NQ / MNQ. This strategy marks the high and low of the 15-Min opening candle for the New York session ( 0930 - 0945 ) and enters Long / Short based on where the 5 Minute candle closes if it closes above / below the 15 Minute range. It has a customisable RR for TP1 and TP2 and the amount of contracts you can use. Please bear in mind that this is a very basic strategy as it is my first time making a script for TradingView. I an open to any constructive criticism to help me improve my script. Thank you for taking the time to read this and I hope you guys enjoy my script!استراتيجية Pine Script®من Dryeye2006تم تحديثه 13
All-in-One MTF EMA x20 This indicator lets you display up to 20 EMAs on your chart. Each EMA can pull data from a different timeframe (like 1-hour or daily), so you can see higher timeframe trends while trading on lower timeframes. You control which EMAs show up on which chart intervals with simple checkboxes—perfect for multi-timeframe analysis without cluttering your workspace. مؤشر Pine Script®من Radjon2
Prime ETH VRP [Honest Villain Edition]Credit: Based on the original VRP indicator developed by EdgeTools. © Engineered by the proprietary trading division at CMZN LTD. ŞTİ. © Lead Quant: A. Arda UZAN / "The Honest Villain" © Web3 Research Arm: Arol DAO (aroldao.eth) The Honest Villain's ETH VRP Measures the Variance Risk Premium using Deribit's ETH DVOL vs. 365-Day Realized Volatility. Includes Z-Score and Percentile ranking for tail-risk identification. In crypto, one thing is mathematically certain: FAT TAILS ARE TOO FAT. Trades that incorporate naked shorting of options are often referred to as "widow makers" for this exact reason. To survive, sellers of volatility demand an additional premium to compensate for this tail risk. This manifests as Implied Volatility (IV) consistently over-estimating Realized Volatility (RV). How to read this tool: Positive VRP (High): Options may be overpriced. The market is fearful, and premiums are rich. Negative VRP (Low): Options may be fairly priced or discounted. Realized volatility is thrashing harder than the options market is pricing. Why this script exists: I engineered this because I could not find a plug-and-play VRP indicator specifically calibrated for Ethereum's microstructure. * **Engine:** Uses the Garman-Klass estimator (OHLC) for precision, not just Close-to-Close. * **Math:** Adjusted for the 365-day crypto trading year (vs. the TradFi 252). * **Context:** Adds Z-Score and Percentiles to identify statistical extremes. Deployment: For best results, apply this indicator to the most liquid ETH/Stable spot market to ensure the Volume Footprint and VRP align. Recommended: BINANCE:ETHUSDTمؤشر Pine Script®من Arol_DAO7
Aroon | TR🎯 Overview Aroon | TR is a versatile trend-following indicator that measures the time elapsed since price recorded its highest high and lowest low over a specified period. Developed by Tiagorocha1989, this enhanced version of Tushar Chande's classic Aroon indicator offers multiple visualization modes, customizable moving averages, and comprehensive visual features to help traders identify trend direction, trend strength, and potential reversal points with greater precision. 🔧 How It Works The Aroon indicator consists of two lines: Aroon Up and Aroon Down. These lines measure how many periods have passed since price recorded a high or low within the lookback period. The relationship between these lines determines trend direction and strength. Core Calculation Logic: The indicator calculates the Aroon lines using the following logic: Aroon Up: Measures the number of periods since the highest high within the lookback period Formula: 100 × (Length - Periods Since Highest High) / Length Aroon Down: Measures the number of periods since the lowest low within the lookback period Formula: 100 × (Length - Periods Since Lowest Low) / Length Both lines oscillate between 0 and 100, with: Values above 50 indicating a recent high/low (strong trend) Values approaching 100 indicating a very recent high/low (very strong trend) Values approaching 0 indicating no recent high/low (weak or reversing trend) The indicator also calculates Aroon as the difference between Aroon Up and Aroon Down (Aroon Up minus Aroon Down), creating an oscillator that oscillates around zero: Positive Aroon values → Bullish momentum (Aroon Up above Aroon Down) Negative Aroon values → Bearish momentum (Aroon Down above Aroon Up) ✨ Key Features 🔹 Multiple Display Modes Average Aroon Mode: Shows the Aroon oscillator (Aroon Up minus Aroon Down) with signal line, providing a clean, oscillator-style view of trend strength and direction Normal Aroon Mode: Displays the classic Aroon Up and Aroon Down lines for traditional analysis Both modes can be combined for comprehensive analysis 🔹 Dual Operating Modes for Signals Zero Line Mode: Signals occur when the Aroon oscillator crosses above or below the zero line Aroon MA Mode: Enhanced mode where signals occur when Aroon crosses its own moving average, providing filtered entries 🔹 Flexible Moving Average Selection Choose from six MA types for the Aroon MA mode: EMA (Exponential Moving Average) for responsive signals SMA (Simple Moving Average) for smoother readings RMA (Rolling Moving Average) for weighted recent data WMA (Weighted Moving Average) for customizable weighting VWMA (Volume-Weighted Moving Average) incorporating volume HMA (Hull Moving Average) for reduced lag 🔹 Customizable Aroon Parameters Length Aroon: Lookback period for Aroon calculation (default 6) Shorter periods (like 6) provide more responsive signals Longer periods (like 14-25) provide smoother, more reliable signals 🔹 Customizable Color Themes Eight distinct color schemes to match your charting preferences: Classic – Green for bullish, Red for bearish Modern – White for bullish, Purple for bearish Robust – Amber for bullish, Maroon for bearish Accented – Violet for bullish, Pink for bearish Monochrome – Light gray for bullish, Dark gray for bearish Moderate – Green for bullish, Red for bearish Aqua – Blue for bullish, Orange for bearish Cosmic – Pink for bullish, Purple for bearish 🔹 Comprehensive Visual Feedback Aroon Oscillator: Colored line showing the difference between Aroon Up and Aroon Down Signal Line: Yellow line for MA-based signals Gradient Fill Zones: Clear visualization of extreme readings (+100 to -100) Dynamic Zone Fills: Semi-transparent fills showing when Aroon is above or below the signal line Aroon Up and Aroon Down Lines: Optional display of classic Aroon lines Color-Coded Candles: Bars reflect current trend direction based on Aroon Up/Aroon Down relationship Signal Markers: Triangle up/down symbols at crossover points Live Value Display: Floating labels showing current values for each enabled component Trend Table: Bullish/Bearish status displayed on the chart 🔹 Ready-to-Use Alerts Built-in alert conditions trigger LONG signals when Aroon Up crosses above Aroon Down, and SHORT signals when Aroon Up crosses below Aroon Down. ⚙️ Settings Summary Color Choice: Select from eight visual themes (Default: Classic) Length Aroon: Lookback period for Aroon calculation (Default: 6) Average Aroon: Toggle to show the Aroon oscillator (Aroon Up minus Aroon Down) (Default: Enabled) Aroon: Toggle to show classic Aroon Up and Aroon Down lines (Default: Disabled) Entry/Exit Signal: Choose between zero line or Aroon MA mode (Default: Zero Line) Length MA: Moving average period for Aroon MA mode (Default: 365) Aroon MA Type: Moving average method for signal line (Default: EMA) 📈 Practical Applications 🔹 Trend Direction Identification The primary use of the Aroon system is identifying trend direction: Aroon Up above Aroon Down → Bullish trend Aroon Down above Aroon Up → Bearish trend The wider the separation, the stronger the trend 🔹 Trend Strength Measurement The actual values of Aroon Up and Aroon Down indicate trend strength: Values above 70 → Strong trend (recent high/low) Values between 50-70 → Moderate trend Values below 30 → Weak trend or consolidation Both lines below 50 → Possible ranging market 🔹 Trend Initiation Detection When Aroon Up crosses above Aroon Down from below, it suggests a new uptrend is beginning. Conversely, when Aroon Down crosses above Aroon Up, it suggests a new downtrend is beginning. 🔹 Trend Exhaustion Signals When Aroon Up is very high (above 80-90) and begins to turn down while Aroon Down remains low, it may indicate an uptrend is tiring. The opposite signals downtrend exhaustion. 🔹 Consolidation Identification When both Aroon lines are low (below 30-40) and moving horizontally, it suggests a consolidation phase with no clear trend. 🔹 Aroon Oscillator Analysis The Aroon oscillator (Aroon Up minus Aroon Down) offers additional insights: Positive values indicate bullish dominance Negative values indicate bearish dominance Crossovers of the zero line confirm trend changes Crossovers of the moving average provide filtered signals 🔹 Multiple Timeframe Confirmation Compare Aroon readings across different timeframes: Higher timeframe Aroon confirms primary trend direction Lower timeframe Aroon identifies entry timing 🎯 Ideal For ✅ Trend Traders seeking early identification of new trends ✅ Swing Traders wanting to capture trend initiations and reversals ✅ Range-Bound Traders identifying consolidation phases ✅ System Developers needing reliable trend direction signals ✅ Multi-Timeframe Analysts comparing trend strength across periods 📌 Key Takeaways Time-Based Approach: Unlike most indicators that use price or volume, Aroon uniquely measures time since significant highs and lows Multiple Display Modes: Choose between classic Aroon Up/Down lines or the Aroon oscillator based on your analysis style Dual-Mode Signal Generation: Zero line crossovers for classic signals or MA-smoothed signals for filtered entries Rich Visual Feedback: Color themes, gradient fills, candles, and floating labels provide immediate market awareness Alert-Ready: Built-in alerts for trend change signals when Aroon Up crosses Aroon Down ⚠️ Important Notes The Aroon indicator works best in trending markets and can produce false signals in ranging conditions. The default length of 6 makes this version very responsive to recent price action, ideal for shorter-term trading. For longer-term analysis, consider increasing the length to 14-25. The 365-day MA default in Aroon MA mode is designed for longer-term trend context on daily charts. Both lines below 50 often indicate consolidation - consider avoiding trend signals in these conditions. Always combine with proper risk management and additional confirmation for best results. Disclaimer: This indicator is provided for educational and informational purposes only. Past performance is not indicative of future results. Always conduct thorough testing and align with your risk management strategy before live deployment.مؤشر Pine Script®من Tiagorocha1989تم تحديثه 1