CME Close PriceThis script adds the closing price of another asset on your chart, such as the BTC1! Futures Price on your BTC Spot Chart for example.
Indicators and strategies
super trader Prosuper trader Pro
super trader Pro
super trader Pro
super trader Pro
super trader Pro
Elliott Wave Expert AdvisorElliott Wave Expert Advisor - Professional Wave Analysis Tool
OVERVIEW
--------
The Elliott Wave Expert Advisor is a comprehensive Pine Script indicator designed for TradingView that automates Elliott Wave analysis and generates high-probability trading signals. Built on Ralph Nelson Elliott's Wave Principle, this indicator identifies impulse wave patterns, validates them against strict Elliott Wave rules, and provides precise entry points with calculated risk management levels.
CORE FUNCTIONALITY
------------------
1. TREND DETECTION
- Dual Moving Average system (Fast/Slow MA)
- MACD confirmation for trend strength
- Automatic trend classification (Uptrend/Downtrend/Sideways)
- Only generates signals aligned with main trend
2. SWING POINT DETECTION
- Automatic pivot high/low identification
- Configurable sensitivity (lookback periods)
- Minimum swing size filtering to reduce noise
- ZigZag visualization connecting swing points
3. WAVE IDENTIFICATION
- 5-wave impulse pattern recognition (1-2-3-4-5)
- 3-wave corrective pattern detection (A-B-C)
- Wave labels displayed on chart
- Color-coded validation status (Blue = Valid, Orange = Pending)
4. ELLIOTT WAVE RULES VALIDATION
Strictly enforces three cardinal rules:
- Rule 1: Wave 2 never retraces more than 100% of Wave 1
- Rule 2: Wave 3 is never the shortest impulse wave
- Rule 3: Wave 4 never overlaps Wave 1 price territory
5. FIBONACCI ANALYSIS
- Automatic Fibonacci retracement calculations (23.6%, 38.2%, 50%, 61.8%, 78.6%)
- Fibonacci extension projections (100%, 161.8%, 261.8%)
- Wave 3 and Wave 5 target projections
- Fibonacci-based Take Profit levels
6. SIGNAL GENERATION
- Entry signals at Wave 2 completion (catch Wave 3)
- Entry signals at Wave 4 completion (catch Wave 5)
- Automatic Stop Loss placement below/above pivot points
- Multiple Take Profit targets (TP1 at 1.618 extension, TP2 at Wave 5 projection)
- Risk/Reward ratio calculation and filtering
- Minimum R:R threshold (default 1.5:1)
7. VISUAL ELEMENTS
- Pivot markers (H/L) showing swing highs and lows
- ZigZag lines connecting swing points
- Wave number labels (1-2-3-4-5) with validation colors
- Entry signal arrows (Green = BUY, Red = SELL)
- Stop Loss lines (Red dashed)
- Take Profit lines (Green dashed and dotted)
- Real-time status dashboard showing:
* Number of pivots detected
* Wave count progress (X/5)
* Pattern validation status
* Market trend direction
* Signal active status
* Helpful tips and guidance
OPTIMAL USAGE
-------------
• Timeframes: H1, H4, D1 (avoid M1-M5 due to noise)
• Markets: Forex majors (EUR/USD, GBP/USD), Gold (XAU/USD), Major Cryptocurrencies
• Market Conditions: Strong trending markets (avoid ranging/sideways conditions)
• Risk Management: Never risk more than 1-2% per trade
• Position Sizing: Based on calculated Stop Loss distance
CONFIGURATION PARAMETERS
------------------------
Trend Detection:
- MA Fast Period (default: 20)
- MA Slow Period (default: 50)
- MACD settings (12/26/9)
Swing Detection:
- Pivot Lookback Left/Right (default: 10/10, reduce to 5/5 for M15)
- Min Swing Size % (default: 0.1%, reduce to 0.05% for M15)
Wave Detection:
- Min Wave Size % (default: 0.5%, reduce to 0.2-0.3% for smaller timeframes)
Risk Management:
- SL Buffer % (default: 0.1%)
- TP1 Fibonacci Ratio (default: 1.618)
- Min Risk/Reward (default: 1.5)
Visualization:
- Toggle visibility for MAs, ZigZag, Wave Labels, Signals, SL/TP
- Customizable colors for all elements
- Optional trend background coloring
IMPORTANT NOTES
---------------
• Elliott Wave analysis is subjective - this indicator implements one specific interpretation
• Works best in trending markets; automatically suppresses signals in sideways conditions
• Signals are NOT repainting after pivot confirmation
• Not a "holy grail" - combine with other analysis and proper risk management
• Requires patience - quality setups are infrequent but high-probability
• Always backtest on historical data before live trading
ELLIOTT WAVE THEORY BACKGROUND
------------------------------
Elliott Wave Theory, developed by Ralph Nelson Elliott in the 1930s, proposes that market prices move in predictable wave patterns driven by investor psychology. An impulse wave consists of five sub-waves (three in the trend direction, two corrections), followed by a three-wave correction. This indicator automates the identification of these patterns and validates them against Elliott's original rules.
DISCLAIMER
----------
This indicator is for educational and informational purposes only. Past performance does not guarantee future results. Always conduct your own analysis and never trade with money you cannot afford to lose. The indicator provides signals based on technical analysis patterns and does not constitute financial advice.
VERSION
-------
v1.0 - Initial Release
Pine Script v5
Created: 2024
SUPPORT
-------
For detailed usage instructions, refer to the included documentation:
- usage_guide.md - Complete user manual with examples
- elliott_rules.md - Elliott Wave theory reference and implementation details
Option Selling Indicator @mybullandbearThe Option Selling Indicator is designed to help traders identify high-probability buy and sell zones based on market momentum and trend conditions. It provides a simple yet powerful visual cue system to make trading decisions clear and intuitive.
🎯 How It Works:
When the background turns green and the price moves above the black trend line, it signals bullish strength — a good condition to go for BUY or sell PUT options.
When the background turns red and the price moves below the black trend line, it signals bearish strength — a good condition to go for SELL or sell CALL options.
⚙️ Key Features:
Clear color-coded background for instant trend visualization.
Dynamic black trend line acts as a support/resistance guide.
Simple setup suitable for both beginners and experienced option sellers.
Works effectively across multiple timeframes and instruments.
💡 Usage Tip:
Combine this indicator with volume or volatility filters for more accurate entries, and always confirm signals with your trading strategy and risk management rules.
BUY/SELL/R/BBuy/Sell/R/B by SeanKidd
Purpose: A clean, anchored signal system combining StochRSI crossovers, CVI top/bottom detection, and a MACD direction line that moves with price.
⚙️ How It Works
BUY / SELL – Generated from a higher-timeframe StochRSI crossover.
BUY (Green) → %K crosses above %D
SELL (Red) → %K crosses below %D
R (Reverse) – Yellow “R” appears above the candle when the CVI model detects a local top or exhaustion point.
B (Bottom) – Blue “B” appears below the candle when CVI detects a local bottom.
MACD Direction Line –
Green = MACD above Signal → bullish momentum
Red = MACD below Signal → bearish momentum
The line rides just above the candles, offset by ATR so it always tracks price.
🧭 How to Use It
Add the indicator:
Search for Buy/Sell/R/B by SeanKidd under Community Scripts.
Click ★ to favorite it.
Apply it to your chart.
Open ⚙️ Settings → Inputs
Calculation Timeframe (StochRSI) → pick how fast or slow you want signals (default Weekly).
MACD Line Offset (ATR ×) → raise or lower the MACD line if it overlaps candles.
Adjust Top/Bottom thresholds to control how often R/B appear.
Toggle Highlight bars or Color candles for visual clarity.
Go to Settings → Scales and ensure it’s set to
✅ “Scale with Price Chart” or
✅ same scale side as the candles.
This keeps everything perfectly attached to the chart.
Optional: Add alerts
Create → Alert → Condition → Buy/Sell/R/B by SeanKidd
Choose: SRSI BUY, SRSI SELL, Top (R), or Bottom (B).
📈 Reading the Chart
Marker Meaning Color Position
BUY StochRSI %K cross above %D Lime Below bar
SELL StochRSI %K cross below %D Red Above bar
R CVI-detected top / reversal Yellow Above bar
B CVI-detected bottom Blue Below bar
Line MACD momentum direction Green/Red Above highs
💡 Tips
Works on any symbol or timeframe.
Slower charts (Daily–Weekly) give cleaner swing signals.
Faster charts (15m–1h) show short-term reversals.
Combine the MACD line direction with BUY/SELL for stronger confirmation.
Info de Vela 1m1-Minute Candle Info Dashboard (Real-Time)
Overview
This is a lightweight, real-time dashboard designed specifically for 1-minute (1m) scalping. It provides critical, non-lagging data about the current 1-minute candle, helping you make split-second decisions on stop-loss placement and risk assessment.The table updates on every tick without flickering or repainting.
Key Features (Real-Time Table)
The dashboard displays three key metrics about the current 1m candle:Time Remaining: A simple countdown timer showing the exact seconds remaining until the current candle closes (e.g., "00:34").Dist. to Extreme (Ticks): This is the core function for scalping. It calculates the distance (in ticks) from the current price to the furthest extreme of the candle (i.e., max(high - close, close - low)). This is ideal for traders who base their stop-loss on the current candle's range.Total Candle Range (Ticks): Displays the full high-to-low range of the current candle in ticks, giving you an instant read on volatility.
How to Use
This tool is designed to solve one problem: speed.Instead of manually measuring the distance for your stop-loss on every candle, you can instantly read the exact tick value from the table. This allows you to calculate your position size (lotage) much faster, which is essential in a fast-moving 1m environment.
REQUIREMENT:This indicator is designed to work ONLY on the 1-minute (1m) timeframe. It will display an error and show no data on any other chart.
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.
Sigma Trinity ModelAbstract
Sigma Trinity Model is an educational framework that studies how three layers of market behavior interact within the same trend: (1) structural momentum (Rasta), (2) internal strength (RSI), and (3) continuation/compounding structure (Pyramid). The model deliberately combines bar-close momentum logic with intrabar, wick-aware strength checks to help users see how reversals form, confirm, and extend. It is not a signal service or automation tool; it is a transparent learning instrument for chart study and backtesting.
Why this is not “just a mashup”
Many scripts merge indicators without explaining the purpose. Sigma Trinity is a coordinated, three-engine study designed for a specific learning goal:
Rasta (structure): defines when momentum actually flips using a dual-line EMA vs smoothed EMA. It gives the entry/exit framework on bar close for clean historical study.
RSI (energy): measures internal strength with wick-aware triggers. It uses RSI of LOW (for bottom touches/reclaims) and RSI of HIGH (for top touches/exhaustion) so users can see intrabar strength/weakness that the close can hide.
Pyramid (progression): demonstrates how continuation behaves once momentum and strength align. It shows the logic of adds (compounding) as a didactic layer, also on bar close to keep historical alignment consistent.
These three roles are complementary, not redundant: structure → strength → progression.
Architecture Overview
Execution model
Rasta & Pyramid: bar close only by default (historically stable, easy to audit).
RSI: per tick (realtime) with bar-close backup by default, using RSI of LOW for entries and RSI of HIGH for exits. This makes the module sensitive to intra-bar wicks while still giving a close-based safety net for backtests.
Stops (optional in strategy builds): wick-accurate: trail arms/ratchets on HIGH; stop hit checks with LOW (or Close if selected) with a small undershoot buffer to avoid micro-noise hits.
Visual model
Dual lines (EMA vs smoothed EMA) for Rasta + color fog to see direction and compression/expansion.
Rungs (small vertical lines) drawn between the two Rasta lines to visualize wave spacing and rhythm.
Clean labels for Entry/Exit/Pyramid Add/RSI events. Everything is state-locked to avoid spamming.
Module 1 — Rasta (Structural Momentum Layer)
Goal: Identify structural momentum reversals and maintain a consistent, replayable backbone for study.
Method:
Compute an EMA of a chosen price source (default Close), and a smoothed version (SMA/EMA/RMA/WMA/None selectable).
Flip points occur when the EMA line crosses the smoothed line.
Optional EMA 8/21 trend filter can gate entries (long-bias when EMA8 > EMA21). A small “adaptive on flip” option lets an entry fire when the filter itself flips to ON and the EMA is already above the smoothed line—useful for trend resumption.
Why bar close only?
Bar-close Rasta gives a stable, auditable timeline for the structure of the trend. It teaches users to separate “structure” (close-resolved) from “energy” (intrabar, via RSI).
Visuals:
Fog between the lines (green/red) to show regime.
Rungs between lines to show spread (compression vs expansion).
Optional plotting of EMA8/EMA21 so users can see the gating effect.
Module 2 — RSI (Internal Strength / Energy Layer)
Goal: Reveal the intrabar strength/weakness that often precedes or confirms structural flips.
Method:
Standard RSI with adjustable length and signal smoothing for the panel view.
Logic uses wick-aware sources:
Entry trigger: RSI of LOW (same RSI length) touching or below a lower band (default 15). Think of it as intraband reactivation from the bottom, using the candle’s deepest excursion.
Exit trigger: RSI of HIGH touching or above an upper band (default 85). Think of it as exhaustion at the top, using the candle’s highest excursion.
Realtime + Close Backup: fires intrabar on tick, but if the realtime event was missed, the close backup will note it at bar end.
Cooldown control: optional bars-between-signals to avoid rapid re-triggers on choppy sequences.
Why wick-aware RSI?
A close-only RSI can miss the true micro-extremes that cause reversals. Using LOW/HIGH for triggers captures the behavior that traders actually react to during the bar, while the bar-close backup preserves historical reproducibility.
Module 3 — Pyramid (Continuation / Compounding Layer)
Goal: Teach how continuation behaves once a trend is underway, and how adds can be structured.
Method:
Same dual-line logic as Rasta (EMA vs smoothed EMA), but only fires when already in a position (or after prior entry conditions).
Supports the same EMA 8/21 filter and optional adaptive-on-flip behavior.
Bar close only to maintain historical cohesion.
What it teaches:
Adds tend to cluster when momentum persists.
Students can experiment with add spacing and compare “one-shot entries” vs “laddered adds” during strong regimes.
How the Pieces Work Together
Rasta establishes the structural frame (when the wave flip is real enough to record at close).
RSI validates or challenges that structure by tracking intrabar energy at the extremes (low/high touches).
Pyramid shows what sustained continuation looks like once (1) and (2) align.
This produces a layered view: Structure → Energy → Progression. Users can see when all three line up (strongest phases) and when they diverge (riskier phases or transitions).
How to Use It (Step-by-Step)
Quick Start
Apply script to any symbol/timeframe.
In Strategy/Indicator Properties:
Enable On every tick (recommended).
If available, enable Using bar magnifier and choose a lower resolution (e.g., 1m) to simulate intrabar fills more realistically.
Keep On bar close unchecked if you want to observe realtime logic in live charts (strategies still place orders on close by platform design).
Default behavior: Rasta & Pyramid = bar close; RSI = per tick with close backup.
Reading the Chart
Watch for Rasta Entry/Exit labels: they define clean structural turns on close.
Watch RSI Entry (LOW touch at/below lower band) and RSI Exit (HIGH touch at/above upper band) to gauge internal energy extremes.
Pyramid Add labels reveal continuation phases once a move is already in progress.
Tuning
Rasta smoothing: choose SMA/EMA/RMA/WMA or None. Higher smoothing → later but cleaner flips; lower smoothing → earlier but choppier.
RSI bands: a common educational setting is 15/85 for strong extremes; 20/80 is a bit looser.
Cooldown: increase if you see too many RSI re-fires in chop.
EMA 8/21 filter: toggle ON to study “trend-gated” entries, OFF to study raw momentum flips.
Backtesting Notes (for Strategy Builds)
Stops (optional): trail is armed when price advances by a trigger (default D–F₀), ratchets only upward from HIGH, and hits from LOW (or Close if chosen) with a tiny undershoot buffer to avoid micro-wicks.
Order sequencing per bar (mirrors the script’s code comments):
Trail ratchet via HIGH
Intrabar stop hit via LOW/CLOSE → immediate close
If still in position at bar close: process exits (Rasta/RSI)
If still in position at bar close: process Pyramid Add
If flat at bar close: process entries (Rasta/RSI)
Platform reality: strategies place orders at bar close in historical testing; the intrabar logic improves realism for stops and event marking but final order timestamps are still close-resolved.
Inputs Reference (common)
Modules: enable/disable RSI and Pyramid learning layers.
Rasta: EMA length, smoothing type/length, EMA8/21 filter & adaptive flip, fog opacity, rungs on/off & limit.
RSI: RSI length, signal MA length (panel), Entry band (LOW), Exit band (HIGH), cooldown bars, labels.
Pyramid: EMA length, smoothing, EMA8/21 filter & adaptive adds.
Execution: toggle Bar Close Only for Rasta/Pyramid; toggle Realtime + Close Backup for RSI.
Stops (strategy): Fixed Stop % (first), Fixed Stop % (add), Trail Distance %, Trigger rule (auto D–F₀ or custom), undershoot buffer %, and hit source (LOW/CLOSE).
What to Study With It
Convergence: how often RSI-LOW entry touches precede the next Rasta flip.
Divergence: cases where RSI screams exhaustion (HIGH >= upper band) but Rasta hasn’t flipped yet—often transition zones.
Continuation: how Pyramid adds cluster in strong moves; how spacing changes with smoothing/filter choices.
Regime changes: use EMA8/21 filter toggles to see what happens at macro turns vs chop.
Limitations & Scope
This is a learning tool, not a trade copier. It does not provide financial advice or automated execution.
Intrabar results depend on data granularity; bar magnifier (when available) can help simulate lower-resolution ticks, but true tick-by-tick fills are a platform-level feature and not guaranteed across all symbols.
Suggested Publication Settings (Strategy)
Initial capital: 100
Order size: 100 USD (cash)
Pyramiding: 10
Commission: 0.25%
Slippage: 3 ticks
Recalculate: ✓ On every tick
Fill orders: ✓ Using bar magnifier (choose 1m or similar); leave On bar close unchecked for live viewing.
Educational License
Released under the Michael Culpepper Gratitude License (2025).
Use and modify freely for education and research with attribution. No resale. No promises of profitability. Purpose is understanding, not signals.
RSI ValdeXEste indicador es una version del "Heikin Ashi RSI Oscillator" se han modificado los parametros originales para que solo se observe la linea RSI. El creador original es JayRogers.
--------------------
This indicator is a modified version of the "Heikin Ashi RSI Oscillator," with the original parameters displayed only on the RSI line. The original creator is JayRogers.
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.
Candlestick Combo Strategy - [CLEVER]📊 Strategy Name:
Candlestick Combo Strategy –
🧠 Purpose
This strategy is built to identify high-probability reversal or continuation setups based on a combination of classic Japanese candlestick patterns filtered through a trend indicator (50-period SMA) and volatility measure (ATR).
It automatically executes long or short trades when multiple conditions align — giving traders a rules-based, mechanical approach to using price action patterns.
⚙️ Core Components Explained
1. Trend & Volatility Filters
50-period SMA (Simple Moving Average):
Defines market direction.
If price > SMA → Uptrend (only long signals considered).
If price < SMA → Downtrend (only short signals considered).
ATR (Average True Range):
Used to measure volatility and define the size of candlestick patterns.
Helps distinguish strong candles from normal noise.
Also used to calculate stop-loss and target levels dynamically.
2. Candlestick Patterns Detected
The script detects 8 classical patterns, some bullish (for long entries) and some bearish (for short entries).
Each pattern has specific rules based on candle bodies, wicks, and relative positioning.
🟩 Bullish (Long) Patterns
Pattern Description
Mat Hold Strong bullish continuation: a long green candle, small consolidation, then another bullish breakout.
Tower Bottom Reversal setup: large bearish candle, several small neutral candles (base), followed by a large bullish candle.
Rising Window Gap-up pattern signaling bullish strength and momentum continuation.
Bullish Marubozu Full-body bullish candle with little to no wicks — represents aggressive buying pressure.
🟥 Bearish (Short) Patterns
Pattern Description
Matching High Two strong bullish candles with nearly identical highs — signals exhaustion and potential reversal.
Falling Window Gap-down continuation pattern — confirms bearish momentum.
Bearish Marubozu Full-body bearish candle with minimal wicks — represents strong selling pressure.
Long-Legged Doji High indecision after an uptrend — potential reversal warning when confirmed by trend filter.
3. Trade Signal Logic
Long Signal:
Generated when the market is in an uptrend and one of the bullish patterns forms.
Short Signal:
Generated when the market is in a downtrend and one of the bearish patterns appears.
This ensures that signals align with the overall market structure and aren’t triggered in the opposite direction of momentum.
4. Risk Management & Trade Execution
Each trade is managed with automatic stop-loss (SL) and take-profit (TP) levels based on recent price swings and risk-to-reward ratio.
Stop-Loss (SL):
For long trades → lowest low of the last 10 bars.
For short trades → highest high of the last 10 bars.
Target (TP):
Based on user-defined risk:reward ratio (RR), default is 2:1.
ATR Multiplier:
Ensures only strong patterns (larger than average candle size) trigger trades.
Trade Limiter:
The strategy includes maxOpenTrades, which restricts how many trades can be open at once (default = 1), preventing overexposure.
5. Visual Signals
Green Triangles (▲) → Long entry signals appear below candles.
Red Triangles (▼) → Short entry signals appear above candles.
These markers visually represent where the strategy detects valid setups.
💡 Trading Logic Summary
Condition Requirement
Trend Based on 50-SMA (uptrend = long, downtrend = short)
Pattern Strength Verified using ATR for realistic volatility filtering
Entry Triggered only when both trend and pattern align
Exit Stop and target auto-calculated (Risk:Reward = configurable)
Trade Control Limits number of concurrent open positions
🧩 Best Use Cases
Timeframes: Works best on 1H, 4H, or daily charts.
Markets: Suitable for Forex, indices, and commodities.
Trading Style: Ideal for swing traders and technical analysts who prefer price action confirmation.
✅ Summary Table
Feature Description
Strategy Type Price Action + Candlestick Pattern Recognition
Trend Filter 50-SMA
Volatility Filter ATR-based
Patterns Used 8 classic bullish/bearish candlestick formations
Trade Management Auto SL/TP via recent swing levels
Customization Adjustable ATR, SMA, Risk:Reward, and max trades
Objective Identify high-probability reversal or continuation setups with disciplined risk control TVC:DXY OANDA:XAUUSD OANDA:AUDJPY CITYINDEX:GBPMXN CRYPTO:BTCUSD TVC:USOIL OANDA:USDCHF WHSELFINVEST:NOKJPY IBKR:SEKJPY
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
Log Regression Channel (Dezza Fixed v2)This custom indicator builds a curved Logarithmic Regression Channel designed for long-term Bitcoin and macro asset analysis. It performs a linear regression on the logarithm of price to estimate the market’s fair-value growth curve, then converts that back into price space to form upper and lower deviation bands.
It helps identify where price sits relative to its long-term exponential trend — showing potential overvaluation (upper band) or undervaluation (lower band) zones.
Best used on weekly or monthly charts to visualise market cycles and fair-value reversion. Adjustable inputs let you control lookback length, band width, and midline visibility.
Hindenburg OmenThe Hindenburg Omen highlights periods of internal market stress — when both new 52-week highs and new lows expand while the NYSE remains in an uptrend.
This condition often precedes major corrections or volatility spikes by revealing divergence beneath the surface of an advancing market.
The indicator triggers when four classic breadth rules align: elevated highs and lows, a positive trend, a negative McClellan Oscillator, and a highs-to-lows ratio under 2:1.
Use it on broad indices (NYSE, S&P 500) as an early-warning context tool, NOT a standalone sell signal.
SamRSIIts multiple timeframe RSI indicator
Second RSI indicator can be enabled or disabled up on the necessity
Second RSI indicator has the ability to set to a different timeframe
Perfect for all types of trade (Intraday, Positional, Short term and Long term)
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.
davidqqq//@version=5
indicator('CD', overlay=false, max_bars_back=500)
// 输入参数
S = input(12, title='Short EMA Period')
P = input(26, title='Long EMA Period')
M = input(9, title='Signal Line Period')
// 计算DIFF, DEA和MACD值
fastEMA = ta.ema(close, S)
slowEMA = ta.ema(close, P)
DIFF = fastEMA - slowEMA
DEA = ta.ema(DIFF, M)
MACD = (DIFF - DEA) * 2
// 计算N1和MM1
N1 = ta.barssince(ta.crossunder(MACD, 0))
MM1 = ta.barssince(ta.crossover(MACD, 0))
// 确保长度参数大于0
N1_safe = na(N1) ? 1 : math.max(N1 + 1, 1)
MM1_safe = na(MM1) ? 1 : math.max(MM1 + 1, 1)
// 计算CC和DIFL系列值
CC1 = ta.lowest(close, N1_safe)
CC2 = nz(CC1 , CC1)
CC3 = nz(CC2 , CC2)
DIFL1 = ta.lowest(DIFF, N1_safe)
DIFL2 = nz(DIFL1 , DIFL1)
DIFL3 = nz(DIFL2 , DIFL2)
// 计算CH和DIFH系列值
CH1 = ta.highest(close, MM1_safe)
CH2 = nz(CH1 , CH1)
CH3 = nz(CH2 , CH2)
DIFH1 = ta.highest(DIFF, MM1_safe)
DIFH2 = nz(DIFH1 , DIFH1)
DIFH3 = nz(DIFH2 , DIFH2)
// 判断买入条件
AAA = CC1 < CC2 and DIFL1 > DIFL2 and MACD < 0 and DIFF < 0
BBB = CC1 < CC3 and DIFL1 < DIFL2 and DIFL1 > DIFL3 and MACD < 0 and DIFF < 0
CCC = (AAA or BBB) and DIFF < 0
LLL = not CCC and CCC
XXX = AAA and DIFL1 <= DIFL2 and DIFF < DEA or BBB and DIFL1 <= DIFL3 and DIFF < DEA
JJJ = CCC and math.abs(DIFF ) >= math.abs(DIFF) * 1.01
BLBL = JJJ and CCC and math.abs(DIFF ) * 1.01 <= math.abs(DIFF)
DXDX = not JJJ and JJJ
DJGXX = (close < CC2 or close < CC1) and (JJJ or JJJ ) and not LLL and math.sum(JJJ ? 1 : 0, 24) >= 1
DJXX = not(math.sum(DJGXX ? 1 : 0, 2) >= 1) and DJGXX
DXX = (XXX or DJXX) and not CCC
// 判断卖出条件
ZJDBL = CH1 > CH2 and DIFH1 < DIFH2 and MACD > 0 and DIFF > 0
GXDBL = CH1 > CH3 and DIFH1 > DIFH2 and DIFH1 < DIFH3 and MACD > 0 and DIFF > 0
DBBL = (ZJDBL or GXDBL) and DIFF > 0
DBL = not DBBL and DBBL and DIFF > DEA
DBLXS = ZJDBL and DIFH1 >= DIFH2 and DIFF > DEA or GXDBL and DIFH1 >= DIFH3 and DIFF > DEA
DBJG = DBBL and DIFF >= DIFF * 1.01
DBJGXC = not DBJG and DBJG
DBJGBL = DBJG and DBBL and DIFF * 1.01 <= DIFF
ZZZZZ = (close > CH2 or close > CH1) and (DBJG or DBJG ) and not DBL and math.sum(DBJG ? 1 : 0, 23) >= 1
YYYYY = not(math.sum(ZZZZZ ? 1 : 0, 2) >= 1) and ZZZZZ
WWWWW = (DBLXS or YYYYY) and not DBBL
// plot买入和卖出信号
if DXDX
label.new(bar_index, low, text='抄底', style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small)
if DBJGXC
label.new(bar_index, high, text='卖出', style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)
TTM Squeeze MTF DashboardThis indicator is a multi-timeframe (MTF) powerhouse for spotting breakout trades: It blends TTM Squeeze volatility, momentum oscillator (MOM), EMA trend stacks, MACD histogram expansion, and a "Green Count" (GC) tracker for post-squeeze timing. Perfect for day traders hunting confluence across TFs (e.g., 5m/15m/1H) to enter longs on lower timeframes (LTF) when signals align bullish.1. Quick OverviewCore Features:Dashboard Table: Real-time status for 3 user-defined TFs (defaults: 5m, 15m, 1H).
Rows: MOM (momentum), EMA (trend stack), MACD (histogram expansion), SQZ (volatility), GC (breakout counter), + optional GC MOM.
Plots: MOM histogram + GC line below price for visual confirmation.
Alerts: Triggers on full bullish/bearish alignment (positive/negative MOM + EMA stack + GC ≤3).
Edge: Filters noise with MTF alignment—wait for the table to "light up" (2+ TFs green/aqua) for high-conviction entries.
Best Use: Liquid markets (stocks, forex, crypto). Chart on LTF (e.g., 5m) for entries, use HTF for bias.
2. Installation & AccessOpen TradingView > Load a chart (e.g., AAPL on 5m).
Click Indicators (top toolbar) > Search "TTM Squeeze MTF Dashboard".
Add to chart—table appears top-right (customizable).
Pro Tip: Pin to favorites for quick access. Save chart layouts to preserve settings.
If editing: Right-click indicator > "Edit Pine Script" (open-source code available).3. Customizing SettingsGear icon (next to indicator name) > Adjust groups:Multi-Timeframe SettingsTF1/2/3: Set your scales (e.g., 1m/5m/15m for scalps; 15m/1H/4H for swings).
EMA SettingsLengths: 8/21/55/200 (Fib-tuned for trend).
Colors: Green (bull stack), Red (bear), Gray (neutral).
MACD SettingsLengths: 12/26/9 (standard).
Colors: Green (up-expansion: bull building), Red (down: bear building), Gray (retracting: pause).
Table Colors & DisplayGC Colors: Customize highlights for low GC + momentum.
Histogram Color: MOM shades (aqua/blue positive; red/yellow negative).
Squeeze Dot Color: Green (no squeeze), Black (low), Red/Orange (compression).
Toggles: Show/hide rows (e.g., disable SQZ for cleaner view).
Position/Size: Top-right default; tweak text color/size.
OtherSqueeze Length: 20 (BB/KC base).
Multipliers: BB=2.0, KC=1.0/1.5/2.0 (vol bands).
Hit OK—updates live. Defaults work great out-of-box.4. Reading the Table5 columns: Label | TF1 | TF2 | TF3 | Spacer.
Colors = signals; text = TF labels or GC numbers. Default order: MOM > EMA > MACD > SQZ > GC MOM > GC.Row
Purpose
Bullish (Green/Aqua)
Bearish (Red/Yellow)
Neutral (Gray)
MOM
Momentum flow.
Aqua (rising positive: strong bull).
Blue (falling positive: bull slowing).
Red (rising negative: bear easing).
Yellow (falling negative: deep bear).
N/A.
EMA
Trend stack (short > long EMAs).
Green: Ascending (with trend).
Red: Descending (against).
Mixed.
MACD
Histogram expansion.
Green: Positive & growing (momentum surge).
Red: Negative & shrinking (bear surge).
Flat/retracting (avoid).
SQZ
Volatility compression.
Green: No squeeze (expanding).
Black: Low (mild coil).
N/A.
Red: Medium.
Orange: High (wait).
GC MOM (Opt.)
GC ≤3 + positive MOM.
Aqua/Blue: Entry sweet spot.
N/A.
No match.
GC
Bars since last red squeeze.
MOM color if ≤3 (breakout now!). Text: Count (e.g., "2").
N/A.
>3 (wait).
Bullish Light-Up: 2+ TFs green/aqua on MOM/EMA/MACD + SQZ green/black + GC ≤3 = Long setup.5. Chart PlotsMOM Histogram: Colored bars (aqua = buy pressure)—confirms table.
GC Line: Purple, rising from 0—≤3 signals volatility release.
6. Alerts SetupRight-click chart > Add Alert > Select indicator.
Pick: "Bullish Alignment TF1" (e.g., for 5m).
Message: "Long {{ticker}}—MOM+/EMA Up/GC≤3 on TF1!"
Once Per Bar to avoid noise.
Bullish: Positive MOM + up EMA + low GC (long entry).
Bearish: Negative MOM + down EMA + low GC (short).
7. Trading FrameworkBias Check: HTF EMA green + SQZ release.
Confluence: Table aligns bullish (alert fires).
LTF Entry: On 5m, buy close above EMA8 (or dip to it). SL below swing low (1-2% risk).
Manage: Trail on MACD gray or GC reset. TP: 1.5-2:1 RR.
Avoid: Choppy news; <2 TF alignment.
Example: Alert on TF2 (15m). Switch to 5m: MOM aqua, price bounces EMA—long.Backtest Tip: Convert to strategy script for stats (55-65% win rate on aligns).
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}}")
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).






















