Best strategy for TradingView (fake)Hello everyone! I want to show you this strategy so you don't fall for the tricks of scammers. On TradingView, you can write an algorithm (probably more than one) that will show any profit you want: from 1% to 100,000% in one year (maybe more)! This can be done, for example, using the built-in linebreak () function and several conditions for opening long and short.
I am sure that sometimes scammers show up on TradingView showing their incredible strategies. Will a smart person sell a profitable quick strategy? When a lot of people start using the quick strategy, it stops working. Therefore, no smart person would sell you a quick strategy. It is acceptable to sell slow strategies: several transactions per month - this does not greatly affect the market.
So, don't fall for the tricks of scammers, write quick strategies yourself.
About this strategy, I can say that the linebreak () function does not work correctly in it. Accordingly, the lines are not drawn correctly on the chart. They are drawn in such a way as to show the maximum profit. I watched this algorithm on a 1m timeframe - no lines are drawn in real time. This is a fake!
Поиск скриптов по запросу "smart"
NYSE Volume UP FLOW VS Down FLOW ULTIMATE VOLDNYSE Volume UP FLOW VS Down FLOW ULTIMATE StokedStocks
BASED OFF THE VOLD INDEX
The VOLD (also $VOLD) is the difference between the up volume and down volume on the NYSE. i.e. NYSE $UVOL minus $DVOL; the net up volume.
If you consider that VOLD is the net value between UVOL (up volume) and DVOL (down volume) then you need to understand these two to understand VOLD.
UVOL or DVOL are a total of the volume on all stocks that are up or down in price. Up or down is based on the previous session's closing price. The size of the stock's price change is irrelevant.
If the stock is up only $.01, then its volume is grouped into the UVOL total. If that stock's price then drops by $.02 it will be down $.01 and the day's volume for that stock will now be grouped with the DVOL total.
Note that when a stock moves from being an up stock to a down stock its volume will be removed from the UVOL total and added to the DVOL total. Say the stocks volume is 1 million shares when it moves from up to down. The DVOL will increase by 1 million and the UVOL will decrease by 1 million which means that VOLD will decrease by 2 million.
NYSE Up/Down Volume Ratio is often used as a barometer for stocks trading on all U.S. Exchanges even though it is calculated based on stocks listed on the New York Stock Exchange.
NYSE Up/Down ratio represents the volume of NYSE stocks that are advancing divided by the volume of declining stocks.
The volume of advancing stocks or upside volume is the sum of the volume or the number of shares traded associated with stocks that closed higher.
The downside volume is the total number of shares traded that are associated with stocks that closed lower.
The interpretation of the NYSE Up/Down ratio is rather simple. A value higher than one indicates that there is more volume associated with up stocks than with down stocks and it is usually interpreted as a bullish signal.
Obviously, a bearish signal occurs when the NYSE Up/Down ratio is lower than one, which tells us that there are more volume associated with down stocks than with up stocks.
Check out my other indicators and website stokedstocks.wordpress.com for tons of free stock training books and pictures and settings
Market BuySell RatioA script using 1m small candle size (configurable) to compute the volume of buy (up) vs sell (down) candles (instead of actual market buy vs sell orders which are not available in pine script).
It then plots the buy vs sell ratio as an oscillator below the cart.
This gives traders an idea of current order flow in the market.
To compute the small candles this script uses the "Smart Volume" script which can be found here:
CCI Extreme and OBV DivergenceThis is my second set of two indicators combined utilize Multi time frame analysis of 5 minutes and 15 minutes.
CCI:
Green = uptrending
Red = downtrending
Bright Green = overbought, look to go SHORT
Bright Red = oversold, look to go LONG
OBV:
this use to predict the market direction buy drawing trend line.
It is also very good indicator to sport Smart Money moment. When price move higher but OBV trend lower, smart money is taking profit and reversing their position, look to go Short to you spot this type of divergence.
Also else already not there is no holy grail indicator so I also use this set of indicator to improve the signal
ITFI Lite — Smart Money Dashboard✅ ITFI Lite is now live — ITFI Pro (full confluence) coming soon 🔒
Follow to get early access.
This is the Lite version of the upcoming ITFI Pro system.
Designed for traders who want clean higher-timeframe context without clutter, complexity, or repainting.
Included in ITFI Lite:
• D1 & H4 bias (EMA-based)
• M15 equilibrium + premium/discount zones
• PB/BO Lite signals (no scoring)
• UTC session with volatility phase
• Compact dashboard for fast decision-making
Not included (Pro features):
• HTF FVG / OB mapping
• Scoring engine
• Ready / Wait / Blocked system
• Advanced liquidity model
• Entry timing assistant
• Full multi-timeframe confluence
📌 Pro version is currently in development — Coming Soon 🔒
Follow for updates and early access.
SE PRO — Clean ProfessionalSE PRO — Clean Professional is an advanced Smart Money Concepts (SMC) indicator designed for traders who want clean, accurate market structure, BOS/CHoCH detection, HTF trend filtering, liquidity identification, order block zones, and candlestick confirmation patterns — all in one optimized tool.
Grok/Claude Quantum Signal Pro * Grok/Claude X SeriesPro traders you are going to love this! Quantum Signal Pro is very much like the MoneyLine Fusion indicator but with a few additions. With Quantum Signal Pro you get a bullish/bearish Divergence indicator and signal filtering using a combination of RSI, Fisher Transform and the directional indicator ADX.
🎯 Key Features:
1. Dynamic ATR Bands with Smart Cloud
Adaptive bands that expand/contract with volatility
Color-coded cloud: 🟢 Green (uptrend) | 🔴 Red (downtrend) | 🟡 Yellow (neutral)
Basis line changes color to match market state
2. RSI Divergence Detection
Automatically spots bullish/bearish divergences
Bright cyan lines connect pivot points
Shows active divergences in info panel for 20 bars
Optional: Require divergence for signal confirmation
3. Triple-Filter Signal System
Signals trigger when ALL filters align:
✅ RSI (30/70 levels) - Oversold/Overbought
✅ Fisher Transform (±1.5) - Momentum exhaustion
✅ ADX (>20) - Trending market confirmation
Result: Fewer false signals, higher win rate!
4. Advanced Analytics Panel
Real-time 8-row display shows:
Fisher & RSI states with color coding
ATR status (Expanding/Contracting)
ADX trend strength (color-coded: white <15, orange 15-24, green >24)
DPO cycle position (±20% extremes highlighted)
Active divergence status
5. Detrended Price Oscillator (DPO)
Shows price deviation from detrended average:
>+20% = Lime (extreme overbought)
<-20% = Bright Red (extreme oversold)
Intensity-based color coding for all levels
🎨 Visual System:
Green = Bullish | Red = Bearish | Yellow = Neutral | Cyan = Divergences
Tiny arrows + price labels for clean chart
70% cloud opacity (visible but not obstructive)
📊 Trading Applications:
Trend Trading: Wait for colored cloud → pullback to bands → signal arrow
Reversal Trading: Divergence + extreme DPO → signal arrow confirmation
Range Trading: Yellow cloud → fade band extremes → exit on color change
🚨 Complete Alert System:
Signal alerts (Buy/Sell)
Setup building alerts (partial alignment)
Market state changes (Trending/Ranging)
Divergence detection (Bullish/Bearish)
💎 Why "Quantum"?
Multi-dimensional analysis: Price action + Momentum + Strength + Trend + Cycles + Divergence + Volatility = Complete trading system in one package!
🔗 Companion Indicator:
Fisher Momentum Bar - Separate pane histogram showing Fisher extremes without cluttering main chart
⚙️ Technical Specs:
Works on any timeframe (1m to 1M)
Max bars back: 5000
Stable table anchoring (no panning issues)
Pine Script v6
🎓 Pro Tips:
Divergence + DPO extreme = strongest reversal setups
Yellow cloud = wait for setup, don't force trades
ATR expanding = volatility breakout coming
ADX color tells you trend quality at a glance
If you loved MoneyLine Fusion's clarity, you'll love Quantum Signal Pro's intelligence and precision! 🚀
Part of the Grok/Claude X Series - Professional Trading Indicators
Wyckoff Accumulation/Distribution - Enhanced by ChakraWyckoff Accumulation/Distribution - Enhanced Indicator
Overview
An advanced Pine Script v6 indicator that detects Wyckoff accumulation and distribution patterns using RSI-based trend analysis, pivot detection, and volume confirmation. This enhanced version improves upon traditional Wyckoff indicators with cleaner code, English variable names, and additional market structure signals.
Key Features
Wyckoff Phase Detection
Accumulation Phase:
SC (Selling Climax): Bottom pivot with extreme bearish RSI and high volume
AR (Automatic Rally): First bounce after selling climax
ST (Secondary Test): Retest of lows without extreme RSI
SOS (Sign of Strength): Strong bullish breakout with volume confirmation ⭐ NEW
Distribution Phase:
BC (Buying Climax): Top pivot with extreme bullish RSI and high volume
DAR (Automatic Reaction): First drop after buying climax
DST (Distribution Secondary Test): Retest of highs
SOW (Sign of Weakness): Strong bearish breakdown with volume confirmation ⭐ NEW
Market Structure Events
Spring: False breakdown (RSI crosses above lower band) with background highlight
UTAD (Upthrust After Distribution): False breakout (RSI crosses below upper band) with background highlight
Visual Features
Range Boxes: Automatically draws consolidation ranges (gray) that change color on breakout:
🟢 Green = Accumulation (bullish breakout)
🔴 Red = Distribution (bearish breakout)
Pivot Markers: Orange triangles show regular (non-Wyckoff) pivot points
Bar Coloring: Lime bars for bullish trends, purple bars for bearish trends
Color-Coded Labels: All Wyckoff events clearly marked with descriptive text
Customizable Settings
RSI Settings:
RSI Length (default: 14)
Trend Sensitivity (default: 20) - Higher values = more sideways detection
Pivot Settings:
Pivot Length (default: 5) - Controls pivot point detection sensitivity
Display Options:
Toggle range boxes on/off
Toggle regular pivot markers
Toggle bar coloring by trend
Customize label text color
Advanced Detection:
Volume Confirmation toggle - Require high volume for climax events
Volume Threshold (default: 1.5x) - Adjustable volume multiplier
Alerts
8 comprehensive alert conditions:
Selling Climax (SC)
Buying Climax (BC)
Spring detection
UTAD detection
Sign of Strength (SOS)
Sign of Weakness (SOW)
Range Breakout
Improvements Over Original
✅ Pine Script v6 (latest version)
✅ English variable names (was Turkish)
✅ Fixed DAR label bug (was showing "AR")
✅ Added SOS (Sign of Strength) detection
✅ Added SOW (Sign of Weakness) detection
✅ Optional volume confirmation toggle
✅ Organized input groups for better UX
✅ Enhanced visual options
✅ Comprehensive alert system
✅ Cleaner, more maintainable code structure
Best Use Cases
Timeframes: Works on all timeframes; best on 4H, Daily, or Weekly
Markets: Stocks, Forex, Crypto, Indices
Trading Style: Swing trading, position trading, market structure analysis
Combine With: Support/Resistance, Volume Profile, Order Flow analysis
How It Works
The indicator uses RSI to identify market states (sideways, bullish, bearish) and combines this with pivot point detection and volume analysis to identify key Wyckoff events. When price is ranging (RSI between upper/lower bands), it draws a box. On breakout, the box color changes to indicate accumulation or distribution, helping traders identify smart money positioning.
Tips for Use
Lower Trend Sensitivity (10-15) for more signals in trending markets
Higher Trend Sensitivity (25-30) for clearer signals in choppy markets
Enable Volume Confirmation in high-volume markets (stocks, major crypto)
Disable Volume Confirmation in low-volume or forex markets
Watch for Spring/UTAD events within boxes for potential reversals
Version: 1.0
Pine Script: v6
Author: Chakrapani Chittabathina
Stacked MAs and Solid Price VolumeStacked MAs and Solid Price Volume is a lower-pane trend alignment indicator that provides instant visual confirmation of moving average structure and price positioning. The indicator monitors all six key SMAs (5, 10, 20, 50, 100, and 200-day) and displays background shading based on trend health: light red when price trades below the 200 SMA (caution zone), light green when price is above the 200 SMA (bullish territory), and darker green when price is above the 200 SMA AND all SMAs are perfectly stacked in bullish order (5 > 10 > 20 > 50 > 100 > 200)—the ideal trending condition. A thick green horizontal line appears during periods of full stack alignment, making it easy to scan charts and identify sustained uptrends. Green dots at the bottom mark price crossovers above the 50 SMA (potential trend resumption signals), while white dots at the top flag 5/10 SMA bullish crossovers (short-term momentum shifts). The colored strip along the bottom displays the 200 SMA's trend direction: blue for rising, red for falling, and gray for flat—giving you immediate context on the long-term trend's trajectory. Smart IPO handling ensures the indicator works properly on newer stocks with limited price history by defaulting unavailable longer-term comparisons to neutral. Perfect for trend followers who want a quick, clean read on moving average alignment without cluttering their price chart.
Delta Signals NO REPINTA (FINAL)📢 New Indicator: Delta Signals NO REPAINT 🔥
Introducing my new indicator based on Order Flow Delta, designed to provide buy and sell signals with absolutely NO repainting — perfect for scalping, day trading, or swing trading.
This tool combines two powerful components:
✅ Order Flow Delta — Measures the real strength between buyers and sellers
✅ Smart Trend Filter — Only shows signals in the direction of the dominant trend
Together, they deliver cleaner, more accurate and more reliable signals, with clear entry markers on the chart and a delta histogram revealing real market pressure.
🚀 What’s Included?
🔹 Buy/Sell signals with NO repaint
🔹 Intelligent delta calculation
🔹 Trend filter using moving average
🔹 Clear labels on entry points
🔹 Visual delta histogram
🔹 Works great on Crypto, Forex, Indices & Stocks
🔹 Very lightweight and fast on TradingView
🎯 Why is it powerful?
Because it doesn't rely on lagging indicators — it reads the actual imbalance between buyers and sellers, often detecting strong moves before traditional indicators do.
This type of analysis is used by professional order flow traders, but now you have it on your TradingView chart in a simple, visual format.
🔥 Perfect for:
Scalpers who need precision
Day traders working breakouts and pullbacks
Swing traders seeking strong confirmations
Traders who want clean, NO-repaint signals
If you want a version with automatic TP/SL, alerts, or full backtesting, I can publish that as well.
Just let me know. 🚀📈
Momentum Grid 2.1 + Top Stocks📊 MOMENTUM GRID 2.1 + TOP STOCKS
Overview
A multi-timeframe confirmation system specifically designed for NIFTY 50 and BANK NIFTY index options trading. This script combines 8 independent technical indicators into a weighted scoring model to generate high-probability CE (Call) and PE (Put) signals, while simultaneously tracking the top 5 constituent stocks for sector-wide momentum validation.
________________________________________
🎯 Core Methodology
1. 8-Factor Confirmation System
Unlike traditional single-indicator approaches, this script requires multiple confirmations before generating signals. Each factor votes independently:
Trend Alignment (3 votes):
• C1: Price above/below EMA 9 (immediate trend)
• C2: EMA 9 above/below EMA 20 (short-term momentum)
• C3: EMA 20 above/below EMA 50 (intermediate trend)
Oscillator Confirmation (3 votes):
• C4: RSI above/below 50 (momentum strength)
• C5: Stochastic K above/below D (entry timing)
• C6: MACD Histogram positive/negative (momentum direction)
Advanced Momentum (2 votes):
• C7: Parabolic SAR position (trend continuation)
• C8: Squeeze Momentum direction (volatility expansion)
Mathematical Logic:
Bullish Score = C1 + C2 + C3 + C4 + C5 + C6 + C7 + C8
Signal Triggered when Score ≥ Threshold (default: 5/8)
Why This Works: By requiring 5+ confirmations, the script filters out false signals that occur when only 1-2 indicators align by chance. This dramatically reduces whipsaws in choppy markets.
________________________________________
📈 Constituent Stock Analysis System
Real-Time Top 5 Stocks Tracking
The script fetches live data from the most heavily-weighted stocks in the selected index:
NIFTY 50 Constituents:
• Reliance Industries
• HDFC Bank
• Infosys
• ICICI Bank
• TCS
BANK NIFTY Constituents:
• HDFC Bank
• ICICI Bank
• Kotak Mahindra Bank
• State Bank of India
• Axis Bank
Stock Scoring Algorithm (0-6 Scale):
For each stock, the script calculates a momentum score based on:
1. Price vs EMA 9 position
2. EMA 9 vs EMA 20 relationship
3. EMA 20 vs EMA 50 hierarchy
4. RSI above/below 50
5. MACD histogram direction
6. Intraday price change direction
Signal Interpretation:
• 🚀🔥 Strong Bullish: Score ≥5 + Day Change >0.5%
• ⚠️❄️ Strong Bearish: Score ≤1 + Day Change <-0.5%
• 📈 Moderate Bullish: Score ≥3 + Positive change
• 📉 Moderate Bearish: Score ≤3 + Negative change
Why Track Constituents?
Index options are a weighted average of their components. When 4 out of 5 top stocks show strong bullish signals but the index signal is neutral, it indicates:
• Sector rotation is happening
• Underlying strength not yet reflected in index
• Early warning for potential index breakout
________________________________________
🎨 Visual Dashboard System
1. Main Momentum Grid (Middle Right)
Real-time status of all 8 confirmation factors:
• Individual indicator values
• Bullish/Bearish status per indicator
• Cumulative Bull Score and Bear Score
• Visual color coding (Green = Bullish, Red = Bearish)
2. Top Stocks Status Panel (Top Right)
Live tracking table showing:
• LTP (Last Traded Price): Current stock price
• Day Change %: Intraday movement from open
• Status: Overall bullish/bearish trend
• EMA Status: Position relative to EMA 9
• Signal Emoji: Visual strength indicator
3. Scenario Guide (Bottom Right)
Auto-calculates trade parameters based on current signal:
• Side: CE (Call) or PE (Put) recommendation
• Strike Reference: Current index price
• Trigger Level: Entry confirmation level (high/low of signal bar)
• Risk Limit: Stop loss using 1.5x ATR
• Price Objective: Target using 2.5x ATR
ATR-Based Risk Management: Average True Range (14-period) adapts stop-loss and targets to current volatility, ensuring consistent risk-reward ratios across different market conditions.
________________________________________
🚨 Signal Generation Logic
CE (Call) Signal Triggers When:
1. Bullish Score ≥ Threshold (5/8 default)
2. Previous bar Bullish Score < Threshold
3. Confirmation candle closes above EMA 9
4. Background turns light green
PE (Put) Signal Triggers When:
1. Bearish Score ≥ Threshold (5/8 default)
2. Previous bar Bearish Score < Threshold
3. Confirmation candle closes below EMA 9
4. Background turns light red
Signal Validation: Labels appear only when a new qualifying bar completes, preventing repainting. The tooltip shows the exact score and entry price for record-keeping.
________________________________________
🔧 Customization Options
Parameter Purpose Recommendation
Index Selection Choose NIFTY 50 or BANK NIFTY Match to your trading instrument
EMA Periods Adjust trend sensitivity Default (9/20/50/100) suits 5-15 min
Signal Threshold Min confirmations required 5/8 (balanced), 6/8 (conservative)
RSI Length Momentum calculation period 14 (standard), 21 (smoother)
MACD Settings Fast/Slow/Signal periods 12/26/9 (industry standard)
________________________________________
📊 Technical Indicator Details
Exponential Moving Averages (EMA)
• Why EMA vs SMA: Exponential weighting gives more importance to recent price action, making it more responsive to trend changes in fast-moving index options.
Relative Strength Index (RSI)
• Measures momentum on 0-100 scale
• 50 level acts as bull/bear dividing line
• Used for confirmation, not overbought/oversold
Stochastic Oscillator
• Compares closing price to recent range
• K line crossing above D line = bullish momentum shift
• Sensitive to short-term reversals
MACD (Moving Average Convergence Divergence)
• Histogram shows momentum acceleration/deceleration
• Positive histogram = increasing bullish momentum
• Used as tiebreaker when other signals conflict
Parabolic SAR
• Tracks stop-and-reverse points
• Dots below price = uptrend, above = downtrend
• Adds trend-following confirmation
Squeeze Momentum
• Identifies periods of low volatility (consolidation)
• Bollinger Bands inside Keltner Channels = "squeeze"
• Positive momentum during squeeze = bullish breakout setup
________________________________________
💡 What Makes This Script Unique
1. Index-Specific Design: Unlike generic multi-timeframe indicators, this is purpose-built for NIFTY/BANKNIFTY options with constituent stock correlation analysis.
2. Multi-Layer Validation: Combines price action (EMAs), momentum (RSI/Stoch/MACD), and volatility (Squeeze) for comprehensive market assessment.
3. Smart Constituent Tracking: Automatically switches stock universe based on selected index, providing sector-level context that single-chart indicators miss.
4. Adaptive Risk Management: ATR-based stop-loss and targets adjust to market volatility automatically, unlike fixed-point systems.
5. No Repainting: All calculations use confirmed bars with lookahead=barmerge.lookahead_off parameter, ensuring historical backtesting accuracy.
________________________________________
📚 Best Practices
Timeframe Selection:
• 5 min: Scalping (high frequency, tight stops)
• 15 min: Intraday swing trades (balanced)
• 1 hour: Positional option trades (overnight holds)
Trade Execution:
1. Wait for CE/PE label to appear
2. Check Top Stocks Status - look for 3+ stocks confirming index direction
3. Verify Scenario Guide shows acceptable risk-reward (min 1:1.5)
4. Enter on next candle open or use trigger level for limit orders
5. Place stop-loss at "Risk Limit" level
6. Scale out at "Price Objective" or trail with Parabolic SAR
False Signal Filters:
• Avoid signals during first 15 minutes of market open (high volatility)
• Skip signals when Top Stocks show conflicting directions (3 bull, 2 bear)
• Increase threshold to 6/8 during major news events
• Disable trading 30 minutes before important announcements
________________________________________
⚠️ Limitations & Considerations
• Index Options Specific: Optimized for NIFTY/BANKNIFTY - may need recalibration for other instruments
• Not Suitable for Trending Markets: Works best in swing/range conditions; reduce threshold in strong trends
• Constituent Data Dependency: Relies on accurate real-time stock data; verify broker data quality
• Options Greeks Ignored: Script doesn't account for theta decay, IV changes - user must manage option selection
________________________________________
🔔 Built-In Alerts
Set alerts for:
• CE Signal Generated: Bullish score crosses threshold
• PE Signal Generated: Bearish score crosses threshold
Alert messages include ticker symbol and entry price for quick execution.
________________________________________
📈 Performance Optimization Tips
1. Score Correlation Check: If Bull Score and Bear Score are both high (6+/8), market is conflicted - wait for resolution.
2. Stock Divergence Strategy: When 4/5 stocks are bullish but index shows PE signal, it often indicates a false breakdown - counter-trend opportunity.
3. Squeeze Breakout Combo: Strongest signals occur when Squeeze changes from "ON" to "OFF" simultaneously with CE/PE trigger.
4. EMA Stacking: Maximum confidence signals have all three EMAs in proper order (9>20>50 for bull, reverse for bear).
________________________________________
🎓 Educational Context
This methodology synthesizes:
• Multi-Timeframe Analysis: EMAs represent different trend horizons
• Oscillator Convergence: Multiple momentum tools reduce false positives
• Index Arbitrage Concepts: Constituent tracking exploits pricing inefficiencies
• Adaptive Volatility: ATR-based risk scales with market conditions
The 8-factor system mirrors institutional decision frameworks where analysts require consensus across multiple models before position changes.
________________________________________
📋 Quick Reference
Bullish Setup Checklist: ✅ Bull Score ≥ 5/8
✅ Green background color
✅ 3+ top stocks showing 📈 or 🚀
✅ Price above EMA 9
✅ MACD Histogram positive
Bearish Setup Checklist: ✅ Bear Score ≥ 5/8
✅ Red background color
✅ 3+ top stocks showing 📉 or ⚠️
✅ Price below EMA 9
✅ MACD Histogram negative
________________________________________
⚖️ Disclaimer
This indicator is a decision support tool, not an automated trading system. Index options involve substantial risk and can result in total loss of premium paid. The constituent stock analysis provides context but does not guarantee index price movement. Users must:
• Understand options Greeks (delta, theta, vega)
• Use proper position sizing (max 2-3% capital per trade)
• Never trade based on signals alone without market context
• Comply with SEBI regulations and broker policies
Past performance of signals does not guarantee future results.
________________________________________
Version: Pine Script v6
Supported Indices: NIFTY 50, BANK NIFTY
Resource Usage: Moderate (Multi-security data requests)
Update Frequency: Real-time on current timeframe
________________________________________
For support or suggestions, please comment below. If this script helps your trading, please like and follow for updates! 🚀📊
Stochastic BTC OptimizedEnhanced Stochastic for Bitcoin (BTC) – Optimized for Daily Timeframe
This enhanced Stochastic oscillator is specifically fine-tuned for BTC/USD on the 1D timeframe, leveraging historical data from Bitstamp (2011–2025) to minimize false signals and maximize reliability in Bitcoin's volatile swings.
Unlike the classic Stochastic (14, 3, 3), this version uses optimized parameters:
- K Period = 21 – smoother reaction, better suited for BTC’s macro cycles
- D Period = 3, Smooth K = 3 – reduces noise while preserving responsiveness
- Overbought = 85, Oversold = 15 – accounts for BTC’s tendency to trend strongly within extreme zones without immediate reversal
✅ Smart Signal Logic:
Buy/sell signals appear only when %K crosses %D inside the oversold (≤15) or overbought (≥85) zones, and only the first signal is shown to avoid whipsaws.
Visual Enhancements:
- Thick lines when %K/%D are in overbought/oversold zones
- Green/red background highlights on valid signals
- Optional up/down arrows for clear entry visualization
- Customizable colors, line widths, and transparency
🔒 No alerts included – clean, focused on price action and momentum.
💡 Pro Tip: For even higher accuracy, use this indicator in combination with a long-term trend filter (e.g., EMA 200). The oscillator excels in ranging or retracement phases but should not be used alone in strong parabolic moves.
Based on Mozilla Public License v2.0 – feel free to use, modify, and share. Perfect for swing traders and long-term Bitcoin analysts seeking high-probability reversal zones.
перевод на русский
Улучшенный Stochastic для Bitcoin (BTC) — оптимизирован для дневного таймфрейма
Этот улучшенный осциллятор Stochastic специально настроен под BTC/USD на дневном графике, с учётом исторических данных Bitstamp (2011–2025), чтобы минимизировать ложные сигналы и повысить надёжность в условиях высокой волатильности биткоина.
В отличие от классического Stochastic (14, 3, 3), эта версия использует оптимизированные параметры:
- Период K = 21 — более плавная реакция, лучше соответствует макроциклам BTC
- Период D = 3, Сглаживание K = 3 — снижает шум, сохраняя отзывчивость
- Уровень перекупленности = 85, перепроданности = 15 — учитывает склонность BTC к сильным трендам в экстремальных зонах без немедленного разворота
✅ Интеллектуальная логика сигналов:
Покупка/продажа отображается только при пересечении %K и %D внутри зоны перепроданности (≤15) или перекупленности (≥85), и только первый сигнал фиксируется, чтобы избежать «хлыстов».
Улучшенная визуализация:
- Жирные линии, когда %K/%D находятся в экстремальных зонах
- Зелёный/красный фон при появлении сигналов
- Опциональные стрелки для чёткого отображения точек входа
- Настройка цветов, толщины линий и прозрачности
🔒 Без алертов — чистый инструмент, сфокусированный на цене и импульсе.
💡 Совет профессионала: для ещё большей точности используйте этот индикатор вместе с трендовым фильтром (например, EMA 200). Осциллятор лучше всего работает в фазах консолидации или отката, но не стоит применять его в одиночку во время сильных параболических движений.
На основе Mozilla Public License v2.0 — свободно используйте, модифицируйте и делитесь. Идеален для свинг-трейдеров и аналитиков Bitcoin, ищущих зоны с высокой вероятностью разворота.
Filter Bar1. Indicator Name
Filter Bar
2. One-line Introduction
A trend-aware bar coloring system that visualizes market direction and strength through adaptive transparency based on regression scoring.
3. General Overview
Filter Bar+ is a minimalist but powerful trend visualization tool that colors chart bars according to market direction and momentum strength.
It analyzes the linear regression trend alignment over a specified lookback period and uses a pairwise comparison algorithm to determine whether the market is in a bullish, bearish, or neutral state.
The result is a "trend score" that gets normalized to reflect trend intensity (0~1).
Bar colors are then dynamically updated using the specified bullish or bearish base colors, where higher intensity results in more opaque (darker) bars, and weaker trends lead to lighter, faded tones.
If no strong trend is detected, bars are shown in gray, signaling indecision or neutrality.
The strength of this indicator lies in its simplicity—it doesn’t draw lines, waves, or shapes, but overlays insight directly onto the chart through smart color cues.
It’s particularly effective as a background filter for price action traders, scalpers, and anyone who prefers clean charts but still wants embedded directional context.
4. Key Advantages
🎨 Adaptive Bar Coloring
Bar color opacity increases with trend strength, offering instant visual confirmation without clutter.
📊 Quantified Trend Direction
Uses a regression-based scoring system to reliably detect uptrends, downtrends, or sideways markets.
⚖️ Customizable Sensitivity
Parameters like lookback period and tolerance percentage give users full control over signal responsiveness.
🧼 Clean Chart Presentation
No lines, shapes, or overlays—just color-coded bars that blend into your existing chart setup.
🚀 Lightweight & Fast
Minimal computational load ensures it works smoothly even on lower-end devices or multiple chart setups.
🔒 Secure Internal Logic
Algorithm is neatly encapsulated and optimized, with no critical logic exposed.
📘 Indicator User Guide
📌 Basic Concept
Filter Bar+ evaluates trend direction and strength using a pairwise comparison of linear regression values.
The result determines whether the market is bullish, bearish, or neutral, and adjusts bar colors accordingly.
It visually amplifies the current market state without drawing any indicators on the chart.
⚙️ Settings Explained
Lookback Period: Number of bars used to compare regression values
Range Tolerance (%): Minimum score required to label a trend as bullish or bearish
Regression Source: Data input used for regression (default: close)
Linear Regression Length: Period for generating the base regression line
Bull/Bear Base Colors: Choose colors to represent bullish or bearish bars
📈 Buy Timing Example
Bars are green (or user-set bullish color) and becoming more vivid
Indicates a strengthening bullish trend; helpful when used alongside breakout confirmation or support zones
📉 Sell Timing Example
Bars turn red (or your custom bearish color) with increasing opacity
Signals growing bearish pressure; acts as confirmation during short setups or breakdowns
🧪 Recommended Use Cases
Combine with volume, RSI, or price action setups for direction filtering
Ideal for clean chart strategies where visual simplicity is preferred
Use as a confirmation layer to reduce noise in sideways markets
🔒 Precautions
This is a visual filter, not a signal generator—use alongside other strategies for entries/exits
In choppy markets, bars may flicker between colors—adjust sensitivity as needed
Works best when you already have a directional thesis and want to validate it visually
Always test settings for your asset/timeframe before applying in live trades
Stochastic Hash Strat [Hash Capital Research]# Stochastic Hash Strategy by Hash Capital Research
## 🎯 What Is This Strategy?
The **Stochastic Slow Strategy** is a momentum-based trading system that identifies oversold and overbought market conditions to capture mean-reversion opportunities. Think of it as a "buy low, sell high" approach with smart mathematical filters that remove emotion from your trading decisions.
Unlike fast-moving indicators that generate excessive noise, this strategy uses **smoothed stochastic oscillators** to identify only the highest-probability setups when momentum truly shifts.
---
## 💡 Why This Strategy Works
Most traders fail because they:
- **Chase prices** after big moves (buying high, selling low)
- **Overtrade** in choppy, directionless markets
- **Exit too early** or hold losses too long
This strategy solves all three problems:
1. **Entry Discipline**: Only trades when the stochastic oscillator crosses in extreme zones (oversold for longs, overbought for shorts)
2. **Cooldown Filter**: Prevents revenge trading by forcing a waiting period after each trade
3. **Fixed Risk/Reward**: Pre-defined stop-loss and take-profit levels ensure consistent risk management
**The Math Behind It**: The stochastic oscillator measures where the current price sits relative to its recent high-low range. When it's below 25, the market is oversold (time to buy). When above 70, it's overbought (time to sell). The crossover with its moving average confirms momentum is shifting.
---
## 📊 Best Markets & Timeframes
### ⭐ OPTIMAL PERFORMANCE:
**Crude Oil (WTI) - 12H Timeframe**
- **Why it works**: Oil markets have predictable volatility patterns and respect technical levels
**AAVE/USD - 4H to 12H Timeframe**
- **Why it works**: DeFi tokens exhibit strong momentum cycles with clear extremes
### ✅ Also Works Well On:
- **BTC/USD** (12H, Daily) - Lower frequency but high win rate
- **ETH/USD** (8H, 12H) - Balanced volatility and liquidity
- **Gold (XAU/USD)** (Daily) - Classic mean-reversion asset
- **EUR/USD** (4H, 8H) - Lower volatility, requires patience
### ❌ Avoid Using On:
- Timeframes below 4H (too much noise)
- Low-liquidity altcoins (wide spreads kill performance)
- Strongly trending markets without pullbacks (Bitcoin in 2021)
- News-driven instruments during major events
---
## 🎛️ Understanding The Settings
### Core Stochastic Parameters
**Stochastic Length (Default: 16)**
- Controls the lookback period for price comparison
- Lower = faster reactions, more signals (10-14 for volatile markets)
- Higher = smoother signals, fewer trades (16-21 for stable markets)
- **Pro tip**: Use 10 for crypto 4H, 16 for commodities 12H
**Overbought Level (Default: 70)**
- Threshold for short entries
- Lower values (65-70) = more trades, earlier entries
- Higher values (75-80) = fewer but higher-conviction trades
- **Sweet spot**: 70 works for most assets
**Oversold Level (Default: 25)**
- Threshold for long entries
- Higher values (25-30) = more trades, earlier entries
- Lower values (15-20) = fewer but stronger bounce setups
- **Sweet spot**: 20-25 depending on market conditions
**Smooth K & Smooth D (Default: 7 & 3)**
- Additional smoothing to filter out whipsaws
- K=7 makes the indicator slower and more reliable
- D=3 is the signal line that confirms the trend
- **Don't change these unless you know what you're doing**
---
### Risk Management
**Stop Loss % (Default: 2.2%)**
- Automatically exits losing trades
- Should be 1.5x to 2x your average market volatility
- Too tight = death by a thousand cuts
- Too wide = uncontrolled losses
- **Calibration**: Check ATR indicator and set SL slightly above it
**Take Profit % (Default: 7%)**
- Automatically exits winning trades
- Should be 2.5x to 3x your stop loss (reward-to-risk ratio)
- This default gives 7% / 2.2% = 3.18:1 R:R
- **The golden rule**: Never have R:R below 2:1
---
### Trade Filters
**Bar Cooldown Filter (Default: ON, 3 bars)**
- **What it does**: Forces you to wait X bars after closing a trade before entering a new one
- **Why it matters**: Prevents emotional revenge trading and overtrading in choppy markets
- **Settings guide**:
- 3 bars = Standard (good for most cases)
- 5-7 bars = Conservative (oil, slow-moving assets)
- 1-2 bars = Aggressive (only for experienced traders)
**Exit on Opposite Extreme (Default: ON)**
- Closes your long when stochastic hits overbought (and vice versa)
- Acts as an early profit-taking mechanism
- **Leave this ON** unless you're testing other exit strategies
**Divergence Filter (Default: OFF)**
- Looks for price/momentum divergences for additional confirmation
- **When to enable**: Trending markets where you want fewer but higher-quality trades
- **Keep OFF for**: Mean-reverting markets (oil, forex, most of the time)
---
## 🚀 Quick Start Guide
### Step 1: Set Up in TradingView
1. Open TradingView and navigate to your chart
2. Click "Pine Editor" at the bottom
3. Copy and paste the strategy code
4. Click "Add to Chart"
5. The strategy will appear in a separate pane below your price chart
### Step 2: Choose Your Market
**If you're trading Crude Oil:**
- Timeframe: 12H
- Keep all default settings
- Watch for signals during London/NY overlap (8am-11am EST)
**If you're trading AAVE or crypto:**
- Timeframe: 4H or 12H
- Consider these adjustments:
- Stochastic Length: 10-14 (faster)
- Oversold: 20 (more aggressive)
- Take Profit: 8-10% (higher targets)
### Step 3: Wait for Your First Signal
**LONG Entry** (Green circle appears):
- Stochastic crosses up below oversold level (25)
- Price likely near recent lows
- System places limit order at take profit and stop loss
**SHORT Entry** (Red circle appears):
- Stochastic crosses down above overbought level (70)
- Price likely near recent highs
- System places limit order at take profit and stop loss
**EXIT** (Orange circle):
- Position closes either at stop, target, or opposite extreme
- Cooldown period begins
### Step 4: Let It Run
The biggest mistake? **Interfering with the system.**
- Don't close trades early because you're scared
- Don't skip signals because you "have a feeling"
- Don't increase position size after a big win
- Don't revenge trade after a loss
**Follow the system or don't use it at all.**
---
### Important Risks:
1. **Drawdown Pain**: You WILL experience losing streaks of 5-7 trades. This is mathematically normal.
2. **Whipsaw Markets**: Choppy, range-bound conditions can trigger multiple small losses.
3. **Gap Risk**: Overnight gaps can cause your actual fill to be worse than the stop loss.
4. **Slippage**: Real execution prices differ from backtested prices (factor in 0.1-0.2% slippage).
---
## 🔧 Optimization Guide
### When to Adjust Settings:
**Market Volatility Increased?**
- Widen stop loss by 0.5-1%
- Increase take profit proportionally
- Consider increasing cooldown to 5-7 bars
**Getting Too Few Signals?**
- Decrease stochastic length to 10-12
- Increase oversold to 30, decrease overbought to 65
- Reduce cooldown to 2 bars
**Getting Too Many Losses?**
- Increase stochastic length to 18-21 (slower, smoother)
- Enable divergence filter
- Increase cooldown to 5+ bars
- Verify you're on the right timeframe
### A/B Testing Method:
1. **Run default settings for 50 trades** on your chosen market
2. Document: Win rate, profit factor, max drawdown, emotional tolerance
3. **Change ONE variable** (e.g., oversold from 25 to 20)
4. Run another 50 trades
5. Compare results
6. Keep the better version
**Never change multiple settings at once** or you won't know what worked.
---
## 📚 Educational Resources
### Key Concepts to Learn:
**Stochastic Oscillator**
- Developed by George Lane in the 1950s
- Measures momentum by comparing closing price to price range
- Formula: %K = (Close - Low) / (High - Low) × 100
- Similar to RSI but more sensitive to price movements
**Mean Reversion vs. Trend Following**
- This is a **mean reversion** strategy (price returns to average)
- Works best in ranging markets with defined support/resistance
- Fails in strong trending markets (2017 Bitcoin, 2020 Tech stocks)
- Complement with trend filters for better results
**Risk:Reward Ratio**
- The cornerstone of profitable trading
- Winning 40% of trades with 3:1 R:R = profitable
- Winning 60% of trades with 1:1 R:R = breakeven (after fees)
- **This strategy aims for 45% win rate with 2.5-3:1 R:R**
### Recommended Reading:
- *"Trading Systems and Methods"* by Perry Kaufman (Chapter on Oscillators)
- *"Mean Reversion Trading Systems"* by Howard Bandy
- *"The New Trading for a Living"* by Dr. Alexander Elder
---
## 🛠️ Troubleshooting
### "I'm not seeing any signals!"
**Check:**
- Is your timeframe 4H or higher?
- Is the stochastic actually reaching extreme levels (check if your asset is stuck in middle range)?
- Is cooldown still active from a previous trade?
- Are you on a low-liquidity pair?
**Solution**: Switch to a more volatile asset or lower the overbought/oversold thresholds.
---
### "The strategy keeps losing money!"
**Check:**
- What's your win rate? (Below 35% is concerning)
- What's your profit factor? (Below 0.8 means serious issues)
- Are you trading during major news events?
- Is the market in a strong trend?
**Solution**:
1. Verify you're using recommended markets/timeframes
2. Increase cooldown period to avoid choppy markets
3. Reduce position size to 5% while you diagnose
4. Consider switching to daily timeframe for less noise
---
### "My stop losses keep getting hit!"
**Check:**
- Is your stop loss tighter than the average ATR?
- Are you trading during high-volatility sessions?
- Is slippage eating into your buffer?
**Solution**:
1. Calculate the 14-period ATR
2. Set stop loss to 1.5x the ATR value
3. Avoid trading right after market open or major news
4. Factor in 0.2% slippage for crypto, 0.1% for oil
---
## 💪 Pro Tips from the Trenches
### Psychological Discipline
**The Three Deadly Sins:**
1. **Skipping signals** - "This one doesn't feel right"
2. **Early exits** - "I'll just take profit here to be safe"
3. **Revenge trading** - "I need to make back that loss NOW"
**The Solution:** Treat your strategy like a business system. Would McDonald's skip making fries because the cashier "doesn't feel like it today"? No. Systems work because of consistency.
---
### Position Management
**Scaling In/Out** (Advanced)
- Enter 50% position at signal
- Add 50% if stochastic reaches 10 (oversold) or 90 (overbought)
- Exit 50% at 1.5x take profit, let the rest run
**This is NOT for beginners.** Master the basic system first.
---
### Market Awareness
**Oil Traders:**
- OPEC meetings = volatility spikes (avoid or widen stops)
- US inventory reports (Wed 10:30am EST) = avoid trading 2 hours before/after
- Summer driving season = different patterns than winter
**Crypto Traders:**
- Monday-Tuesday = typically lower volatility (fewer signals)
- Thursday-Sunday = higher volatility (more signals)
- Avoid trading during exchange maintenance windows
---
## ⚖️ Legal Disclaimer
This trading strategy is provided for **educational purposes only**.
- Past performance does not guarantee future results
- Trading involves substantial risk of loss
- Only trade with capital you can afford to lose
- No one associated with this strategy is a licensed financial advisor
- You are solely responsible for your trading decisions
**By using this strategy, you acknowledge that you understand and accept these risks.**
---
## 🙏 Acknowledgments
Strategy development inspired by:
- George Lane's original Stochastic Oscillator work
- Modern quantitative trading research
- Community feedback from hundreds of backtests
Built with ❤️ for retail traders who want systematic, disciplined approaches to the markets.
---
**Good luck, stay disciplined, and trade the system, not your emotions.**
Fractals Trend [BigBeluga]🔵 OVERVIEW
Fractals Trend is a trend-following overlay that leverages fractal swing points to define dynamic support and resistance zones. By storing and averaging recent high and low fractals, it determines trend direction and plots a smooth band that flips depending on market bias—displaying support during uptrends and resistance during downtrends .
🔵 CONCEPTS
Fractal Swings: Fractals are identified using a customizable length. A high fractal forms when the current high is the highest in a range; a low fractal when the current low is the lowest.
Fractal Memory: The indicator keeps a rolling window of recent high and low fractals inside arrays, limited by the user-defined storage quantity.
switch
upperF => FracrtalsUpper.push(high )
lowerF => FracrtalsLower.push(low )
FracrtalsUpper.size() > fCount => FracrtalsUpper.shift()
FracrtalsLower.size() > fCount => FracrtalsLower.shift()
Trend Detection: Price crossing above the average, min/max or median high fractals signals an uptrend; crossing below average, min/max or median low fractals signals a downtrend.
Dynamic Band Plotting: Depending on the trend, the script plots the average of either the upper or lower fractals as a trailing support or resistance line.
Visual Confirmation: Fractal labels appear as triangle markers at highs and lows, providing additional structural context.
🔵 FEATURES
Automatically detects high and low fractals using customizable length.
Stores a defined number of fractals to smooth out noise and reduce false signals.
Flips trend bias dynamically with colored band and smooth transitions.
Plots fractal-based support in bullish trends, resistance in bearish trends.
Triangle markers show real-time fractal highs and lows.
Fully configurable visuals, color themes, and fractal detection logic.
Clean, non-intrusive overlay that works on any market or timeframe.
🔵 HOW TO USE
Use the colored band as a directional filter: green = uptrend (support), orange = downtrend (resistance).
Combine with entry signals or break/retest strategies when price approaches the band.
Use triangle markers to confirm structural swing points.
Adjust Fractals Length to tune sensitivity—shorter values detect quicker shifts, longer values reduce noise.
Change the fractal bands type to adapt trend detection to different market conditions.
Use in conjunction with momentum or volume tools for confluence.
🔵 CONCLUSION
Fractals Trend offers a lightweight, intuitive way to track market bias using price structure alone. Its smart switching logic and clean visuals make it a powerful tool for trend traders seeking structure-based dynamic S/R—without laggy moving averages or overcomplicated signals.
Tactical Deviation🎯 TACTICAL DEVIATION - Volume-Backed VWAP Deviation Analysis
What Makes This Different?
Unlike basic VWAP indicators, Tactical Deviation combines:
• Multi-timeframe VWAP deviation bands (Daily/Weekly/Monthly)
• Volume spike intelligence - signals only appear with volume confirmation
• Pivot reversal detection at deviation extremes
• Optional multi-VWAP confluence system
• Smart defaults for quality over quantity
This unique combination filters weak setups and identifies high-probability entries at extreme price deviations from fair value.
📊 DEFAULT SETTINGS (Ready to Use)
✅ Daily VWAP with ±2σ deviation bands
✅ Volume spike detection (1.5x average required)
✅ 2σ minimum deviation for signals
❌ Weekly/Monthly VWAPs (enable for multi-timeframe)
❌ Pivot reversal requirement (enable for stronger signals)
❌ Fill zones (optional visual enhancement)
Why: Daily VWAP is most relevant for intraday trading. 2σ bands catch meaningful moves. Volume spikes ensure conviction. Clean chart focuses on what matters.
🚀 HOW TO USE
BASIC USAGE:
• Green triangles (below bars) = Long signals at oversold deviations
• Red triangles (above bars) = Short signals at overbought deviations
SIGNAL QUALITY:
• Normal size, bright colors = Volume spike (best quality)
• Small size, lighter colors = Volume momentum
• Tiny size = No volume confirmation
DEVIATION ZONES:
• ±2σ = Extreme deviation (signals appear here)
• ±1σ to ±2σ = Extended but not extreme
• Within ±1σ = Normal range
TRADING APPROACHES:
Mean Reversion:
→ Enter when price reaches ±2σ with volume spike
→ Target: Return to VWAP or opposite band
→ Stop: Beyond extreme deviation
Trend Continuation:
→ Use bands to identify pullbacks
→ Enter pullback to VWAP in trending market
→ Volume confirms continuation
Reversal Trading:
→ Enable "Require Pivot Reversal" for stronger signals
→ Signals only when deviation + pivot reversal occur
→ Higher probability, fewer signals
⚙️ EXPLORE SETTINGS FOR FULL USE
VWAP SETTINGS:
• Show Weekly/Monthly VWAP = Multi-timeframe context
• Show ±1σ Bands = Normal deviation range
• Show ±3σ Bands = Extreme extremes (rare but powerful)
SIGNAL SETTINGS:
• Min Deviation: 1σ (more signals) | 2σ (default) | 3σ (fewer, extreme only)
• Require Pivot Reversal: OFF (default) | ON (stronger but fewer)
• Volume Spike Threshold: 1.5x (default) | 2.0x+ (major spikes) | 1.2x (more signals)
CONFLUENCE SETTINGS:
• Require Multi-VWAP Confluence: OFF (default) | ON (2+ VWAPs must agree)
• Min VWAPs: 2 (Daily + Weekly/Monthly) | 3 (all must agree)
VISUAL SETTINGS:
• Show Fill Zones = Shaded areas between bands
• Fill Opacity = Transparency adjustment
• Line Widths = Customize thickness
💡 PRO TIPS
1. Start with defaults, then enable features as you learn
2. Volume spike requirement filters weak moves - keep it enabled
3. Enable Weekly/Monthly VWAPs for higher timeframe context
4. Enable confluence for swing trading setups
5. Pivot reversals: ON for reversals, OFF for continuations
6. Check top-right info table for current deviation levels
🎨 VISUAL GUIDE
• Cyan Line = Daily VWAP (fair value)
• Cyan Bands = Daily deviation zones
• Orange Line = Weekly VWAP (if enabled)
• Purple Line = Monthly VWAP (if enabled)
• Green Triangle = Long signal (oversold)
• Red Triangle = Short signal (overbought)
⚠️ IMPORTANT
Educational purposes only. Always use proper risk management. Signals are based on statistical deviation, not guarantees. Volume confirmation improves quality but doesn't guarantee outcomes. Combine with your own analysis.
The unique combination of VWAP deviation analysis, volume profile confirmation, pivot identification, and multi-timeframe confluence in a single clean interface makes Tactical Deviation different from basic VWAP indicators.
Happy Trading! 📈
Scaling_mastery:Free TrendlinesScaling_mastery Trendlines is a clean, trading-ready smart trendline tool built for the Scaling_mastery community.
It automatically finds swing highs/lows and draws dynamic trendlines or channels that stay locked to price, on any symbol and any timeframe.
🔧 Modes
Trendline type
Wicks – classic trendlines anchored on candle wicks (high/low).
Bodies – trendlines anchored on candle bodies (open/close), great for closing structure.
Channel – 3-line channel:
outer lines form a band around price
middle line runs through the centre of the channel
thickness is adjustable (Small / Medium / Large).
Trend strength
Controls how strong the pivots must be to form a line.
Weak → more lines, reacts faster.
Medium → balanced, good for most pairs.
Strong → only the cleanest swings, higher-probability trendlines.
🎨 Visual controls
Max support / resistance lines – cap how many lines are kept on chart.
Show broken lines – hide broken trendlines or keep them for structure history.
Extend lines – None / Right / Both.
Support / Resistance colors – separate colors for active vs broken.
Channel thickness – Small / Medium / Large (0.5% / 1% / 2% of price).
Channel outer lines – color for channel edges.
Channel middle line – color + style (dotted / dashed / solid).
Broken lines are automatically faded + dotted, so you can instantly see what’s still respected and what’s already been taken out.
🧠 How to use
Add the indicator to any chart.
Start with:
Trendline type: Wicks
Trend strength: Strong
Max lines: 1–2 for both support & resistance
Once you like the behavior, experiment with:
Switching between Wicks / Bodies / Channel
Adjusting Channel thickness and Trend strength
Use the lines as a visual confluence tool with your own strategy:
HTF trend direction
LTF entries / retests
Liquidity grabs around broken lines
This script doesn’t generate entries or risk management – it’s designed to give you clean, reliable structure so you can execute your own edge.
⚠️ Disclaimer
This tool is for educational and visual purposes only and is not financial advice.
Always do your own research and manage risk.
Naveen Prabhu with EMA//@version=6
indicator('Naveen Prabhu with EMA', overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500)
a = input(2, title = 'Key Vaule. \'This changes the sensitivity\'')
c = input(5, title = 'ATR Period')
h = input(false, title = 'Signals from Heikin Ashi Candles')
BULLISH_LEG = 1
BEARISH_LEG = 0
BULLISH = +1
BEARISH = -1
GREEN = #089981
RED = #F23645
BLUE = #2157f3
GRAY = #878b94
MONO_BULLISH = #b2b5be
MONO_BEARISH = #5d606b
HISTORICAL = 'Historical'
PRESENT = 'Present'
COLORED = 'Colored'
MONOCHROME = 'Monochrome'
ALL = 'All'
BOS = 'BOS'
CHOCH = 'CHoCH'
TINY = size.tiny
SMALL = size.small
NORMAL = size.normal
ATR = 'Atr'
RANGE = 'Cumulative Mean Range'
CLOSE = 'Close'
HIGHLOW = 'High/Low'
SOLID = '⎯⎯⎯'
DASHED = '----'
DOTTED = '····'
SMART_GROUP = 'Smart Money Concepts'
INTERNAL_GROUP = 'Real Time Internal Structure'
SWING_GROUP = 'Real Time Swing Structure'
BLOCKS_GROUP = 'Order Blocks'
EQUAL_GROUP = 'EQH/EQL'
GAPS_GROUP = 'Fair Value Gaps'
LEVELS_GROUP = 'Highs & Lows MTF'
ZONES_GROUP = 'Premium & Discount Zones'
modeTooltip = 'Allows to display historical Structure or only the recent ones'
styleTooltip = 'Indicator color theme'
showTrendTooltip = 'Display additional candles with a color reflecting the current trend detected by structure'
showInternalsTooltip = 'Display internal market structure'
internalFilterConfluenceTooltip = 'Filter non significant internal structure breakouts'
showStructureTooltip = 'Display swing market Structure'
showSwingsTooltip = 'Display swing point as labels on the chart'
showHighLowSwingsTooltip = 'Highlight most recent strong and weak high/low points on the chart'
showInternalOrderBlocksTooltip = 'Display internal order blocks on the chart\n\nNumber of internal order blocks to display on the chart'
showSwingOrderBlocksTooltip = 'Display swing order blocks on the chart\n\nNumber of internal swing blocks to display on the chart'
orderBlockFilterTooltip = 'Method used to filter out volatile order blocks \n\nIt is recommended to use the cumulative mean range method when a low amount of data is available'
orderBlockMitigationTooltip = 'Select what values to use for order block mitigation'
showEqualHighsLowsTooltip = 'Display equal highs and equal lows on the chart'
equalHighsLowsLengthTooltip = 'Number of bars used to confirm equal highs and equal lows'
equalHighsLowsThresholdTooltip = 'Sensitivity threshold in a range (0, 1) used for the detection of equal highs & lows\n\nLower values will return fewer but more pertinent results'
showFairValueGapsTooltip = 'Display fair values gaps on the chart'
fairValueGapsThresholdTooltip = 'Filter out non significant fair value gaps'
fairValueGapsTimeframeTooltip = 'Fair value gaps timeframe'
fairValueGapsExtendTooltip = 'Determine how many bars to extend the Fair Value Gap boxes on chart'
showPremiumDiscountZonesTooltip = 'Display premium, discount, and equilibrium zones on chart'
modeInput = input.string( HISTORICAL, 'Mode', group = SMART_GROUP, tooltip = modeTooltip, options = )
styleInput = input.string( COLORED, 'Style', group = SMART_GROUP, tooltip = styleTooltip,options = )
showTrendInput = input( false, 'Color Candles', group = SMART_GROUP, tooltip = showTrendTooltip)
showInternalsInput = input( false, 'Show Internal Structure', group = INTERNAL_GROUP, tooltip = showInternalsTooltip)
showInternalBullInput = input.string( ALL, 'Bullish Structure', group = INTERNAL_GROUP, inline = 'ibull', options = )
internalBullColorInput = input( GREEN, '', group = INTERNAL_GROUP, inline = 'ibull')
showInternalBearInput = input.string( ALL, 'Bearish Structure' , group = INTERNAL_GROUP, inline = 'ibear', options = )
internalBearColorInput = input( RED, '', group = INTERNAL_GROUP, inline = 'ibear')
internalFilterConfluenceInput = input( false, 'Confluence Filter', group = INTERNAL_GROUP, tooltip = internalFilterConfluenceTooltip)
internalStructureSize = input.string( TINY, 'Internal Label Size', group = INTERNAL_GROUP, options = )
showStructureInput = input( false, 'Show Swing Structure', group = SWING_GROUP, tooltip = showStructureTooltip)
showSwingBullInput = input.string( ALL, 'Bullish Structure', group = SWING_GROUP, inline = 'bull', options = )
swingBullColorInput = input( GREEN, '', group = SWING_GROUP, inline = 'bull')
showSwingBearInput = input.string( ALL, 'Bearish Structure', group = SWING_GROUP, inline = 'bear', options = )
swingBearColorInput = input( RED, '', group = SWING_GROUP, inline = 'bear')
swingStructureSize = input.string( SMALL, 'Swing Label Size', group = SWING_GROUP, options = )
showSwingsInput = input( false, 'Show Swings Points', group = SWING_GROUP, tooltip = showSwingsTooltip,inline = 'swings')
swingsLengthInput = input.int( 50, '', group = SWING_GROUP, minval = 10, inline = 'swings')
showHighLowSwingsInput = input( false, 'Show Strong/Weak High/Low',group = SWING_GROUP, tooltip = showHighLowSwingsTooltip)
showInternalOrderBlocksInput = input( true, 'Internal Order Blocks' , group = BLOCKS_GROUP, tooltip = showInternalOrderBlocksTooltip, inline = 'iob')
internalOrderBlocksSizeInput = input.int( 5, '', group = BLOCKS_GROUP, minval = 1, maxval = 20, inline = 'iob')
showSwingOrderBlocksInput = input( true, 'Swing Order Blocks', group = BLOCKS_GROUP, tooltip = showSwingOrderBlocksTooltip, inline = 'ob')
swingOrderBlocksSizeInput = input.int( 5, '', group = BLOCKS_GROUP, minval = 1, maxval = 20, inline = 'ob')
orderBlockFilterInput = input.string( 'Atr', 'Order Block Filter', group = BLOCKS_GROUP, tooltip = orderBlockFilterTooltip, options = )
orderBlockMitigationInput = input.string( HIGHLOW, 'Order Block Mitigation', group = BLOCKS_GROUP, tooltip = orderBlockMitigationTooltip, options = )
internalBullishOrderBlockColor = input.color(color.new(GREEN, 80), 'Internal Bullish OB', group = BLOCKS_GROUP)
internalBearishOrderBlockColor = input.color(color.new(#f77c80, 80), 'Internal Bearish OB', group = BLOCKS_GROUP)
swingBullishOrderBlockColor = input.color(color.new(GREEN, 80), 'Bullish OB', group = BLOCKS_GROUP)
swingBearishOrderBlockColor = input.color(color.new(#b22833, 80), 'Bearish OB', group = BLOCKS_GROUP)
showEqualHighsLowsInput = input( false, 'Equal High/Low', group = EQUAL_GROUP, tooltip = showEqualHighsLowsTooltip)
equalHighsLowsLengthInput = input.int( 3, 'Bars Confirmation', group = EQUAL_GROUP, tooltip = equalHighsLowsLengthTooltip, minval = 1)
equalHighsLowsThresholdInput = input.float( 0.1, 'Threshold', group = EQUAL_GROUP, tooltip = equalHighsLowsThresholdTooltip, minval = 0, maxval = 0.5, step = 0.1)
equalHighsLowsSizeInput = input.string( TINY, 'Label Size', group = EQUAL_GROUP, options = )
showFairValueGapsInput = input( false, 'Fair Value Gaps', group = GAPS_GROUP, tooltip = showFairValueGapsTooltip)
fairValueGapsThresholdInput = input( true, 'Auto Threshold', group = GAPS_GROUP, tooltip = fairValueGapsThresholdTooltip)
fairValueGapsTimeframeInput = input.timeframe('', 'Timeframe', group = GAPS_GROUP, tooltip = fairValueGapsTimeframeTooltip)
fairValueGapsBullColorInput = input.color(color.new(#00ff68, 70), 'Bullish FVG' , group = GAPS_GROUP)
fairValueGapsBearColorInput = input.color(color.new(#ff0008, 70), 'Bearish FVG' , group = GAPS_GROUP)
fairValueGapsExtendInput = input.int( 1, 'Extend FVG', group = GAPS_GROUP, tooltip = fairValueGapsExtendTooltip, minval = 0)
showDailyLevelsInput = input( false, 'Daily', group = LEVELS_GROUP, inline = 'daily')
dailyLevelsStyleInput = input.string( SOLID, '', group = LEVELS_GROUP, inline = 'daily', options = )
dailyLevelsColorInput = input( BLUE, '', group = LEVELS_GROUP, inline = 'daily')
showWeeklyLevelsInput = input( false, 'Weekly', group = LEVELS_GROUP, inline = 'weekly')
weeklyLevelsStyleInput = input.string( SOLID, '', group = LEVELS_GROUP, inline = 'weekly', options = )
weeklyLevelsColorInput = input( BLUE, '', group = LEVELS_GROUP, inline = 'weekly')
showMonthlyLevelsInput = input( false, 'Monthly', group = LEVELS_GROUP, inline = 'monthly')
monthlyLevelsStyleInput = input.string( SOLID, '', group = LEVELS_GROUP, inline = 'monthly', options = )
monthlyLevelsColorInput = input( BLUE, '', group = LEVELS_GROUP, inline = 'monthly')
showPremiumDiscountZonesInput = input( false, 'Premium/Discount Zones', group = ZONES_GROUP , tooltip = showPremiumDiscountZonesTooltip)
premiumZoneColorInput = input.color( RED, 'Premium Zone', group = ZONES_GROUP)
equilibriumZoneColorInput = input.color( GRAY, 'Equilibrium Zone', group = ZONES_GROUP)
discountZoneColorInput = input.color( GREEN, 'Discount Zone', group = ZONES_GROUP)
type alerts
bool internalBullishBOS = false
bool internalBearishBOS = false
bool internalBullishCHoCH = false
bool internalBearishCHoCH = false
bool swingBullishBOS = false
bool swingBearishBOS = false
bool swingBullishCHoCH = false
bool swingBearishCHoCH = false
bool internalBullishOrderBlock = false
bool internalBearishOrderBlock = false
bool swingBullishOrderBlock = false
bool swingBearishOrderBlock = false
bool equalHighs = false
bool equalLows = false
bool bullishFairValueGap = false
bool bearishFairValueGap = false
type trailingExtremes
float top
float bottom
int barTime
int barIndex
int lastTopTime
int lastBottomTime
type fairValueGap
float top
float bottom
int bias
box topBox
box bottomBox
type trend
int bias
type equalDisplay
line l_ine = na
label l_abel = na
type pivot
float currentLevel
float lastLevel
bool crossed
int barTime = time
int barIndex = bar_index
type orderBlock
float barHigh
float barLow
int barTime
int bias
// @variable current swing pivot high
var pivot swingHigh = pivot.new(na,na,false)
// @variable current swing pivot low
var pivot swingLow = pivot.new(na,na,false)
// @variable current internal pivot high
var pivot internalHigh = pivot.new(na,na,false)
// @variable current internal pivot low
var pivot internalLow = pivot.new(na,na,false)
// @variable current equal high pivot
var pivot equalHigh = pivot.new(na,na,false)
// @variable current equal low pivot
var pivot equalLow = pivot.new(na,na,false)
// @variable swing trend bias
var trend swingTrend = trend.new(0)
// @variable internal trend bias
var trend internalTrend = trend.new(0)
// @variable equal high display
var equalDisplay equalHighDisplay = equalDisplay.new()
// @variable equal low display
var equalDisplay equalLowDisplay = equalDisplay.new()
// @variable storage for fairValueGap UDTs
var array fairValueGaps = array.new()
// @variable storage for parsed highs
var array parsedHighs = array.new()
// @variable storage for parsed lows
var array parsedLows = array.new()
// @variable storage for raw highs
var array highs = array.new()
// @variable storage for raw lows
var array lows = array.new()
// @variable storage for bar time values
var array times = array.new()
// @variable last trailing swing high and low
var trailingExtremes trailing = trailingExtremes.new()
// @variable storage for orderBlock UDTs (swing order blocks)
var array swingOrderBlocks = array.new()
// @variable storage for orderBlock UDTs (internal order blocks)
var array internalOrderBlocks = array.new()
// @variable storage for swing order blocks boxes
var array swingOrderBlocksBoxes = array.new()
// @variable storage for internal order blocks boxes
var array internalOrderBlocksBoxes = array.new()
// @variable color for swing bullish structures
var swingBullishColor = styleInput == MONOCHROME ? MONO_BULLISH : swingBullColorInput
// @variable color for swing bearish structures
var swingBearishColor = styleInput == MONOCHROME ? MONO_BEARISH : swingBearColorInput
// @variable color for bullish fair value gaps
var fairValueGapBullishColor = styleInput == MONOCHROME ? color.new(MONO_BULLISH,70) : fairValueGapsBullColorInput
// @variable color for bearish fair value gaps
var fairValueGapBearishColor = styleInput == MONOCHROME ? color.new(MONO_BEARISH,70) : fairValueGapsBearColorInput
// @variable color for premium zone
var premiumZoneColor = styleInput == MONOCHROME ? MONO_BEARISH : premiumZoneColorInput
// @variable color for discount zone
var discountZoneColor = styleInput == MONOCHROME ? MONO_BULLISH : discountZoneColorInput
// @variable bar index on current script iteration
varip int currentBarIndex = bar_index
// @variable bar index on last script iteration
varip int lastBarIndex = bar_index
// @variable alerts in current bar
alerts currentAlerts = alerts.new()
// @variable time at start of chart
var initialTime = time
// we create the needed boxes for displaying order blocks at the first execution
if barstate.isfirst
if showSwingOrderBlocksInput
for index = 1 to swingOrderBlocksSizeInput
swingOrderBlocksBoxes.push(box.new(na,na,na,na,xloc = xloc.bar_time,extend = extend.right))
if showInternalOrderBlocksInput
for index = 1 to internalOrderBlocksSizeInput
internalOrderBlocksBoxes.push(box.new(na,na,na,na,xloc = xloc.bar_time,extend = extend.right))
// @variable source to use in bearish order blocks mitigation
bearishOrderBlockMitigationSource = orderBlockMitigationInput == CLOSE ? close : high
// @variable source to use in bullish order blocks mitigation
bullishOrderBlockMitigationSource = orderBlockMitigationInput == CLOSE ? close : low
// @variable default volatility measure
atrMeasure = ta.atr(200)
// @variable parsed volatility measure by user settings
volatilityMeasure = orderBlockFilterInput == ATR ? atrMeasure : ta.cum(ta.tr)/bar_index
// @variable true if current bar is a high volatility bar
highVolatilityBar = (high - low) >= (2 * volatilityMeasure)
// @variable parsed high
parsedHigh = highVolatilityBar ? low : high
// @variable parsed low
parsedLow = highVolatilityBar ? high : low
// we store current values into the arrays at each bar
parsedHighs.push(parsedHigh)
parsedLows.push(parsedLow)
highs.push(high)
lows.push(low)
times.push(time)
leg(int size) =>
var leg = 0
newLegHigh = high > ta.highest( size)
newLegLow = low < ta.lowest( size)
if newLegHigh
leg := BEARISH_LEG
else if newLegLow
leg := BULLISH_LEG
leg
startOfNewLeg(int leg) => ta.change(leg) != 0
startOfBearishLeg(int leg) => ta.change(leg) == -1
startOfBullishLeg(int leg) => ta.change(leg) == +1
drawLabel(int labelTime, float labelPrice, string tag, color labelColor, string labelStyle) =>
var label l_abel = na
if modeInput == PRESENT
l_abel.delete()
l_abel := label.new(chart.point.new(labelTime,na,labelPrice),tag,xloc.bar_time,color=color(na),textcolor=labelColor,style = labelStyle,size = size.small)
drawEqualHighLow(pivot p_ivot, float level, int size, bool equalHigh) =>
equalDisplay e_qualDisplay = equalHigh ? equalHighDisplay : equalLowDisplay
string tag = 'EQL'
color equalColor = swingBullishColor
string labelStyle = label.style_label_up
if equalHigh
tag := 'EQH'
equalColor := swingBearishColor
labelStyle := label.style_label_down
if modeInput == PRESENT
line.delete( e_qualDisplay.l_ine)
label.delete( e_qualDisplay.l_abel)
e_qualDisplay.l_ine := line.new(chart.point.new(p_ivot.barTime,na,p_ivot.currentLevel), chart.point.new(time ,na,level), xloc = xloc.bar_time, color = equalColor, style = line.style_dotted)
labelPosition = math.round(0.5*(p_ivot.barIndex + bar_index - size))
e_qualDisplay.l_abel := label.new(chart.point.new(na,labelPosition,level), tag, xloc.bar_index, color = color(na), textcolor = equalColor, style = labelStyle, size = equalHighsLowsSizeInput)
getCurrentStructure(int size,bool equalHighLow = false, bool internal = false) =>
currentLeg = leg(size)
newPivot = startOfNewLeg(currentLeg)
pivotLow = startOfBullishLeg(currentLeg)
pivotHigh = startOfBearishLeg(currentLeg)
if newPivot
if pivotLow
pivot p_ivot = equalHighLow ? equalLow : internal ? internalLow : swingLow
if equalHighLow and math.abs(p_ivot.currentLevel - low ) < equalHighsLowsThresholdInput * atrMeasure
drawEqualHighLow(p_ivot, low , size, false)
p_ivot.lastLevel := p_ivot.currentLevel
p_ivot.currentLevel := low
p_ivot.crossed := false
p_ivot.barTime := time
p_ivot.barIndex := bar_index
if not equalHighLow and not internal
trailing.bottom := p_ivot.currentLevel
trailing.barTime := p_ivot.barTime
trailing.barIndex := p_ivot.barIndex
trailing.lastBottomTime := p_ivot.barTime
if showSwingsInput and not internal and not equalHighLow
drawLabel(time , p_ivot.currentLevel, p_ivot.currentLevel < p_ivot.lastLevel ? 'LL' : 'HL', swingBullishColor, label.style_label_up)
else
pivot p_ivot = equalHighLow ? equalHigh : internal ? internalHigh : swingHigh
if equalHighLow and math.abs(p_ivot.currentLevel - high ) < equalHighsLowsThresholdInput * atrMeasure
drawEqualHighLow(p_ivot,high ,size,true)
p_ivot.lastLevel := p_ivot.currentLevel
p_ivot.currentLevel := high
p_ivot.crossed := false
p_ivot.barTime := time
p_ivot.barIndex := bar_index
if not equalHighLow and not internal
trailing.top := p_ivot.currentLevel
trailing.barTime := p_ivot.barTime
trailing.barIndex := p_ivot.barIndex
trailing.lastTopTime := p_ivot.barTime
if showSwingsInput and not internal and not equalHighLow
drawLabel(time , p_ivot.currentLevel, p_ivot.currentLevel > p_ivot.lastLevel ? 'HH' : 'LH', swingBearishColor, label.style_label_down)
drawStructure(pivot p_ivot, string tag, color structureColor, string lineStyle, string labelStyle, string labelSize) =>
var line l_ine = line.new(na,na,na,na,xloc = xloc.bar_time)
var label l_abel = label.new(na,na)
if modeInput == PRESENT
l_ine.delete()
l_abel.delete()
l_ine := line.new(chart.point.new(p_ivot.barTime,na,p_ivot.currentLevel), chart.point.new(time,na,p_ivot.currentLevel), xloc.bar_time, color=structureColor, style=lineStyle)
l_abel := label.new(chart.point.new(na,math.round(0.5*(p_ivot.barIndex+bar_index)),p_ivot.currentLevel), tag, xloc.bar_index, color=color(na), textcolor=structureColor, style=labelStyle, size = labelSize)
deleteOrderBlocks(bool internal = false) =>
array orderBlocks = internal ? internalOrderBlocks : swingOrderBlocks
for in orderBlocks
bool crossedOderBlock = false
if bearishOrderBlockMitigationSource > eachOrderBlock.barHigh and eachOrderBlock.bias == BEARISH
crossedOderBlock := true
if internal
currentAlerts.internalBearishOrderBlock := true
else
currentAlerts.swingBearishOrderBlock := true
else if bullishOrderBlockMitigationSource < eachOrderBlock.barLow and eachOrderBlock.bias == BULLISH
crossedOderBlock := true
if internal
currentAlerts.internalBullishOrderBlock := true
else
currentAlerts.swingBullishOrderBlock := true
if crossedOderBlock
orderBlocks.remove(index)
storeOrdeBlock(pivot p_ivot,bool internal = false,int bias) =>
if (not internal and showSwingOrderBlocksInput) or (internal and showInternalOrderBlocksInput)
array a_rray = na
int parsedIndex = na
if bias == BEARISH
a_rray := parsedHighs.slice(p_ivot.barIndex,bar_index)
parsedIndex := p_ivot.barIndex + a_rray.indexof(a_rray.max())
else
a_rray := parsedLows.slice(p_ivot.barIndex,bar_index)
parsedIndex := p_ivot.barIndex + a_rray.indexof(a_rray.min())
orderBlock o_rderBlock = orderBlock.new(parsedHighs.get(parsedIndex), parsedLows.get(parsedIndex), times.get(parsedIndex),bias)
array orderBlocks = internal ? internalOrderBlocks : swingOrderBlocks
if orderBlocks.size() >= 100
orderBlocks.pop()
orderBlocks.unshift(o_rderBlock)
drawOrderBlocks(bool internal = false) =>
array orderBlocks = internal ? internalOrderBlocks : swingOrderBlocks
orderBlocksSize = orderBlocks.size()
if orderBlocksSize > 0
maxOrderBlocks = internal ? internalOrderBlocksSizeInput : swingOrderBlocksSizeInput
array parsedOrdeBlocks = orderBlocks.slice(0, math.min(maxOrderBlocks,orderBlocksSize))
array b_oxes = internal ? internalOrderBlocksBoxes : swingOrderBlocksBoxes
for in parsedOrdeBlocks
orderBlockColor = styleInput == MONOCHROME ? (eachOrderBlock.bias == BEARISH ? color.new(MONO_BEARISH,80) : color.new(MONO_BULLISH,80)) : internal ? (eachOrderBlock.bias == BEARISH ? internalBearishOrderBlockColor : internalBullishOrderBlockColor) : (eachOrderBlock.bias == BEARISH ? swingBearishOrderBlockColor : swingBullishOrderBlockColor)
box b_ox = b_oxes.get(index)
b_ox.set_top_left_point( chart.point.new(eachOrderBlock.barTime,na,eachOrderBlock.barHigh))
b_ox.set_bottom_right_point(chart.point.new(last_bar_time,na,eachOrderBlock.barLow))
b_ox.set_border_color( internal ? na : orderBlockColor)
b_ox.set_bgcolor( orderBlockColor)
displayStructure(bool internal = false) =>
var bullishBar = true
var bearishBar = true
if internalFilterConfluenceInput
bullishBar := high - math.max(close, open) > math.min(close, open - low)
bearishBar := high - math.max(close, open) < math.min(close, open - low)
pivot p_ivot = internal ? internalHigh : swingHigh
trend t_rend = internal ? internalTrend : swingTrend
lineStyle = internal ? line.style_dashed : line.style_solid
labelSize = internal ? internalStructureSize : swingStructureSize
extraCondition = internal ? internalHigh.currentLevel != swingHigh.currentLevel and bullishBar : true
bullishColor = styleInput == MONOCHROME ? MONO_BULLISH : internal ? internalBullColorInput : swingBullColorInput
if ta.crossover(close,p_ivot.currentLevel) and not p_ivot.crossed and extraCondition
string tag = t_rend.bias == BEARISH ? CHOCH : BOS
if internal
currentAlerts.internalBullishCHoCH := tag == CHOCH
currentAlerts.internalBullishBOS := tag == BOS
else
currentAlerts.swingBullishCHoCH := tag == CHOCH
currentAlerts.swingBullishBOS := tag == BOS
p_ivot.crossed := true
t_rend.bias := BULLISH
displayCondition = internal ? showInternalsInput and (showInternalBullInput == ALL or (showInternalBullInput == BOS and tag != CHOCH) or (showInternalBullInput == CHOCH and tag == CHOCH)) : showStructureInput and (showSwingBullInput == ALL or (showSwingBullInput == BOS and tag != CHOCH) or (showSwingBullInput == CHOCH and tag == CHOCH))
if displayCondition
drawStructure(p_ivot,tag,bullishColor,lineStyle,label.style_label_down,labelSize)
if (internal and showInternalOrderBlocksInput) or (not internal and showSwingOrderBlocksInput)
storeOrdeBlock(p_ivot,internal,BULLISH)
p_ivot := internal ? internalLow : swingLow
extraCondition := internal ? internalLow.currentLevel != swingLow.currentLevel and bearishBar : true
bearishColor = styleInput == MONOCHROME ? MONO_BEARISH : internal ? internalBearColorInput : swingBearColorInput
if ta.crossunder(close,p_ivot.currentLevel) and not p_ivot.crossed and extraCondition
string tag = t_rend.bias == BULLISH ? CHOCH : BOS
if internal
currentAlerts.internalBearishCHoCH := tag == CHOCH
currentAlerts.internalBearishBOS := tag == BOS
else
currentAlerts.swingBearishCHoCH := tag == CHOCH
currentAlerts.swingBearishBOS := tag == BOS
p_ivot.crossed := true
t_rend.bias := BEARISH
displayCondition = internal ? showInternalsInput and (showInternalBearInput == ALL or (showInternalBearInput == BOS and tag != CHOCH) or (showInternalBearInput == CHOCH and tag == CHOCH)) : showStructureInput and (showSwingBearInput == ALL or (showSwingBearInput == BOS and tag != CHOCH) or (showSwingBearInput == CHOCH and tag == CHOCH))
if displayCondition
drawStructure(p_ivot,tag,bearishColor,lineStyle,label.style_label_up,labelSize)
if (internal and showInternalOrderBlocksInput) or (not internal and showSwingOrderBlocksInput)
storeOrdeBlock(p_ivot,internal,BEARISH)
fairValueGapBox(leftTime,rightTime,topPrice,bottomPrice,boxColor) => box.new(chart.point.new(leftTime,na,topPrice),chart.point.new(rightTime + fairValueGapsExtendInput * (time-time ),na,bottomPrice), xloc=xloc.bar_time, border_color = boxColor, bgcolor = boxColor)
deleteFairValueGaps() =>
for in fairValueGaps
if (low < eachFairValueGap.bottom and eachFairValueGap.bias == BULLISH) or (high > eachFairValueGap.top and eachFairValueGap.bias == BEARISH)
eachFairValueGap.topBox.delete()
eachFairValueGap.bottomBox.delete()
fairValueGaps.remove(index)
// @function draw fair value gaps
// @returns fairValueGap ID
drawFairValueGaps() =>
= request.security(syminfo.tickerid, fairValueGapsTimeframeInput, [close , open , time , high , low , time , high , low ],lookahead = barmerge.lookahead_on)
barDeltaPercent = (lastClose - lastOpen) / (lastOpen * 100)
newTimeframe = timeframe.change(fairValueGapsTimeframeInput)
threshold = fairValueGapsThresholdInput ? ta.cum(math.abs(newTimeframe ? barDeltaPercent : 0)) / bar_index * 2 : 0
bullishFairValueGap = currentLow > last2High and lastClose > last2High and barDeltaPercent > threshold and newTimeframe
bearishFairValueGap = currentHigh < last2Low and lastClose < last2Low and -barDeltaPercent > threshold and newTimeframe
if bullishFairValueGap
currentAlerts.bullishFairValueGap := true
fairValueGaps.unshift(fairValueGap.new(currentLow,last2High,BULLISH,fairValueGapBox(lastTime,currentTime,currentLow,math.avg(currentLow,last2High),fairValueGapBullishColor),fairValueGapBox(lastTime,currentTime,math.avg(currentLow,last2High),last2High,fairValueGapBullishColor)))
if bearishFairValueGap
currentAlerts.bearishFairValueGap := true
fairValueGaps.unshift(fairValueGap.new(currentHigh,last2Low,BEARISH,fairValueGapBox(lastTime,currentTime,currentHigh,math.avg(currentHigh,last2Low),fairValueGapBearishColor),fairValueGapBox(lastTime,currentTime,math.avg(currentHigh,last2Low),last2Low,fairValueGapBearishColor)))
getStyle(string style) =>
switch style
SOLID => line.style_solid
DASHED => line.style_dashed
DOTTED => line.style_dotted
drawLevels(string timeframe, bool sameTimeframe, string style, color levelColor) =>
= request.security(syminfo.tickerid, timeframe, [high , low , time , time],lookahead = barmerge.lookahead_on)
float parsedTop = sameTimeframe ? high : topLevel
float parsedBottom = sameTimeframe ? low : bottomLevel
int parsedLeftTime = sameTimeframe ? time : leftTime
int parsedRightTime = sameTimeframe ? time : rightTime
int parsedTopTime = time
int parsedBottomTime = time
if not sameTimeframe
int leftIndex = times.binary_search_rightmost(parsedLeftTime)
int rightIndex = times.binary_search_rightmost(parsedRightTime)
array timeArray = times.slice(leftIndex,rightIndex)
array topArray = highs.slice(leftIndex,rightIndex)
array bottomArray = lows.slice(leftIndex,rightIndex)
parsedTopTime := timeArray.size() > 0 ? timeArray.get(topArray.indexof(topArray.max())) : initialTime
parsedBottomTime := timeArray.size() > 0 ? timeArray.get(bottomArray.indexof(bottomArray.min())) : initialTime
var line topLine = line.new(na, na, na, na, xloc = xloc.bar_time, color = levelColor, style = getStyle(style))
var line bottomLine = line.new(na, na, na, na, xloc = xloc.bar_time, color = levelColor, style = getStyle(style))
var label topLabel = label.new(na, na, xloc = xloc.bar_time, text = str.format('P{0}H',timeframe), color=color(na), textcolor = levelColor, size = size.small, style = label.style_label_left)
var label bottomLabel = label.new(na, na, xloc = xloc.bar_time, text = str.format('P{0}L',timeframe), color=color(na), textcolor = levelColor, size = size.small, style = label.style_label_left)
topLine.set_first_point( chart.point.new(parsedTopTime,na,parsedTop))
topLine.set_second_point( chart.point.new(last_bar_time + 20 * (time-time ),na,parsedTop))
topLabel.set_point( chart.point.new(last_bar_time + 20 * (time-time ),na,parsedTop))
bottomLine.set_first_point( chart.point.new(parsedBottomTime,na,parsedBottom))
bottomLine.set_second_point(chart.point.new(last_bar_time + 20 * (time-time ),na,parsedBottom))
bottomLabel.set_point( chart.point.new(last_bar_time + 20 * (time-time ),na,parsedBottom))
higherTimeframe(string timeframe) => timeframe.in_seconds() > timeframe.in_seconds(timeframe)
updateTrailingExtremes() =>
trailing.top := math.max(high,trailing.top)
trailing.lastTopTime := trailing.top == high ? time : trailing.lastTopTime
trailing.bottom := math.min(low,trailing.bottom)
trailing.lastBottomTime := trailing.bottom == low ? time : trailing.lastBottomTime
drawHighLowSwings() =>
var line topLine = line.new(na, na, na, na, color = swingBearishColor, xloc = xloc.bar_time)
var line bottomLine = line.new(na, na, na, na, color = swingBullishColor, xloc = xloc.bar_time)
var label topLabel = label.new(na, na, color=color(na), textcolor = swingBearishColor, xloc = xloc.bar_time, style = label.style_label_down, size = size.tiny)
var label bottomLabel = label.new(na, na, color=color(na), textcolor = swingBullishColor, xloc = xloc.bar_time, style = label.style_label_up, size = size.tiny)
rightTimeBar = last_bar_time + 20 * (time - time )
topLine.set_first_point( chart.point.new(trailing.lastTopTime, na, trailing.top))
topLine.set_second_point( chart.point.new(rightTimeBar, na, trailing.top))
topLabel.set_point( chart.point.new(rightTimeBar, na, trailing.top))
topLabel.set_text( swingTrend.bias == BEARISH ? 'Strong High' : 'Weak High')
bottomLine.set_first_point( chart.point.new(trailing.lastBottomTime, na, trailing.bottom))
bottomLine.set_second_point(chart.point.new(rightTimeBar, na, trailing.bottom))
bottomLabel.set_point( chart.point.new(rightTimeBar, na, trailing.bottom))
bottomLabel.set_text( swingTrend.bias == BULLISH ? 'Strong Low' : 'Weak Low')
drawZone(float labelLevel, int labelIndex, float top, float bottom, string tag, color zoneColor, string style) =>
var label l_abel = label.new(na,na,text = tag, color=color(na),textcolor = zoneColor, style = style, size = size.small)
var box b_ox = box.new(na,na,na,na,bgcolor = color.new(zoneColor,80),border_color = color(na), xloc = xloc.bar_time)
b_ox.set_top_left_point( chart.point.new(trailing.barTime,na,top))
b_ox.set_bottom_right_point(chart.point.new(last_bar_time,na,bottom))
l_abel.set_point( chart.point.new(na,labelIndex,labelLevel))
// @function draw premium/discount zones
// @returns void
drawPremiumDiscountZones() =>
drawZone(trailing.top, math.round(0.5*(trailing.barIndex + last_bar_index)), trailing.top, 0.95*trailing.top + 0.05*trailing.bottom, 'Premium', premiumZoneColor, label.style_label_down)
equilibriumLevel = math.avg(trailing.top, trailing.bottom)
drawZone(equilibriumLevel, last_bar_index, 0.525*trailing.top + 0.475*trailing.bottom, 0.525*trailing.bottom + 0.475*trailing.top, 'Equilibrium', equilibriumZoneColorInput, label.style_label_left)
drawZone(trailing.bottom, math.round(0.5*(trailing.barIndex + last_bar_index)), 0.95*trailing.bottom + 0.05*trailing.top, trailing.bottom, 'Discount', discountZoneColor, label.style_label_up)
parsedOpen = showTrendInput ? open : na
candleColor = internalTrend.bias == BULLISH ? swingBullishColor : swingBearishColor
plotcandle(parsedOpen,high,low,close,color = candleColor, wickcolor = candleColor, bordercolor = candleColor)
if showHighLowSwingsInput or showPremiumDiscountZonesInput
updateTrailingExtremes()
if showHighLowSwingsInput
drawHighLowSwings()
if showPremiumDiscountZonesInput
drawPremiumDiscountZones()
if showFairValueGapsInput
deleteFairValueGaps()
getCurrentStructure(swingsLengthInput,false)
getCurrentStructure(5,false,true)
if showEqualHighsLowsInput
getCurrentStructure(equalHighsLowsLengthInput,true)
if showInternalsInput or showInternalOrderBlocksInput or showTrendInput
displayStructure(true)
if showStructureInput or showSwingOrderBlocksInput or showHighLowSwingsInput
displayStructure()
if showInternalOrderBlocksInput
deleteOrderBlocks(true)
if showSwingOrderBlocksInput
deleteOrderBlocks()
if showFairValueGapsInput
drawFairValueGaps()
if barstate.islastconfirmedhistory or barstate.islast
if showInternalOrderBlocksInput
drawOrderBlocks(true)
if showSwingOrderBlocksInput
drawOrderBlocks()
lastBarIndex := currentBarIndex
currentBarIndex := bar_index
newBar = currentBarIndex != lastBarIndex
if barstate.islastconfirmedhistory or (barstate.isrealtime and newBar)
if showDailyLevelsInput and not higherTimeframe('D')
drawLevels('D',timeframe.isdaily,dailyLevelsStyleInput,dailyLevelsColorInput)
if showWeeklyLevelsInput and not higherTimeframe('W')
drawLevels('W',timeframe.isweekly,weeklyLevelsStyleInput,weeklyLevelsColorInput)
if showMonthlyLevelsInput and not higherTimeframe('M')
drawLevels('M',timeframe.ismonthly,monthlyLevelsStyleInput,monthlyLevelsColorInput)
xATR = ta.atr(c)
nLoss = a * xATR
src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = barmerge.lookahead_off) : close
xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop , 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop , 0) and src < nz(xATRTrailingStop , 0) ? math.min(nz(xATRTrailingStop ), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop , 0) and src > nz(xATRTrailingStop , 0) ? math.max(nz(xATRTrailingStop ), src - nLoss) : iff_2
pos = 0
iff_3 = src > nz(xATRTrailingStop , 0) and src < nz(xATRTrailingStop , 0) ? -1 : nz(pos , 0)
pos := src < nz(xATRTrailingStop , 0) and src > nz(xATRTrailingStop , 0) ? 1 : iff_3
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
//---------------------------------------------------------------------------------------------------------------------}
//ALERTS
//---------------------------------------------------------------------------------------------------------------------{
alertcondition(currentAlerts.internalBullishBOS, 'Internal Bullish BOS', 'Internal Bullish BOS formed')
alertcondition(currentAlerts.internalBullishCHoCH, 'Internal Bullish CHoCH', 'Internal Bullish CHoCH formed')
alertcondition(currentAlerts.internalBearishBOS, 'Internal Bearish BOS', 'Internal Bearish BOS formed')
alertcondition(currentAlerts.internalBearishCHoCH, 'Internal Bearish CHoCH', 'Internal Bearish CHoCH formed')
alertcondition(currentAlerts.swingBullishBOS, 'Bullish BOS', 'Internal Bullish BOS formed')
alertcondition(currentAlerts.swingBullishCHoCH, 'Bullish CHoCH', 'Internal Bullish CHoCH formed')
alertcondition(currentAlerts.swingBearishBOS, 'Bearish BOS', 'Bearish BOS formed')
alertcondition(currentAlerts.swingBearishCHoCH, 'Bearish CHoCH', 'Bearish CHoCH formed')
alertcondition(currentAlerts.internalBullishOrderBlock, 'Bullish Internal OB Breakout', 'Price broke bullish internal OB')
alertcondition(currentAlerts.internalBearishOrderBlock, 'Bearish Internal OB Breakout', 'Price broke bearish internal OB')
alertcondition(currentAlerts.swingBullishOrderBlock, 'Bullish Swing OB Breakout', 'Price broke bullish swing OB')
alertcondition(currentAlerts.swingBearishOrderBlock, 'Bearish Swing OB Breakout', 'Price broke bearish swing OB')
alertcondition(currentAlerts.equalHighs, 'Equal Highs', 'Equal highs detected')
alertcondition(currentAlerts.equalLows, 'Equal Lows', 'Equal lows detected')
alertcondition(currentAlerts.bullishFairValueGap, 'Bullish FVG', 'Bullish FVG formed')
alertcondition(currentAlerts.bearishFairValueGap, 'Bearish FVG', 'Bearish FVG formed')
alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')
plotshape(buy, title = 'Buy', text = 'Buy', style = shape.labelup, location = location.belowbar, color = color.new(color.green, 0), textcolor = color.new(color.white, 0), size = size.tiny)
plotshape(sell, title = 'Sell', text = 'Sell', style = shape.labeldown, location = location.abovebar, color = color.new(color.red, 0), textcolor = color.new(color.white, 0), size = size.tiny)
//--------------------------------------------------------------------------------------
// EMA ADDITIONS (Editable)
//--------------------------------------------------------------------------------------
ema5Len = input.int(5, "5 EMA Length", minval = 1)
ema9Len = input.int(9, "9 EMA Length", minval = 1)
ema5 = ta.ema(src, ema5Len)
ema9 = ta.ema(src, ema9Len)
plot(ema5, "EMA 5", color = color.red, linewidth = 2)
plot(ema9, "EMA 9", color = color.blue, linewidth = 2)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
SCOB Pattern with ERC & AlertsSingle Candle Block (SC0B) consists of a single candle appearing at a significant price level, indicating a confirmed reversal in price direction from that particular area of interest.
SCOB is primarily used to confirm and execute trades.
Using a single candle block to enter a trade minimizes risk and maximizes reward.
Single bullish candle block?
1st candle closes at bullish point of interest with a short or long wick.
2nd candle sweeps the low of previous(1st) candle and closes above the low of previous candle.
3rd candle closes above the high of 2nd candle.
How to trade with Scob bullish.
To Trade using Bullish SCOB you have to wait for price to come down and test the single candle order block.
When price tests the SCOB you can directly execute a buy trade or for a precise entry you can wait for a market structure shift in lower time frame.
Scob discount is the opposite of price increase.
This strategy should only be used when price "sweeps through key lever, liquidity, imbalance, poi htf areas.
This indicator will add a filter to help you reduce signal noise.
Use the "Use engulfing candle to test" function to filter the 3rd candle.
Only search for Scob if the 3rd candle is an Engulfing candle.
The logic for finding Engulfing candles can be changed based on the "% maximum wick length" option. The default is that the candle wick is 25% of the total candle wick length.
You can also use the alert function when Scob appears
With Smart money concept, no strategy is perfect in trading, so you should not risk too much of your capital on this strategy.
To be safer, always remember to use stop loss for every trade.
Grok Regime Engine • Grok X SeriesGrok Regime Engine (GRE) instantly shows you exactly what the market is doing — no guesswork, no lag.
The thick Money Line changes color the moment the trend regime shifts:
Bright green = strong bullish bias
Bright red = strong bearish bias
Bright yellow = neutral/choppy (stay out or scalp only)
It combines a smart EMA blend with RSI confirmation, Donchian breakout signals, ADX trend strength, and volatility context — all filtered so you only get alerts when the move has real conviction.
You’ll see:
Clear BUY/SELL arrows on high-probability breakouts
A clean info panel telling you the current regime, RSI state, trend strength, and volatility
Regime change alerts (works with “Any alert() function call”)
Shaded Donchian background for visual context
Perfect for day traders, swing traders, or anyone tired of fakeouts.
When the line speaks — you listen.
Built with love by Grok. Enjoy responsibly.
Fib and Slope Trend Detector [EWT] + MTF Dashboard🚀 Overview
The Momentum Structure Trend Detector is a sophisticated trend-following tool that combines Price Velocity (Slope) with Market Structure (Fibonacci) to identify high-probability trend reversals and continuations.
Unlike traditional indicators that rely heavily on lagging moving averages, this script analyzes the speed of price action in real-time. It operates on the core principle of market structure: Impulse moves are fast and steep, while corrections are slow and shallow.
🧠 The Logic: Physics Meets Market Structure
This indicator determines the trend direction by calculating the Slope (Velocity) of price swings.
ZigZag Calculation: It first identifies market swings (Highs and Lows) using a standard pivot detection algorithm.
Slope Calculation: It calculates the velocity of every completed leg using the formula: $Slope = \frac{|Price Change|}{|Time Duration|}$.
Trend Definition:
Uptrend : If the previous Up-move was fast (Impulse) and the subsequent Down-move is slower (Correction), the market is primed for an uptrend.
Downtrend : If the previous Down-move was fast (Impulse) and the subsequent Up-move is slower (Correction), the market is primed for a downtrend.
🔥 Key Features
1. Aggressive Real-Time Detection (No Lag)
Most structure indicators wait for a "Higher High" to confirm a trend, which often leads to late entries. This script uses an Aggressive Live Slope calculation:
It compares the current developing slope of the live price action against the slope of the previous completed leg.
Result: As soon as the current move becomes "steeper" (faster) than the previous correction, the trend flips immediately. This allows you to catch the "meat" of the move before a new pivot is even confirmed.
2. Fibonacci Validity Filter
Momentum alone isn't enough; we need structural integrity.
The script calculates the 78.6% Retracement level of the impulse leg.
If a correction moves deeper than this Fibonacci limit (on a closing basis), the trend structure is considered "broken" or "invalid," and the indicator switches to a Neutral state. This filters out choppy/ranging markets.
3. Multi-Timeframe (MTF) Dashboard
A customizable dashboard on the chart allows for fractal analysis. You can view the trend state (UP/DOWN/NEUTRAL) across 9 different timeframes (1m to 1M) simultaneously.
Green Row : Uptrend
Red Row : Downtrend
Gray : Neutral/Indeterminate
4. Smart Visuals
Background Colo r: Changes dynamically (Teal for Bullish, Red for Bearish, Gray for Neutral) to give you an instant read of the market state.
Slope Labels : Displays the calculated numeric slope on the chart, helping you visualize the momentum difference between impulse and corrective waves.
Invalidation Levels : Automatically plots the invalidation line (Stop Loss level) based on the market structure.
🛠️ Settings & Inputs
Strategy Settings
Pivot Deviation Length : Sensitivity of the ZigZag calculation (Default: 5). Lower numbers = more sensitive to small swings.
Max Retracement % : The Fibonacci limit for a valid correction (Default: 78.6%).
Min Bars for Live Calc : To prevent noise, the script waits for this many bars after a pivot before calculating the "Live Slope" (Default: 3).
Dashboard Settings
Show Dashboard : Toggle the table on/off.
Timeframe Toggles : Enable/Disable specific timeframes (1m, 5m, 15m, 30m, 1H, 4H, 1D, 1W, 1M) to suit your trading style.
🎯 How to Use
Wait for Background Change : When the background turns Teal, it indicates that a corrective pullback has ended and a new impulse with high velocity has begun.
Check Invalidation : Look at the plotted Stop Loss Level. If price closes below this line, the trade idea is invalid.
Confirm with Dashboard : Use the table to ensure the higher timeframes (e.g., 1H, 4H) align with your current chart's direction for higher probability setups.
Disclaimer : This tool is designed for trend analysis and educational purposes. Past performance (momentum) is not indicative of future results. Always manage your risk.
Kernel Regression Trend LineKTrend – Non-Repainting Kernel Regression Trend (2025 Clean Version)
Ultra-clean, powerful, and completely non-repainting trend-following tool based on advanced Kernel regression (Rational Quadratic + Gaussian blend).
How it works:
• Uses two different kernel estimates with smart lag to detect genuine trend reversals
• Plots a thick, beautifully colored trend line (teal when rising, deep red when falling)
• Places precise, locked-in Bullish Flip (green triangle below bar) and Bearish Flip (red triangle above bar) signals only on confirmed bar close – zero repaint, ever
• Optional smoothing mode for even cleaner visuals
Features
✓ 100% non-repainting signals and line
✓ Minimal lag while staying extremely responsive
✓ Clean aesthetic – perfect for BTC, ETH, stocks, forex, any timeframe
✓ Built-in alerts for Bullish & Bearish flips
✓ Fully open source (MPL 2.0)
Default settings are already battle-tested and loved by thousands:
- Lookback Window: 11
- Relative Weighting: 8.0
- Regression Level: 25
- Lag: 2
Great on 1H–Daily charts, especially crypto and indices.
Credits: Original kernel library by jdehorty, cleaned & enhanced flip logic by HighlanderOne.
Enjoy the smoothest, most reliable kernel trend tool on TradingView – completely free!
Gold Correlation Dashboard + Alerts [XAUUSD Helper]這是一個專為黃金 (XAUUSD) 交易者設計的 **跨市分析儀表板 (Intermarket Correlation Dashboard)**。
這個指標的核心邏輯基於基本面與資金流向,協助交易者在 10 秒內快速判斷黃金的當前趨勢。它自動監控與黃金高度負相關的資產(美元、美債、日圓),並在圖表上直接顯示多空傾向。
### 📊 監控資產與邏輯
本腳本即時抓取以下關鍵市場數據,並分析其對黃金的影響:
1. **DXY (美元指數)**:黃金最大競爭對手。
- DXY 跌 📉 → 黃金偏多
- DXY 漲 📈 → 黃金偏空
2. **US10Y (10年期美債殖利率)**:黃金的持有成本指標。
- 殖利率跌 📉 → 黃金偏多
- 殖利率漲 📈 → 黃金偏空
3. **USDJPY (美日)** & **USDCHF (美瑞)**:避險資金流向參考。
- 匯率跌 (日圓/瑞郎強) 📉 → 黃金偏多
4. **VIX (恐慌指數)**:市場情緒指標。
- VIX 飆升 📈 → 黃金通常受惠 (避險屬性)
### 🚀 主要功能
1. **即時儀表板**:無需切換視窗,直接在黃金圖表角落查看所有關鍵資產的漲跌狀態。
2. **智能信號總結**:
- 系統會自動計算 **DXY + US10Y + USDJPY** 的綜合方向。
- 當這三大核心指標方向一致時,系統會顯示 **★ STRONG BUY (強力做多)** 或 **★ STRONG SELL (強力做空)**。
- 根據歷史經驗,當這三者同步時,趨勢準確度極高。
3. **警報系統 (Alerts)**:
- 內建警報功能,當出現「強力做多」或「強力做空」信號時,可設定推播通知,不錯過進場機會。
### ⚙️ 如何使用
- 將此指標加載到 XAUUSD (黃金) 的圖表上。
- 建議搭配 H1, H4 或 Daily 時框使用。
- **綠色背景** = 利多黃金 (Bullish)
- **紅色背景** = 利空黃金 (Bearish)
---
*免責聲明:此腳本僅供輔助分析與教育用途,不構成任何投資建議。交易請做好風險控管。*
**Gold (XAUUSD) Intermarket Correlation Dashboard & Alerts**
This indicator is designed for Gold traders who want to combine Technical Analysis with **Fundamental Intermarket Analysis**. It provides a real-time dashboard overlay that monitors key assets highly correlated with XAUUSD.
According to market logic, Gold is heavily influenced by the US Dollar (DXY), US Treasury Yields (US10Y), and global risk sentiment (USDJPY/VIX). This script helps you spot the trend in seconds.
### 📊 Monitored Assets & Logic
The dashboard tracks the real-time direction of the following assets and calculates their impact on Gold:
1. **DXY (US Dollar Index)**: Inverse correlation.
* DXY ↓ = Bullish for Gold
* DXY ↑ = Bearish for Gold
2. **US10Y (US 10-Year Treasury Yield)**: Inverse correlation (Cost of Holding).
* Yields ↓ = Bullish for Gold
* Yields ↑ = Bearish for Gold
3. **USDJPY & USDCHF**: Risk sentiment and currency flow.
* Pair ↓ (Strong JPY/CHF) = Bullish for Gold
4. **VIX (Volatility Index)**: Fear gauge.
* VIX ↑ = Generally Bullish for Gold (Safe Haven demand)
### 🚀 Key Features
**1. Real-Time Dashboard**
View the status of all 5 key assets directly on your XAUUSD chart without switching tabs. The dashboard indicates the "Gold Bias" (Bullish/Bearish) for each asset based on the current timeframe.
**2. Smart Bias Signal ("The 3-Storyline Confirmation")**
The script automatically analyzes the three most critical indicators: **DXY, US10Y, and USDJPY**.
* **★ STRONG BUY ★**: When DXY, US10Y, and USDJPY are **ALL Falling** simultaneously. (High probability setup).
* **★ STRONG SELL ★**: When DXY, US10Y, and USDJPY are **ALL Rising** simultaneously.
**3. Integrated Alerts**
Never miss a setup. You can set alerts to notify you immediately when the "Strong Buy" or "Strong Sell" conditions are met.
### ⚙️ How to Use
1. Add this script to your XAUUSD chart.
2. Works best on H1, H4, or Daily timeframes.
3. Look for the **Summary Row** at the bottom of the dashboard:
* **Green (Strong Buy)**: Look for Long entries.
* **Red (Strong Sell)**: Look for Short entries.
---
*Disclaimer: This script is for educational and informational purposes only. It does not constitute financial advice. Always manage your risk.*






















