Daily Extremes Buy Sell [Plazo Sullivan Roche Capital]User Manual — Daily Extremes NY→LDN
Daily Extremes Buy and Sell (2-minute focus) + HTF Dashboard
1) What this indicator does (in plain English)
This tool hunts for intraday reversals that form the extreme of the daily candle—
BUY when a new Low of Day (LOD) prints during the NY-midnight → London close window and daily context favors bulls.
SELL when a new High of Day (HOD) prints in that window and daily context favors bears.
You can keep it pure and simple (new LOD/HOD within the session) or tighten with optional filters:
Daily bias via Daily EMA (+ optional slope)
Distance to the day’s extreme vs ADR
Micro BOS/CHOCH
FVG + retest
One trade per side per day
A compact HTF dashboard (D/H4/H1, default 20 EMA) prints 🟢(above EMA) / 🔴(below EMA) for quick alignment.
2) Quick start (60 seconds)
Load the script on your chart (recommended TF: 2m).
Set your chart timezone to New York if you want exact NY session timing.
Leave defaults loose:
Require Daily Bias? OFF
Use distance filter vs ADR OFF
Require micro BOS/CHOCH OFF
Require FVG + retest OFF
Limit to 1 BUY and 1 SELL per day OFF
Watch for BUY markers on new LOD and SELL markers on new HOD within 00:00–13:00 NY.
Turn Show gate dots (debug) ON briefly to verify the gates.
When you’re comfortable, tighten the logic in this order:
Turn Daily Bias ON → 2) Distance filter ON (0.15–0.20 x ADR) → 3) BOS ON → 4) FVG + retest ON → 5) One-per-side ON.
3) Core logic (formal)
Session window
Uses the session string 0000–1300 (chart timezone).
For exact New York hours, set the chart timezone to New York.
Day context
Tracks bars since the daily session start and computes rolling dayLow / dayHigh.
A new LOD/HOD is identified when today’s rolling extreme updates on the current bar.
Signal base (always on)
BUY base = in session AND new LOD this bar.
SELL base = in session AND new HOD this bar.
Optional gates
Daily Bias (toggle Require Daily Bias?):
Bull: Daily Close > Daily EMA (default 50) and (optionally) EMA slope > 0.
Bear: Daily Close < Daily EMA and (optionally) slope < 0.
Distance filter vs ADR (xADR):
Longs: (close − dayLow) ≤ ADR × maxDistAdr (default 0.20).
Shorts: (dayHigh − close) ≤ ADR × maxDistAdr.
Micro BOS/CHOCH:
Longs: Close ≥ most recent swing high (pivot-based).
Shorts: Close ≤ most recent swing low.
FVG + retest (classic 3-bar):
Bull FVG: low > high ; Bear FVG: high < low .
We store the mid of the gap after BOS (if required), and the signal requires a retest (price trades through the mid).
One-per-side per day: after a signal fires, suppress another on the same side until the next day.
Visual & alerts
BUY/SELL triangles on chart.
Optional plotted SL (near day-low/ day-high vs rolling extremes) and TP bands (1R/2R/3R).
Alerts: “Daily Bottom Buy” / “Daily Top Sell”.
4) Inputs & what they mean
Signal Window
NY Window (session): 0000–1300 (chart timezone).
Tip: Set chart timezone to New York for true NY hours.
Daily Bias (optional)
Require Daily Bias?: ON = must align with Daily EMA regime.
EMA length for bias: default 50.
Require EMA slope: ON tightens bias to up/down slope.
Optional Confirmation
Require micro BOS/CHOCH: price must break the nearest micro swing.
Require FVG + retest: an FVG after BOS must form and be retested.
Optional Range Filter
Use distance filter vs ADR: proximity to day extreme (keeps entries “at the edge”).
ADR lookback (Daily): default 14.
Max distance (xADR): typical 0.15–0.20.
One-per-day guard
Limit to 1 BUY and 1 SELL per day: prevents over-trading.
Visuals / Debug
Show indicative SL/TP bands: draws SL and 1R/2R/3R.
Show gate dots (debug): gate diagnostics (legend below).
HTF Dashboard
Show HTF Dashboard (D/H4/H1): toggle the panel.
Dashboard EMA Length: default 20 (independent from bias EMA).
5) Reading the HTF Dashboard
Location: top-right table.
Timeframes: D, H4, H1.
Emoji: 🟢 (price > EMA), 🔴 (price < EMA).
Default EMA = 20 here (adjustable), and does not gate signals by default.
Use it as a context compass: e.g., prefer longs when H1/H4 are 🟢 even if Daily is mixed.
Want the dashboard to gate entries (e.g., require D & H4 both 🟢 for longs)? I can add a single toggle and wire it into the signal logic.
6) Best-practice playbook
A. Tightening path (recommended)
Start simple (all optional filters OFF).
If you get too many signals, turn ON in this order:
Daily Bias → Distance Filter (0.15–0.20) → BOS → FVG → One-per-side.
Once dialed in for your instrument, save a template.
B. Sessions & timezone
The session string uses the chart’s timezone. For real NY midnight → ~London close, set chart TZ = New York.
C. Markets & timeframe
Built around 2-minute execution (works well on XAUUSD, major FX pairs, indices).
On higher TFs (3/5/15m), increase ADR lookback (still fine at 14) and consider maxDistAdr closer to 0.15.
D. Risk management (suggested)
SL just beyond the day’s extreme vs rolling 10-bar extreme (already shown).
Scale out at 1R/2R/3R (bands provided).
Consider:
Daily loss cap (e.g., 2R).
Max trades per session (toggle One-per-side).
No trade if dashboard shows mixed HTFs (optional policy).
E. Strategy conversions
The indicator is ready for strategy implementation: entries at signal, SL at plotted stop, scale-outs at bands, daily loss cap, one-per-side.
Tell me your preferred risk % per trade and exit policy; I’ll hand you a strategy build.
7) “Gate dots” legend (debug mode)
Turn Show gate dots ON to see which condition is passing:
■ = inside session window
B = Daily bull bias ok (if required)
b = Daily bear bias ok (if required)
L = new LOD this bar
H = new HOD this bar
S = BOS up passed (if required)
s = BOS down passed (if required)
F = bull FVG saved (if FVG enabled)
f = bear FVG saved (if FVG enabled)
If a signal doesn’t appear, the missing letter tells you which gate blocked it.
8) Preset profiles (copy these settings)
Aggressive (maximum opportunities)
Daily Bias: OFF
Distance filter: OFF
BOS: OFF
FVG: OFF
One-per-side: OFF
Balanced (my go-to)
Daily Bias: ON (EMA 50, slope OFF or ON depending on trend quality)
Distance filter: ON at 0.20 x ADR
BOS: ON
FVG: OFF
One-per-side: ON
Conservative (premium entries only)
Daily Bias: ON (EMA 50, slope ON)
Distance filter: ON at 0.15 x ADR
BOS: ON
FVG: ON (retest required)
One-per-side: ON
9) Troubleshooting
No signals at all?
Check you’re inside the session (■ should show).
If not, change chart TZ to New York or adjust the session string to your TZ.
Turn Show gate dots ON and look for missing letters (L/H, B/b, S/s, F/f).
Temporarily disable: Daily Bias, Distance, BOS, FVG, One-per-side (to confirm base logic works).
Ensure you’re on a liquid symbol with 2m or fast intraday data.
Very quiet days may never set a fresh LOD/HOD during the window.
Dashboard not showing?
Toggle Show HTF Dashboard ON.
If you previously hid it, it will repopulate on the next bar.
Plots/alerts not firing?
Alerts must be created from the indicator with the named alertconditions.
If you copied code, make sure no Pine editor warnings remain.
10) Example workflows
Gold (XAUUSD) 2m, London continuation
Chart TZ = New York, session 0000–1300.
Start Aggressive; observe flow for 1–2 days.
Enable Daily Bias and Distance (0.20).
If still noisy, enable BOS.
Use TP 1R/2R/3R bands for scaling; stop beyond day-extreme.
EURUSD 2m, Tokyo to London handoff (quieter)
Keep Daily Bias ON, Distance 0.15.
Leave BOS OFF, FVG OFF (to keep enough trades).
Only take signals when H1 & H4 are 🟢/🔴 together (manual filter using dashboard).
11) Safety & discretion
This tool assists decision-making. Markets change; news & liquidity shift session behaviors. Always pair signals with risk management, and remember: nothing here is financial advice.
12) Want upgrades?
I can deliver, on request:
Strategy version with entries/exits, partials, break-even, daily loss cap, and performance stats.
HTF alignment gate (require D & H4 🟢 for longs / 🔴 for shorts).
Session presets (NY only, London only, overlap only).
Liquidity filters (e.g., ATR floors) and news-time blocks (manual schedule inputs).
Indikator dan strategi
Consensio with colouringConsensio MA - Short MA with Colouring
This is a trend-following indicator based on the stacking order of three Simple Moving Averages (SMAs) to determine market consensus and visualize strength using a monochrome scale.
Key Features:
Three Customizable SMAs:
Fast MA (Default: 2)
Standard MA (Default: 7)
Slow MA (Default: 30)
Consensus Index:
The indicator assigns a score from +3 (Strongest Buy) to -3 (Strongest Sell) based on the MAs' vertical order (e.g., Fast > Standard > Slow is +3).
Monochrome Bar Colouring:
Bullish Consensus (+1 to +3): Bars are coloured in shades of White to Light Gray.
Bearish Consensus (-1 to -3): Bars are coloured in shades of Black to Dark Gray.
The intensity of the colour directly reflects the strength of the consensus.
Dynamic MA Line Colouring:
Fast MA: Changes colour upon crossing the Standard or Slow MA to signal short-term momentum shifts.
Standard MA: Changes to Green/Red when crossing the Slow MA.
Slow MA: Changes to Green/Red only when the strongest consensus (+3 or -3) is achieved.
How to Interpret:
Strong Bullish Trend (+3): MAs are perfectly aligned (Fast > Standard > Slow) and the bar is pure White.
Strong Bearish Trend (-3): MAs are perfectly reversed (Slow > Standard > Fast) and the bar is pure Black.
Contradictory Signals: Use the Fast MA's colour changes (Dark Green/Red) to spot immediate momentum changes even if the bar colour indicates a weaker trend.
Sortable Relative Performance | viResearchSortable Relative Performance | viResearch
Conceptual Foundation and Purpose
The Sortable Relative Performance indicator from viResearch is designed as a multi-asset ranking and comparison system that allows traders to evaluate the relative strength of up to 14 different assets over a user-defined lookback period. Unlike single-symbol indicators, this tool provides a comparative view of performance, making it ideal for traders seeking to understand how assets perform relative to each other within a watchlist, sector, or market segment. The indicator calculates the percentage return of each asset from a chosen starting point and presents the results both graphically and in a sorted, tabular format, helping traders identify outperformers and underperformers at a glance.
Technical Composition and Methodology
At its core, the script calculates the relative performance of each selected asset by comparing its current closing price with the closing price from the lookback period. This performance metric is expressed as a percentage and computed using Pine Script’s request.security() function, allowing for seamless cross-asset analysis within a single pane. Each asset is visually represented as a vertical column, color-coded according to a predefined identity map that reflects common asset branding. The best-performing asset is dynamically labeled on the chart, displaying its name and current return, while a real-time performance table updates and ranks all active assets in descending order based on their return values. The table and columns automatically adjust based on the user’s selection, creating an interactive and responsive comparative dashboard.
Features and Configuration
The indicator includes a customizable date filter, allowing traders to activate the display from a specific start date. This is particularly useful for performance reviews tied to events, such as earnings reports, Fed meetings, or macroeconomic releases. The lookback period is adjustable and determines how far back in time performance is measured, making the tool adaptable to both short-term and long-term strategies. Traders can toggle individual assets on or off, enabling focused analysis on specific coins, stocks, or indices. Up to 14 assets can be analyzed simultaneously, with each one clearly distinguished by unique, branded colors in both the plot and the ranking table. The script intelligently highlights the top performer with a floating label, drawing immediate attention to the strongest asset within the group.
Strategic Use and Application
This indicator is especially valuable for traders employing relative strength or momentum-based strategies. By visualizing asset performance in real time, it becomes easier to rotate capital into strong assets and away from laggards. Whether tracking cryptocurrencies, sectors, or forex pairs, the ability to assess comparative returns without switching charts provides an operational edge. The tool supports portfolio analysis, sector rotation, and cross-market studies, making it suitable for discretionary traders, systematic investors, and even macro analysts looking for a visual breakdown of market behavior.
Conclusion and Practical Value
The Sortable Relative Performance indicator by viResearch delivers a clean and effective way to measure and rank asset performance over time. By combining visual clarity with real-time calculation and dynamic sorting, it offers a powerful lens through which traders can evaluate market leadership and laggard behavior. Its flexibility and modular design ensure it can be integrated into a wide range of strategies and trading styles. Whether you're managing a crypto portfolio or monitoring traditional markets, this tool provides essential insights into where momentum resides and how capital is flowing across assets.
Note: Backtests are based on past results and are not indicative of future performance.
Volume DMAO [DCAUT]█ Volume DMAO Indicator
📊 OVERVIEW
The Volume DMAO (Dual Moving Average Oscillator) applies PPO-style calculation to volume data rather than price. It measures the percentage difference between fast and slow moving averages of volume, providing insights into volume momentum and market participation trends.
🎯 CONCEPTS
Signal Interpretation
Positive Values : Current volume above historical average (expansion phase)
Negative Values : Current volume below historical average (contraction phase)
Rising Trend : Volume momentum accelerating (increasing participation)
Falling Trend : Volume momentum decelerating (decreasing participation)
Primary Applications
Volume Confirmation : Validate price movements with volume momentum analysis
Divergence Detection : Spot potential reversals when volume diverges from price
Trend Strength : Assess volume participation in price trends
Entry/Exit Signals : Time trades based on volume momentum shifts
📋 PARAMETER SETUP
Input Parameters
Fast Length : Period for fast moving average (default: 12)
Slow Length : Period for slow moving average (default: 50)
MA Type : Moving average algorithm (default: EMA)
📊 COLOR CODING
Histogram Colors
Dark Green : Positive and rising (strong volume expansion)
Light Green : Positive and falling (weakening volume expansion)
Light Red : Negative and rising (recovering from volume contraction)
Dark Red : Negative and falling (strong volume contraction)
💡 CORE VALUE
Unlike traditional volume indicators, Volume DMAO provides normalized percentage readings that:
- Enable comparison across different timeframes and instruments
- Reveal volume momentum changes before price movements
- Identify market phases through volume participation analysis
RSI + Volume ConfirmationFOR PRIVATE USE ONLY.
-Use to detect the trend changes based on RSI and Volume
-Both needed to align before putting in any trade entry
-Must understand how to use S&R
-Its not a foolproof. Do not use if you dont understand how to trade.
-Version is currently on BEta testing mode and will update from time to time.
Full credit goes to BOSS/CRC/CBC community
SEVENXSEVENX — Quick Guide (EN)
1. What It Does
SEVENX analyzes market momentum, trend, and volatility through a prism of seven distinct technical indicators (MACD, RSI, Stochastics, CCI, Momentum, OBV, ATR). When the selected indicators align in perfect harmony, the system generates a high-conviction entry signal (▲▼), helping you trade with analytical clarity and a decisive edge.
In short, it’s an indicator that combines seven indicators to create a custom signal tool just for you.
2. Choosing the Best Markets & Timeframes
It works best in markets where clear trends or momentum occur (such as major currency pairs, indices, or cryptocurrencies). It can be used universally, from scalping to swing trading.
Recommended timeframes: all timeframes.
For high-volatility assets (e.g., BTC, Gold), consider using 5m to 30m charts to filter out noise and focus on more stable setups.
For lower-volatility assets (e.g., major FX pairs), 1m–15m charts can effectively capture shorter-term opportunities.
Tip: Fine-tune the parameters in the "Indicator Settings" tab to optimize performance for your preferred asset and timeframe.
3. Building Your Trade Plan
Entry Signals: A buy signal (▲) or sell signal (▼) appears only when the specific combination of indicators you have enabled in the settings are all in agreement. This represents a high-probability setup based on your custom rules.
Take-Profit & Stop-Loss: SEVENX specializes in identifying entry points and does not provide exit signals. It is crucial to set your own Take-Profit and Stop-Loss levels based on your personal trading rules, such as fixed risk-reward ratios, support/resistance levels, or an ATR-based stop.
Using the ATR Filter: You can enable the ATR filter in the settings to ensure signals only appear when market volatility is increasing. This can help you avoid trading in flat or stagnant market conditions.
4. Key Parameters
Signal Conditions (On/Off): The most critical section. Check the boxes to choose which of the seven indicators you want to include in your signal logic. You can create custom combinations ranging from two to all seven indicators.
Indicator Settings: This tab contains all the numerical parameters for each individual indicator (e.g., RSI Length, MACD Fast/Slow Lengths, Stochastics %K/%D, ATR Filter MA Length).
Display Settings: Toggle the "BUY"/"SELL" text on or off and customize its color to your preference.
5. Important Disclaimer
This tool suggests potential trade setups based on a confluence of technical indicators; it does not guarantee profit or prevent loss. News shocks, thin liquidity, or abnormal volatility can negate any signal. All trading decisions and resulting P&L are entirely your responsibility. Leveraged trading involves the risk of losses that can exceed your initial deposit—use only risk capital you can afford to lose. We accept no liability for any losses or damages arising from the use of this tool.
SEVENX — クイックガイド (JP)
1. 機能概要
「 SEVENX 」は、市場のモメンタム、トレンド、ボラティリティを7つの異なるテクニカル指標(MACD, RSI, Stochastics, CCI, Momentum, OBV, ATR)というプリズムを通して分析します。あなたが選んだ複数の指標が完璧に調和し、条件が合致した瞬間に、確度の高いエントリーサイン(▲▼)を生成。あなたのトレードに分析的な透明性をもたらします。
つまり、7つのインジケーターを組み合わせて、あなただけの専用サインツールを生成するインジケーターです。
2. 最適な銘柄・時間軸の選定
明確なトレンドやモメンタムが発生する市場(主要通貨ペア、指数、暗号資産など)で最も機能します。スキャルピングからスイングトレードまで、オールマイティにご使用いただけます。
推奨時間軸:すべての時間軸
ボラティリティが高い銘柄(BTC、ゴールドなど)⇒ 5分~30分足でノイズを避け、より安定したセットアップに集中するのがおすすめです。
ボラティリティが低い銘柄(主要通貨ペアなど)⇒ 1分~15分足で、短期的なチャンスを捉えるのに有効です。
ヒント: 「インジケーター設定」タブの各パラメーターを微調整し、取引する銘柄や時間足に合わせて最適化してください。
3. トレードプランの策定
エントリーポイント:設定画面で有効にしたインジケーターの組み合わせ条件がすべて合致した瞬間に、買い(▲)または売り(▼)のサインが出現します。これは、あなた独自のルールに基づいた確度の高いセットアップです。
利食いと損切り:SEVENXはエントリーポイントの特定に特化しており、決済サインは表示しません。ご自身のトレードルールに基づき、リスクリワード比率、サポート&レジスタンス、ATRなどを参考に、必ず利食いと損切りの設定を行ってください。
ATRフィルターの活用:設定でATRフィルターを有効にすると、市場のボラティリティが高まっている局面に限定してサインを表示させることができます。値動きの乏しい市場での取引を避けるのに役立ちます。
4. 主要パラメーター解説
シグナル条件 (ON/OFF):最も重要な項目です。7つのインジケーターの中から、シグナルロジックに含めたい条件のチェックボックスをオンにします。2つから最大7つまで、自由に組み合わせを作成可能です。
インジケーター設定:各指標のパラメーター(RSIの期間、MACDのFast/Slow、ストキャスティクスの%K/%D、ATRフィルターの移動平均線など)を調整するタブです。
表示設定:「BUY」「SELL」テキストの表示/非表示を切り替えたり、文字色を好みに合わせてカスタマイズしたりできます。
5. 重要なご注意(Disclaimer)
本ツールはテクニカル指標の合致に基づき、取引機会の可能性を示唆するものであり、利益を保証するものではありません。ニュースや低流動性などによりサインが機能しない場合があります。取引で発生する損益はすべてご本人の責任となります。レバレッジ取引は証拠金を超える損失リスクを含みます。必ず余裕資金内でご利用ください。本ツールの利用に起因するいかなる損失・損害について、制作者は一切責任を負いません。
Volume-Price Divergence Indicator (OBV + VWAP, Multi-Timeframe)Description:
This indicator helps you identify volume-price divergences and potential trend weakness across any specified timeframe.
Features:
Volume bars with moving average – green for bullish, red for bearish, with orange SMA to detect low-volume situations.
Custom OBV calculation with divergence detection – highlights when price makes new highs/lows but OBV does not.
VWAP deviation alerts – signals when price moves far from VWAP while volume remains low, indicating potential fake breakouts.
Fully configurable – select any reference timeframe, adjust volume MA, OBV period, and VWAP deviation threshold.
Visual markers – easily spot bullish/bearish divergences and volume-price mismatches directly on your chart.
Use case:
Spot early trend exhaustion points.
Identify fake breakouts or weak rallies/drops.
Combine with your existing trading strategy for more informed entries and exits.
Volume-Weighted RSI & Multi-Normalized MACD### Description for Publishing: Volume-Weighted RSI & Multi-Normalized MACD
**Overview**
The "Volume-Weighted RSI & Multi-Normalized MACD" indicator is a powerful and versatile tool designed for traders seeking enhanced momentum and trend analysis. Combining a volume-weighted Relative Strength Index (VW-RSI) with a customizable Moving Average Convergence Divergence (MACD) featuring multiple normalization methods, this indicator provides deep insights into market dynamics. It supports multi-timeframe (MTF) analysis and includes an optional stepped plotting mode for discrete signal visualization, making it ideal for both trend-following and mean-reversion strategies across various markets (stocks, forex, crypto, etc.).
**Key Features**
1. **Volume-Weighted RSI (VW-RSI)**:
- A modified RSI that incorporates trading volume for greater sensitivity to market activity.
- Normalized to a user-defined range (default: -50 to +50) for consistent analysis.
- Optional smoothing with multiple moving average types (SMA, EMA, WMA, VWMA, SMMA, or SMA with Bollinger Bands) to reduce noise and highlight trends.
- Overbought (+20) and oversold (-20) levels for quick reference.
2. **Multi-Normalized MACD**:
- Offers six normalization methods for MACD, allowing traders to tailor the output to their strategy:
- Normalized Volume Weighted MACD (unbounded).
- Min-Max Normalization (bounded).
- Volatility Normalization (unbounded, volatility-adjusted).
- Volatility Normalization with Min-Max (bounded).
- Hyperbolic Tangent Normalization (bounded).
- Arctangent Normalization (bounded).
- Min-Max with Smoothing (bounded).
- All bounded methods scale to the user-defined range (default: -50 to +50), ensuring comparability with VW-RSI.
- Dynamic color changes for MACD line (lime/red) and histogram (aqua/blue/red/maroon) based on momentum and signal line crosses.
3. **Stepped Plotting Mode**:
- Optional mode to plot RSI and MACD as discrete, stepped lines, reducing noise by only updating when values change significantly (configurable thresholds).
- Ideal for traders focusing on clear, actionable signal changes.
4. **Multi-Timeframe Support**:
- Configurable timeframe input (default: chart timeframe) for analyzing RSI and MACD on higher or lower timeframes, enhancing cross-timeframe strategies.
5. **Customizable Display**:
- Toggle options to show/hide MACD line, signal line, histogram, and cross dots.
- Bollinger Bands for RSI smoothing (optional) with adjustable standard deviation multiplier.
- Clear visual cues with horizontal lines for overbought/oversold levels, midline, and MACD bounds.
**Usage Instructions**
1. **Add to Chart**: Apply the indicator to any symbol (e.g., BTCUSD, SPY) on any timeframe (1H, 1D, etc.).
2. **Configure Settings**:
- **General**: Adjust `Lower Bound` (-50 default) and `Upper Bound` (+50 default) for the output range. Set `Timeframe` for MTF analysis. Enable `Stepped?` for discrete plotting.
- **RSI**: Choose `Price Source` (default: ohlc4), `RSI Length` (default: 9), and smoothing options (e.g., EMA, Bollinger Bands). Adjust `RSI Diff Threshold` for stepped mode.
- **MACD**: Select `Price Source`, `Fast Length` (9), `Slow Length` (21), `Signal Length` (9), and a normalization method (default: Volatility Min-Max). Adjust `MACD Diff Threshold` for stepped mode.
- **Display Options**: Toggle MACD components and histogram colors for clarity.
3. **Interpretation**:
- **VW-RSI**: Watch for crosses above +20 (overbought) or below -20 (oversold) for potential reversals. Use smoothed RSI or Bollinger Bands for trend confirmation.
- **MACD**: Look for MACD/Signal line crosses (dots indicate crossings) and histogram changes for momentum shifts. Bounded normalizations align with RSI for unified analysis.
- **Stepped Mode**: Focus on significant changes in RSI/MACD for clearer signals.
4. **Companion Overlay**: For visualization on the main price chart, use the companion script "VW-RSI & MACD Price Overlay" (available separately, requires this script to be published). It plots RSI and MACD as price-scaled echo lines, with toggles to show/hide and customizable scaling (high/low or ATR).
**Who Is This For?**
- **Trend Traders**: Use MACD normalizations and MTF to identify momentum shifts across timeframes.
- **Mean-Reversion Traders**: Leverage VW-RSI’s overbought/oversold signals for entry/exit points.
- **Technical Analysts**: Customize normalization and smoothing to match specific market conditions.
- **All Markets**: Works on stocks, forex, cryptocurrencies, and more, with any timeframe.
**Notes**
- Unbounded MACD normalizations (`enable_nvw`, `enable_vol`) may produce values outside -50/+50, suitable for volatility-focused strategies.
- For price chart overlay, publish this script and use its ID in the companion script’s `request.security` call.
- Adjust scaling inputs in the companion script for optimal visualization on volatile or stable assets.
**Author’s Note**
Developed by NEPOLIX, this indicator combines volume-weighted precision with flexible normalization for robust technical analysis. Feedback and suggestions are welcome to enhance future versions!
MC WITH ALERTS DINESH SETHIYAManipulation Candle (MC): A candlestick that initially suggests price movement in one direction but then reverses, manipulating liquidity and closing in the opposite direction.
Types of MCs:
Bullish MC: Takes out the previous candle's low, reverses, takes out the previous candle's high, and closes above it.
Bearish MC: Takes out the previous candle's high, reverses, takes out the previous candle's low, and closes below it.
Ideal MC Characteristic: The rejection wick (bottom wick for bullish MC, top wick for bearish MC) should be larger than the directional wick.
RJ_ Vader Master IndicatorOverview
The Rj_Vader Master Indicator is a trend-following tool designed to identify key momentum shifts using a dual EMA system. It highlights crossover signals, potential reversal levels, and visually marks significant swing highs and lows. The script provides clear dynamic support/resistance levels along with color-coded trend zones for quick market direction analysis.
🔑 Features
Dual EMA Trend Detection
Fast EMA (default 12)
Slow EMA (default 25)
Crossovers confirm trend changes.
Automatic Swing Level Marking
Detects the most recent swing high/low during crossovers.
Plots horizontal levels with optional extension.
Dynamic Line Management
Extend support/resistance levels until invalidated.
Dotted lines mark broken levels.
Adjustable limit on how many lines to display.
Visual Trend Zone Highlighting
Gradient fill between EMAs for bullish/bearish zones.
Color strength adapts to EMA spread (trend momentum).
Signal Alerts
Marks potential entry/exit points with labels and symbols at EMA crossovers.
Trading Mastery Indicator# Trading Mastery Indicator - Complete User Guide
## Overview
The Trading Mastery Indicator is a professional-grade technical analysis tool that provides high-probability trading signals with complete trade management information including entry, stop loss, and take profit levels.
## Key Features
- High-Quality Signal Detection: Identifies strong, medium, and weak trading opportunities
- Complete Trade Setup: Provides entry, stop loss, and take profit for every signal
- Risk Management: Calculates risk-to-reward ratios automatically
- Elliott Wave Analysis: Integrated wave pattern and position analysis
- Active Signal Tracking: Shows when you're currently in a trade
- Professional Alerts: Detailed notifications with all trade parameters
## Signal Quality Classification
### STRONG Signals (Premium Quality)
- Reliability: Highest probability setups
- Market Conditions: Strong trending environments
- Color: Teal for buys, Red for sells
- When to Trade: These are your primary trading opportunities
- Risk Profile: Lowest risk, highest reward potential
### MEDIUM Signals (Standard Quality)
- Reliability: Good probability setups
- Market Conditions: Moderate trend or consolidation breakouts
- Color: Gold for buys, Purple for sells (Change to Blue Gray)
- When to Trade: Secondary opportunities when strong signals are scarce
- Risk Profile: Moderate risk, good reward potential
### WEAK Signals (Entry Quality)
- Reliability: Lower probability setups
- Market Conditions: Counter-trend or unclear market structure
- Color: Coral for buys, Pink for sells
- When to Trade: Only for experienced traders in specific market conditions
- Risk Profile: Higher risk, variable reward
## How to Use the Indicator
### 1. Signal Settings Configuration
Signal Filter Options:
- All Signals: Shows every trading opportunity (strong, medium, weak)
- High Quality Only: Shows only the highest probability setups
- High + Medium Quality**: Balanced approach filtering out weak signals
Recommended Settings by Experience:
- Beginner: Use "High Quality Only"
- Intermediate: Use "High + Medium Quality"
- Advanced: Use "All Signals" with proper risk management
Label Controls:
- Label Position: Adjust how close labels appear to candles
- Label Text Size: Choose based on screen size and preference
- Maximum Labels: Control chart clutter (recommended: 20)
### 2. Understanding the Professional Panel
The panel provides real-time market intelligence:
Primary Trend: Market direction analysis
- BULLISH TREND: Look for buy opportunities only
- BEARISH TREND: Look for sell opportunities only
- CONSOLIDATION: Market indecision, trade with caution
Wave Pattern: Elliott Wave structure analysis
- IMPULSE UP: Strong bullish momentum
- IMPULSE DOWN: Strong bearish momentum
- CORRECTION: Sideways/corrective movement
Wave Position: Current Elliott Wave position
- WAVE 3 (STRONG): Most powerful moves, best for trend following
- WAVE 1 OR 5: Beginning or ending waves
- WAVE 2 OR 4: Corrective phases, lower probability
- CORRECTIVE ABC: Wait for pattern completion
Signal Grade: Current signal status
- SIGNAL ACTIVE: You're currently in a trade
- PREMIUM/STANDARD/SPECULATIVE: New signal quality
- NO SIGNAL: No current opportunities
Trading Bias: Overall market direction
- LONG BIAS: Focus on buy opportunities
- SHORT BIAS: Focus on sell opportunities
- NEUTRAL: No clear directional bias
### 3. Reading Signal Labels
Each signal provides complete trade setup information:
```
STRONG BUY
━━━━━━━━━━━━━━━━━━━━
💰 Entry: 1875.50
🛡️ SL: 1860.25
🎯 TP: 1905.75
📈 R:R = 1:2.0
━━━━━━━━━━━━━━━━━━━━
```
Understanding the Information:
- Entry: Exact price level to enter the trade
- SL: Stop loss level (risk management)
- TP: Take profit level (profit target)
- R:R: Risk-to-reward ratio (1:2.0 means you risk 1 to make 2)
### 4. Entry/TP/SL Level Lines
Visual trade management aids:
- Blue Solid Line: Entry level
- Red Dashed Line: Stop loss level
- Green Dashed Line: Take profit level
- Small Labels: "ENTRY", "SL", "TP" markers
## Trading Strategy Guidelines
### Trend Following Strategy
1. Check Panel: Ensure trend aligns with your trade direction
2. Wait for Signals: Only trade in the direction of the primary trend
3. Quality First: Focus on STRONG signals during trending markets
4. Wave Timing: WAVE 3 positions offer the best trending opportunities
### Reversal Strategy
1. Look for Divergence: Panel shows trend change signals
2. Wait for Confirmation: Don't jump early on potential reversals
3. Use MEDIUM Signals: Often good for catching early trend changes
4. Watch Wave Position: CORRECTIVE ABC patterns may signal trend completion
### Risk Management Rules
Position Sizing:
- Risk no more than 1-2% of account per trade
- Use the provided R:R ratios to calculate position sizes
- Stronger signals can justify slightly larger positions
Stop Loss Management:
- Always use the provided stop loss levels
- Never move stops against your position
- Consider trailing stops once trade moves in your favor
Take Profit Strategy:
- Use provided TP levels as minimum targets
- Consider taking partial profits at TP level
- Let strong trends run beyond TP in trending markets
## Best Practices by Timeframe
### Scalping (M1-M5)
- Use "High Quality Only" filter
- Focus on STRONG signals only
- Quick entry and exit
- Expect more false signals due to market noise
### Intraday Trading (M15-H1)
- Use "High + Medium Quality" filter
- Good balance of opportunity and reliability
- Hold trades for several hours
- Most versatile timeframe for the indicator
### Swing Trading (H4-Daily)
- Use "All Signals" with proper analysis
- Hold trades for days to weeks
- Most reliable signals on higher timeframes
- Best for beginners due to less noise
## Panel Customization
Position Options:
- Top Right: Default, doesn't interfere with price action
- Top Left: Good for wide screens
- Bottom corners: Keeps important info visible while analyzing tops
- Middle positions: Central reference, good for multi-monitor setups
Size Options:
- Small: Minimal screen space, good for small screens
- Normal: Balanced visibility and space usage
- Large: Easy reading, good for detailed analysis
Transparency: Adjust 0-95% based on preference and chart background
## Common Mistakes to Avoid
### Signal Interpretation Errors
- Don't ignore the trend: Trading against primary trend reduces success
- Don't chase weak signals: Focus on quality over quantity
- Don't ignore wave position: WAVE 2/4 corrections are lower probability
### Risk Management Errors
- Don't skip stop losses: Every signal includes SL for a reason
- Don't risk too much: Even strong signals can fail
- Don't move stops against position: Stick to the plan
### Psychological Errors
- Don't overtrade: Wait for quality setups
- Don't second-guess strong signals: Trust the analysis
- Don't panic on normal drawdowns: Expect some losing trades
## Alert Configuration
Enable alerts for:
- Strong signals: Primary trading opportunities
- Medium signals: Secondary opportunities (optional)
- Signal active status: Know when you're in trades
Alert messages include complete trade information for easy execution.
## Performance Optimization
### For Best Results:
1. Combine with price action: Look for confluence with support/resistance
2. Consider market sessions: Different sessions have different characteristics
3. Monitor news events: Avoid trading during high-impact news
4. Keep a trading journal: Track which signals work best for your style
### Regular Review:
- Weekly analysis: Review which signal types performed best
- Timeframe assessment: Determine your most profitable timeframes
- Strategy refinement: Adjust filters based on performance data
## Troubleshooting
If you're not seeing signals:
- Check that "Show Buy/Sell Signals" is enabled
- Verify your signal filter isn't too restrictive
- Market may be in a consolidation phase
If labels are cluttered:
- Reduce "Maximum Labels to Show"
- Change label position to "Far from Candle"
- Use smaller label text size
If panel is in the way:
- Change panel position
- Increase transparency
- Reduce panel size
- Toggle panel off temporarily
Remember: This indicator provides analysis and signals, but successful trading also requires proper risk management, emotional discipline, and understanding of market conditions. Always practice with demo accounts before risking real capital, and never risk more than you can afford to lose.
Custom Candle Coloring (3% Drop / Breakout / Follow-through)Naveen's custom bars. It helps with custom color of the bars to see significant candle movements and their interpretations
UpDownBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear ZoneUpDownBow + BullBear UpDownBow + BullBear ZoneUpDoUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZoneUpDownBow + BullBear ZonewnBow + BullBear Zone
ATH Projection (2013, 2017, 2021 -> 2025)//@version=6
indicator(title="ATH Projection (2013, 2017, 2021 -> 2025)", overlay=true, max_labels_count=20, max_lines_count=20)
// ----------- Inputs (ATH manuels) -----------
t1 = input.time(defval=timestamp("2013-12-01T00:00:00"), title="Date ATH #1 (2013)")
p1 = input.float(defval=1100.0, title="Prix ATH #1 (2013)")
t2 = input.time(defval=timestamp("2017-12-01T00:00:00"), title="Date ATH #2 (2017)")
p2 = input.float(defval=20000.0, title="Prix ATH #2 (2017)")
t3 = input.time(defval=timestamp("2021-11-01T00:00:00"), title="Date ATH #3 (2021)")
p3 = input.float(defval=69000.0, title="Prix ATH #3 (2021)")
// Projection future (ex: fin 2025)
t_proj = input.time(defval=timestamp("2025-12-01T00:00:00"), title="Date cible (fin 2025)")
// ----------- Utilitaire -----------
f_days(t) => ((t - t1) / 86400000.0) + 1.0 // nb jours depuis t1 (+1 pour éviter log(0))
// ----------- Coordonnées X (jours) -----------
x1 = f_days(t1)
x2 = f_days(t2)
x3 = f_days(t3)
xP = f_days(t_proj)
// ----------- Régression power-law (3 points) -----------
X1 = math.log(x1), Y1 = math.log(p1)
X2 = math.log(x2), Y2 = math.log(p2)
X3 = math.log(x3), Y3 = math.log(p3)
n = 3.0
sumX = X1 + X2 + X3
sumY = Y1 + Y2 + Y3
sumX2 = X1*X1 + X2*X2 + X3*X3
sumXY = X1*Y1 + X2*Y2 + X3*Y3
denom = n*sumX2 - sumX*sumX
var float a = na
var float b = na
b := denom != 0 ? (n*sumXY - sumX*sumY) / denom : na
a := na(b) ? na : math.exp((sumY - b*sumX) / n)
// ----------- Courbe au fil des barres -----------
x_now = f_days(time)
curve = (not na(a) and not na(b) and x_now > 0) ? a * math.pow(x_now, b) : na
plot(series=curve, title="Courbe prévision (power-law)", color=color.fuchsia, linewidth=2)
// ----------- Projection fin 2025 -----------
proj2025 = (not na(a) and not na(b) and xP > 0) ? a * math.pow(xP, b) : na
bi_proj = ta.valuewhen(time >= t_proj, bar_index, 0)
x_for_label = na(bi_proj) ? bar_index : bi_proj
// Label affichant la projection
var label lbl = na
if barstate.islast and not na(proj2025)
txt = "Projection 2025 ≈ " + str.tostring(proj2025, format.price)
if na(lbl)
lbl := label.new(x=x_for_label, y=proj2025, text=txt, xloc=xloc.bar_index, style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)
else
label.set_x(id=lbl, x=x_for_label)
label.set_y(id=lbl, y=proj2025)
label.set_text(id=lbl, text=txt)
Volume (Custom Timeframe & Color)This indicator displays volume data from a custom timeframe, regardless of the current chart resolution.
The bar color is determined by the price movement of the selected timeframe (green for bullish, red for bearish).
Features:
- Select any custom timeframe for volume (e.g., 5m, 15m, 1h, 1D).
- Volume bars are painted according to the candle direction of that timeframe.
- Useful for multi-timeframe analysis and detecting higher timeframe volume trends.
Inspired by TradingView’s built-in Volume indicator, but enhanced with custom timeframe and consistent coloring.
mohamed rebouh zigzag//
// mohamed rebouh
//@version=5
//
// THIS CODE IS BASED FROM THE MT4 ZIGZAG INDICATOR
// THE ZIGZAG SETTINGS FOR THE MAIN ONE ON TRADINGVIEW DO NOT WORK THE SAME AS MT4
// I HOPE U LOVE IT
//
indicator(' mohamed rebouh ', overlay=true)
// inputs
Depth = input(12, title='Depth') // Depth
Deviation = input(5, title='Deviation') // Deviation
// ZigZag
var lastlow = 0.0
var lasthigh = 0.0
data(x) =>
d = request.security(syminfo.tickerid, timeframe.period, x)
d
getLow(x, y, z, a) =>
lastlow1 = y
v = data(x)
m = v == lastlow1 or data(z) - v > a * syminfo.mintick
if v != lastlow1
lastlow1 := v
if m
v := 0.0
v
getHigh(x, y, z, a) =>
lasthigh1 = y
v = data(x)
m = v == lasthigh1 or v - data(z) > a * syminfo.mintick
if v != lasthigh1
lasthigh1 := v
if m
v := 0.0
v
= getLow(ta.lowest(Depth), lastlow, low, Deviation)
lastlow := e
zBB = v != 0.0
= getHigh(ta.highest(Depth), lasthigh, high, Deviation)
lasthigh := e1
zSS = v1 != 0.0
zigzagDirection = -1
zigzagHigh = 0
zigzagLow = 0
zigzagDirection := zBB ? 0 : zSS ? 1 : nz(zigzagDirection , -1)
virtualLow = zigzagLow + 1
if not zBB or zBB and zigzagDirection == zigzagDirection and low > low
zigzagLow := nz(zigzagLow ) + 1
zigzagLow
virtualHigh = zigzagHigh + 1
if not zSS or zSS and zigzagDirection == zigzagDirection and high < high
zigzagHigh := nz(zigzagHigh ) + 1
zigzagHigh
line zigzag = line.new(bar_index - zigzagLow, low , bar_index - zigzagHigh, high , color=color.red, style=line.style_solid, width=2)
if zigzagDirection == zigzagDirection
line.delete(zigzag )
Tristan's Star: 15m Shooting Star DetectorThis script is designed to be used on the 1-minute chart , but it analyzes the market as if you were watching the 15-minute candles.
Every cluster of 15 one-minute candles is grouped together and treated as a single 15-minute candle.
When that 15-minute “synthetic” candle looks like a shooting star pattern (small body near the low, long upper wick, short lower wick, bearish bias), the script triggers a signal.
At the close of that 15-minute cluster, the script will:
Plot a single “Sell” label on the last 1-minute bar of the group.
Draw a horizontal line across the 15 bars at the high, showing the level that created the shooting star.
Optionally display a table cell in the corner with the word “SELL.”
This lets you stay on the 1-minute timeframe for precision entries and exits, while still being alerted when the higher-timeframe (15-minute) shows a bearish reversal pattern.
INKY Rejection Blocks - Current ZonesBullish and Bearish block colors with adjustable opacity.
Border visibility, border width, and 50% midline display toggles.
Label size customization for optimal chart clarity.
⚙️ How the Indicator Works:
Swing Detection: Identifies significant highs and lows based on pivot structures.
Rejection Filtering: Confirms strong rejections with wick-to-body ratio validation.
Block Creation: Highlights bullish or bearish rejection zones with customizable visuals.
Midline Plotting: (Optional) Marks the 50% midpoint of the block for entry targeting.
Mitigation and Cleanup: Blocks are deleted automatically when their structure is invalidated, maintaining a clean and accurate chart view.
🎯 How to Use It:
Identify Reaction Zones: Use rejection blocks as potential areas for price reversals or consolidations.
Plan Trade Entries: Monitor retests of the block boundaries or 50% lines for precision entries.
Manage Risk: If price closes beyond the block, treat it as a potential invalidation or Change in State of Delivery (CISD) event.
BOS + Liquidity Sweep Entries//@version=5
indicator("BOS + Liquidity Sweep Entries (Both Directions) — Fixed", overlay=true, shorttitle="BOS+LS")
// ===== INPUTS =====
swingLen = input.int(5, "Swing lookback", minval=1)
sweepATRmult = input.float(0.5, "Sweep wick threshold (ATR multiplier)", minval=0.0, step=0.1)
maxBarsSinceBOS = input.int(50, "Max bars to wait for sweep after BOS", minval=1)
showLabels = input.bool(true, "Show labels", inline="lbl")
showShapes = input.bool(true, "Show shapes", inline="lbl")
atr = ta.atr(14)
// ===== PIVOTS =====
ph_val = ta.pivothigh(high, swingLen, swingLen)
pl_val = ta.pivotlow(low, swingLen, swingLen)
// persist last pivots and their bar indices
var float lastPH = na
var int lastPH_bar = na
var float lastPL = na
var int lastPL_bar = na
if not na(ph_val)
lastPH := ph_val
lastPH_bar := bar_index - swingLen
if not na(pl_val)
lastPL := pl_val
lastPL_bar := bar_index - swingLen
// ===== BOS DETECTION (record the bar where BOS first confirmed) =====
var int bull_bos_bar = na
bull_bos = not na(lastPH) and close > lastPH and bar_index > lastPH_bar
if bull_bos
// store first confirmation bar (overwrite only if new)
if na(bull_bos_bar) or bar_index > bull_bos_bar
bull_bos_bar := bar_index
var int bear_bos_bar = na
bear_bos = not na(lastPL) and close < lastPL and bar_index > lastPL_bar
if bear_bos
if na(bear_bos_bar) or bar_index > bear_bos_bar
bear_bos_bar := bar_index
// If pivots update to a more recent pivot, clear older BOS/sweep markers that predate the new pivot
if not na(lastPH_bar) and not na(bull_bos_bar)
if bull_bos_bar <= lastPH_bar
bull_bos_bar := na
// clear bull sweep when pivot updates
var int last_bull_sweep_bar = na
if not na(lastPL_bar) and not na(bear_bos_bar)
if bear_bos_bar <= lastPL_bar
bear_bos_bar := na
var int last_bear_sweep_bar = na
// ensure sweep tracking vars exist (declared outside so we can reference later)
var int last_bull_sweep_bar = na
var int last_bear_sweep_bar = na
// ===== SWEEP DETECTION =====
// Bullish sweep: wick above BOS (lastPH) by threshold, then close back below the BOS level
bull_sweep = false
if not na(bull_bos_bar) and not na(lastPH)
bars_since = bar_index - bull_bos_bar
if bars_since <= maxBarsSinceBOS
wick_above = high - lastPH
if (wick_above > sweepATRmult * atr) and (close < lastPH)
bull_sweep := true
last_bull_sweep_bar := bar_index
// Bearish sweep: wick below BOS (lastPL) by threshold, then close back above the BOS level
bear_sweep = false
if not na(bear_bos_bar) and not na(lastPL)
bars_since = bar_index - bear_bos_bar
if bars_since <= maxBarsSinceBOS
wick_below = lastPL - low
if (wick_below > sweepATRmult * atr) and (close > lastPL)
bear_sweep := true
last_bear_sweep_bar := bar_index
// ===== ENTRY RULES (only after sweep happened AFTER BOS) =====
long_entry = false
if not na(last_bull_sweep_bar) and not na(bull_bos_bar)
if (last_bull_sweep_bar > bull_bos_bar) and (bar_index > last_bull_sweep_bar) and (close > lastPH)
long_entry := true
// avoid duplicate triggers from the same sweep
last_bull_sweep_bar := na
short_entry = false
if not na(last_bear_sweep_bar) and not na(bear_bos_bar)
if (last_bear_sweep_bar > bear_bos_bar) and (bar_index > last_bear_sweep_bar) and (close < lastPL)
short_entry := true
// avoid duplicate triggers from the same sweep
last_bear_sweep_bar := na
// ===== PLOTTING LINES =====
plot(lastPH, title="Last Swing High", color=color.orange, linewidth=2, style=plot.style_linebr)
plot(lastPL, title="Last Swing Low", color=color.teal, linewidth=2, style=plot.style_linebr)
// ===== LABELS & SHAPES (managed to avoid label flooding) =====
var label lb_bull_bos = na
var label lb_bear_bos = na
var label lb_bull_sweep = na
var label lb_bear_sweep = na
var label lb_long_entry = na
var label lb_short_entry = na
if showLabels
if bull_bos
if not na(lb_bull_bos)
label.delete(lb_bull_bos)
lb_bull_bos := label.new(bar_index, high, "Bull BOS ✓", yloc=yloc.abovebar, style=label.style_label_up, color=color.green, textcolor=color.white)
if bear_bos
if not na(lb_bear_bos)
label.delete(lb_bear_bos)
lb_bear_bos := label.new(bar_index, low, "Bear BOS ✓", yloc=yloc.belowbar, style=label.style_label_down, color=color.red, textcolor=color.white)
if bull_sweep
if not na(lb_bull_sweep)
label.delete(lb_bull_sweep)
lb_bull_sweep := label.new(bar_index, high, "Bull Sweep", yloc=yloc.abovebar, style=label.style_label_down, color=color.purple, textcolor=color.white)
if bear_sweep
if not na(lb_bear_sweep)
label.delete(lb_bear_sweep)
lb_bear_sweep := label.new(bar_index, low, "Bear Sweep", yloc=yloc.belowbar, style=label.style_label_up, color=color.purple, textcolor=color.white)
if long_entry
if not na(lb_long_entry)
label.delete(lb_long_entry)
lb_long_entry := label.new(bar_index, low, "LONG ENTRY", yloc=yloc.belowbar, style=label.style_label_up, color=color.lime, textcolor=color.black)
if short_entry
if not na(lb_short_entry)
label.delete(lb_short_entry)
lb_short_entry := label.new(bar_index, high, "SHORT ENTRY", yloc=yloc.abovebar, style=label.style_label_down, color=color.red, textcolor=color.white)
// optional shapes (good for quick visual scanning)
if showShapes
plotshape(bull_sweep, title="Bull Sweep Shape", location=location.abovebar, color=color.purple, style=shape.triangledown, size=size.tiny)
plotshape(bear_sweep, title="Bear Sweep Shape", location=location.belowbar, color=color.purple, style=shape.triangleup, size=size.tiny)
plotshape(long_entry, title="Long Shape", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small)
plotshape(short_entry, title="Short Shape", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// ===== ALERTS =====
alertcondition(bull_bos, title="Bullish BOS", message="Bullish BOS confirmed above swing high")
alertcondition(bear_bos, title="Bearish BOS", message="Bearish BOS confirmed below swing low")
alertcondition(bull_sweep, title="Bullish Sweep", message="Liquidity sweep above swing high detected")
alertcondition(bear_sweep, title="Bearish Sweep", message="Liquidity sweep below swing low detected")
alertcondition(long_entry, title="LONG Entry", message="LONG Entry: BOS -> sweep -> reclaim")
alertcondition(short_entry, title="SHORT Entry", message="SHORT Entry: BOS -> sweep -> reclaim")