SNP420/TRCS_MASTERMicro Body Candle Highlighter is a visual tool for TradingView that continuously scans the active timeframe and highlights all candles with an extremely small body.
For every bar (including the currently forming one), the indicator compares the absolute distance between Open and Close to a user-defined threshold in ticks (default: 1 tick, based on syminfo.mintick).
If the candle’s body size is less than or equal to this threshold, the indicator draws a red frame around the candle – either around the body only or the full high-to-low range, depending on user settings.
Optionally, the indicator can also trigger alerts whenever such a “micro body” candle is detected, allowing traders to react immediately to potential indecision, pauses, or micro-reversals in price action.
author: SNP_420
project: FNXS
ps: Piece and love
チャートパターン
Forex Trend Master FollowerThis indicator is based on slow and fast EMA, like regular EMA cross, but updated. It works the best on trendy pairs like EU, and works the best on 4h time frame. It shows where to entry and where to close the position based on slow EMA. It can be used like additional confluence with FTB entry model, and whole strategy.
Daily TQQQ Trend Strategy (Ultra-Discreet Text Signals)✅ TradingView Description (Professional + Clean)
Daily TQQQ Trend Strategy (Ultra-Discreet Text Signals)
This indicator provides clean, minimalistic trend-following signals designed for traders who want confirmation without cluttering the chart.
Instead of using arrows, boxes, or colored shapes, this script prints tiny text labels (“Buy – trend strong” / “Sell – trend weakening”) directly on the price chart. These messages are intentionally discreet so they do not interfere with existing indicators, automated systems, or visually busy setups.
🔍 How It Works
The indicator analyzes the market using three well-established components:
1. Trend Direction (EMA 8 & EMA 20)
• Buy condition: price above both EMAs
• Sell condition: price below both EMAs
2. Momentum Confirmation (MACD)
• Buy: MACD line > Signal line
• Sell: MACD line < Signal line
3. Strength Filter (RSI 14)
• Buy: RSI above 50 (bullish strength)
• Sell: RSI below 50 (weakening momentum)
Only when all conditions align does the indicator print a discreet buy or sell label.
🧭 Signal Types
Buy – trend strong
Appears below the candle when overall trend, momentum, and strength all turn bullish.
Sell – trend weakening
Appears above the candle when trend and momentum show weakness and downside pressure increases.
Prime-Time × Vortex (3/6/9) — Ace (clean v3)1️⃣ Prime-Time Index (PT)
A bar becomes Prime-Time when the count satisfies the formula:
4·n − 3 is a perfect square
This generates the sequence:
1, 3, 7, 13, 21, 31, 43, 57, 73, 91, …
These are time windows where price is more likely to form:
Shifts in market structure
Impulses
Reversals
Liquidity expansions
These PT bars are drawn as small circles above the candle.
If labels are enabled, the counter value (n) is also shown.
2️⃣ Vortex 3/6/9 Digital-Root Timing
Every bar also has a digital root, calculated from the counter:
If n → digitalRoot(n) = 3, 6, or 9,
the bar is considered a Vortex bar.
These moments often align with:
Swing highs / swing lows
Micro shifts
Mini-reversals
Minor liquidity grabs
When a Prime-Time bar is also a 3/6/9 bar → high-probability timing.
These bars are highlighted in green by default.
3️⃣ Filters & Display
You can customize:
Anchor time → when counting begins
Reset daily → restart counter each new trading day
Show only 3/6/9 → hides normal PT hits
Label offset → distance above the candle
Color themes
This makes the indicator usable on:
1Min
5Min
15Min
1H
Any timeframe you want
4️⃣ How To Apply It in Trading
Use it as a time confluence tool, not a signal generator.
✔ Best ways to use:
Look for MSS, sweeps, OB retests, FVG reactions when
they occur on or near a Prime-Time or 3/6/9 bar
Expect volatility increases after PT bars
Use 3/6/9 hits to anticipate internal turning points
Combine with:
Session High/Low
Killzones (London, NYO, PM)
Purge Protocol
MMXM Execution
✔ Example:
If price sweeps a level and prints a 3/6/9 vortex bar inside a PT window →
you have a very strong timing alignment for reversal.
5️⃣ Simple Summary
Feature Meaning
Prime-Time Hit (PT) Major time window where price often shifts
3/6/9 Vortex Bar Micro-timing for internal swings
PT + 3/6/9 together High-probability timing for entries
Reset Daily Perfect for intraday models like NYO & London
Anchor Time Defines the entire cycle structure
Weekly False Breakdown ScannerWeekly False Breakdown Scanner Weekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown ScannerWeekly False Breakdown Scanner
EMA/SMA 350 & 111 (Day Settings) by JayEMA/SMA 350 & 111 (Day Settings) by J
Übergeordneter Trendwechsel erkennen auf High Time Frames
EMA Crossover + Angle + Candle Pattern + Breakout (Clean) finalmayank raj startegy of 9 15 ema with angle more th5 and bullish croosover or bearish crooswoveran 3
FVG + Bollinger + Toggles + Swing H&L (Taken/Close modes)This indicator combines multiple advanced market-structure tools into one unified system.
It detects A–C Fair Value Gaps (FVG) and plots them as dynamic boxes projected a fixed number of bars forward.
Each bullish or bearish FVG updates in real time and “closes” once price breaks through the opposite boundary.
The indicator also includes Bollinger Bands based on EMA-50 with adjustable deviation settings for volatility context.
Swing Highs and Swing Lows are identified using pivot logic and are drawn as dynamic lines that change color once taken out.
You can choose whether swings end on a close break or on any touch/violation of the level.
All visual elements—FVGs, Bollinger Bands, and Swing Lines—can be individually toggled on or off from the settings panel.
A time-window session box is included, allowing you to highlight a custom intraday window based on your selected timezone.
The session box automatically tracks the high and low of the window and locks the final range once the window closes.
Overall, the tool is designed for traders who want a structured, multi-layered view of liquidity, volatility, and intraday timing.
MTF RSI + MACD Bullish Confluencethis based on rsi more then 50 and macd line bullish crossover or above '0' and time frame 15 min, 1 hour, 4 hour , 1 day and 1 week
HTF FVG + SessionsThis indicator combines multi-timeframe FVG A–C detection with intraday session boxes on a single chart.
It automatically finds bullish and bearish Fair Value Gaps on 15m, 30m, 1H, 4H, 1D and 1W timeframes.
Fresh FVGs are drawn in a transparent gold color, then dynamically shrink as price trades back into the gap.
Once price fully fills the gap, the FVG box and its label are automatically removed from the chart.
After the first touch, each FVG changes to a per-timeframe gray shade, making overlapping HTF gaps easy to see.
You can toggle each timeframe on/off and also globally enable/disable all FVGs from the settings panel.
Session boxes highlight Asia, London, NY AM, NY Lunch and NY PM using soft colored rectangles.
Each session box is plotted from the high to the low of that session and labeled with its name in white text.
A global “Show all session boxes” switch allows you to quickly hide or display the session structure.
This tool is designed for traders who want to combine FVG liquidity maps with clear intraday session context.
Trendshift [CHE]Trendshift — First-Shift Regime Turns with Premium/Discount Context
Summary
Trendshift highlights the first confirmed directional structure shift in price and overlays a premium or discount context based on the most recent structural range. It identifies the major swing levels, detects a regime transition when price closes beyond these levels with optional ATR-based conviction, and marks only the first shift per direction to reduce repetition and noise. The indicator then establishes a premium or discount band around the break and tints the background when price operates in either region. This produces a clean regime-aware view that emphasizes only the earliest actionable turn while maintaining contextual bias information.
Motivation: Why this design?
Conventional swing-based structure tools often fire repeated signals after each minor break, especially in volatile environments. This leads to cluttered charts and little informational value. Trendshift focuses on the core trading need: isolating the first confirmed change in directional structure and providing a premium or discount context after the break. By limiting signals to the initial flip and suppressing further markers until direction reverses again, the script reduces noise and highlights only the structural event that materially matters. The band logic further addresses the challenge of distinguishing contextual extremes and avoiding trades taken too late after a shift.
What’s different vs. standard approaches?
Baseline reference: Most structure indicators repeatedly plot every new break of a swing high or swing low.
Differences:
Only the first confirmed bullish or bearish shift is plotted until the opposite direction occurs.
ATR-filtered breakout validation to reduce false breaks during volatility spikes.
A reduced premium and discount band derived from the breakout candle and prior swing structure.
Tinted background for contextual positioning rather than explicit entry signals.
Practical effect:
Fewer but more meaningful shift markers.
Clear visual context of where price operates relative to the structural band.
Cleaner regime transitions and less chart clutter.
How it works (technical)
The indicator continuously evaluates major swing highs and lows using a symmetric window length. When a swing is confirmed, the script stores its price and bar index. A structure shift occurs when price closes beyond the most recent major swing in the opposite direction. Optional ATR filtering requires the breakout distance to exceed an ATR-scaled threshold.
Upon a confirmed shift, the script sets a regime state that remains active until a new shift or an optional timeout. It also establishes a structural band anchored between the breakout candle extremum and the prior opposite swing. The band informs the premium and discount boundaries, each representing a quarter subdivision.
Only the first shift event per direction generates a visual triangle marker. The band is validated by comparing its height to ATR to avoid extremely narrow structures. Background tinting activates whenever price resides within the premium or discount zones. Persistent variables maintain previous structural states and prevent re-triggering until direction reverses.
Parameter Guide
Swing length (default 5): Controls the number of bars used on each side of a swing. Smaller values are more reactive; larger values reduce noise.
Use ATR filter (default true): Requires breakout strength beyond the swing to exceed an ATR-scaled threshold. Disabling increases signal frequency.
ATR length (default 14): Controls volatility estimation for breakout filtering and band validation.
Break ATR multiplier (default 1.0): Higher values require stronger breakouts, reducing false shifts.
Enable framework (default true): Activates the premium and discount context logic.
Persist band on timeout (default true): Retains the current band after a regime timeout.
Min band size ATR mult (default 0.5): Rejects extremely small bands and prevents unrealistic tinting.
Regime timeout bars (default 500): Resets the regime after extended inactivity.
Invert colors (default false): Swaps premium and discount tint color assignments.
Show zone tint (default true): Toggles background shading.
Show shift markers (default true): Enables or disables the first-shift triangles.
Reading & Interpretation
A green or red tint signals that price is operating in the discount or premium region of the most recent structural band. These regions are derived from the breakout event and the prior swing. A green triangle below a bar indicates the first bullish structure shift after a bearish regime. A red triangle above a bar indicates the first bearish shift after a bullish regime. No further markers appear until direction reverses. When tint is active, price location within the band offers simple contextual bias without providing explicit entries.
Practical Workflows & Combinations
Trend following: Treat the first bullish marker as the earliest confirmation of a potential up-regime and the first bearish marker for a potential down-regime. Use price location relative to the premium and discount zones as context for continuation or mean-reversion setups.
Structure-based execution: Combine with simple swing highs and lows to refine entry points within discount after a bullish shift or within premium after a bearish shift.
Higher-timeframe overlays: Apply the indicator on higher timeframes to define macro structure, then trade on lower timeframes using the band as a contextual anchor.
Risk management: When price stays in premium during a bearish regime or in discount during a bullish regime, consider protective actions or position management adjustments.
Behavior, Constraints & Performance
The script uses only confirmed swing points and closed-bar conditions, so repainting from future bars does not occur except the inherent delay of pivot confirmation. No higher-timeframe security calls are used, avoiding HTF repaint paths.
Performance impact is minimal because the script uses no loops or arrays and relies on persistent variables. The maximum bars back setting is five-thousand, required for swing lookback. Known limitations include quiet behavior during long consolidations, occasional delayed recognition of shifts due to swing confirmation, and limited effectiveness during large market gaps where extremum logic may be distorted.
Sensible Defaults & Quick Tunin g
Increase the swing length for smoother trend shifts and fewer signals.
Decrease the swing length for more sensitivity.
Raise the ATR breakout multiplier to reduce noise in volatile markets.
Lower the band size requirement to make premium and discount zones more active on slower markets.
Extend the regime timeout for slow-moving assets.
What this indicator is—and isn’t
This tool is a structural regime-shift detector with contextual premium and discount shading. It is not a complete trading system and does not include entries, exits, or risk models. It does not predict future price movement. It should be combined with broader structure analysis, liquidity considerations, and risk management practices.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
ICT Fair Value Gap (FVG) Detector │ Auto-Mitigated │ 2025Accurate ICT / Smart Money Concepts Fair Value Gap (FVG) detector
Features:
• Detects both Bullish (-FVG) and Bearish (+FVG) using strict 3-candle rule
• Boxes automatically extend right until price mitigates them
• Boxes auto-delete when price closes inside the gap (true mitigation)
• No repainting – 100% reliable
• Clean, lightweight, and works on all markets & timeframes
• Fully customizable colors and transparency
How to use:
– Bullish FVG (green) = potential support / buy zone in uptrend
– Bearish FVG (red) = potential resistance / sell zone in downtrend
Exactly matches The Inner Circle Trader (ICT) methodology used by thousands of SMC traders in 2024–2025.
Enjoy and trade safe!
Gold Signal System + Alerts // GOLD SIGNAL SYSTEM + ALERTS
//@version=5
indicator("Gold Signal System + Alerts", overlay=true)
// EMAs
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
// Conditions
buySignal = ta.crossover(ema50, ema200)
sellSignal = ta.crossunder(ema50, ema200)
// Plot
plot(ema50, color=color.yellow)
plot(ema200, color=color.blue)
// Signals
plotshape(buySignal, title="BUY", style=shape.labelup, color=color.new(color.green,0), text="BUY", size=size.small)
plotshape(sellSignal, title="SELL", style=shape.labeldown, color=color.new(color.red,0), text="SELL", size=size.small)
// Alerts
alertcondition(buySignal, title="Buy Signal", message="BUY signal on GOLD")
alertcondition(sellSignal, title="Sell Signal", message="SELL signal on GOLD")
SCALPING PRO V2 - INTERMÉDIANT (Dashboard + TP/SL + Alerts)//@version=5
indicator("SCALPING PRO V2 - INTERMÉDIANT (Dashboard + TP/SL + Alerts)", overlay=true, max_labels_count=500)
// ---------------- INPUTS ----------------
emaFastLen = input.int(9, "EMA Fast")
emaSlowLen = input.int(21, "EMA Slow")
atrLen = input.int(14, "ATR Length")
atrMultSL = input.float(1.2, "SL = ATR *")
tp1mult = input.float(1.0, "TP1 = ATR *")
tp2mult = input.float(1.5, "TP2 = ATR *")
tp3mult = input.float(2.0, "TP3 = ATR *")
minBars = input.int(3, "Min bars between signals")
showDashboard = input.bool(true, "Show Dashboard")
// ---------------- INDICATORS ----------------
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
atr = ta.atr(atrLen)
bullTrend = emaFast > emaSlow
bearTrend = emaFast < emaSlow
crossUp = ta.crossover(emaFast, emaSlow) and bullTrend
crossDown = ta.crossunder(emaFast, emaSlow) and bearTrend
var int lastSignal = na
okSignal = na(lastSignal) or (bar_index - lastSignal > minBars)
buySignal = crossUp and okSignal
sellSignal = crossDown and okSignal
if buySignal or sellSignal
lastSignal := bar_index
// ---------------- TP & SL ----------------
var float sl = na
var float tp1 = na
var float tp2 = na
var float tp3 = na
if buySignal
sl := close - atr * atrMultSL
tp1 := close + atr * tp1mult
tp2 := close + atr * tp2mult
tp3 := close + atr * tp3mult
if sellSignal
sl := close + atr * atrMultSL
tp1 := close - atr * tp1mult
tp2 := close - atr * tp2mult
tp3 := close - atr * tp3mult
// ---------------- ALERTS ----------------
alertcondition(buySignal, title="BUY", message="BUY Signal")
alertcondition(sellSignal, title="SELL", message="SELL Signal")
alertcondition(ta.cross(close, tp1), title="TP1", message="TP1 Hit")
alertcondition(ta.cross(close, tp2), title="TP2", message="TP2 Hit")
alertcondition(ta.cross(close, tp3), title="TP3", message="TP3 Hit")
alertcondition(ta.cross(close, sl), title="SL", message="Stop Loss Hit")
// ---------------- DASHBOARD ----------------
if showDashboard
var table dash = table.new(position.top_right, 1, 5)
if barstate.islast
table.cell(dash, 0, 0, "SCALPING PRO V2", bgcolor=color.new(color.black, 0), text_color=color.white)
table.cell(dash, 0, 1, "Trend: " + (bullTrend ? "Bull" : bearTrend ? "Bear" : "Neutral"))
table.cell(dash, 0, 2, "ATR: " + str.tostring(atr, format.mintick))
table.cell(dash, 0, 3, "Last Signal: " + (buySignal ? "BUY" : sellSignal ? "SELL" : "NONE"))
table.cell(dash, 0, 4, "EMA Fast/Slow OK")
50, 100 & 200 Week MA (SMA/EMA Switch)Clean, multi-timeframe weekly moving average indicator displaying the classic 50, 100, and 200-week MAs directly on any chart timeframe.
Features:
True weekly calculations using request.security (accurate, no daily approximation)
Switch between SMA and EMA with one click
Individually toggle each MA (50w orange, 100w purple, 200w blue)
Perfect for long-term trend analysis, golden/death crosses, and institutional-level support/resistance
Ideal for swing traders, investors, and anyone tracking major market cycles. Lightweight and repaints-free.
Elite S&D [By:CienF]Elite Supply & Demand
Description
Elite Supply & Demand is not just another zone indicator; it is a complete institutional trading system designed to identify high-probability imbalances in the market. Unlike standard indicators that flood the chart with weak zones, this script applies rigorous Price Action rules to filter, score, and validate only the most significant areas of interest.
The core philosophy of this tool is "Anormality". Institutional activity leaves a footprint in the form of explosive volatility relative to the recent context. This indicator detects these footprints, measures their intensity, and validates them against market structure.
Key Features
🔥 Dynamic Quality Scoring (The "Elite" Feature) The indicator doesn't just draw boxes; it rates them. It calculates a Volumetric Ratio comparing the explosive move against the historical average at the moment of creation.
Contextual Intelligence: It continues to track the initial move. If the momentum continues after a small pause, the score updates in real-time.
Visual Grades:
🔥 Fire: High Anormality (Institutional Imbalance).
⚡ Lightning: Moderate Anormality (Decent strength).
No Icon: Standard move.
🏗️ Advanced Structure Validation Includes a unique "Eventual Break" filter.
Latent Zones: You can choose to hide zones that haven't broken structure yet.
Auto-Validation: The zone remains invisible/transparent until price breaks a recent High/Low or Fractal Pivot. Once the break occurs, the zone "activates" on your chart.
🧠 Smart Mitigation Logic
No Zombie Zones: Once a zone is mitigated (touched), it is strictly processed. It can either turn gray (History Mode) or be removed instantly.
Priority Handling: Mitigated zones are never re-colored or re-validated, keeping your chart clean and accurate.
🚀 Performance Optimization
Date Lookback: Includes a "Days Back" filter to prevent the script from calculating thousands of historical candles, ensuring smooth performance even on lower timeframes (1m, 5m).
🔔 Integrated Alerts
Creation: Get notified immediately when a potential zone forms.
Validation: Get notified specifically when a latent zone breaks structure and becomes active.
How It Works ( The Logic)
Phase 1: The Base (Indecision): Identifies candles with small bodies (≤ 50% of range) representing equilibrium/accumulation.
Phase 2: The Explosion (Imbalance): Looks for a strong breakout candle (≥ 60% body) that moves away from the base.
Phase 3: The Follow-up: Verifies that the move continues. It allows for "Smart Pauses" (single indecision candles) within the trend but invalidates the zone if a reversal occurs immediately.
Phase 4: Structure Check: Verifies if the move broke the Recent Range (High/Low) or Fractal Pivots.
Settings & Configuration
1. Base & Exit Rules
Max % Body: Threshold to define an indecision candle (Default: 50%).
Explosive Min: Minimum strength required for the exit candle.
2. Structure Validation
Structure Type: Choose between Recent Range (more fluid) or Fractal Pivots (stricter).
Filter Eventual Break: Highly Recommended. If checked, zones appear only after they prove their strength by breaking structure.
3. Scoring (Quality)
High Quality Ratio: The multiplier required to earn the 🔥 icon (e.g., 2.0x larger than average).
Allow Pause: Allows the algorithm to capture larger moves even if there is a single small candle in the middle of the explosive leg.
4. Performance
Days Back: Limits how far back the indicator draws. Reduce this number on low timeframes to speed up loading.
Usage Recommendations
For Trend Trading: Look for "Follow-up" zones. If you see a 🔥 zone forming in the direction of the higher timeframe trend, it is a high-probability entry.
For Reversals: Use the "Filter Eventual Break" feature. Wait for the indicator to reveal a zone that has broken a major structure point.
Stop Loss Placement: The indicator draws the zone covering the entire "Base" (wicks included). A safe stop is typically just beyond the distal line (33% recommended) of the box.
🔔 How to Set Up Alerts
Since this indicator uses the dynamic alert() function to send detailed messages (Entry Price, Stop Zone, Type), you must configure it correctly:
Add the indicator to your chart and adjust the settings to your preference.
Click the "Create Alert" button (Clock Icon) on the right toolbar or press Alt + A.
Condition: Select "Elite S&D " from the dropdown menu.
Trigger (CRITICAL): You must select "Any alert() function call".
Note: Do not select "Crossing" or other standard conditions, or the alerts will not trigger.
Expiration: Select "Open-ended" (if you have a Premium plan) or set a future date.
Alert Actions: Choose where you want to receive the alert (Notify on App, Show Popup, Send Email, etc.).
Message: You can leave this default. The script automatically generates a detailed message with the Ticker, Timeframe, Zone Type, and Coordinates.
Click Create.
Disclaimer: This tool is designed to assist in technical analysis and does not constitute financial advice. Always use proper risk management.
Megvie Scalping C - Pullback EMA20/50 (3-5m) by Lynda//@version=5
indicator("Megvie Scalping C - Pullback EMA20/50 (3-5m)", overlay=true, max_labels_count=500, max_lines_count=500)
// === INPUTS ===
ema_fast_len = input.int(20, "EMA fast (pullback)")
ema_slow_len = input.int(50, "EMA slow (trend)")
rsi_len = input.int(14, "RSI length")
rsi_min = input.int(40, "RSI min for entry")
atr_len = input.int(14, "ATR length (for SL/TP)")
use_atr_for_sl = input.bool(true, "Use ATR for SL size")
atr_sl_mult = input.float(1.0, "SL = ATR * multiplier", step=0.1)
rr = input.float(1.8, "Risk:Reward (TP = SL * RR)", step=0.1)
max_signals_repeat = input.int(3, "Min bars between signals", minval=1)
// === INDICATORS ===
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
rsi = ta.rsi(close, rsi_len)
atr = ta.atr(atr_len)
plot(ema_fast, color=color.new(color.green, 0), title="EMA 20")
plot(ema_slow, color=color.new(color.red, 0), title="EMA 50")
// === TREND FILTER ===
trend_bull = ema_fast > ema_slow
trend_bear = ema_fast < ema_slow
// === PULLBACK CONDITION ===
// Consider a pullback when price traded at/under EMA20 within the last 3 bars and now shows a bullish/bearish confirmation
pullback_bull = ta.lowest(low, 3) <= ema_fast and close > ema_fast
pullback_bear = ta.highest(high, 3) >= ema_fast and close < ema_fast
// === CONFIRMATION CANDLE ===
// Bullish confirmation: current close > open AND close > high (strong close)
// Bearish confirmation: current close < open AND close < low
bullish_candle = close > open and close > high
bearish_candle = close < open and close < low
// === ENTRY SIGNALS (Version C logic) ===
buySignal = trend_bull and pullback_bull and rsi >= rsi_min and bullish_candle
sellSignal = trend_bear and pullback_bear and rsi <= (100 - rsi_min) and bearish_candle
// Prevent firing signals too often
var int lastSignalBar = na
ok_to_fire = na(lastSignalBar) ? true : (bar_index - lastSignalBar) > max_signals_repeat
buyFire = buySignal and ok_to_fire
sellFire = sellSignal and ok_to_fire
if buyFire
lastSignalBar := bar_index
if sellFire
lastSignalBar := bar_index
// === SL / TP CALCULATION ===
var float sl_price = na
var float tp_price = na
var line sl_line = na
var line tp_line = na
var label sig_label = na
if buyFire
if use_atr_for_sl
sl_price := close - atr * atr_sl_mult
else
sl_price := ta.lowest(low, 3) - syminfo.mintick * 5
tp_price := close + (close - sl_price) * rr
// draw lines and label
line.delete(sl_line )
line.delete(tp_line )
label.delete(sig_label )
sl_line := line.new(bar_index, sl_price, bar_index + 50, sl_price, color=color.new(color.red, 0), width=1, extend=extend.right)
tp_line := line.new(bar_index, tp_price, bar_index + 50, tp_price, color=color.new(color.green, 0), width=1, extend=extend.right)
sig_label := label.new(bar_index, low, "BUY SL:" + str.tostring(sl_price, format.mintick) + " TP:" + str.tostring(tp_price, format.mintick), style=label.style_label_up, color=color.new(color.green,0), textcolor=color.white, size=size.small)
if sellFire
if use_atr_for_sl
sl_price := close + atr * atr_sl_mult
else
sl_price := ta.highest(high, 3) + syminfo.mintick * 5
tp_price := close - (sl_price - close) * rr
// draw lines and label
line.delete(sl_line )
line.delete(tp_line )
label.delete(sig_label )
sl_line := line.new(bar_index, sl_price, bar_index + 50, sl_price, color=color.new(color.red, 0), width=1, extend=extend.right)
tp_line := line.new(bar_index, tp_price, bar_index + 50, tp_price, color=color.new(color.green, 0), width=1, extend=extend.right)
sig_label := label.new(bar_index, high, "SELL SL:" + str.tostring(sl_price, format.mintick) + " TP:" + str.tostring(tp_price, format.mintick), style=label.style_label_down, color=color.new(color.red,0), textcolor=color.white, size=size.small)
// === PLOT SIGNAL ARROWS ===
plotshape(buyFire, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="BUY")
plotshape(sellFire, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="SELL")
// === ALERTS ===
alertcondition(buyFire, title="BUY Signal", message="Megvie C: BUY signal. SL: {{plot_0}} TP: {{plot_1}}")
alertcondition(sellFire, title="SELL Signal", message="Megvie C: SELL signal. SL: {{plot_0}} TP: {{plot_1}}")
alertcondition(ta.cross(close, tp_price), title="TP Hit", message="Megvie C: TP reached")
alertcondition(ta.cross(close, sl_price), title="SL Hit", message="Megvie C: SL reached")
// === NOTES ===
// - Optimized for 3-5 minute charts.
// - Test in paper trading before using real capital.
// - Adjust ATR multiplier and RR to match your risk management.
ULTRA PRO SCALPING V6//@version=6
indicator("ULTRA PRO SCALPING V6", overlay=true, max_lines_count=500, max_labels_count=500)
// SETTINGS
lengthEMA = input.int(21, "EMA Trend")
riskRR = input.float(1.5, "Ratio TP/SL", step=0.1)
sl_pips = input.float(0.15, "Stop Loss (%)", step=0.01)
showTP_SL = input.bool(true, "Afficher TP & SL")
showSignals = input.bool(true, "Afficher Signaux")
// TREND FILTER
ema = ta.ema(close, lengthEMA)
plot(ema, "EMA", color=color.new(color.yellow, 0), linewidth=2)
// ENTRY SIGNALS
longSignal = ta.crossover(close, ema)
shortSignal = ta.crossunder(close, ema)
// TP/SL SYSTEM
var float lastSL = na
var float lastTP = na
if longSignal
lastSL := close * (1 - sl_pips/100)
lastTP := close + (close - lastSL) * riskRR
if shortSignal
lastSL := close * (1 + sl_pips/100)
lastTP := close - (lastSL - close) * riskRR
// DISPLAY
if showTP_SL and not na(lastSL)
line.new(bar_index-1, lastSL, bar_index, lastSL, color=color.red)
label.new(bar_index, lastSL, "SL", color=color.red)
if showTP_SL and not na(lastTP)
line.new(bar_index-1, lastTP, bar_index, lastTP, color=color.green)
label.new(bar_index, lastTP, "TP", color=color.green)
if showSignals and longSignal
label.new(bar_index, low, "BUY", color=color.green, style=label.style_label_up)
if showSignals and shortSignal
label.new(bar_index, high, "SELL", color=color.red, style=label.style_label_down)
// ALERTS
alertcondition(longSignal, "BUY Signal", "Signal d’achat détecté")
alertcondition(shortSignal, "SELL Signal", "Signal de vente détecté")
Every Hour 1st/Last FVG vTDL OVERVIEW - Shoutout to Micheal J. Huddleston aka ICT
This indicator identifies the first Fair Value Gap (FVG) that forms within each trading hour, providing traders with potential entry zones, reversal points, and unmitigated gap targets. Based on the concept that the first presented FVG of each hour represents a significant price delivery array where institutional order flow occurred.
The indicator detects FVGs on a lower timeframe (1-minute default) and displays them as boxes on your chart, tracking which gaps get filled and which remain open as potential draw-on-liquidity targets.
WHAT IS A FAIR VALUE GAP
A Fair Value Gap is a 3-candle price pattern representing an imbalance between buyers and sellers:
Bullish FVG: Forms when candle 3's low is above candle 1's high, leaving a gap
Bearish FVG: Forms when candle 3's high is below candle 1's low, leaving a gap
These gaps often act as magnets for price, which tends to return and "fill" the imbalance before continuing. They function as dynamic support and resistance zones.
KEY FEATURES
Detection Types
FVG: Standard fair value gap detection with volume imbalance expansion
Suspension FVG Blocks: Requires outside prints on both sides for more refined signals
Hourly Display Modes
First Only: Shows whichever FVG appears first each hour (bullish or bearish)
Show Both: Shows first bullish AND first bearish FVG independently each hour
Last FVG Tracking
Optionally display the last FVG of each hour
Useful for comparing how the hour developed
Can extend into the next hour for continued tracking
Breakaway Gap Detection
Gaps not traded into during their formation hour extend forward
Extended gaps display labels showing formation time and date
These unmitigated gaps become price targets and reversal zones
Gap Fill Modes
Touch Box: Marks filled when price enters the gap
Touch Midpoint: Marks filled when price reaches the 50 percent level
Fill Completely: Marks filled when price fills the entire gap with visual progress
HOW TO USE
Entry Points
The first FVG of each hour provides potential entry zones based on price reaction:
When price returns to an FVG and shows rejection, enter in the direction of rejection
The gap zone represents where institutional orders likely reside
Use the boundaries of the gap for stop loss placement
A clean rejection of the zone confirms it as valid support or resistance
Reversal Points
Unmitigated gaps that extend beyond their formation hour are high-probability reaction zones:
Extended boxes with labels indicate unfilled gaps
When price finally reaches these zones, expect a reaction
The longer a gap remains unfilled, the stronger the expected response
These zones act as magnets drawing price back to them
Price Targets
Use unmitigated gaps as draw-on-liquidity targets:
Look for extended boxes above or below current price
Price tends to seek out and fill imbalances
The midpoint line often serves as a minimum target
Multiple unfilled gaps in one direction suggest strong momentum potential
FRAMING DIRECTIONAL BIAS
The first presented FVG of each hour acts as a support or resistance zone. The direction of the FVG itself does not determine bias - it is how price reacts to that FVG that reveals the true market intention.
Reading Price Reaction
Price respects a bullish FVG as support and bounces higher = bullish bias confirmed
Price respects a bearish FVG as resistance and rejects lower = bearish bias confirmed
Price fails to hold a bullish FVG and breaks through = potential inversion, look for shorts
Price fails to hold a bearish FVG and breaks through = potential inversion, look for longs
Inversion Fair Value Gaps (IFVG)
When price trades through an FVG and closes beyond it, that gap can invert its role:
A bullish FVG that fails becomes resistance - use it as a short entry zone
A bearish FVG that fails becomes support - use it as a long entry zone
The inversion signals a shift in control from one side to the other
Watch for price to retest the inverted gap before continuing
Support and Resistance Framework
Think of each hourly first FVG as a key level:
Price above the FVG: the gap acts as potential support
Price below the FVG: the gap acts as potential resistance
Watch how price behaves when it returns to the gap zone
A clean rejection confirms the level; a break through signals inversion
SHORT-TERM SCALPING APPLICATION
These FVGs provide scalping opportunities each hour:
Identify the first FVG of the hour as your key level
Wait for price to trade away from it and return
Observe the reaction at the gap zone
Enter in the direction of the reaction with tight risk
Target the next FVG, midpoint, or nearby liquidity
Trade Management
Use the opposite side of the FVG box as your stop loss zone
The midpoint of the gap often provides first target or decision point
Scale out at nearby unmitigated gaps or key levels
If the gap inverts, flip your bias and look for entries in the new direction
MULTI-HOUR CONTEXT
If price consistently respects FVGs as support across hours = uptrend context
If price consistently respects FVGs as resistance across hours = downtrend context
If FVGs keep inverting = choppy or transitional market
Use higher timeframe direction to filter which reactions to trade
Compare first and last FVG of each hour to see how momentum developed
SESSION FILTERING
The indicator automatically excludes unreliable periods:
4 PM to 5 PM New York time (market close hours 16-17)
Weekend closed periods (Saturday and Sunday before 6 PM)
All timestamps use New York timezone for consistency with futures market hours.
SETTINGS GUIDE
Detection Settings
Detection Type: Choose between standard FVG or Suspension FVG Blocks
Lower Timeframe: 15 seconds, 1 minute, or 5 minutes for gap detection
Min FVG Size: Minimum gap size in ticks to filter noise
Display Settings
Hourly Display Mode: First Only shows one gap per hour; Show Both shows first bull and bear
Show First FVG: Toggle visibility of first FVG boxes
Show Last FVG: Toggle visibility of last FVG boxes
Show Midpoint Lines: Display the 50 percent level of each gap
Show Unfilled Breakaway Gaps: Extend boxes until price fills them
Show Only Today: Reduce clutter by hiding older hourly boxes
Gap Fill Detection Mode
Touch Box: Gap marked filled when price enters the zone
Touch Midpoint: Gap marked filled when price reaches 50 percent level
Fill Completely: Gap marked filled only when fully closed, shows visual fill progress
Recommended Settings by Style
Scalping: 1 minute LTF, 4 tick minimum, Show Both mode, Touch Box fill
Day Trading: 1 minute LTF, 4-8 tick minimum, First Only mode, Touch Midpoint fill
Swing Context: 5 minute LTF, Show Unfilled Gaps enabled, Fill Completely mode
COLOR CODING
Blue boxes: First bullish FVG of the hour
Red boxes: First bearish FVG of the hour
Green boxes: Last bullish FVG of the hour
Orange boxes: Last bearish FVG of the hour
Black midpoint lines: 50 percent level of each gap
Filled portion overlay: Shows visual progress in Fill Completely mode
All colors are fully customizable in the settings menu.
PRACTICAL TIPS
The first FVG of each hour is a hidden PD array - treat it as a significant level
Not every gap produces a tradeable reaction - wait for confirmation
Gaps that remain unfilled for multiple hours carry more weight
Use the Show Both mode to see both bullish and bearish opportunities each hour
When multiple gaps cluster in one zone, that area becomes even more significant
Inversions are powerful signals - a failed level often leads to acceleration
NOTES
Works on any instrument and timeframe
Best used on intraday charts (1 minute to 15 minute) viewing 1 minute LTF gaps
Combine with higher timeframe analysis for confluence
These are probability zones, not guarantees - always use proper risk management
The indicator handles HTF to LTF data fetching automatically
Cumulative Volume Delta with MACVD Candles with moving average of your choice of Hull, wma, EMA and SMA and choose your length. Not perfect so feel free to change it.
Moving average changes color with moving average positive or negative.
For entertainment purposes only.






















