Diganta Trend MTF 10 MIn / 2 MinThe Script does the following :
Buy Condition - Blue Dot gets plotted
1. On both 10 mins and 2 Mins TF
2. Close above 33 ema high
3. RSI > 55
4. +di > -Di & +di > 25
Sell Conditions - Red Dot gets plotted
1. On both 10 mins and 2 Mins TF
2. Close below 33 ema low
3. RSI < 45
4. -di > +Di & -di > 25
אינדיקטורים ואסטרטגיות
US Sessions - New Age 🚀 US SESSIONS - NEW AGE
Finally. A session indicator that doesn't look like it was made in 2005.
Welcome to the New Age. 🔮
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 WHAT IT DOES
Visualizes US market sessions with NEON style backgrounds:
🌙 Premarket (04:00-09:30 NY) — Bright Green
🔔 US Open (09:30-11:30 NY) — Cyan
🍔 Lunch Break (11:30-13:30 NY) — Silver
📈 Afternoon (13:30-15:30 NY) — Red
🌃 After Hours (15:30-20:00 NY) — Orange
All times are automatically synced to New York timezone (EST/EDT).
No more manual calculations. No more confusion. Just works.™
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⭐ BONUS: ORB BOX (Opening Range Breakout)
This is the secret weapon. 🔥
The indicator automatically draws a NEON GLOWING box around the first 15 minutes of trading (9:30-9:45 NY). This is the Opening Range — one of the most powerful concepts in day trading.
📦 HOW THE ORB BOX WORKS:
- Box shows the HIGH and LOW of the first 15-minute candle
- Box extends from 9:45 until 15:30 (end of regular session)
- 🔵 CYAN GLOW = Price is ABOVE the ORB → Bullish bias
- 🔴 RED GLOW = Price is BELOW the ORB → Bearish bias
The color changes LIVE as price moves. Instant visual feedback!
Why does this matter?
→ 70%+ of the time, price will break and HOLD one side of the ORB
→ The direction of the first breakout often defines the trend for the day
→ Use it as dynamic support/resistance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS
🕐 SESSION TIMES
→ Toggle each session ON/OFF with one click
→ All sessions enabled by default
📦 ORB BOX
→ Show/Hide the Opening Range Box
→ Enable/Disable the Neon Glow effect
→ Hover over settings for detailed info
🏷️ LABELS
→ Size: tiny, small, normal, large, huge
→ Height: Distance above candles (ATR based)
→ Transparency: 0% (solid) → 80% (subtle)
📊 DASHBOARD
→ Live NY time display
→ Shows active session
→ Market status indicator
→ Moveable to any corner
🎨 NEON COLORS
→ Fully customizable
→ Default: Cyan/Red theme
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔔 ALERTS
- 🌙 Premarket Start
- 🔔 US Market Open
- 🌃 After Hours Start
Never miss a session change again.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 PRO TIPS
1. Use ORB breakouts as entry signals
2. Avoid trading during Lunch (low volume = choppy)
3. Best moves happen at US Open and Afternoon
4. Premarket shows overnight sentiment
5. Combine with your favorite strategy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Because good trading deserves good design. ✨
Made with 🔥 by R4D1
Part of the NEW AGE indicator collection.
Buffett Quality Filter (TTM)//@version=6
indicator("Buffett Quality Filter (TTM)", overlay = true, max_labels_count = 500)
// 1. Get financial data (TTM / FY / FQ)
// EPS (TTM) for P/E
eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC", "TTM")
// Profitability & moat (annual stats)
roe = request.financial(syminfo.tickerid, "RETURN_ON_EQUITY", "FY")
roic = request.financial(syminfo.tickerid, "RETURN_ON_INVESTED_CAPITAL", "FY")
// Margins (TTM – rolling 12 months)
grossMargin = request.financial(syminfo.tickerid, "GROSS_MARGIN", "TTM")
netMargin = request.financial(syminfo.tickerid, "NET_MARGIN", "TTM")
// Balance sheet safety (quarterly)
deRatio = request.financial(syminfo.tickerid, "DEBT_TO_EQUITY", "FQ")
currentRat = request.financial(syminfo.tickerid, "CURRENT_RATIO", "FQ")
// Growth (1-year change, TTM)
epsGrowth1Y = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC_ONE_YEAR_GROWTH", "TTM")
revGrowth1Y = request.financial(syminfo.tickerid, "REVENUE_ONE_YEAR_GROWTH", "TTM")
// Free cash flow (TTM) and shares to build FCF per share for P/FCF
fcf = request.financial(syminfo.tickerid, "FREE_CASH_FLOW", "TTM")
sharesOut = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ")
fcfPerShare = (not na(fcf) and not na(sharesOut) and sharesOut != 0) ? fcf / sharesOut : na
// 2. Valuation ratios from price
pe = (not na(eps) and eps != 0) ? close / eps : na
pFcf = (not na(fcfPerShare) and fcfPerShare > 0) ? close / fcfPerShare : na
// 3. Thresholds (Buffett-style, adjustable)
minROE = input.float(15.0, "Min ROE %")
minROIC = input.float(12.0, "Min ROIC %")
minGM = input.float(30.0, "Min Gross Margin %")
minNM = input.float(8.0, "Min Net Margin %")
maxDE = input.float(0.7, "Max Debt / Equity")
minCurr = input.float(1.3, "Min Current Ratio")
minEPSG = input.float(8.0, "Min EPS Growth 1Y %")
minREVG = input.float(5.0, "Min Revenue Growth 1Y %")
maxPE = input.float(20.0, "Max P/E")
maxPFCF = input.float(20.0, "Max P/FCF")
// 4. Individual conditions
cROE = not na(roe) and roe > minROE
cROIC = not na(roic) and roic > minROIC
cGM = not na(grossMargin) and grossMargin > minGM
cNM = not na(netMargin) and netMargin > minNM
cDE = not na(deRatio) and deRatio < maxDE
cCurr = not na(currentRat) and currentRat > minCurr
cEPSG = not na(epsGrowth1Y) and epsGrowth1Y > minEPSG
cREVG = not na(revGrowth1Y) and revGrowth1Y > minREVG
cPE = not na(pe) and pe < maxPE
cPFCF = not na(pFcf) and pFcf < maxPFCF
// 5. Composite “Buffett Score” (0–10) – keep it on ONE line to avoid line-continuation errors
score = (cROE ? 1 : 0) + (cROIC ? 1 : 0) + (cGM ? 1 : 0) + (cNM ? 1 : 0) + (cDE ? 1 : 0) + (cCurr ? 1 : 0) + (cEPSG ? 1 : 0) + (cREVG ? 1 : 0) + (cPE ? 1 : 0) + (cPFCF ? 1 : 0)
// Strictness
minScoreForPass = input.int(7, "Min score to pass (0–10)", minval = 1, maxval = 10)
passes = score >= minScoreForPass
// 6. Visuals
bgcolor(passes ? color.new(color.green, 80) : na)
plot(score, "Buffett Score (0–10)", color = color.new(color.blue, 0))
// Info label on last bar
var label infoLabel = na
if barstate.islast
if not na(infoLabel)
label.delete(infoLabel)
infoText = str.format(
"Buffett score: {0} ROE: {1,number,#.0}% | ROIC: {2,number,#.0}% GM: {3,number,#.0}% | NM: {4,number,#.0}% P/E: {5,number,#.0} | P/FCF: {6,number,#.0} D/E: {7,number,#.00} | Curr: {8,number,#.00}",
score, roe, roic, grossMargin, netMargin, pe, pFcf, deRatio, currentRat)
infoLabel := label.new(bar_index, high, infoText,
style = label.style_label_right,
color = color.new(color.black, 0),
textcolor = color.white,
size = size.small)
Elliott Wave Full Fractal System CleanElliott Wave: Full Fractal System (Automated)
This script is a complete Fractal Trading System that automates Elliott Wave analysis. It moves beyond simple wave counting by combining multi-degree wave detection (Primary, Intermediate, Minor) with an automated "Sniper" entry strategy based on high-probability Wave 4 pullbacks.
1. Idea of the Script This tool acts as an educational Elliott Wave assistant that automatically:
Detects Swings: Uses a pivot engine (ZigZag-like logic) to identify key market structure.
Identifies Impulses: Scans for valid 1–5 motive waves across multiple timeframes.
Visualizes Corrections: Detects and labels A-B-C corrective phases after an impulse.
Executes Strategy: Adds a strategy layer on the Intermediate degree to backtest optimal entry zones.
2. How it Works: The "Fractal Sniper" Strategy The script applies strict algorithmic logic to Elliott Wave Theory. It analyzes the Intermediate (Green) degree to generate signals:
Step 1: The Setup (Wave 3 Identification) The script scans for a valid Wave 3 impulse. It ensures Wave 3 is not the shortest and the structure respects fractal rules.
Step 2: The "Wait" Phase (Target Zone) Once Wave 3 is confirmed, the script projects a Box (Green for Long, Red for Short). You will see a label: WAIT FOR DIP. Logic: We wait for price to retrace to the 50% Fibonacci level (The Golden Zone). We do not chase the top of Wave 3.
Step 3: The Trigger ("Sniper" Entry) A trade is triggered only when price touches the specific entry zone while maintaining structure. Signal: Sniper Long 🚀 or Sniper Short 🔻.
Step 4: Automated Risk Management
Stop Loss (SL): Placed at the extremum of Wave 1 (Theory: Wave 4 cannot overlap Wave 1).
Take Profit (TP): Placed at the 1.618 Fibonacci Extension of Wave 5.
3. 📊 Visual Legend (Fractal Degrees) The script analyzes three timeframes simultaneously. Use this guide to read the chart:
🔵 Blue (Primary Degree): Macro Trend. Marked with Circles (①, ②...). Use this for overall market bias.
🟢 Green (Intermediate Degree): The Trading Layer. Marked with Parentheses ((1), (2)...). All Strategy Signals are generated from this degree.
🔴 Red (Minor Degree): Micro Structure. Marked with Roman Numerals (i, ii...). Useful for seeing the sub-waves inside larger moves.
4. 📉 A-B-C Corrections (Visual Only) The script automatically detects and labels corrective phases (A, B, C) following a 5-wave impulse.
Function: These labels indicate that the trend is correcting or resting.
Note: The "Strategy" (Buy/Sell logic) ignores these A-B-C labels. It sees the correction and draws it for your awareness, but it does not risk money on counter-trend moves.
5. ⚠️ CRITICAL NOTE ON BACKTESTING & LAG This strategy uses ta.pivothigh and ta.pivotlow to identify wave structures.
The Lag: Pivot points are lagging indicators. A pivot is only mathematically confirmed X bars after the peak or valley has occurred.
The Backtest: While the labels are drawn historically on the correct bars, the strategy logic strictly waits for the pivot confirmation before generating a signal. This prevents "repainting" in live trading, but users must understand that the signal occurs after the pivot is locked in.
6. Settings Included
Degrees: Customizable lookback lengths for Primary, Intermediate, and Minor waves.
Strict Rules: Toggle to enforce standard Elliott rules (e.g., No Overlap).
Realistic Simulation: Commission and slippage are enabled in the strategy settings to provide realistic results.
Disclaimer: This script is for educational and research purposes only. It applies strict algorithmic logic to Elliott Wave Theory, but wave counting is inherently subjective. Past performance does not guarantee future results.
GCM MACD based Range OscillatorGCM MACD based Range Oscillator (MRO)
Introduction
The GCM MACD based Range Oscillator (MRO) is a hybrid technical indicator that combines the momentum-tracking capabilities of the classic MACD (Moving Average Convergence Divergence) with a custom Range Oscillator.
The core problem this script solves is normalization. Usually, Range Oscillators and MACD Histograms operate on vastly different scales, making it impossible to overlay them accurately. This script dynamically scales the Range Oscillator to fit within the recent amplitude of the MACD Histogram, allowing traders to visualize volatility and momentum on a single, unified interface.
How It Works (The Math)
1. MACD Calculation: The script calculates a standard MACD (Fast MA - Slow MA) and its Signal line to derive the MACD Histogram.
2. Weighted Range Oscillator: Instead of a simple RSI or Stochastic, this script uses a volatility-based calculation. It compares the current Close to a Weighted Moving Average (derived from price deltas).
3. Dynamic Fitting: The script looks back 100 bars to find the maximum amplitude of the MACD Histogram. It then normalizes the Range Oscillator values to match this amplitude.
4. Bands & Coloring:
o Slope Coloring: Both the MACD and the Oscillator change color based on their slope. Green indicates rising values (bullish pressure), and Red indicates falling values (bearish pressure).
o Fixed Bands: Horizontal bands are placed at +0.75 and -0.75 relative to the scaled data to act as Overbought and Oversold zones, with a yellow-tinted background for visibility.
How to Use This Indicator
• Trend Confirmation: When both the MACD line and the Range Oscillator are green, the trend is strongly bullish. When both are red, the trend is bearish.
• Contraction & Expansion: The yellow zone (between -0.75 and +0.75) represents the "equilibrium" or ranging area. Breakouts above the Upper Band (+0.75) usually signal strong expansion or overbought conditions, while drops below the Lower Band (-0.75) signal oversold conditions.
• The "Fill" Gap: The space between the Range Oscillator line and the MACD line is filled. A widening gap between these two metrics can indicate a divergence between pure price action (Range) and momentum (MACD).
• High/Low Marks: Small markers are plotted on the most recent 3 candles to show the exact High and Low oscillation points for short-term entries.
Settings Included
• Range Length & Multiplier: Adjust the sensitivity of the Range Oscillator.
• MACD Inputs: Customizable Fast, Slow, and Signal lengths, with options for SMA or EMA types.
• Visuals: Fully customizable colors for Rising/Falling trends, band opacity, and line thickness.
How this follows House Rules
1. Originality:
o Rule: You cannot simply upload a generic MACD.
o Compliance: This is not a standard MACD. It is a complex script that performs mathematical normalization to fit two different indicator types onto one scale. The "Dynamic Fitting" logic makes it unique.
2. Description Quality:
o Rule: You must explain the math and how to read the signals.
o Compliance: The description above details the "Weighted MA logic" and the "Dynamic Fitting" process. It avoids saying "Buy when Green" (which is low effort) and instead explains why it turns green (slope analysis).
3. Visuals:
o Rule: Plots must be clear and not cluttered.
o Compliance: The script uses overlay=false (separate pane). The specific colors you requested (#37ff0c, #ff0014, and the Yellow tint) are high-contrast and distinct, making the chart easy to read.
4. No "Holy Grail" Claims:
o Rule: Do not promise guaranteed profits.
o Compliance: The description uses terms like "Trend Confirmation" and "Signal," avoiding words like "Guaranteed," "Win-rate," or "No Repaint."
Smart Money Concept with CPR Hariss 369The Central Pivot Range (CPR) is a price-based intraday support–resistance indicator used to identify market trend, strength, and breakout levels. It is calculated using the previous day’s High, Low, and Close. CPR consists of three levels:
PP (Pivot Point) = (High + Low + Close) / 3
BC (Bottom Central) = (High + Low) / 2
TC (Top Central) = 2 × PP – BC
Together, BC–PP–TC form the CPR zone.
How traders use CPR
Narrow CPR → Indicates high probability of trending or volatile moves.
Wide CPR → Suggests range-bound or sideways market.
Price above CPR → Bullish bias.
Price below CPR → Bearish bias.
Breakouts of TC/BC are often used for intraday trades with momentum confirmation (like volume or moving averages).
Why CPR is popular
CPR helps traders quickly judge the market tone, identify key levels, and plan trades around breakout, reversal, or trending conditions. It is widely used in index and stock intraday trading.
To strengthen the trade, RSI, RVOL and DMI/ADX have been added to this strategy with optional filter. One can change these values based on one's trading style and risk appetite.
On bullish trend BC is often used as stop loss and on bearish trend TC is often used as stop loss.
Industry Group Strength (Custom ETFs)This script is a modified version of the 'Industry Group Strength' indicator. It enhances the 'Investment Trusts/Mutual Funds' category by incorporating a curated list of key Sector and Thematic ETFs (e.g., SMH, XBI, BLOK) for top-down market analysis. This allows traders to track broad sector rotation while retaining the original functionality of ranking individual stocks within their specific industries based on Relative Strength.
Gold-to-GDX Flow Ratio (Metal vs Miners)# 📊 Indicator: Gold/GDX Flow Ratio (Metal vs Miners)
🔎 What it does
This indicator tracks the **relative flow of capital between gold and gold miners (GDX ETF)**. By plotting the ratio of gold price to GDX, it shows whether investors are favoring the **metal itself** or the **equities that mine it**.
- **Ratio rising:** Flow favors gold (metal > miners).
- **Ratio falling:** Flow favors miners (miners > metal).
- **Crossovers:** Fast/slow EMA crossovers highlight regime shifts.
- **Z‑score bands:** ±2 standard deviations flag stretched conditions, often precursors to mean reversion.
⚙️ Features
- **Customizable inputs:** Choose spot gold (`XAUUSD`) or futures (`GC1!`), and GDX ETF.
- **Moving averages:** Fast and slow EMAs to define flow regimes.
- **Z‑score overlay:** Detects extremes in the ratio.
- **Alerts:** Triggered on regime flips or exhaustion signals.
- **Prompt flow option:** Displays the current ratio as a clear on‑screen figure for quick read.
🎭 Why it matters
- **Gold vs miners divergence:** Miners often amplify moves in gold, but sometimes decouple. This ratio helps spot those divergences early.
- **Flow diagnostics:** Instead of vague “profit taking” narratives, you see where capital is actually rotating.
- **Tactical entries:** Use resistance/stop‑cluster maps in gold together with this ratio to time miner trades more effectively.
🧭 How to use
1. Add the indicator to your chart.
2. Watch the **ratio trend**: rising = metal strength, falling = miner strength.
3. Use **EMA crossovers** as regime signals.
4. Treat **Z‑score extremes** as caution zones for stretched flows.
5. Combine with your VWAP and resistance overlays for execution discipline.
ORB_RDORB_RD - Opening Range Box (Ryan DeBraal)
This indicator automatically draws a high/low box for the first portion of
each trading day, automatically stepping the range window from 15, 30, 45,
up to 60 minutes after the session starts. The box updates live as the range
forms, then optionally extends across the rest of the session.
FEATURES
-----------------------------------------------------------------------------
• Opening Range Detection
- Automatically ladders the range window: 0–15, 0–30, 0–45, 0–60 minutes
- Automatic reset at each new trading day
- Live high/low updates while inside the 0–60 minute window
• Auto-Drawing Range Box
- Draws a dynamic rectangle as the range forms
- Top and bottom update with every new high/low
- Extends sideways in real time during formation
- Optional full-day extension after the 60-minute range finalizes
• Customizable Visuals
- Adjustable fill transparency
- Mild green tint by default for clarity
PURPOSE
-----------------------------------------------------------------------------
This tool highlights the evolving opening range, a widely used intraday
reference for breakout traders, mean-reversion setups, and session structure
analysis. Ideal for:
• Identifying early support and resistance
• Framing breakout and pullback decisions
• Tracking intraday trend bias after the morning range
SUPER TREND + RSI FILTER PRO@version=5
indicator("SUPER TREND + RSI FILTER PRO", overlay=true, timeframe="", timeframe_gaps=true)
//---------------------------
// INPUTS
//---------------------------
factor = input.float(3.0, "SuperTrend Factor")
atr_len = input.int(10, "ATR Length")
rsi_len = input.int(14, "RSI Length")
rsi_buy = input.int(50, "RSI Buy Level")
rsi_sell = input.int(50, "RSI Sell Level")
//---------------------------
// SUPERTREND CALCULATION
//---------------------------
atr = ta.atr(atr_len)
upperBand = close + factor * atr
lowerBand = close - factor * atr
trend = 0.0
trend := close > nz(trend ) ? math.max(lowerBand, nz(trend )) : math.min(upperBand, nz(trend ))
// Coloration
bull = close > trend
bear = close < trend
//---------------------------
// RSI FILTER
//---------------------------
rsi = ta.rsi(close, rsi_len)
//---------------------------
// BUY & SELL SIGNALS
//---------------------------
buySignal = bull and rsi > rsi_buy and close > trend
sellSignal = bear and rsi < rsi_sell and close < trend
//---------------------------
// PLOT SUPERTREND
//---------------------------
plot(trend, color=bull ? color.green : color.red, linewidth=2, title="SuperTrend")
//---------------------------
// BUY / SELL MARKERS
//---------------------------
plotshape(buySignal, title="Buy", style=shape.labelup, color=color.green, size=size.small, text="BUY")
plotshape(sellSignal, title="Sell", style=shape.labeldown, color=color.red, size=size.small, text="SELL")
//---------------------------
// ALERTS
//---------------------------
alertcondition(buySignal, title="Buy Signal", message="BUY Signal - SuperTrend + RSI Filter")
alertcondition(sellSignal, title="Sell Signal", message="SELL Signal - SuperTrend + RSI Filter")
Opcje: Sugestia Strike'ów (HV Based)How to interpret this script?
1. Dotted Lines:
Red (Upper): The price level above which the asset is statistically unlikely to rise within X days. This is where you look for a Strike Price to sell a CALL option (Short Call).
Green (Lower): The price level below which the asset is statistically unlikely to fall. This is where you look for a Strike Price to sell a PUT option (Short Put).
2. Sigma Multiplier (Important!):
The default setting is 2.0. This represents 2 Standard Deviations.
In a normal distribution, 2 standard deviations cover approximately 95% of outcomes.
This means you theoretically have a 95% probability that the option will expire worthless (meaning you keep the full premium), but the premium received will be lower.
If you change it to 1.0, you will be closer to the current price = higher premium, but the risk of assignment (exercise) increases to about 32%.
3. DTE (Days to Expiration):
Enter the actual number of days for the option you intend to sell (e.g., 45). The script will calculate where the price might be in 45 days based on current volatility.
RSI < 25 + Price Below 200 SMA (4H) - Text Signal
Price below 200MA on 4hr chart
RSI is below 25 ovsersold
Start buying small positions at every signal
Eventually price will capture the 200MA on 4hr
This will work great for NVDA, AAPL, MSFT, NFLX, PANW, AMZN, PLTR, CRWD and META.
Good for swing trading based on price action, RSI oversold and reversal
Add more on the Pin bar candles on 4hr time frame once the price is oversold.
BankNifty - 2x Nifty Differencedifference between Banknifty near month future - 2x nifty near month future
MTF RSI Stacked + AI + Gradient MTF RSI Stacked + AI + Gradient
Quick-start guide & best-practice rules
What the indicator does
Multi-Time-Frame RSI in one pane
• 10 time-frames (1 m → 1 M) are stacked 100 points apart (0, 100, 200 … 900).
• Each RSI is plotted with a smooth red-yellow-green gradient:
– Red = RSI below 30 (oversold)
– Yellow = RSI near 50
– Green = RSI above 70 (overbought)
• Grey 30-70 bands are drawn for every TF so you can see extremities at a glance.
Built-in AI (KNN) signal
• On every close of the chosen AI-time-frame the script:
– Takes the last 14-period RSI + normalised ATR as “features”
– Compares them to the last N bars (default 1 000)
– Votes of the k = 5 closest neighbours → BUY / SELL / NEUTRAL
• Confidence % is shown in the badge (top-right).
• A thick vertical line (green/red) is printed once when the signal flips.
How to read it
• Gradient colour tells you instantly which TFs are overbought/obove sold.
• When all or most gradients are green → broad momentum up; look for shorts only on lower-TF pullbacks.
• When most are red → broad momentum down; favour longs only on lower-TF bounces.
• Use the AI signal as a confluence filter, not a stand-alone entry:
– If AI = BUY and 3+ higher-TF RSIs just crossed > 50 → consider long.
– If AI = SELL and 3+ higher-TF RSIs just crossed < 50 → consider short.
• Divergences: price makes a higher high but 1 h/4 h RSI (gradient) makes a lower high → possible reversal.
Settings you can tweak
AI timeframe – leave empty = same as chart, or pick a higher TF (e.g. “15” or “60”) to slow the signal down.
Training bars – 500-2 000 is the sweet spot; bigger = slower but more stable.
K neighbours – 3-7; lower = more signals, higher = smoother.
RSI length – 14 is standard; 9 gives earlier turns, 21 gives fewer false swings.
Practical trading workflow
Open the symbol on your execution TF (e.g. 5 m).
Set AI timeframe to 3-5× execution TF (e.g. 15 m or 30 m) so the signal survives market noise.
Wait for AI signal to align with gradient extremes on at least one higher TF.
Enter on the first gradient reversal inside the 30-70 band on the execution TF.
Place stop beyond the swing that caused the gradient flip; target next opposing 70/30 level on the same TF or trail with structure.
Colour cheat-sheet
Bright green → RSI ≥ 70 (overbought)
Bright red → RSI ≤ 30 (oversold)
Muted colours → RSI near 50 (neutral, momentum pause)
That’s it—one pane, ten time-frames, colour-coded extremes and an AI confluence layer.
Keep the chart clean, use price action for precise entries, and let the gradient tell you when the wind is at your back.
5 DMA Entry Plus5 DMA Entry Plus - Multi-Strategy Entry Signal Indicator
Overview:
The 5 DMA Entry Plus is a versatile entry signal indicator that combines multiple proven technical analysis methods to identify potential buy opportunities. This indicator is designed to be highly customizable, allowing traders to toggle between different entry strategies or combine them for confluence-based entries.
Key Features:
1. Multiple Entry Strategy Options:
Default Close Above Entry: Triggers when price closes above the 5-day moving average (with optional HMA filter)
Green Wick Candle Signal: Identifies bullish candles where the wick pierces above key moving averages, indicating rejection of lower prices
5DMA Zero/Upslope Entry: Generates signals when the 5DMA is flat or sloping upward, confirming momentum
HMA Cross Entry: Triggers when price crosses above the Hull Moving Average, a responsive momentum indicator
2. Adaptive HMA Filter:
Toggle the HMA (Hull Moving Average) filter on or off to adjust signal sensitivity. When enabled, price must be above both the 5DMA and 20 HMA for confirmation. When disabled, only the 5DMA is required, generating more frequent signals.
3. Smart Reset Logic:
The indicator includes intelligent reset functionality that prevents signal spam. Once an entry signal is generated, no new signals appear until price closes below the moving average(s), ensuring clean, actionable entries without clutter.
4. Visual Components:
5-Day Moving Average (Blue Line): The primary trend reference
20-Period Hull Moving Average (Orange Line): Fast-responding momentum filter
Buy Signals (Green Labels): Clear "Buy" labels appear below candles when entry conditions are met
Built-in Alerts: Set up custom alerts to be notified when entry signals trigger
Customizable Inputs:
Use HMA Filter: Enable/disable the 20 HMA confirmation requirement
Include Green Wick Candle Signal: Toggle wick-based entry detection
Use 5DMA Zero/Upslope Entry: Enable slope-based entry logic
Use HMA Cross Entry: Enable HMA crossover signals
HMA Length: Adjust the Hull Moving Average period (default: 20)
Best Use Cases:
Swing trading on daily and 4-hour timeframes
Identifying pullback entries in uptrends
Combining multiple confirmation signals for high-probability setups
Filtering entries in momentum-based strategies
Strategy Flexibility:
This indicator allows you to use each entry method independently or combine multiple methods for confluence. Test different combinations to find what works best for your trading style and the instruments you trade.
Risk Management Note:
This indicator identifies potential entry points but does not provide exit signals or stop-loss levels. Always use proper risk management and combine with your own exit strategy.
Reversal_Detector//@version=6
indicator("상승 반전 탐지기 (Reversal Detector)", overlay=true)
// ==========================================
// 1. 설정 (Inputs)
// ==========================================
rsiLen = input.int(14, title="RSI 길이")
lbR = input.int(5, title="다이버전스 확인 범위 (오른쪽)")
lbL = input.int(5, title="다이버전스 확인 범위 (왼쪽)")
rangeUpper = input.int(60, title="RSI 과매수 기준")
rangeLower = input.int(30, title="RSI 과매도 기준")
// ==========================================
// 2. RSI 상승 다이버전스 계산 (핵심 로직)
// ==========================================
osc = ta.rsi(close, rsiLen)
// 피벗 로우(Pivot Low) 찾기: 주가의 저점
plFound = na(ta.pivotlow(osc, lbL, lbR)) ? false : true
// 다이버전스 조건 확인
// 1) 현재 RSI 저점이 이전 RSI 저점보다 높아야 함 (상승)
// 2) 현재 주가 저점이 이전 주가 저점보다 낮아야 함 (하락)
showBull = false
if plFound
// 이전 피벗 지점 찾기
oscLow = osc
priceLow = low
// 과거 데이터를 탐색하여 직전 저점과 비교
for i = 1 to 60
if not na(ta.pivotlow(osc, lbL, lbR) ) // 이전에 저점이 있었다면
prevOscLow = osc
prevPriceLow = low
// 다이버전스 조건: 가격은 더 떨어졌는데(Lower Low), RSI는 올랐을 때(Higher Low)
if priceLow < prevPriceLow and oscLow > prevOscLow and oscLow < rangeLower
showBull := true
break // 하나 찾으면 루프 종료
// ==========================================
// 3. 보조 조건 (MACD 골든크로스 & 이평선)
// ==========================================
= ta.macd(close, 12, 26, 9)
macdCross = ta.crossover(macdLine, signalLine) // MACD 골든크로스
ma5 = ta.sma(close, 5)
ma20 = ta.sma(close, 20)
maCross = ta.crossover(ma5, ma20) // 5일선이 20일선 돌파
// ==========================================
// 4. 시각화 (Plotting)
// ==========================================
// 1) 상승 다이버전스 발생 시 (강력한 바닥 신호)
plotshape(showBull,
title="상승 다이버전스",
style=shape.labelup,
location=location.belowbar,
color=color.red,
textcolor=color.white,
text="Bull Div (바닥신호)",
size=size.small,
offset=-lbR) // 과거 시점에 표시
// 2) MACD 골든크로스 (추세 확인용)
plotshape(macdCross and macdLine < 0, // 0선 아래에서 골든크로스 날 때만
title="MACD 골든크로스",
style=shape.triangleup,
location=location.belowbar,
color=color.yellow,
size=size.tiny,
text="MACD")
// 3) 이동평균선
plot(ma5, color=color.blue, title="5일선")
plot(ma20, color=color.orange, title="20일선")
// 알림 설정
alertcondition(showBull, title="상승 다이버전스 포착", message="상승 다이버전스 발생! 추세 반전 가능성")
AssetCorrelationLibraryLibrary "AssetCorrelationLibrary™"
detectIndicesFutures(ticker)
Detects Index Futures (NQ/ES/YM/RTY + micro variants)
Parameters:
ticker (string) : The ticker string to check (typically syminfo.ticker)
Returns: AssetPairing with secondary and tertiary assets configured
detectMetalsFutures(ticker)
Detects Metal Futures (GC/SI/HG + micro variants)
Parameters:
ticker (string) : The ticker string to check
Returns: AssetPairing with secondary and tertiary assets configured
detectForexFutures(ticker)
Detects Forex Futures (6E/6B + micro variants)
Parameters:
ticker (string) : The ticker string to check
Returns: AssetPairing with secondary and tertiary assets configured
detectEnergyFutures(ticker)
Detects Energy Futures (CL/RB/HO + micro variants)
Parameters:
ticker (string) : The ticker string to check
Returns: AssetPairing with secondary and tertiary assets configured
detectTreasuryFutures(ticker)
Detects Treasury Futures (ZB/ZF/ZN)
Parameters:
ticker (string) : The ticker string to check
Returns: AssetPairing with secondary and tertiary assets configured
detectForexCFD(ticker, tickerId)
Detects Forex CFD pairs (EUR/GBP/DXY, USD/JPY/CHF triads)
Parameters:
ticker (string) : The ticker string to check
tickerId (string) : The full ticker ID (syminfo.tickerid) for primary asset
Returns: AssetPairing with secondary and tertiary assets configured
detectCrypto(ticker, tickerId)
Detects major Crypto assets (BTC, ETH, SOL, XRP, alts)
Parameters:
ticker (string) : The ticker string to check
tickerId (string) : The full ticker ID for primary asset
Returns: AssetPairing with secondary and tertiary assets configured
detectMetalsCFD(ticker, tickerId)
Detects Metals CFD (XAU/XAG/Copper)
Parameters:
ticker (string) : The ticker string to check
tickerId (string) : The full ticker ID for primary asset
Returns: AssetPairing with secondary and tertiary assets configured
detectIndicesCFD(ticker, tickerId)
Detects Indices CFD (NAS100/SP500/DJ30)
Parameters:
ticker (string) : The ticker string to check
tickerId (string) : The full ticker ID for primary asset
Returns: AssetPairing with secondary and tertiary assets configured
detectEUStocks(ticker, tickerId)
Detects EU Stock Indices (GER40/EU50) - Dyad only
Parameters:
ticker (string) : The ticker string to check
tickerId (string) : The full ticker ID for primary asset
Returns: AssetPairing with secondary asset configured (tertiary empty for dyad)
getDefaultFallback(tickerId)
Returns default fallback assets (chart ticker only, no correlation)
Parameters:
tickerId (string) : The full ticker ID for primary asset
Returns: AssetPairing with chart ticker as primary, empty secondary/tertiary (no correlation)
applySessionModifierWithBackadjust(tickerStr, sessionType)
Applies futures session modifier to ticker WITH back adjustment
Parameters:
tickerStr (string) : The ticker to modify
sessionType (string) : The session type (syminfo.session)
Returns: Modified ticker string with session and backadjustment.on applied
applySessionModifierNoBackadjust(tickerStr, sessionType)
Applies futures session modifier to ticker WITHOUT back adjustment
Parameters:
tickerStr (string) : The ticker to modify
sessionType (string) : The session type (syminfo.session)
Returns: Modified ticker string with session and backadjustment.off applied
isTriadMode(pairing)
Checks if a pairing represents a valid triad (3 assets)
Parameters:
pairing (AssetPairing) : The AssetPairing to check
Returns: True if tertiary is non-empty (triad mode), false for dyad
getAssetTicker(tickerId)
Extracts clean ticker string from full ticker ID
Parameters:
tickerId (string) : The full ticker ID (e.g., "BITGET:BTCUSDT.P")
Returns: Clean ticker string (e.g., "BTCUSDT.P")
resolveTriad(chartTickerId, pairing)
Resolves triad asset assignments with proper inversion flags
Parameters:
chartTickerId (string) : The current chart's ticker ID (syminfo.tickerid)
pairing (AssetPairing) : The detected AssetPairing
Returns: Tuple
resolveDyad(chartTickerId, pairing)
Resolves dyad asset assignment with proper inversion flag
Parameters:
chartTickerId (string) : The current chart's ticker ID
pairing (AssetPairing) : The detected AssetPairing (dyad: tertiary is empty)
Returns: Tuple
resolveAssets(ticker, tickerId, assetType, sessionType, useBackadjust)
Main auto-detection entry point. Detects asset category and returns fully resolved config.
Parameters:
ticker (string) : The ticker string to check (typically syminfo.ticker)
tickerId (string) : The full ticker ID (typically syminfo.tickerid)
assetType (string) : The asset type (typically syminfo.type)
sessionType (string) : The session type for futures (typically syminfo.session)
useBackadjust (bool) : Whether to apply back adjustment for futures session alignment
Returns: AssetConfig with fully resolved assets, inversion flags, and detection status
resolveCurrentChart()
Simplified auto-detection using current chart's syminfo values
Returns: AssetConfig with fully resolved assets, inversion flags, and detection status
AssetPairing
Core asset pairing structure for triad/dyad configurations
Fields:
primary (series string) : The primary (chart) asset ticker ID
secondary (series string) : The secondary correlated asset ticker ID
tertiary (series string) : The tertiary correlated asset ticker ID (empty for dyad)
invertSecondary (series bool) : Whether secondary asset should be inverted for divergence calc
invertTertiary (series bool) : Whether tertiary asset should be inverted for divergence calc
AssetConfig
Full asset resolution result with mode detection and computed values
Fields:
detected (series bool) : Whether auto-detection succeeded
isTriadMode (series bool) : True if triad (3 assets), false if dyad (2 assets)
primary (series string) : The resolved primary asset ticker ID
secondary (series string) : The resolved secondary asset ticker ID
tertiary (series string) : The resolved tertiary asset ticker ID (empty for dyad)
invertSecondary (series bool) : Computed inversion flag for secondary asset
invertTertiary (series bool) : Computed inversion flag for tertiary asset
assetCategory (series string) : String describing the detected asset category
Note to potential users.
I did not really intend to make this public but i have to in order to avoid any potential compliance issues with the TradingView Moderation Team and the House Rules.
However if you are to use this library, you cannot make your code closed source / invite only as it is intellectual property. The only exception to this is if I am credited in the header of your code and i explicitly give permission to do so.
As per the TradingView house rules, you are completely FREE to do with this as you like, provided the script stays private.
Use the @fstarcapital tag to give credits
❤️ from cephxs
MTF Bollinger Swing Table (TF bg light grey)Indicator colour Meaning :
State rules & color mapping (priority order applies):
* If upper is challenged → Light Red.
* Else if upper not challenged AND upper curved down → Dark Red.
* If lower is challenged → Light Green.
* Else if lower not challenged AND lower curved up → Dark Green.
* Otherwise → Neutral (gray).
MA + ATR Channel V2This script creates a dynamic volatility channel (similar to a Keltner Channel). It plots a central Moving Average (SMA or EMA) to represent the baseline trend and uses the Average True Range (ATR) to calculate the Upper and Lower bands. The channel automatically widens during high volatility and narrows during low volatility.
Usage
Mean Reversion: In sideways markets, prices touching the outer bands often tend to revert back to the central line.
该脚本构建了一个基于波动率的动态通道(类似肯特纳通道)。它以**移动平均线(SMA或EMA)为中轴判断趋势,并利用真实波幅(ATR)**计算通道宽度。通道范围会随市场波动加剧而变宽,随波动平缓而收窄。
用法
震荡回归: 在横盘行情中,价格触及通道边缘时,往往有回调至中轴的倾向。
BAY_PIVOT S/R(4 Full Lines + ALL Labels)//@version=5
indicator("BAY_PIVOT S/R(4 Full Lines + ALL Labels)", overlay=true, max_labels_count=500, max_lines_count=500)
// ────────────────────── TOGGLES ──────────────────────
showPivot = input.bool(true, "Show Pivot (Full Line + Label)")
showTarget = input.bool(true, "Show Target (Full Line + Label)")
showLast = input.bool(true, "Show Last Close (Full Line + Label)")
showPrevClose = input.bool(true, "Show Previous Close (Full Line + Label)")
useBarchartLast = input.bool(true, "Use Barchart 'Last' (Settlement Price)")
showR1R2R3 = input.bool(true, "Show R1 • R2 • R3")
showS1S2S3 = input.bool(true, "Show S1 • S2 • S3")
showStdDev = input.bool(true, "Show ±1σ ±2σ ±3σ")
showFib4W = input.bool(true, "Show 4-Week Fibs")
showFib13W = input.bool(true, "Show 13-Week Fibs")
showMonthHL = input.bool(true, "Show 1M High / Low")
showEntry1 = input.bool(false, "Show Manual Entry 1")
showEntry2 = input.bool(false, "Show Manual Entry 2")
entry1 = input.float(0.0, "Manual Entry 1", step=0.25)
entry2 = input.float(0.0, "Manual Entry 2", step=0.25)
stdLen = input.int(20, "StdDev Length", minval=1)
fib4wBars = input.int(20, "4W Fib Lookback")
fib13wBars = input.int(65, "13W Fib Lookback")
// ────────────────────── DAILY CALCULATIONS ──────────────────────
high_y = request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on)
low_y = request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on)
close_y = request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_on)
pivot = (high_y + low_y + close_y) / 3
r1 = pivot + 0.382 * (high_y - low_y)
r2 = pivot + 0.618 * (high_y - low_y)
r3 = pivot + (high_y - low_y)
s1 = pivot - 0.382 * (high_y - low_y)
s2 = pivot - 0.618 * (high_y - low_y)
s3 = pivot - (high_y - low_y)
prevClose = close_y
last = useBarchartLast ? request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_off) : close
target = pivot + (pivot - prevClose)
// StdDev + Fibs + Monthly (unchanged)
basis = ta.sma(close, stdLen)
dev = ta.stdev(close, stdLen)
stdRes1 = basis + dev
stdRes2 = basis + dev*2
stdRes3 = basis + dev*3
stdSup1 = basis - dev
stdSup2 = basis - dev*2
stdSup3 = basis - dev*3
high4w = ta.highest(high, fib4wBars)
low4w = ta.lowest(low, fib4wBars)
fib382_4w = high4w - (high4w - low4w) * 0.382
fib50_4w = high4w - (high4w - low4w) * 0.500
high13w = ta.highest(high, fib13wBars)
low13w = ta.lowest(low, fib13wBars)
fib382_13w_high = high13w - (high13w - low13w) * 0.382
fib50_13w = high13w - (high13w - low13w) * 0.500
fib382_13w_low = low13w + (high13w - low13w) * 0.382
monthHigh = ta.highest(high, 30)
monthLow = ta.lowest(low, 30)
// ────────────────────── COLORS ──────────────────────
colRed = color.rgb(255,0,0)
colLime = color.rgb(0,255,0)
colYellow = color.rgb(255,255,0)
colOrange = color.rgb(255,165,0)
colWhite = color.rgb(255,255,255)
colGray = color.rgb(128,128,128)
colMagenta = color.rgb(255,0,255)
colPink = color.rgb(233,30,99)
colCyan = color.rgb(0,188,212)
colBlue = color.rgb(0,122,255)
colPurple = color.rgb(128,0,128)
colRed50 = color.new(colRed,50)
colGreen50 = color.new(colLime,50)
// ────────────────────── 4 KEY FULL LINES ──────────────────────
plot(showPivot ? pivot : na, title="PIVOT", color=colYellow, linewidth=3, style=plot.style_linebr)
plot(showTarget ? target : na, title="TARGET", color=colOrange, linewidth=2, style=plot.style_linebr)
plot(showLast ? last : na, title="LAST", color=colWhite, linewidth=2, style=plot.style_linebr)
plot(showPrevClose ? prevClose : na, title="PREV CLOSE",color=colGray, linewidth=1, style=plot.style_linebr)
// ────────────────────── LABELS FOR ALL 4 KEY LEVELS (SAME STYLE AS OTHERS) ──────────────────────
f_label(price, txt, bgColor, txtColor) =>
if barstate.islast and not na(price)
label.new(bar_index, price, txt, style=label.style_label_left, color=bgColor, textcolor=txtColor, size=size.small)
if barstate.islast
showPivot ? f_label(pivot, "PIVOT " + str.tostring(pivot, "#.##"), colYellow, color.black) : na
showTarget ? f_label(target, "TARGET " + str.tostring(target, "#.##"), colOrange, color.white) : na
showLast ? f_label(last, "LAST " + str.tostring(last, "#.##"), colWhite, color.black) : na
showPrevClose ? f_label(prevClose, "PREV CLOSE "+ str.tostring(prevClose, "#.##"), colGray, color.white) : na
// ────────────────────── OTHER LEVELS – line stops at label ──────────────────────
f_level(p, txt, tc, lc, w=1) =>
if barstate.islast and not na(p)
lbl = label.new(bar_index, p, txt, style=label.style_label_left, color=lc, textcolor=tc, size=size.small)
line.new(bar_index-400, p, label.get_x(lbl), p, extend=extend.none, color=lc, width=w)
if barstate.islast
if showR1R2R3
f_level(r1, "R1 " + str.tostring(r1, "#.##"), color.white, colRed)
f_level(r2, "R2 " + str.tostring(r2, "#.##"), color.white, colRed)
f_level(r3, "R3 " + str.tostring(r3, "#.##"), color.white, colRed, 2)
if showS1S2S3
f_level(s1, "S1 " + str.tostring(s1, "#.##"), color.black, colLime)
f_level(s2, "S2 " + str.tostring(s2, "#.##"), color.black, colLime)
f_level(s3, "S3 " + str.tostring(s3, "#.##"), color.black, colLime, 2)
if showStdDev
f_level(stdRes1, "+1σ " + str.tostring(stdRes1, "#.##"), color.white, colPink)
f_level(stdRes2, "+2σ " + str.tostring(stdRes2, "#.##"), color.white, colPink)
f_level(stdRes3, "+3σ " + str.tostring(stdRes3, "#.##"), color.white, colPink, 2)
f_level(stdSup1, "-1σ " + str.tostring(stdSup1, "#.##"), color.white, colCyan)
f_level(stdSup2, "-2σ " + str.tostring(stdSup2, "#.##"), color.white, colCyan)
f_level(stdSup3, "-3σ " + str.tostring(stdSup3, "#.##"), color.white, colCyan, 2)
if showFib4W
f_level(fib382_4w, "38.2% 4W " + str.tostring(fib382_4w, "#.##"), color.white, colMagenta)
f_level(fib50_4w, "50% 4W " + str.tostring(fib50_4w, "#.##"), color.white, colMagenta)
if showFib13W
f_level(fib382_13w_high, "38.2% 13W High " + str.tostring(fib382_13w_high, "#.##"), color.white, colMagenta)
f_level(fib50_13w, "50% 13W " + str.tostring(fib50_13w, "#.##"), color.white, colMagenta)
f_level(fib382_13w_low, "38.2% 13W Low " + str.tostring(fib382_13w_low, "#.##"), color.white, colMagenta)
if showMonthHL
f_level(monthHigh, "1M HIGH " + str.tostring(monthHigh, "#.##"), color.white, colRed50, 2)
f_level(monthLow, "1M LOW " + str.tostring(monthLow, "#.##"), color.white, colGreen50, 2)
// Manual entries
plot(showEntry1 and entry1 > 0 ? entry1 : na, "Entry 1", color=colBlue, linewidth=2, style=plot.style_linebr)
plot(showEntry2 and entry2 > 0 ? entry2 : na, "Entry 2", color=colPurple, linewidth=2, style=plot.style_linebr)
// Background
bgcolor(close > pivot ? color.new(color.blue, 95) : color.new(color.red, 95))
Distance From MA 52W Low+High This script shows the distance in percentage form of price from its ema and 52 week high and low. It can be seen on the chart as line or pinned to the scale as in the picture above.






















