Smart Money Concepts ProjectorVariant of LuxAlgo Smart Money Concepts that allows you to choose a reference symbol that has a strong correlation with the current asset (e.g. corr(SOL/USDT, USDT.D) = -0.9). The indicator performs a simple linear regression and maps the key levels from USDT.D (or any other chose asset) on the current candle pane.
Analizy Trendu
TOBYGBADE1: Dynamic Big Candle Pip RangeDisplays candle ranges in pips as a histogram in a separate pane, highlights big candles exceeding a dynamic threshold, and colors bars and labels green/red based on bullish or bearish direction.”
Midnight ET + Daily H/L True dayThis script divides each day from midnight EST to the next midnight opening price (True day). Full credits go to my mentor ICT for the idea behind the script
Midnight ET + Daily H/L (vertical midnight + HL lines)This script provides midnight EST dividers for each day and marks each daily high and low during each True day. Credits go to my mentor ICT for the idea behind this script.
ATR Daniel# ATR Daniel - Indicator Description
## 🇬🇧 ENGLISH VERSION
### ATR Daniel - Smart Trailing Stop Manager
**ATR Daniel** is an intelligent trailing stop indicator that automatically adapts to your trading style and the asset you're trading.
#### Key Features:
**🎯 3 Trading Modes:**
- **Swing Trading** - For position trading with wider stops
- **Intraday** - For day trading with balanced parameters
- **Scalping** - For quick trades with tight stops
**📊 Automatic Asset Detection:**
The indicator automatically recognizes 3 major assets and applies optimized parameters:
- **XAUUSD (Gold)** - Lower volatility settings
- **BTCUSDT (Bitcoin)** - Medium volatility settings
- **NAS100USD (Nasdaq 100)** - Higher volatility settings
**🔧 Flexible Configuration:**
- **Auto Mode**: Applies optimal parameters based on detected asset and selected trading mode
- **Manual Mode**: Customize ATR length and multiplier to your preferences
- **Customizable Colors**: Choose your own line color
- **ON/OFF Display**: Toggle line visibility as needed
**📈 Visual Display:**
- Dynamic trailing stop line that follows price action
- Color changes based on trend direction (bullish/bearish)
- Real-time info table showing:
- Current asset
- Trading mode
- ATR value
- Stop loss distance
- Recommended SL price
- Current trend direction
- Signal arrows at trend reversals (optional)
**💡 How It Works:**
The indicator uses ATR (Average True Range) to calculate dynamic stop loss levels that adapt to market volatility. The trailing stop follows the price in trending markets while protecting your position.
**Perfect for:**
- Traders who want automated stop loss management
- Multi-asset traders (Gold, Bitcoin, Nasdaq)
- All trading styles (Swing, Intraday, Scalping)
---
ROC & Momentum FusionROC & Momentum Fusion
(by HabibiTrades ©)
Purpose:
“ROC & Momentum Fusion” combines the Rate of Change (ROC) with a MACD-style signal engine to identify early momentum reversals, confirmed trend shifts, and low-volatility choppy zones.
It’s built for traders who want early momentum detection with the clarity of trend persistence — adaptable to any instrument and timeframe.
⚙️ How It Works
Rate of Change (ROC):
Measures the percentage speed of price change over time, showing the raw momentum strength.
Signal Line (EMA):
A short EMA of the ROC — responds faster to new directional shifts, similar to a MACD signal line.
Histogram:
Displays acceleration and deceleration between the ROC and its signal line.
Persistent Trend States:
When the ROC crosses the signal line or zero, the indicator enters a new momentum regime
(bullish or bearish) and stays in that color until another flip occurs.
Dynamic Choppy Zone:
When ROC momentum fades within the zero buffer zone, the indicator turns orange, signaling a sideways or indecisive market.
🟢 Visual Regimes
Regime Description Color
Bullish Momentum ROC above zero or signal line 🟢 Neon Green
Bearish Momentum ROC below zero or signal line 🔴 Neon Red
Choppy / Neutral ROC hovering within ±threshold range 🟠 Neon Orange
This color system makes it visually effortless to see whether the market is trending, reversing, or consolidating.
🧭 Adaptive Intelligence
The script automatically adjusts to market type and session for consistent accuracy:
Session Adaptive: Adjusts smoothing based on global sessions (Asian, London, New York, Sydney).
Instrument Adaptive: Fine-tunes sensitivity automatically for major assets — NASDAQ (NQ), S&P 500 (ES), Gold (GC), Oil (CL), Bitcoin (BTC).
Volatility Normalization: Optionally divides ROC by its own standard deviation to stabilize noisy assets and maintain consistent scaling.
🔔 Signals & Alerts
Bullish Reversal:
ROC crosses above its signal or zero line — early momentum flip.
Bearish Reversal:
ROC crosses below its signal or zero line — downward momentum flip.
Alerts:
Both reversal conditions include built-in alert triggers for automation and notifications.
🎨 Visual Features
Main ROC Line: Adaptive EMA of ROC, color-coded by trend regime.
Signal Line: Optional white EMA overlay for MACD-style crossovers.
Histogram: Visual burst display of acceleration (green/red).
Reversal Markers: Optional triangles marking exact crossover points.
Threshold Lines: Highlight the zero and buffer zones for visual clarity.
🧩 Best Use Cases
Identify early momentum shifts before price confirms them.
Confirm trend continuation or exhaustion with color persistence.
Detect choppy / low-volatility periods instantly.
Works across all timeframes — from 1-minute scalping to weekly swings.
Combine with structure, EMAs, or volume for confirmation.
⚙️ Recommended Settings
Setting Default Description
ROC Period 6 Core momentum length (lower = faster response).
Signal EMA Length 3 MACD-style responsiveness (lower = more reactive).
Zero Buffer Threshold 0.15 Defines the width of the neutral zone around zero.
Choppy Zone Multiplier 1.0 Expands or tightens the orange zone sensitivity.
These defaults have been optimized through real-market testing to balance responsiveness and smoothness across different asset classes.
⚠️ Notes
The color regime is persistent, meaning once the line turns bullish or bearish, it remains in that state until momentum structurally flips.
The orange zone represents momentum uncertainty and helps avoid false entries in range-bound markets.
Works seamlessly on any timeframe and with any asset.
Ichimoku_RSI_MACD_CleanIchimoku + RSI + MACD. A combination of three indicators. The important thing is that they have a BUY or SELL alert, so it makes it easy to understand the numbers.
ATR_XAUUSD-BITCOINT-US100_Daniel# ATR Daniel - Indicator Description
## 🇬🇧 ENGLISH VERSION
### ATR Daniel - Smart Trailing Stop Manager
**ATR Daniel** is an intelligent trailing stop indicator that automatically adapts to your trading style and the asset you're trading.
#### Key Features:
**🎯 3 Trading Modes:**
- **Swing Trading** - For position trading with wider stops
- **Intraday** - For day trading with balanced parameters
- **Scalping** - For quick trades with tight stops
**📊 Automatic Asset Detection:**
The indicator automatically recognizes 3 major assets and applies optimized parameters:
- **XAUUSD (Gold)** - Lower volatility settings
- **BTCUSDT (Bitcoin)** - Medium volatility settings
- **NAS100USD (Nasdaq 100)** - Higher volatility settings
**🔧 Flexible Configuration:**
- **Auto Mode**: Applies optimal parameters based on detected asset and selected trading mode
- **Manual Mode**: Customize ATR length and multiplier to your preferences
- **Customizable Colors**: Choose your own line color
- **ON/OFF Display**: Toggle line visibility as needed
**📈 Visual Display:**
- Dynamic trailing stop line that follows price action
- Color changes based on trend direction (bullish/bearish)
- Real-time info table showing:
- Current asset
- Trading mode
- ATR value
- Stop loss distance
- Recommended SL price
- Current trend direction
- Signal arrows at trend reversals (optional)
**💡 How It Works:**
The indicator uses ATR (Average True Range) to calculate dynamic stop loss levels that adapt to market volatility. The trailing stop follows the price in trending markets while protecting your position.
**Perfect for:**
- Traders who want automated stop loss management
- Multi-asset traders (Gold, Bitcoin, Nasdaq)
- All trading styles (Swing, Intraday, Scalping)
---
SMC Clean: Structure + LiquidityThis indicator provides Smart Money Concepts (SMC) tools designed to help traders analyze market structure, liquidity pools, and institutional trading zones. It combines several popular SMC methods into one powerful, customizable tool, with a clean and controlled chart display.
Features and How it Works:
Swing Highs and Lows: The indicator identifies confirmed swing highs and swing lows using a lookback period (default: 15 bars). These points form the basis for market structure analysis.
Equal Highs/Equal Lows (EQH/EQL): When price action creates repeated swing highs or lows within a defined tolerance, the tool automatically marks these areas as potential liquidity pools. These are levels where multiple stop orders may accumulate, sometimes leading to significant market moves.
Liquidity Lines & Sweeps: Liquidity lines highlight unswept highs and lows, making it easy to see where price may hunt liquidity. When price crosses a swing high/low and closes back, a sweep label is shown (optional).
BOS/CHOCH Detection:
Break of Structure (BOS): Signals a continuation of the current trend if price closes beyond the previous swing point.
Change of Character (CHOCH): Highlights when price reverses and breaks a key swing from the opposite direction, hinting at a potential trend change or shift in market regime.
Only confirmed swing points are considered to avoid repainting.
Premium & Discount Zones Explained:
After a new confirmed swing high and swing low, the area between them forms a “range.”
The premium zone is the upper half (from midpoint to swing high): this is typically considered where price is “expensive” or overvalued for the current swing, and is often watched for potential sell setups.
The discount zone is the lower half (from swing low to midpoint): this is where price is “cheap” or undervalued for the current swing, commonly monitored for potential buy setups.
Colored boxes mark these zones on your chart for instant reference.
Dashboard (Movable Position):
A visually enhanced dark-themed dashboard shows the current market structure (Bullish/Bearish), liquidity bias (Buy-Side, Sell-Side, or Balanced, based on unswept levels), and last swept side (i.e., which liquidity pool was last taken by price).
Dashboard position can be set anywhere on your chart for best visibility.
Customization Options:
Enable/disable any feature individually for a cleaner chart.
Control colors, transparency, and swing sensitivity via user settings.
How to Use:
Add the indicator to your chart and adjust settings to fit your trading style.
Use swing lines and dashboard to determine current market structure and bias.
Watch equal highs/lows and liquidity lines for possible sweep events.
Use the premium/discount zones to locate optimal areas for trade entries—with institutional logic, buy when price reaches the discount (lower) zone, and look for sales in the premium (upper) zone.
Use BOS/CHOCH signals as objective confirmations of trend or regime changes. Always interpret signals in context of broader price action.
Important Notes:
This indicator is educational and analytical—NO signals are guaranteed.
All calculations are non-repainting and use only confirmed price data (no lookahead).
No claims of predicting future price movement or performance are made.
Disclaimer:
This tool is for technical analysis education only. It is not a financial advice nor a guaranteed trading system. Please test all signals and concepts before using in live markets.
26 EMA Reversal LogicThis indicator identifies two distinct price behaviours on the daily charts of SPY, SPX, QQQ, or IXIC, using the 26-period EMA as a reference. It plots one signal per downtrend — either a yellow circle (bearish continuation) or a green circle (bullish reversal) — and locks further signals until price closes above the 26 EMA.
The yellow circles are when we close below the 26-day EMA and the next day we make a lower low.
The green circles are when we close below the 26-day EMA and the next day we actually open higher and that low is never revisited.
Symbol Restriction
Only works on: SPY, SPX, QQQ, IXIC
On any other symbol, the script will display an error and stop.
Timeframe Restriction
DAILY chart only — will show an error on any other timeframe.
Core Logic: Two-Candle Pattern Detection
Both signals start with the same Day 1 condition:
Day 1: The candle closes below the 26 EMA
From there, Day 2 determines the signal:
Yellow Circle (Bearish Continuation)
Plotted BELOW the Day 2 candle
Conditions:
Day 1 closed below the 26 EMA
Day 2 makes a lower low than Day 1’s low → low < low Interpretation:
Price is weakening — pushing to new lows below the EMA.
Confirms downward momentum.
Green Circle (Bullish Reversal / Failed Breakdown)
Plotted ABOVE the Day 2 candle
Conditions:
Day 1 closed below the 26 EMA
Day 2 opens higher than Day 1’s close → open > close
Day 2’s low never revisits Day 1’s low → low >= low Interpretation:
Buyers defend the prior low with a higher open — classic false breakdown.
Suggests a potential reversal higher.
One Signal Per Downtrend (Lock & Reset)
After either a yellow or green circle is plotted, no more circles appear
Prevents clutter — focuses on first meaningful reaction
Reset Rule:
Lock is released only when price closes above the 26 EMA
Best Used On
Daily timeframe
SPY, SPX, QQQ, IXIC only
With trend, volume, or broader market context
Ichimoku_RSI_MACD_CleanIchimoku + RSI + MACD indicator. It combines these three indicators. It tells whether the trend is bullish or bearish. Multi-timeframe.
GC Scalping Plan - No Stop LossLevels for Gold...........................................................................................................................................................
Relative Strength vs Benchmark SPYRelative Strength vs Benchmark (SPY)
This indicator compares the performance of the charted symbol (stock or ETF) against a benchmark index — by default, SPY (S&P 500). It plots a Relative Strength (RS) ratio line (Symbol / SPY) and its EMA(50) to visualize when the asset is outperforming or underperforming the market.
Key Features
📈 RS Line (blue): Shows how the asset performs relative to SPY.
🟠 EMA(50): Smooths the RS trend to highlight sustained leadership.
🟩 Green background: Symbol is outperforming SPY (RS > EMA).
🟥 Red background: Symbol is underperforming SPY (RS < EMA).
🔔 Alerts: Automatic notifications when RS crosses above/below its EMA — signaling new leadership or weakness.
How to Use
Apply to any stock or ETF chart.
Keep benchmark = SPY, or switch to another index (e.g., QQQ, IWM, XLK).
Watch for RS crossovers and trends:
Rising RS → money flowing into the asset.
Falling RS → rotation away from the asset.
Perfect for sector rotation, ETF comparison, and momentum analysis workflows.
ES on MNQES on MNQ — ES percent-move overlay on the MNQ price scale
Overview
This indicator projects the ES’s intraday percent change since session open onto the MNQ price scale. At the session start (18:00 global chart time), it stores the ES open and the MNQ open, tracks ES’s percentage move from that anchor, and applies the same percent move to the MNQ open. The result is a single line that behaves like ES but is plotted in MNQ points—useful for spotting convergence/divergence, failed breaks, and mean-reversion setups between ES and MNQ.
How it works
1. Detects session open (18:00 on your chart).
2. Saves ES_open and MNQ_open.
3. Computes pct = (ES_close - ES_open) / ES_open.
4. Plots MNQ_open * (1 + pct) as the ES-on-MNQ line.
A label on the last bar shows the current ES value for quick reference.
Inputs
• ES Symbol: default ES1! (change if you use a different continuous).
• Line Color: color of the overlaid ES-on-MNQ line.
Works best on intraday timeframes and when your chart’s session aligns with ES.
Why it’s useful
• Highlights divergences (MNQ decoupling from ES baseline).
• Aids confirmation on pullbacks/breakouts when MNQ’s move disagrees with the ES-based projection.
• Helps risk control by flagging stretches likely to revert toward the ES-anchored path.
Notes & limitations
• This is a percent-rebasing overlay, not a hedge ratio, fair value, or spread model.
• Session/timezone settings matter; if your feed doesn’t print exactly at 18:00 on a higher timeframe, use a smaller TF or adjust session settings.
• Minor differences between ES (full) and MNQ (micro) and data latency can create small offsets.
Disclaimer
For educational use only. Not financial advice. Use proper risk management.
ZOBAKAFXAI – Price Action Swing SetupThe ZOBAKAFXAI Price Action Swing Setup is a swing trading indicator that helps traders identify clear market structure, trend direction, and potential entry/exit zones using EMA and pivot-based price action.
🔹 Features:
✅ Automatically detects swing highs & swing lows (market structure)
✅ EMA-based trend direction filter (EMA50 / EMA200)
✅ Higher timeframe trend filter option (4H bias on lower TFs)
✅ ATR-based Stop Loss & TP calculation
✅ TP1 / TP2 / TP3 based on Risk-to-Reward ratio
✅ Works on all pairs – Forex, Gold, Crypto, Indices
✅ Clean design – ideal for 4H swing trading
🔹 How to Use:
Trade in the direction of the EMA trend
Buy when price forms a higher low above EMA & breaks previous swing high
Sell when price forms a lower high below EMA & breaks previous swing low
Stop Loss = ATR × selected multiplier
TP levels are auto-calculated based on Risk/Reward (2R, 3R, etc.)
⚠ Disclaimer:
This script is for educational and technical analysis purposes only. It is not financial advice. Always use risk management.
Crypto Correlation Oscillator# Crypto Correlation Oscillator
**Companion indicator for Tri-Align Crypto Trend**
## Overview
The Crypto Correlation Oscillator helps you identify **alpha opportunities** and **market regime changes** by showing how closely your coin follows Bitcoin and other assets over time. It displays rolling correlations as an oscillator in a separate pane below your price chart.
## What It Does
This indicator calculates **Pearson correlations** between different trading pairs on a rolling window (default: 100 bars). Correlations range from **-1.0** (perfect inverse relationship) to **+1.0** (perfect positive relationship), with **0** meaning no correlation.
### The 5 Correlation Lines
1. **Blue (thick line) - Coin vs BTC**: The most important metric
- **High correlation (>0.7)**: Your coin is just following BTC - no independent movement
- **Low correlation (<0.3)**: Your coin has **alpha** - it's moving independently from BTC
- **Negative correlation**: Your coin moves opposite to BTC (rare but powerful)
2. **Purple - Coin/BTC vs BTC**: Inverse relationship check
- **Negative values**: When BTC rises, your coin weakens relative to BTC
- **Positive values**: When BTC rises, your coin strengthens against BTC
3. **Orange - Coin vs Coin/BTC**: Structural consistency check
- Shows how well the Coin/USDT and Coin/BTC pairs maintain their mathematical relationship
- Unusual values can indicate liquidity issues or market inefficiencies
4. **Light Red - Coin vs USDT.D** (optional): Stablecoin dominance correlation
- Shows how your coin correlates with USDT dominance
- Useful for understanding flight-to-safety dynamics
5. **Light Green - Coin vs BTC.D** (optional): Bitcoin dominance correlation
- Shows how your coin correlates with BTC dominance
- Helps identify altcoin season vs BTC dominance cycles
## How to Read It
### Finding Alpha Opportunities
- **Low blue line (<0.3)**: Your coin is decoupled from BTC → potential alpha
- **Blue line dropping**: Coin is gaining independence from BTC
- **Blue line spiking to >0.9**: Coin is a "BTC clone" with no independent movement
### Regime Change Detection
- **Blue line crossing 0.5**: Major shift in correlation behavior
- **Purple line turning negative**: Coin starting to weaken when BTC rises (warning sign)
- **Sharp correlation changes**: Market structure is shifting - adjust strategy
### Visual Zones
- **Blue background**: High correlation zone (>0.7) - coin just following BTC
- **Red background**: Inverse correlation zone (<-0.5) - coin moving opposite to BTC
### Reference Lines
- **+1.0 / -1.0**: Perfect correlation boundaries (dotted gray)
- **+0.5 / -0.5**: Moderate correlation thresholds (dotted gray)
- **0.0**: Zero correlation line (solid gray)
## Dynamic Legend
The legend table (top-right) automatically shows the actual symbol names based on your chart:
- **Example on SOLUSDT**: Shows "SOL vs BTC", "SOL/BTC vs BTC", "SOL vs SOL/BTC", etc.
- **Color boxes**: Match the plot colors for easy identification
- **Live values**: Current correlation numbers update in real-time
- **Tooltips**: Hover over labels for interpretation guidance
## Configuration
### Key Inputs
- **Correlation Lookback** (default: 100): Number of bars for rolling correlation window
- Shorter = more reactive, noisier
- Longer = smoother, slower to detect changes
- **Correlation Smoothing** (default: 5): EMA smoothing period for raw correlations
- Reduces noise while preserving trends
- **Symbol Detection**: Auto-detects symbols from your chart, or use manual overrides
- **Dominance Pairs**: Toggle USDT.D and BTC.D correlations on/off
## Usage Tips
1. **Combine with main Tri-Align indicator**: Use correlation for context, Tri-Align for entry/exit signals
2. **Watch for divergences**: Correlation changing while price moves in sync can signal upcoming shift
3. **Adjust lookback period**: Use shorter (50-70) for day trading, longer (150-200) for position trading
4. **Focus on the blue line**: It's your primary alpha indicator
## Technical Details
- **Calculation**: Pearson correlation coefficient with EMA smoothing
- **Data source**: Close prices from `request.security()` (multi-timeframe capable)
- **Update frequency**: Every bar on your selected timeframe
- **Overlay**: False (displays in separate pane)
## Quick Interpretation Guide
| Blue Line Value | Interpretation | Action |
|----------------|----------------|--------|
| > 0.9 | Coin is a BTC clone | Avoid - no alpha opportunity |
| 0.7 - 0.9 | High correlation | Standard altcoin behavior |
| 0.3 - 0.7 | Moderate correlation | Some independence emerging |
| < 0.3 | Low correlation | **Strong alpha opportunity** |
| < 0 | Inverse correlation | Rare - potential hedge asset |
| Purple Line | Interpretation |
|-------------|----------------|
| Strongly negative | Coin weakens when BTC rises - risky |
| Near zero | Coin/BTC pair moves independently of BTC |
| Positive | Coin strengthens with BTC - ideal |
## Version History
### v1.0 (Initial Release)
- Pearson correlation calculation with configurable lookback
- 5 correlation pairs: Coin vs BTC, Coin/BTC vs BTC, Coin vs Coin/BTC, USDT.D, BTC.D
- EMA smoothing to reduce noise
- Visual zones for high/inverse correlation
- Dynamic legend with symbol name extraction
- Auto-symbol detection matching main Tri-Align indicator
Risk-On / Risk-Off Toolkit [SB1] (NQ, RTY, YM) VIXDescription:
The Risk-On / Risk-Off Toolkit is a professional-grade market context indicator designed to help traders quickly identify broad market sentiment shifts and gauge risk appetite. By combining major US equity futures (NQ, RTY, YM) with VIX dynamics, this toolkit provides clear visual signals of “Risk-On” (bullish, lower volatility environment) and “Risk-Off” (bearish, higher volatility environment) conditions. This is ideal for traders using discretionary analysis, swing strategies, intraday scalping, or portfolio positioning decisions.
My Personal Thoughts: Utilize all 3 charts to Identify which is Leading and who is lagging between the 3 (NQ, RTY, YM) Key Features:
Futures Trend Analysis:
Monitors the Nasdaq 100 (NQ), Russell 2000 (RTY), and Dow Jones (YM) futures in real-time.
Determines bullish/bearish bias based on each futures contract’s current close relative to its open.
Identifies when all three indices are moving in sync, highlighting broad market directional alignment.
VIX Confirmation:
Integrates the CBOE Volatility Index (VIX) to gauge market risk sentiment.
Confirms Risk-On conditions when VIX is falling while all three futures are bullish.
Confirms Risk-Off conditions when VIX is rising while all three futures are bearish.
Optional background shading visually highlights Risk-On (green) and Risk-Off (red) conditions for quick, intuitive assessment.
Strong Body Candle Signals:
Detects high conviction candlestick moves where the body represents at least 85% of the total range.
Confirms whether the candle closes near its extreme (top for bullish, bottom for bearish) within 15% of the range.
Plots arrows for strong bullish or bearish candles:
Green triangle-up for bullish strong candles
Red triangle-down for bearish strong candles
Provides a visual cue for intraday or swing traders to confirm trend momentum without cluttering the chart with labels.
Alert System:
Alerts can be set for Risk-On alignment: all monitored futures are bullish and VIX is falling.
Alerts can also be set for Risk-Off alignment: all monitored futures are bearish and VIX is rising.
Ensures traders never miss shifts in broad market sentiment, suitable for both intraday and end-of-day review.
Table Summary:
Provides a top-right summary table of each monitored market and VIX:
Displays Index Name and Current Bias (Bullish/Bearish/Neutral).
Highlights bullish conditions in green and bearish conditions in red.
Includes VIX status as “↓ Falling”, “↑ Rising”, or “Flat”, providing a quick visual reference of volatility trends.
Customizable Visuals:
Control the visibility of strong candle arrows.
Maintains dynamic bar coloring for strong candle moves (green for bullish, red for bearish).
How to Use the Risk-On / Risk-Off Toolkit:
Trend Confirmation: Use the alignment of NQ, RTY, and YM to determine whether the overall market environment is bullish or bearish.
Risk Sentiment Filter: Use VIX confirmation to identify if traders are in a risk-on or risk-off sentiment. This is especially useful for adjusting position sizing, hedging, or timing entries.
Momentum Validation: Strong candle arrows indicate decisive moves, providing additional confirmation for trade entries, breakouts, or trend continuation.
Alerts & Visual Cues: Set alerts to be notified whenever Risk-On or Risk-Off conditions are met, helping you act in real-time.
Quick Reference: Use the summary table for a bird’s-eye view of market alignment across indices and VIX, avoiding the need to track multiple charts simultaneously.
Why This Indicator is Unique:
Combines three major US indices with volatility confirmation to identify true macro market sentiment shifts.
Provides both visual and alert-based signals for actionable insights.
The inclusion of strong candle arrows gives intraday and swing traders a clear, low-latency cue for high-probability moves.
Perfect for multi-timeframe analysis and adaptable to both short-term and long-term strategies.
Indicator Name Justification:
The name “Risk-On / Risk-Off Toolkit ” accurately reflects the core function: identifying broad market risk appetite and sentiment alignment across key indices with volatility confirmation. It communicates instantly that the tool helps traders understand when the market is favoring risk-taking (Risk-On) versus risk-aversion (Risk-Off).
VWAP Kalman FilterOverview
This indicator applies Kalman filtering techniques to Volume Weighted Average Price (VWAP) calculations, providing a statistically optimized approach to VWAP analysis. The Kalman filter reduces noise while maintaining responsiveness to genuine price movements, addressing common VWAP limitations in volatile or low-volume conditions.
Technical Implementation
Kalman Filter Mathematics
The indicator implements a state-space model for VWAP estimation:
- Prediction Step: x̂(k|k-1) = x̂(k-1|k-1) + v(k-1)
- Update Step: x̂(k|k) = x̂(k|k-1) + K(k)
- Kalman Gain: K(k) = P(k|k-1) / (P(k|k-1) + R)
Where:
- x̂ = estimated VWAP state
- K = Kalman gain (adaptive weighting factor)
- P = error covariance
- R = measurement noise
- Q = process noise
- v = optional velocity component
Core Components
Dual VWAP System
- Standard VWAP: Traditional volume-weighted calculation
- Kalman-filtered VWAP: Noise-reduced estimation with optional velocity tracking
- Real-time divergence measurement between filtered and unfiltered values
Adaptive Filtering
- Process Noise (Q): Controls adaptation to price changes (0.001-1.0)
- Measurement Noise (R): Determines smoothing intensity (0.01-5.0)
- Optional velocity tracking for momentum-based filtering
Multi-Timeframe Anchoring
- Session, Weekly, Monthly, Quarterly, and Yearly anchor periods
- Automatic Kalman state reset on anchor changes
- Maintains VWAP integrity across timeframes
Features
Visual Components
- Dual VWAP Lines: Compare filtered vs. unfiltered in real-time
- Dynamic Bands: Three-level deviation bands (1σ, 2σ, 3σ)
- Trend Coloring: Automatic color adaptation based on price position
- Cloud Visualization: Highlights divergence between standard and Kalman VWAP
- Signal Markers: Crossover and band-touch indicators
Trading Signals
- VWAP crossover detection with Kalman filtering
- Band touch alerts at multiple standard deviation levels
- Velocity-based momentum confirmation (optional)
- Divergence warnings when filtered/unfiltered values separate
Information Display
- Real-time VWAP values (both standard and filtered)
- Trend direction indicator
- Velocity/momentum reading (when enabled)
- Divergence percentage calculation
- Anchor period display
Input Parameters
VWAP Settings
- Anchor Period: Choose calculation reset period
- Band Multipliers: Customize deviation band distances
- Display Options: Toggle standard VWAP and bands
Kalman Parameters
- Length: Base period for calculations (5-200)
- Process Noise (Q: Higher values increase responsiveness
- Measurement Noise (R): Higher values increase smoothing
- Velocity Tracking: Enable momentum-based filtering
Visual Controls
- Toggle filtered/unfiltered VWAP display
- Band visibility options
- Signal markers on/off
- Cloud fill between VWAPs
- Bar coloring by trend
Use Cases
Noise Reduction
Particularly effective during:
- Low volume periods (pre-market, lunch hours)
- Volatile market conditions
- Fast-moving markets where standard VWAP whipsaws
Trend Identification
- Cleaner trend signals with reduced false crosses
- Earlier trend detection through velocity component
- Confirmation through divergence analysis
Support/Resistance
- Filtered VWAP provides more stable S/R levels
- Bands adapt to filtered values for better zone identification
- Reduced false breakout signals
Technical Advantages
1. Optimal Estimation: Mathematically optimal under Gaussian noise assumptions
2. Adaptive Response: Self-adjusting to market conditions
3. Predictive Element: Velocity component provides forward-looking insight
4. Noise Immunity: Superior noise rejection vs. simple moving average smoothing
Limitations
- Assumes linear price dynamics
- Requires parameter optimization for different instruments
- May lag during sudden volatility regime changes
- Not suitable as standalone trading system
Mathematical Background
Based on control systems theory, the Kalman filter provides recursive Bayesian estimation originally developed for aerospace applications. This implementation adapts the algorithm specifically for financial time series, maintaining VWAP's volume-weighted properties while adding statistical filtering.
Comparison with Standard VWAP
Standard VWAP Issues Addressed:
- Choppy behavior in low volume
- Whipsaws around VWAP line
- Lag in trend identification
- Noise in deviation bands
Kalman VWAP Benefits:
- Smooth yet responsive line
- Fewer false signals
- Optional momentum tracking
- Statistically optimized filtering
Alert Conditions
The indicator includes several pre-configured alert conditions:
- Bullish/Bearish VWAP crosses
- Upper/Lower band touches
- High divergence warnings
- Velocity shifts (if enabled)
---
This open-source indicator is provided as-is for educational and trading purposes. No guarantees are made regarding trading performance. Users should conduct their own testing and validation before using in live trading.
Daily Pivot Breakout Strategy IndicatorTagline:
A pivot-based breakout system that identifies confirmed daily breakouts with momentum and volume filters, with precise entry timing across all timeframes.
How It Works:
This indicator detects strict pivot high breakouts on daily data, filtered by Rate of Change (ROC ≥30%) and Relative Volume (RVOL >1). It displays both the breakout confirmation signal and the next-day entry signal directly on your chart, regardless of timeframe.
Visual Signals:
Orange Pivot Line: The most recent confirmed pivot high (within 250-day lookback)
Day-0 Label (Teal): Appears on the breakout confirmation day (when price closes above daily pivot with filters met)
Entry Banner (Green): Appears on the next trading day at market open - your actual entry point
Cross-Timeframe Consistency:
Daily Chart: View the big picture - Day-0 on breakout bar, Entry on next bar
Any Timeframe: Logic remains consistent to daily pivots and data, signals adapt to show at the correct time
Built-in Alert Conditions:
5PivotBreakout_Scan (Day-0): Fires when breakout is confirmed. Use this for after-hours scanning to build watchlists of confirmed breakouts
5PivotBreakout_Strategy (Next): Fires at market open the next day. Use this to automate entries on confirmed breakouts
Typical Workflow:
Set up Day-0 alerts on your watchlist to catch breakouts as they happen
Review confirmed breakouts each evening
Set up Entry alerts on selected tickers to automate next-day execution (fires at market open)
Optional: Convert to strategy() for backtesting with custom exits (20% trail is good)
Key Features:
Strict pivot detection: No ties allowed - center must be highest point
Momentum filter: 100-day ROC ensures trending strength
Volume confirmation: 20-day RVOL validates participation
No repainting: Uses lookahead_off for realistic, tradeable signals
Customizable Inputs:
Pivot strength parameters (left/right bars)
Pivot lookback period
ROC period and minimum threshold
RVOL period
Toggle visibility of pivot line and labels
Note: This indicator is for educational purposes only and does not constitute financial advice. Past performance does not guarantee future results. Always test thoroughly before live trading.
RSI Heatmap (≤35 Highlight)Highlights when RSI is less than or equal to 35 which can signal a potential reversal soon.
Dynamic S/R Levels - MTF (1-Week, Strong/Spaced)dynamic support and resistance levels based on timeframe
VWAP + WaveTrend + CHoCH & BOS//@version=5
indicator("GC — VWAP + WaveTrend + CHoCH & BOS (v3.3, clean + pro visuals)", overlay=true, max_lines_count=500, max_labels_count=500)
// ================== TOGGLES D'AFFICHAGE ==================
showVWAPLine = input.bool(true, "Afficher VWAP")
showVWAPBands = input.bool(true, "Afficher Bandes VWAP (ATR)")
showWave = input.bool(true, "Afficher WaveTrend (vague)")
showCHoCH = input.bool(true, "Afficher CHoCH")
showBOS = input.bool(true, "Afficher BOS")
showOB = input.bool(true, "Afficher Order Blocks")
highlightBreakCandle = input.bool(true, "Surbrillance bougie de cassure (CHoCH)")
// ================== TOGGLES LOGIQUES ==================
useBiasFilter = input.bool(true, "Activer filtre Biais HTF (Ichimoku)")
useSessionsFilter = input.bool(true, "Activer filtre Sessions (Europe/Paris)")
enableAlerts = input.bool(true, "Activer alertes LONG/SHORT")
// ================== PARAMS ==================
tfHTF1 = input.timeframe("60", "HTF #1 (H1) pour biais")
tfHTF2 = input.timeframe("240", "HTF #2 (H4) pour biais")
// Sessions (format HHMM-HHMM)
asiaSess = input.session("0100-0900", "Asie (Heure Paris)")
lonSess = input.session("0900-1730", "Londres (Heure Paris)")
nySess = input.session("1430-2200", "New York (Heure Paris)")
useAsia = input.bool(true, "Filtrer Asie")
useLon = input.bool(false, "Filtrer Londres")
useNY = input.bool(false, "Filtrer New York")
// VWAP bands (ATR)
atrLenBands = input.int(14, "ATR Len (bandes VWAP)")
atrMult = input.float(1.0, "ATR Mult (bandes)", step=0.1)
// Structure
pivotLen = input.int(5, "Pivot len (structure)")
// ================== BIAIS ICHIMOKU (HTF) ==================
tenkanLen = input.int(9, "Tenkan", inline="ichi")
kijunLen = input.int(26, "Kijun", inline="ichi")
spanBLen = input.int(52, "SenkouB",inline="ichi")
f_ichi(srcH, srcL, cLen, bLen) =>
ts = (ta.highest(srcH, cLen) + ta.lowest(srcL, cLen)) / 2.0
ks = (ta.highest(srcH, bLen) + ta.lowest(srcL, bLen)) / 2.0
= request.security(syminfo.tickerid, tfHTF1, f_ichi(high, low, tenkanLen, kijunLen), barmerge.gaps_on, barmerge.lookahead_off)
= request.security(syminfo.tickerid, tfHTF2, f_ichi(high, low, tenkanLen, kijunLen), barmerge.gaps_on, barmerge.lookahead_off)
biaisBullRaw = close > ksH1 and tsH1 > ksH1 and close > ksH4 and tsH4 > ksH4
biaisBearRaw = close < ksH1 and tsH1 < ksH1 and close < ksH4 and tsH4 < ksH4
biaisBull = useBiasFilter ? biaisBullRaw : true
biaisBear = useBiasFilter ? biaisBearRaw : true
// ================== SESSIONS ==================
inAsia = not na(time(timeframe.period, asiaSess, "Europe/Paris"))
inLon = not na(time(timeframe.period, lonSess, "Europe/Paris"))
inNY = not na(time(timeframe.period, nySess, "Europe/Paris"))
sessionPassRaw = (useAsia and inAsia) or (useLon and inLon) or (useNY and inNY) or (not useAsia and not useLon and not useNY)
sessionPass = useSessionsFilter ? sessionPassRaw : true
// ================== VWAP + BANDES (ATR) ==================
vwap = ta.vwap
atrB = ta.atr(atrLenBands)
upper = vwap + atrMult * atrB
lower = vwap - atrMult * atrB
plot(showVWAPLine ? vwap : na, "VWAP", linewidth=2, color=color.new(color.gray, 0))
plot(showVWAPBands ? upper : na, "VWAP + ATR", color=color.new(color.gray, 0))
plot(showVWAPBands ? lower : na, "VWAP - ATR", color=color.new(color.gray, 0))
// ================== WAVE TREND (vague lisible) ==================
waveLen1 = input.int(20, "Wave base EMA")
waveLen2 = input.int(40, "Wave smoothing Hull")
srcWT = (high + low + close)/3.0
emaBase = ta.ema(srcWT, waveLen1)
w2half = math.max(1, math.round(waveLen2 / 2.0))
hull = ta.wma(2*ta.wma(emaBase, w2half) - ta.wma(emaBase, waveLen2), math.max(1, math.round(math.sqrt(waveLen2))))
wave = ta.ema(hull, math.max(2, math.round(waveLen1/2.0)))
slopeUp = wave > wave
slopeDn = wave < wave
waveColor =
(useBiasFilter and biaisBullRaw and slopeUp) ? color.new(color.lime, 0) :
(useBiasFilter and biaisBearRaw and slopeDn) ? color.new(color.red, 0) :
color.new(color.gray, 0)
plot(showWave ? wave : na, "WaveTrend", linewidth=3, color=waveColor)
// ================== STRUCTURE: PIVOTS ==================
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
var float lastSwingHigh = na
var float lastSwingLow = na
var int lastSwingHighBar = na
var int lastSwingLowBar = na
if not na(ph)
lastSwingHigh := ph
lastSwingHighBar := bar_index - pivotLen // index du pivot confirmé
if not na(pl)
lastSwingLow := pl
lastSwingLowBar := bar_index - pivotLen
// Cassures confirmées (bar close)
brokeHigh = not na(lastSwingHigh) and ta.crossover(close, lastSwingHigh)
brokeLow = not na(lastSwingLow) and ta.crossunder(close, lastSwingLow)
// Tendance locale par pente de la Wave
trendUp = slopeUp
trendDown = slopeDn
// Définition des états
bosUp = barstate.isconfirmed and trendUp and brokeHigh
bosDown = barstate.isconfirmed and trendDown and brokeLow
chochUp = barstate.isconfirmed and trendDown and brokeHigh
chochDown = barstate.isconfirmed and trendUp and brokeLow
// ================== VISUELS PRO (lignes BOS/CHoCH + OB + Highlight) ==================
// Conteneurs pour limiter l'encombrement
var line bosLines = array.new_line()
var label bosLabels = array.new_label()
var line chochLines = array.new_line()
var label chochLbls = array.new_label()
var box obBoxes = array.new_box()
var box brkBoxes = array.new_box()
f_trim(arrLine, arrLbl, maxKeep) =>
// supprime les plus anciens si on dépasse maxKeep
if array.size(arrLine) > maxKeep
l = array.shift(arrLine)
line.delete(l)
if array.size(arrLbl) > maxKeep
lb = array.shift(arrLbl)
label.delete(lb)
f_trim_boxes(arr, maxKeep) =>
if array.size(arr) > maxKeep
b = array.shift(arr)
box.delete(b)
// --- Création BOS Up / Down (ligne horizontale + petit label "bos")
if showBOS and bosUp and not na(lastSwingHigh) and not na(lastSwingHighBar)
l = line.new(lastSwingHighBar, lastSwingHigh, bar_index, lastSwingHigh, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.lime, 0), width=2)
lb = label.new(bar_index, lastSwingHigh, "bos", style=label.style_label_left, color=color.new(color.lime, 0), textcolor=color.new(color.black, 0))
array.push(bosLines, l), array.push(bosLabels, lb), f_trim(bosLines, bosLabels, 12)
if showBOS and bosDown and not na(lastSwingLow) and not na(lastSwingLowBar)
l = line.new(lastSwingLowBar, lastSwingLow, bar_index, lastSwingLow, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.red, 0), width=2)
lb = label.new(bar_index, lastSwingLow, "bos", style=label.style_label_left, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
array.push(bosLines, l), array.push(bosLabels, lb), f_trim(bosLines, bosLabels, 12)
// --- CHoCH Up / Down (ligne + label "ChoCh" + highlight bougie de cassure)
if showCHoCH and chochUp and not na(lastSwingHigh) and not na(lastSwingHighBar)
l = line.new(lastSwingHighBar, lastSwingHigh, bar_index, lastSwingHigh, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.teal, 0), width=2)
lb = label.new(bar_index, lastSwingHigh, "ChoCh", style=label.style_label_left, color=color.new(color.teal, 0), textcolor=color.new(color.black, 0))
array.push(chochLines, l), array.push(chochLbls, lb), f_trim(chochLines, chochLbls, 12)
if highlightBreakCandle
b = box.new(bar_index, high, bar_index, low, bgcolor=color.new(color.orange, 70))
array.push(brkBoxes, b), f_trim_boxes(brkBoxes, 8)
if showCHoCH and chochDown and not na(lastSwingLow) and not na(lastSwingLowBar)
l = line.new(lastSwingLowBar, lastSwingLow, bar_index, lastSwingLow, xloc=xloc.bar_index, extend=extend.none, color=color.new(color.maroon, 0), width=2)
lb = label.new(bar_index, lastSwingLow, "ChoCh", style=label.style_label_left, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
array.push(chochLines, l), array.push(chochLbls, lb), f_trim(chochLines, chochLbls, 12)
if highlightBreakCandle
b = box.new(bar_index, high, bar_index, low, bgcolor=color.new(color.orange, 70))
array.push(brkBoxes, b), f_trim_boxes(brkBoxes, 8)
// --- Order Blocks : dernière bougie opposée avant cassure (body-only)
f_last_opposite_body_idx(maxLookback, wantBull) =>
// cherche la dernière bougie opposée dans les 'maxLookback' barres précédant la cassure
var int idx = na
for i = 1 to maxLookback
isBear = close < open
isBull = close > open
if (wantBull and isBear) or (not wantBull and isBull)
idx := i
break
idx
maxLook = 10
if showOB and (bosUp or chochUp) and not na(lastSwingHigh)
obIdx = f_last_opposite_body_idx(maxLook, true) // pour un mouvement haussier, bougie "opposée" est rouge
if not na(obIdx)
topB = math.max(open , close )
botB = math.min(open , close )
b = box.new(bar_index - obIdx, topB, bar_index - obIdx, botB, xloc=xloc.bar_index, extend=extend.right, bgcolor=color.new(color.blue, 80), border_color=color.new(color.blue, 40))
array.push(obBoxes, b), f_trim_boxes(obBoxes, 10)
if showOB and (bosDown or chochDown) and not na(lastSwingLow)
obIdx = f_last_opposite_body_idx(maxLook, false) // pour un mouvement baissier, bougie "opposée" est verte
if not na(obIdx)
topB = math.max(open , close )
botB = math.min(open , close )
b = box.new(bar_index - obIdx, topB, bar_index - obIdx, botB, xloc=xloc.bar_index, extend=extend.right, bgcolor=color.new(color.blue, 80), border_color=color.new(color.blue, 40))
array.push(obBoxes, b), f_trim_boxes(obBoxes, 10)
// ================== ALERTES ==================
barOK = barstate.isconfirmed and sessionPass
longSignal = barOK and biaisBull and ( (showBOS and bosUp) or (showCHoCH and chochUp) ) and (showVWAPLine ? close >= vwap : true)
shortSignal = barOK and biaisBear and ( (showBOS and bosDown) or (showCHoCH and chochDown) ) and (showVWAPLine ? close <= vwap : true)
alertcondition(enableAlerts and longSignal, "LONG signal (clean)", "LONG — {{ticker}} {{interval}}")
alertcondition(enableAlerts and shortSignal, "SHORT signal (clean)", "SHORT — {{ticker}} {{interval}}")






















