Premium Trading Dashboard 💎 Premium Trading Dashboard - Comprehensive Description
This Pine Script v5 indicator is an elite-level all-in-one trading system designed for sophisticated traders on Bursa Malaysia. It combines institutional-grade analysis with smart money detection in a premium visual dashboard.
🎯 Core Purpose:
A comprehensive decision-making tool that analyzes 10+ technical dimensionssimultaneously to provide clear BUY/SELL signals, position sizing recommendations, and complete trade plans with entry/exit levels.

🔥 Key Features & Analysis Systems:
1. 📊 Multi-Dimensional Scoring System
Technical Rating (0-100)
• Moving Average Signals (25 pts): Price vs SMA20/50/200, MA alignment
• RSI Analysis (15 pts): Optimal 50-60 range, avoid extremes
• MACD Signals (15 pts): Line crossovers, histogram momentum
• Bollinger Bands (10 pts): Price position relative to bands
• Stochastic (10 pts): Oversold/overbought conditions
• Volume Confirmation (10 pts): Above MA20 and MA50
• ADX Trend Strength (15 pts): Strong trends above 25
Rating Levels:
• 🚀 80+: STRONG BUY
• 📈 65-79: BUY
• ↔️ 50-64: NEUTRAL
• 📉 35-49: WEAK
• 🔻 <35: VERY WEAK

Shark/Smart Money Rating (0-100)
Detects institutional and smart money activity:
• Volume Spikes (30 pts): 2x+ above MA20
• Large Candles (20 pts): 1.5x+ average range
• Strong Candles (25 pts): 70%+ body-to-range ratio
• Accumulation/Distribution (15 pts): A/D line momentum
Shark Signals:
• 🦈💰 BUYING HARD (70+): Aggressive institutional accumulation
• 🦈📈 BUYING (50+): Smart money entering
• 🦈💸 SELLING HARD (70+): Distribution phase
• 🦈📉 SELLING (50+): Smart money exiting
• ⚡ ACTIVE (40+): Moderate activity
• 😴 QUIET (<40): Low institutional interest

Momentum Score (0-100)
Measures price acceleration across multiple timeframes:
• 1-Day Change (15 pts): >3% = strong, >1% = moderate
• 5-Day Change (15 pts): >5% = strong, >2% = moderate
• 20-Day Change (20 pts): >10% = strong, >5% = moderate
• RSI Momentum (25 pts): 60-70 optimal zone
• MACD Momentum (25 pts): Histogram rising + line above signal
Momentum Levels:
• 🚀 80+: VERY STRONG
• ⬆️ 65-79: STRONG
• ➡️ 50-64: MODERATE
• ⬇️ 35-49: WEAK
• 💤 <35: VERY WEAK

Quality Rating (QR Score 0-100)
Fundamental quality indicators:
• Price vs Key MAs (30 pts): Above SMA50 & SMA200
• MA Alignment (20 pts): Perfect 7>20>50>200 hierarchy
• Volume Consistency (20 pts): Above MA50, positive growth
• 52W Position (15 pts): Price in upper range (70%+)
• Trend Strength ADX (15 pts): Above 40
QR Rating:
• ⭐⭐⭐⭐⭐ 80+: EXCELLENT
• ⭐⭐⭐⭐ 65-79: GOOD
• ⭐⭐⭐ 50-64: AVERAGE
• ⭐⭐ 35-49: BELOW AVG
• ⭐ <35: POOR

2. 🔄 Market Phase Detection (Wyckoff Cycle)
Advanced cycle analysis identifying the 4 key market phases:
• 1️⃣ ACCUMULATION 🌊: "Smart money accumulating"
◦ Sideways at bottom, increasing volume, A/D rising
◦ Best phase for building positions
• 2️⃣ MARKUP 🚀: "Active buying phase"
◦ Strong uptrend, price above all MAs
◦ Momentum building, breakouts occurring
• 3️⃣ DISTRIBUTION ⚠️: "Smart money distributing"
◦ Sideways at top, high volume, A/D falling
◦ Warning phase - prepare to exit
• 4️⃣ MARKDOWN 📉: "Active selling phase"
◦ Downtrend, price below MAs
◦ Avoid new entries
• ↔️ TRANSITION: Between phases

3. 💎 Conviction Level (Composite Score)
Weighted combination of all ratings:
• Technical (30%) + Shark (25%) + Momentum (25%) + QR (20%)
Conviction Levels:
• 💎💎💎 80+: VERY HIGH - Maximum confidence
• 💎💎 65-79: HIGH - Strong confidence
• 💎 50-64: MODERATE - Reasonable confidence
• ⚠️ 35-49: LOW - Weak conviction
• ❌ <35: VERY LOW - Avoid

4. 📋 Analyst Rating (Overall Score)
Final composite recommendation:
• Technical (35%) + Shark (25%) + Momentum (25%) + QR (15%)
Analyst Ratings:
• ⭐⭐⭐⭐⭐ 80+: STRONG BUY
• ⭐⭐⭐⭐ 65-79: BUY
• ⭐⭐⭐ 50-64: HOLD
• ⭐⭐ 35-49: WEAK
• ⭐ <35: AVOID

5. 🎯 Trading Signal Generation (LONG Only)
Smart signal logic with multiple confirmations:
• 🚀 STRONG BUY: Tech 70+, Momentum 60+, Volume spike, Price > SMA20, RSI < 70
• 📈 BUY: Tech 60+, Momentum 50+, Price > SMA20, RSI < 65
• ⏳ WAIT & WATCH: Tech/Conviction 50+
• 🛑 AVOID: Below thresholds

6. 💰 Position Size Recommendation
Risk-based position sizing (% of capital):
• 💰 FULL (5%): Conviction 75+ - Highest confidence
• 💵 LARGE (3-4%): Conviction 60-74 - Strong confidence
• 💳 MEDIUM (2-3%): Conviction 45-59 - Moderate confidence
• 💸 SMALL (1-2%): Conviction 30-44 - Low confidence
• 🚫 AVOID: Conviction <30

7. 📊 Volume Analysis
Real-time volume assessment:
• 🔥🔥🔥 EXTREME: 3x+ above MA20
• 🔥🔥 VERY HIGH: 2x+ above MA20
• 🔥 HIGH: 1.5x+ above MA20
• ⬆️ ABOVE AVG: 1x-1.5x MA20
• ➡️ NORMAL: 0.7x-1x MA20
• ⬇️ LOW: Below 0.7x MA20

8. 📈 Trend Analysis
Dynamic trend detection with duration tracking:
• 📈 STRONG BULLISH: All MAs perfectly aligned (7>20>50>200)
• 📈 BULLISH: Major MAs aligned (20>50>200)
• 📉 STRONG BEARISH: All MAs reversed (7<20<50<200)
• 📉 BEARISH: Major MAs reversed
• ↔️ SIDEWAYS: Mixed alignment
Trend Duration Counter: Shows how many bars trend has persisted

9. 🔥 Catalysts Detection
Identifies multiple positive triggers simultaneously:
• 52-week high breakout
• Smart money buying
• Volume spike (2x+)
• Strong daily move (3%+)
• Bollinger Band breakout
Catalyst Status:
• 🔥🔥🔥 MULTIPLE (4-5): Explosive setup
• 🔥🔥 STRONG (3): Strong setup
• 🔥 PRESENT (2): Good setup
• ⚡ MINOR (1): Weak setup
• ➖ NONE (0): No catalysts

10. 🎮 Trading Mode Recommendation
Suggests optimal trading strategy:
• 🎯 TREND FOLLOW: ADX 40+, strong uptrend
• 📊 RANGE TRADE: ADX <20, sideways between SMAs
• 🦈 SMART MONEY: Following institutional activity
• 🚀 BREAKOUT: Breaking 52W or period high
• ⚡ MOMENTUM: Strong momentum score
• ⏸️ WAIT: No clear opportunity

11. ✅ Overall Status
Clear action recommendation:
• ✅ READY TO BUY: Analyst 75+, Conviction 70+
• 🟢 GOOD TO BUY: Analyst 60+, Conviction 55+
• 🟡 MONITOR: Analyst 45+
• 🟠 CAUTION: Analyst 30-44
• 🔴 AVOID: Analyst <30

12. 💰 Complete Trade Plan
Automatically calculates:
• 🎯 Entry Price: Current close
• 🛑 Stop Loss: ATR-based (2x for big cap, 2.5x for penny stocks)
• 💚 TP1: 1.5R risk-reward
• 💎 TP2: 2.5R risk-reward
• 🏆 TP3: 4.0R risk-reward
• 📊 Risk/Share: Amount risked per share

🎨 Visual Components:
Premium Dashboard (24-Row Table)
• Dark theme with blue frame (#0a0e27 bg, #1e88e5 frame)
• Gold headers (#ffd54f) for section labels
• Color-coded values based on conditions
• Customizable position: 4 corner options
• Real-time updates on every bar
Additional Indicators:
• Moving Averages: SMA 7/20/50/200, EMA 9/21
• Bollinger Bands: 20-period, 2 std dev
• 52-Week High/Low: 252 trading days
• Breakout Lines: Customizable period

🔔 Built-in Alerts:
1. Strong Buy Signal: Tech + Momentum + Volume aligned
2. Shark Buy Alert: Institutional buying detected
3. Multiple Catalysts: 3+ triggers present
4. Strong Buy Rating: Analyst score reaches 80+

⚙️ Customizable Parameters:
• Technical: RSI period, MACD settings
• Shark Detection: Volume multiplier, candle size
• Breakout: Lookback period
• TP/SL: Separate multipliers for big cap vs penny stocks
• Display: Dashboard on/off, position
• Risk-Reward Ratios: Customize TP1/2/3 levels

🎯 Best Use Cases:
✅ Bursa Malaysia LONG-only trading
✅ Swing trading with institutional confirmation
✅ Multi-timeframe analysis (Daily, 4H, 1H)
✅ Position sizing and risk management
✅ Identifying accumulation phases early
✅ High-probability breakout trading
✅ Avoiding distribution zones

🚀 Trading Workflow:
1. Check Overall Status - Ready to buy?
2. Review Analyst Rating - Overall score
3. Confirm Market Phase - Accumulation/Markup best
4. Verify Shark Activity - Smart money buying?
5. Check Catalysts - Multiple triggers?
6. Review Trade Plan - Entry/SL/TP levels
7. Set Position Size - Based on conviction
8. Monitor Trend and Volume - Stay aligned

This is a professional-grade institutional analysis tool condensed into one powerful indicator, perfect for serious traders who want data-driven decisions with smart money confirmation. 💎📈
Candlestick analysis
Multi SMA Indicator📊 Multi SMA Indicator - Description
This Pine Script v5 indicator is a comprehensive technical analysis system that combines multiple essential components for stock trading on Bursa Malaysia (LONG-only strategies).
✨ Key Features:
1. Multiple Simple Moving Averages (SMA)
• SMA 7 (Red) - Very short-term trend
• SMA 20 (Blue) - Short-term trend
• SMA 50 (Black) - Medium-term trend
• SMA 200 (Magenta) - Long-term trend
• All SMAs can be individually shown/hidden
2. 52-Week High/Low (Bursa Malaysia Standard)
• Uses 252 trading days
• 52W High (Green) - Yearly resistance level
• 52W Low (Red) - Yearly support level
• Detects breakouts at these critical levels
3. Bollinger Bands
• BB Length: 20 (customizable)
• Standard Deviation: 2.0
• Special candlestick coloring:
◦ Yellow: Price open & close below Lower BB (strong oversold signal)
◦ Purple: Price below Lower BB
4. Breakout Detection
• Detects breakouts with volume confirmation
• Breakout period: 20 bars (customizable)
• Volume Multiplier: 1.5x above MA20
• Candlestick coloring:
◦ Aqua 🌊: 52-week high breakout
◦ Orange 🍊: 52-week low breakdown
◦ Lime 🟢: Bullish breakout
◦ Magenta 🟣: Bearish breakout
5. Jerun Trend Signals (Trend Confirmation)
• 🦈 Jerun Buy (Aqua): Uptrend confirmation
◦ SMA7 > SMA20 > SMA50 (alignment)
◦ Price above SMA7
◦ Bullish candle with consecutive rises
• 🔥 Jerun Sell (Orange): Downtrend warning
◦ SMA7 < SMA20 < SMA50 (downtrend alignment)
◦ Price below SMA7
◦ Bearish candle with consecutive declines
6. Strong Momentum Detection
• 🚀 Signal: Strong momentum with criteria:
◦ Candle size > 1.5x ATR(14)
◦ Price increase ≥ 3% (threshold customizable)
◦ Volume spike (1.5x above MA20)
◦ Price above SMA7
7. Golden Cross & Death Cross
• 🐃 Golden Cross (Lime): Bullish signal
◦ SMA50 crosses above SMA200 (most powerful)
◦ SMA20 crosses above SMA50
• 🐻 Death Cross (Red): Bearish warning
◦ SMA50 crosses below SMA200
◦ SMA20 crosses below SMA50
📍 Visual Components:
1. Moving Average Lines - 4 SMA lines with distinct colors
2. 52W High/Low Lines - Stepline style for yearly levels
3. Bollinger Bands - 3 lines (upper, middle, lower)
4. Candlestick Colors - Dynamic coloring based on conditions
5. Signal Emojis - 🚀🦈🔥🐃🐻 for quick visual reference
6. Price Labels - Current value labels on the right side of chart
🎯 Usage:
• LONG Only: Focus on buy signals (Bursa Malaysia restriction)
• Entry Signals: Jerun Buy 🦈, Strong Momentum 🚀, Golden Cross 🐃
• Confirmation: Volume spike + Breakout + SMA alignment
• Risk Warning: Jerun Sell 🔥, Death Cross 🐻
• Oversold Opportunity: Yellow/purple candlesticks (price below BB Lower)
⚙️ Customizable Settings:
All parameters can be modified through indicator settings:
• SMA periods
• Breakout length
• Volume multiplier
• Momentum threshold
• Bollinger Bands parameters
• Toggle display for each feature
This indicator is suitable for traders who want a complete system with multiple confirmation signals for entry and risk management. 🚀📈
Gamma Hedging Pressure 🧠 HOW TO USE THIS (TRADING RULES):
🔴 NEGATIVE GAMMA (Red)
✔ Trade breakouts
✔ Hold winners
✔ Avoid fading moves
✔ Best for trend days
🟢 POSITIVE GAMMA (Green)
✔ Trade mean reversion
✔ Fade extremes
✔ Take profits quickly
✔ Best for scalping
⚪ NEUTRAL
❌ Reduce size
❌ Avoid forcing trades
CRE Multi Pair Scanner
✔ 1 lead asset (capital source)
✔ Multiple receiver assets
✔ CRE signal fires per asset
✔ Table + labels show rotation winner
Capital Rotational Event (CRE)What is a Capital Rotational Event (CRE)?
A Capital Rotational Event is when money shifts from one asset to another — e.g., rotation from stocks into bonds, from tech into commodities, or from one sector into another.
In technical terms it typically shows:
✔ Divergence between two asset price series
✔ Relative strength switching direction
✔ Volume/flow confirming rotation
✔ Often precedes trend acceleration in the “receiver” asset
All-in-One SMC: CHOCH | BOS | FVG | OB | LiquidityThis script combines:
BOS (Break of Structure)
CHOCH (Change of Character)
Bullish & Bearish FVGs
Mitigation Order Blocks
Liquidity grabs (equal highs/lows)
Discount / Premium zones (relative to equilibrium)
TJR asia session sweep//@version=5
strategy("TJR asia session sweep", "TJR Asia Sweep", overlay=true, max_lines_count=500, max_labels_count=500)
// Input settings
show_asian = input.bool(true, "Show Asian Session", group="Visual Settings")
show_london = input.bool(true, "Show London Session", group="Visual Settings")
show_swing_points = input.bool(true, "Show Asian Swing Points", group="Visual Settings")
show_market_structure = input.bool(true, "Show Market Structure", group="Visual Settings")
show_bos = input.bool(true, "Show Break of Structure", group="Visual Settings")
// Session Time Settings
asian_start_hour_input = input.int(22, "Asian Session Start Hour", minval=0, maxval=23, group="Session Times")
asian_end_hour_input = input.int(3, "Asian Session End Hour", minval=0, maxval=23, group="Session Times")
london_start_hour_input = input.int(3, "London Session Start Hour", minval=0, maxval=23, group="Session Times")
london_end_hour_input = input.int(8, "London Session End Hour", minval=0, maxval=23, group="Session Times")
session_timezone = input.string("America/New_York", "Session Timezone", options= , group="Session Times")
// Risk Management Settings
use_atr_sl = input.bool(false, "Use ATR Multiplier for Stop Loss", group="Risk Management")
atr_length = input.int(14, "ATR Length", minval=1, maxval=50, group="Risk Management")
atr_multiplier = input.float(2.0, "ATR Multiplier for Stop Loss", minval=0.5, maxval=10.0, group="Risk Management")
force_london_close = input.bool(true, "Force Close at London Session End", group="Risk Management")
cutoff_minutes = input.int(60, "Minutes Before Session End to Stop New Trades", minval=0, maxval=300, group="Risk Management")
// Position Sizing Settings
position_sizing_method = input.string("USD Risk", "Position Sizing Method", options= , group="Position Sizing")
usd_risk_per_trade = input.float(100.0, "USD Risk Per Trade", minval=1.0, maxval=10000.0, group="Position Sizing")
fixed_contracts = input.float(1.0, "Fixed Number of Contracts", minval=0.01, maxval=1000.0, step=0.01, group="Position Sizing")
// Color settings
asian_color = input.color(color.red, "Asian Session Color")
london_color = input.color(color.blue, "London Session Color")
swing_high_color = input.color(color.orange, "Swing High Color")
swing_low_color = input.color(color.lime, "Swing Low Color")
bullish_structure_color = input.color(color.green, "Bullish Structure Color")
bearish_structure_color = input.color(color.red, "Bearish Structure Color")
bos_color = input.color(color.orange, "Break of Structure Color")
// Line settings
line_width = input.int(2, "Line Width", minval=1, maxval=5)
// ATR calculation for stop loss
atr = ta.atr(atr_length)
// Position size calculation function
calculate_position_size(entry_price, stop_loss_price) =>
var float position_size = na
if position_sizing_method == "Fixed Contracts"
position_size := fixed_contracts
else // USD Risk method
stop_distance = math.abs(entry_price - stop_loss_price)
if stop_distance > 0
// Calculate position size based on USD risk per trade
// For forex: position_size = risk_amount / (stop_distance * point_value)
// For most forex pairs, point value = 1 (since we're dealing with price differences directly)
position_size := usd_risk_per_trade / stop_distance
else
position_size := fixed_contracts // Fallback to fixed contracts if stop distance is 0
position_size
// Session time definitions (using input variables)
asian_start_hour = asian_start_hour_input
asian_end_hour = asian_end_hour_input
london_start_hour = london_start_hour_input
london_end_hour = london_end_hour_input
// Get current hour using selected timezone
current_hour = hour(time, session_timezone)
// Previous hour for transition detection
prev_hour = hour(time , session_timezone)
// Session transition detection
asian_start = current_hour == asian_start_hour and prev_hour != asian_start_hour
asian_end = current_hour == asian_end_hour and prev_hour != asian_end_hour
london_start = current_hour == london_start_hour and prev_hour != london_start_hour
london_end = current_hour == london_end_hour and prev_hour != london_end_hour
// Session activity detection
asian_active = (current_hour >= asian_start_hour) or (current_hour < asian_end_hour)
london_active = (current_hour >= london_start_hour) and (current_hour < london_end_hour)
// Session boxes - keep previous sessions visible
var box asian_session_box = na
var box london_session_box = na
// Create Asian session box
if show_asian and asian_start
// Create new box at session start (previous box remains visible)
asian_session_box := box.new(bar_index, high, bar_index + 1, low,
border_color=asian_color, bgcolor=color.new(asian_color, 90),
border_width=2, border_style=line.style_solid)
// Pre-calculate session highs and lows for consistency
asian_session_length = asian_active and not na(asian_session_box) ? bar_index - box.get_left(asian_session_box) + 1 : 1
current_asian_high = ta.highest(high, asian_session_length)
current_asian_low = ta.lowest(low, asian_session_length)
// Update Asian session box continuously during session
if show_asian and asian_active and not na(asian_session_box)
box.set_right(asian_session_box, bar_index)
// Update box to contain session highs and lows
box.set_top(asian_session_box, current_asian_high)
box.set_bottom(asian_session_box, current_asian_low)
// Create London session box
if show_london and london_start
// Create new box at session start (previous box remains visible)
london_session_box := box.new(bar_index, high, bar_index + 1, low,
border_color=london_color, bgcolor=color.new(london_color, 90),
border_width=2, border_style=line.style_solid)
// Pre-calculate London session highs and lows for consistency
london_session_length = london_active and not na(london_session_box) ? bar_index - box.get_left(london_session_box) + 1 : 1
current_london_high = ta.highest(high, london_session_length)
current_london_low = ta.lowest(low, london_session_length)
// Update London session box continuously during session
if show_london and london_active and not na(london_session_box)
box.set_right(london_session_box, bar_index)
// Update box to contain session highs and lows
box.set_top(london_session_box, current_london_high)
box.set_bottom(london_session_box, current_london_low)
// Asian Session Swing Points Detection
var float asian_session_high = na
var float asian_session_low = na
var int asian_high_bar = na
var int asian_low_bar = na
// Asian Session Absolute High/Low for TP levels
var float asian_absolute_high = na
var float asian_absolute_low = na
var line asian_high_line = na
var line asian_low_line = na
var label asian_high_label = na
var label asian_low_label = na
var bool high_broken = false
var bool low_broken = false
// London Session High/Low tracking for stop loss
var float london_session_high = na
var float london_session_low = na
// Market structure tracking variables
var string breakout_direction = na // "bullish" or "bearish"
var float last_hh_level = na // Last Higher High level
var float last_hl_level = na // Last Higher Low level
var float last_ll_level = na // Last Lower Low level
var float last_lh_level = na // Last Lower High level
var int structure_count = 0
var string last_structure_type = na // "HH", "HL", "LL", "LH"
// Legacy variables for compatibility
var float last_swing_high = na
var float last_swing_low = na
var int last_high_bar = na
var int last_low_bar = na
// Market structure state tracking
var float pending_high = na
var float pending_low = na
var int pending_high_bar = na
var int pending_low_bar = na
var bool waiting_for_confirmation = false
// Break of Structure tracking variables
var float most_recent_hl = na
var float most_recent_lh = na
var int most_recent_hl_bar = na
var int most_recent_lh_bar = na
var bool bos_detected = false
// Trading variables
var bool trade_taken = false
// Trade visualization boxes (based on Casper strategy approach)
var box current_profit_box = na
var box current_sl_box = na
// Update swing points during Asian session
if asian_active and show_swing_points
// Always track absolute high/low for both TP levels and breakout detection
if na(asian_absolute_high) or high > asian_absolute_high
asian_absolute_high := high
if na(asian_absolute_low) or low < asian_absolute_low
asian_absolute_low := low
// Use absolute high/low for breakout levels (simplified logic)
if na(asian_session_high) or high > asian_session_high
asian_session_high := high
asian_high_bar := bar_index
if na(asian_session_low) or low < asian_session_low
asian_session_low := low
asian_low_bar := bar_index
// Track London session high/low for stop loss levels
if london_active
if na(london_session_high) or high > london_session_high
london_session_high := high
if na(london_session_low) or low < london_session_low
london_session_low := low
// Draw initial lines when Asian session ends
if asian_end and show_swing_points
if not na(asian_session_high) and not na(asian_high_bar)
// Draw extending line for high
asian_high_line := line.new(asian_high_bar, asian_session_high, bar_index + 200, asian_session_high,
color=swing_high_color, width=2, style=line.style_dashed, extend=extend.right)
asian_high_label := label.new(bar_index + 5, asian_session_high, "Asian High: " + str.tostring(asian_session_high, "#.####"), style=label.style_label_left, color=swing_high_color, textcolor=color.white, size=size.small)
if not na(asian_session_low) and not na(asian_low_bar)
// Draw extending line for low
asian_low_line := line.new(asian_low_bar, asian_session_low, bar_index + 200, asian_session_low,
color=swing_low_color, width=2, style=line.style_dashed, extend=extend.right)
asian_low_label := label.new(bar_index + 5, asian_session_low, "Asian Low: " + str.tostring(asian_session_low, "#.####"), style=label.style_label_left, color=swing_low_color, textcolor=color.white, size=size.small)
// Reset break flags for new session
high_broken := false
low_broken := false
// Check for breakouts during London session
if london_active and show_swing_points and not na(asian_session_high) and not na(asian_session_low)
// Check if Asian high is broken
if not high_broken and not low_broken and high > asian_session_high
high_broken := true
// Update high line to end at break point
if not na(asian_high_line)
line.set_x2(asian_high_line, bar_index)
line.set_extend(asian_high_line, extend.none)
// Remove the low line (first break wins)
if not na(asian_low_line)
line.delete(asian_low_line)
if not na(asian_low_label)
label.delete(asian_low_label)
// Add break marker
label.new(bar_index, asian_session_high * 1.001, "HIGH BREAK!",
style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
// Set breakout direction and initialize structure tracking
breakout_direction := "bullish"
last_swing_high := asian_session_high
last_swing_low := asian_session_low
last_high_bar := bar_index
structure_count := 0
// Check if Asian low is broken
if not low_broken and not high_broken and low < asian_session_low
low_broken := true
// Update low line to end at break point
if not na(asian_low_line)
line.set_x2(asian_low_line, bar_index)
line.set_extend(asian_low_line, extend.none)
// Remove the high line (first break wins)
if not na(asian_high_line)
line.delete(asian_high_line)
if not na(asian_high_label)
label.delete(asian_high_label)
// Add break marker
label.new(bar_index, asian_session_low * 0.999, "LOW BREAK!",
style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Set breakout direction and initialize structure tracking
breakout_direction := "bearish"
last_swing_high := asian_session_high
last_swing_low := asian_session_low
last_low_bar := bar_index
structure_count := 0
// Stop extending lines when London session ends (if not already broken)
if london_end and show_swing_points
if not high_broken and not na(asian_high_line)
line.set_x2(asian_high_line, bar_index)
line.set_extend(asian_high_line, extend.none)
if not low_broken and not na(asian_low_line)
line.set_x2(asian_low_line, bar_index)
line.set_extend(asian_low_line, extend.none)
// Force close all trades at London session end (if enabled)
if london_end and force_london_close
if strategy.position_size != 0
// Extend boxes immediately before session close to prevent timing issues
if not na(current_profit_box)
// Ensure minimum 8 bars width or extend to current bar, whichever is longer
box_left = box.get_left(current_profit_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_profit_box, final_right)
current_profit_box := na // Clear reference after extending
if not na(current_sl_box)
// Ensure minimum 8 bars width or extend to current bar, whichever is longer
box_left = box.get_left(current_sl_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_sl_box, final_right)
current_sl_box := na // Clear reference after extending
strategy.close_all(comment="London Close")
trade_taken := false // Reset trade flag for next session
// Market structure detection after breakout (only during London session and before first BoS)
if show_market_structure and not na(breakout_direction) and london_active and not bos_detected
// Bullish structure tracking (HH, HL alternating)
if breakout_direction == "bullish"
// Check for Higher High pattern: Bullish candle followed by bearish candle
pattern_high = math.max(high , high)
prev_hh = na(last_hh_level) ? last_swing_high : last_hh_level
// HH Detection: Only if we expect HH next (no last structure or last was HL)
if (na(last_structure_type) or last_structure_type == "HL") and close > open and close < open and pattern_high > prev_hh and close > prev_hh
// Check consolidation
is_too_close = not na(last_high_bar) and (bar_index - last_high_bar) <= 4
should_create_hh = true
if is_too_close and structure_count > 0 and pattern_high <= last_hh_level
should_create_hh := false
if should_create_hh
structure_count := structure_count + 1
label.new(bar_index - 1, high + (high * 0.0003), "HH" + str.tostring(structure_count),
style=label.style_none, color=color.new(color.white, 100),
textcolor=color.white, size=size.small)
last_hh_level := pattern_high
last_swing_high := pattern_high
last_high_bar := bar_index
last_structure_type := "HH"
// HL Detection: Only if we expect HL next (last was HH)
pattern_low = math.min(low , low)
prev_hl = na(last_hl_level) ? last_swing_low : last_hl_level
if last_structure_type == "HH" and close < open and close > open and pattern_low > prev_hl and close > prev_hl
// Check consolidation
is_too_close = not na(last_low_bar) and (bar_index - last_low_bar) <= 4
should_create_hl = true
if is_too_close and pattern_low <= last_hl_level
should_create_hl := false
if should_create_hl
structure_count := structure_count + 1
label.new(bar_index - 1, low - (low * 0.0003), "HL" + str.tostring(structure_count),
style=label.style_none, color=color.new(color.white, 100),
textcolor=color.white, size=size.small)
last_hl_level := pattern_low
most_recent_hl := pattern_low // Update most recent HL for BoS detection
most_recent_hl_bar := bar_index - 1 // Store HL bar position
last_low_bar := bar_index
last_structure_type := "HL"
// Bearish structure tracking (LL, LH alternating)
if breakout_direction == "bearish"
// Check for Lower Low pattern: Bearish candle followed by bullish candle
pattern_low = math.min(low , low)
prev_ll = na(last_ll_level) ? last_swing_low : last_ll_level
// LL Detection: Only if we expect LL next (no last structure or last was LH)
if (na(last_structure_type) or last_structure_type == "LH") and close < open and close > open and pattern_low < prev_ll and close < prev_ll
// Check consolidation
is_too_close = not na(last_low_bar) and (bar_index - last_low_bar) <= 4
should_create_ll = true
if is_too_close and structure_count > 0 and pattern_low >= last_ll_level
should_create_ll := false
if should_create_ll
structure_count := structure_count + 1
label.new(bar_index - 1, low - (low * 0.0003), "LL" + str.tostring(structure_count),
style=label.style_none, color=color.new(color.white, 100),
textcolor=color.white, size=size.small)
last_ll_level := pattern_low
last_swing_low := pattern_low
last_low_bar := bar_index
last_structure_type := "LL"
// LH Detection: Only if we expect LH next (last was LL)
pattern_high = math.max(high , high)
prev_lh = na(last_lh_level) ? last_swing_high : last_lh_level
if last_structure_type == "LL" and close > open and close < open and pattern_high < prev_lh and close < prev_lh
// Check consolidation
is_too_close = not na(last_high_bar) and (bar_index - last_high_bar) <= 4
should_create_lh = true
if is_too_close and pattern_high >= last_lh_level
should_create_lh := false
if should_create_lh
structure_count := structure_count + 1
label.new(bar_index - 1, high + (high * 0.0003), "LH" + str.tostring(structure_count),
style=label.style_none, color=color.new(color.white, 100),
textcolor=color.white, size=size.small)
last_lh_level := pattern_high
most_recent_lh := pattern_high // Update most recent LH for BoS detection
most_recent_lh_bar := bar_index - 1 // Store LH bar position
last_high_bar := bar_index
last_structure_type := "LH"
// Check if we're within the cutoff period before London session end
current_minute = minute(time, session_timezone)
london_end_time_minutes = london_end_hour * 60 // Convert London end hour to minutes
current_time_minutes = current_hour * 60 + current_minute // Current time in minutes
// Calculate minutes remaining in London session
london_session_minutes_remaining = london_end_time_minutes - current_time_minutes
// Handle day rollover case (e.g., if london_end is 8:00 (480 min) and current is 23:30 (1410 min))
if london_session_minutes_remaining < 0
london_session_minutes_remaining := london_session_minutes_remaining + (24 * 60) // Add 24 hours in minutes
// Only allow trades if more than cutoff_minutes remaining in London session
allow_new_trades = london_session_minutes_remaining > cutoff_minutes
// Break of Structure (BoS) Detection and Trading Logic - Only first BoS per London session and outside cutoff period
if show_bos and london_active and show_market_structure and not bos_detected and not trade_taken and allow_new_trades
// Bullish BoS: Price closes below the most recent HL (after bullish breakout) - SELL SIGNAL
if breakout_direction == "bullish" and not na(most_recent_hl) and not na(most_recent_hl_bar)
// Check minimum distance requirement (at least 4 candles between BoS and HL)
if close < most_recent_hl and (bar_index - most_recent_hl_bar) >= 4
// Draw dotted line from HL position to BoS point
line.new(most_recent_hl_bar, most_recent_hl, bar_index, most_recent_hl,
color=bos_color, width=2, style=line.style_dotted, extend=extend.none)
// Calculate center position for BoS label
center_bar = math.round((most_recent_hl_bar + bar_index) / 2)
// Draw BoS label below the line for HL break
label.new(center_bar, most_recent_hl - (most_recent_hl * 0.0005), "BoS",
style=label.style_none, color=color.new(color.white, 100),
textcolor=bos_color, size=size.normal)
// SELL ENTRY
if not na(london_session_high) and not na(asian_absolute_low)
// Calculate stop loss based on settings
stop_loss_level = use_atr_sl ? close + (atr * atr_multiplier) : london_session_high
take_profit_level = asian_absolute_low
entry_price = close
// Calculate position size based on user settings
position_size = calculate_position_size(entry_price, stop_loss_level)
strategy.entry("SELL", strategy.short, qty=position_size, comment="BoS Sell")
strategy.exit("SELL EXIT", "SELL", stop=stop_loss_level, limit=take_profit_level, comment="SL/TP")
// Create trade visualization boxes (TradingView style) - minimum 8 bars width
// Blue profit zone box (from entry to take profit)
current_profit_box := box.new(left=bar_index, top=take_profit_level, right=bar_index + 8, bottom=entry_price,
bgcolor=color.new(color.blue, 70), border_width=0)
// Red stop loss zone box (from entry to stop loss)
current_sl_box := box.new(left=bar_index, top=entry_price, right=bar_index + 8, bottom=stop_loss_level,
bgcolor=color.new(color.red, 70), border_width=0)
trade_taken := true
bos_detected := true // Mark BoS as detected for this session
// Bearish BoS: Price closes above the most recent LH (after bearish breakout) - BUY SIGNAL
if breakout_direction == "bearish" and not na(most_recent_lh) and not na(most_recent_lh_bar)
// Check minimum distance requirement (at least 4 candles between BoS and LH)
if close > most_recent_lh and (bar_index - most_recent_lh_bar) >= 4
// Draw dotted line from LH position to BoS point
line.new(most_recent_lh_bar, most_recent_lh, bar_index, most_recent_lh,
color=bos_color, width=1, style=line.style_dotted, extend=extend.none)
// Calculate center position for BoS label
center_bar = math.round((most_recent_lh_bar + bar_index) / 2)
// Draw BoS label above the line for LH break
label.new(center_bar, most_recent_lh + (most_recent_lh * 0.0005), "BoS",
style=label.style_none, color=color.new(color.white, 100),
textcolor=bos_color, size=size.normal)
// BUY ENTRY
if not na(london_session_low) and not na(asian_absolute_high)
// Calculate stop loss based on settings
stop_loss_level = use_atr_sl ? close - (atr * atr_multiplier) : london_session_low
take_profit_level = asian_absolute_high
entry_price = close
// Calculate position size based on user settings
position_size = calculate_position_size(entry_price, stop_loss_level)
strategy.entry("BUY", strategy.long, qty=position_size, comment="BoS Buy")
strategy.exit("BUY EXIT", "BUY", stop=stop_loss_level, limit=take_profit_level, comment="SL/TP")
// Create trade visualization boxes (TradingView style) - minimum 8 bars width
// Blue profit zone box (from entry to take profit)
current_profit_box := box.new(left=bar_index, top=entry_price, right=bar_index + 8, bottom=take_profit_level,
bgcolor=color.new(color.blue, 70), border_width=0)
// Red stop loss zone box (from entry to stop loss)
current_sl_box := box.new(left=bar_index, top=stop_loss_level, right=bar_index + 8, bottom=entry_price,
bgcolor=color.new(color.red, 70), border_width=0)
trade_taken := true
bos_detected := true // Mark BoS as detected for this session
// Position close detection for extending boxes (based on Casper strategy)
if barstate.isconfirmed and strategy.position_size == 0 and strategy.position_size != 0
// Extend trade visualization boxes to exact exit point when position closes
if not na(current_profit_box)
// Ensure minimum 8 bars width or extend to current bar, whichever is longer
box_left = box.get_left(current_profit_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_profit_box, final_right)
current_profit_box := na // Clear reference after extending
if not na(current_sl_box)
// Ensure minimum 8 bars width or extend to current bar, whichever is longer
box_left = box.get_left(current_sl_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_sl_box, final_right)
current_sl_box := na // Clear reference after extending
// Backup safety check - extend boxes if position is closed but boxes still active
if not na(current_profit_box) and strategy.position_size == 0
box_left = box.get_left(current_profit_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_profit_box, final_right)
current_profit_box := na
if not na(current_sl_box) and strategy.position_size == 0
box_left = box.get_left(current_sl_box)
min_right = box_left + 8
final_right = math.max(min_right, bar_index)
box.set_right(current_sl_box, final_right)
current_sl_box := na
// Reset everything when new Asian session starts
if asian_start and show_swing_points
asian_session_high := na
asian_session_low := na
asian_high_bar := na
asian_low_bar := na
// Reset absolute levels
asian_absolute_high := na
asian_absolute_low := na
asian_high_line := na
asian_low_line := na
asian_high_label := na
asian_low_label := na
high_broken := false
low_broken := false
// Reset London session levels
london_session_high := na
london_session_low := na
// Reset market structure tracking
breakout_direction := na
last_hh_level := na
last_hl_level := na
last_ll_level := na
last_lh_level := na
last_swing_high := na
last_swing_low := na
last_high_bar := na
last_low_bar := na
structure_count := 0
last_structure_type := na
pending_high := na
pending_low := na
pending_high_bar := na
pending_low_bar := na
waiting_for_confirmation := false
// Reset BoS tracking
most_recent_hl := na
most_recent_lh := na
most_recent_hl_bar := na
most_recent_lh_bar := na
bos_detected := false
// Reset trading
trade_taken := false
// Reset current trade boxes
current_profit_box := na
current_sl_box := na
// Debug info (optional)
show_debug = input.bool(false, "Show Debug Info")
if show_debug
var table debug_table = table.new(position.top_right, 2, 3, bgcolor=color.white, border_width=1)
if barstate.islast
table.cell(debug_table, 0, 0, "Current Hour:", text_color=color.black)
table.cell(debug_table, 1, 0, str.tostring(current_hour), text_color=color.black)
table.cell(debug_table, 0, 1, "Asian Active:", text_color=color.black)
table.cell(debug_table, 1, 1, str.tostring((current_hour >= asian_start_hour) or (current_hour < asian_end_hour)), text_color=color.black)
table.cell(debug_table, 0, 2, "London Active:", text_color=color.black)
table.cell(debug_table, 1, 2, str.tostring((current_hour >= london_start_hour) and (current_hour < london_end_hour)), text_color=color.black)
SMA Reversal Sequential MTF - Pure Confirmed Final V2SMA Reversal Sequential MTF - Detailed Indicator Manual
This indicator identifies trend reversal points based on the shape of a Simple Moving Average (SMA) and monitors these signals across multiple timeframes (MTF). By synchronizing trends from various intervals, it provides a robust framework for identifying high-probability entry points.
1. Core Logic Overview
The indicator detects "peaks" and "troughs" in the SMA to identify potential reversal points.
Bullish Reversal (UP): Occurs when the SMA turns upward after a period of decline (forming a "trough").
Bearish Reversal (DN): Occurs when the SMA turns downward after a period of inclination (forming a "peak").
In addition to detecting these turns, the indicator tracks the high/low prices of the most recent reversal points on a "Confirmed Bar" basis. When the current price breaks these levels, it confirms a trend continuation or a breakout.
2. Full Description of Input Settings
Basic Settings / Main Settings
Use Short Period (5, 4, 7) / 短期設定を使用:
true: Increases sensitivity to price movements by using shorter parameters (e.g., SMA 5). Suitable for scalping.
false: Uses standard parameters (e.g., SMA 20). Suitable for day trading and swing trading.
Timeframe Visibility / 時間足表示設定
Allows individual toggling of visibility for each timeframe's labels and lines.
Show 1M to 1m / 1M〜1m表示: Individually enable or disable the calculation and display of data for Monthly (1M), Weekly (1W), Daily (Daily), 4H, 1H, 15M, 5M, and 1m timeframes.
Hide Higher TF Settings on Lower TFs / 下位足での上位設定を非表示: When enabled, this removes lower timeframe data from higher timeframe charts to reduce visual noise.
Drawing Options / 表示オプション
Show Only Current TF Labels / 現在足のラベルのみ表示: If enabled, only labels corresponding to the chart's current interval (e.g., "5" labels on a 5M chart) will be displayed.
Show Trendlines & Channels / トレンドライン&チャネルを表示: Automatically draws trendlines and parallel channels by connecting recent local reversal points on the current timeframe.
Show Sequential Labels / 転換点ラベル表示: Displays timeframe labels (e.g., "15", "1H") at the exact point where the SMA reversed.
Show Break Lines / ブレイクライン表示: Draws horizontal lines from the most recent peaks or troughs and displays a "BREAK" label when price crosses them.
Break Label Offset / ブレイク文字の右オフセット: Adjusts the horizontal distance of the "BREAK" label from the current bar for better visibility.
Additional Alert Settings / 追加アラート設定
Alert 1: Current + 2 Higher TFs Sync (Blue/Red) / アラート1: 現在・上位2つ同調:
Triggers a notification when the trend (UP/DN) of the current chart's timeframe, the next higher timeframe, and the second higher timeframe all align.
Alert 2: 4-TF Sync Including Current (Orange) / アラート2: 表示足を含む4足同調:
Triggers a notification when four consecutive timeframes (Current + 3 Higher) align in the same direction. This is considered a high-conviction signal.
3. How to Read the Dashboard (Table)
The compact table in the top-right corner displays the current trend status for key timeframes in real-time.
Blue Background (UP): Indicates price has broken the recent peak, confirming an uptrend for that timeframe.
Red Background (DN): Indicates price has broken the recent trough, confirming a downtrend for that timeframe.
Gray Background: Indicates the trend status is yet to be determined or is in a neutral state.
The table items are fixed to show 1D, 4H, 1H, 15M, and 5M from top to bottom. When all rows turn the same color, it indicates a strong market trend across the entire spectrum.
4. Key Feature: MTF Sync Alerts
The primary advantage of this indicator is its automation of manual Multi-Timeframe Analysis.
3-TF Sync: On a 15M chart, if the 15M, 1H, and 4H trends align, a small Blue (Buy) or Red (Sell) label appears on the chart.
4-TF Sync: If the alignment extends to a 4th timeframe (e.g., up to the Daily timeframe on a 15M chart), an Orange label is displayed, signaling a very strong trend confluence.
このインジケーター(SMA Reversal Sequential MTF)は、移動平均線(SMA)の形状からトレンドの転換点を特定し、それを複数の時間足(MTF)で監視・同期させることで、高精度なエントリーポイントを探るためのツールです。
以下に、すべてのインプット項目を含む詳細な説明をまとめました。
1. 概要と基本ロジック
このインジケーターは、SMA(単純移動平均線)が「山」や「谷」を作ったポイントを転換点として認識します。
上昇転換: SMAが一定期間、下降した後に上昇へ転じた(谷を作った)タイミング。
下降転換: SMAが一定期間、上昇した後に下降へ転じた(山を作った)タイミング。
これに加えて、直近の転換点の価格(高値・安値)を「確定足」で更新し、そのラインを価格がブレイクした際にトレンドの継続や転換を判定します。
2. インプット項目の詳細
基本設定 / Main Settings
短期設定を使用 (5, 4, 7):
true(チェックあり): 短期的な動きに敏感になります(SMA 5期間など)。スキャルピング向け。
false(チェックなし): 標準的な設定(SMA 20期間など)。デイトレード・スイング向け。
時間足表示設定 / Timeframe Visibility
各時間足のラベルやラインを表示するかどうかを個別に設定します。
1M〜1m表示: 月足(1M)から1分足(1m)まで、各MTFデータの計算・表示をオン/オフします。
下位足での上位設定を非表示: * 現在表示しているチャートより上位の時間足設定だけを表示し、ノイズを減らすためのスイッチです。
表示オプション / Drawing Options
現在足のラベルのみ表示: チェックすると、チャートの時間足と一致するラベル(例:5分足チャートなら「5」のラベル)のみ表示されます。
トレンドライン&チャネルを表示: 現在表示している足の直近の転換点同士を結び、トレンドラインと並行チャネルを自動描画します。
転換点ラベル表示: SMAが反転した位置に「15」や「1H」などの時間足ラベルを表示します。
ブレイクライン表示: 直近の転換点(高値・安値)から右側に水平線を引き、そこを価格が抜けた際に「BREAK」の文字を表示します。
ブレイク文字の右オフセット: 「BREAK」ラベルを右側にどれくらい離して表示するかを調整します。
追加アラート設定 / GRP_NEW_AL
アラート1: 現在・上位2つ同調 (青/赤):
「表示中の足 + 1つ上 + 2つ上」の計3つのトレンド(UP/DN)が一致した瞬間に通知します。
アラート2: 表示足を含む4足同調 (オレンジ):
「表示中の足 + 上位3つ」の計4つのトレンドがすべて一致した強力なサイン時に通知します。
3. テーブル(ダッシュボード)の見方
画面右上に表示されるコンパクトなテーブルは、各時間足の現在のトレンド状態をリアルタイムで示しています。
青背景(UP): 直近で高値をブレイクし、上昇トレンドにある状態。
赤背景(DN): 直近で安値をブレイクし、下降トレンドにある状態。
灰背景: 状態が未確定なケース。
表示項目は上位足から順に 1D(日足), 4H, 1H, 15M, 5M となっており、これらが一色に染まるタイミングが環境認識上の強いトレンドを示唆します。
4. 特徴的な機能:MTF同調アラート
このインジケーターの最大の強みは、手動でのマルチタイムフレーム分析を自動化している点です。
3足同調(SYNC): 15分足チャートであれば「15M・1H・4H」が同じ方向を向いた時にチャート上に青(買い)または赤(売り)の小さなラベルが表示されます。
4足同調(4-TF SYNC): さらに上位の足(15分足なら日足まで)が同調すると、オレンジ色のラベルが表示され、より強い根拠となります。
Gold Buy/Sell with BoxesKey Features of This Update
Box-Style Labels: Instead of small icons, this uses label.new to create larger, text-based boxes that provide immediate confirmation ("GOLD BUY CONFIRMED").
Dynamic Positioning: Labels are automatically placed at the high or low of the signal bar to avoid cluttering the price candles.
Multi-Indicator Filter: Signals only trigger when both a Moving Average crossover occurs and momentum (RSI) is in the correct zone, reducing "noise" or false signals in sideways markets.
Alert Ready: You can set mobile or desktop notifications in TradingView by selecting these specific Buy/Sell conditions in the "Create Alert" menu.
RSI + Smoothed HA Strategy 🚀 RSI + SMOOTHED HEIKEN ASHI STRATEGY (TRAILING TP, 1% SL) 📊
🎯 STRATEGY OVERVIEW
This professional trading strategy combines MOMENTUM ANALYSIS with TREND CONFIRMATION using two powerful technical indicators. The system executes LONG-ONLY POSITIONS when bullish conditions align, featuring AUTOMATED RISK MANAGEMENT with a fixed stop loss and dynamic trailing exit.
⚙️ CORE COMPONENTS
📈 INDICATOR 1: RELATIVE STRENGTH INDEX (RSI)
CALCULATION: Standard 14-period RSI (configurable)
ENTRY THRESHOLD: 55 LEVEL (adjustable parameter)
PURPOSE: Identifies MOMENTUM STRENGTH and OVERBOUGHT CONDITIONS
VISUAL: Blue RSI line with gray threshold level plotted separately
🕯️ INDICATOR 2: DOUBLE-SMOOTHED HEIKEN ASHI
UNIQUE FEATURE: DOUBLE EMA SMOOTHING applied to Heiken Ashi candles
SMOOTHING LAYERS:
FIRST LAYER: EMA applied to raw OHLC data (default: 10 periods)
SECOND LAYER: EMA applied to Heiken Ashi values (default: 10 periods)
COLOR SCHEME:
🟢 LIME GREEN: Bullish candle (close > open)
🔴 RED: Bearish candle (close < open)
BENEFIT: REDUCES MARKET NOISE while maintaining trend clarity
🎮 ENTRY CONDITIONS
📈 LONG POSITIONS ACTIVATE WHEN ALL THREE CONDITIONS CONVERGE:
RSI MOMENTUM: RSI ≥ 55 (configurable level)
TREND CONFIRMATION: Current smoothed Heiken Ashi candle is GREEN
TREND REVERSAL SIGNAL: Previous smoothed Heiken Ashi candle was RED
✅ ENTRY LOGIC: This triple-filter approach ensures trades are taken only during CONFIRMED BULLISH SHIFTS with underlying momentum strength.
🛡️ RISK MANAGEMENT SYSTEM
⛔ STOP LOSS PROTECTION
FIXED 1% RISK PER TRADE
AUTOMATIC CALCULATION: Stop placed at 99% of entry price
IMMEDIATE ACTIVATION: Engages upon position entry
BENEFIT: CAPS MAXIMUM LOSS regardless of market volatility
💰 TRAILING TAKE-PROFIT MECHANISM
DYNAMIC EXIT STRATEGY: Tracks trend continuation
EXIT CONDITION: Closes position when smoothed Heiken Ashi turns RED
ADVANTAGE: LOCKS IN PROFITS during trend reversals
LOGIC: Allows winners to run while protecting gains
💼 POSITION SIZING
CAPITAL ALLOCATION: 10% of equity per trade (fully customizable)
INITIAL CAPITAL: $10,000 (user-adjustable)
FLEXIBILITY: Compatible with various account sizes
✨ KEY ADVANTAGES
🎯 PRECISE TIMING
Combines MOMENTUM FILTER (RSI) with TREND FILTER (Heiken Ashi)
Reduces false signals through CONFIRMATION SEQUENCE
🛡️ DISCIPLINED RISK CONTROL
PREDEFINED 1% STOP LOSS eliminates emotional decisions
SYSTEMATIC EXITS remove subjective profit-taking
👁️ VISUAL CLARITY
CLEAN CHART PLOTTING with color-coded candles
SEPARATE RSI DISPLAY for momentum monitoring
REAL-TIME SIGNALS directly on price chart
⚡ OPTIMIZATION TIPS
ADJUST RSI LEVEL based on asset volatility (55-70 range)
MODIFY SMOOTHING PERIODS for different timeframes
TEST POSITION SIZE according to risk tolerance
COMBINE WITH VOLUME CONFIRMATION for enhanced accuracy
📊 RECOMMENDED MARKETS
TRENDING FOREX PAIRS (EUR/USD, GBP/USD)
LIQUID INDICES (S&P 500, NASDAQ)
HIGH-CAP CRYPTO (BTC/USD, ETH/USD)
TIME FRAMES: 1-hour to daily charts
⚠️ RISK DISCLAIMER
This strategy is a TOOL FOR ANALYSIS, not financial advice. Always:
BACKTEST extensively before live trading
START WITH SMALL CAPITAL
USE PROPER RISK MANAGEMENT
CONSULT FINANCIAL PROFESSIONALS
Synthetic Renko Early Flip AlertGives you the alert slightly before the Renko flip, but still based on real price.
Pullbacks CompletoThis indicator is a comprehensive Trend Following toolkit that combines two distinct, high-probability pullback strategies into a single, intelligent interface. It is designed to help traders identify precise entry points during corrections in established trends, filtering out low-quality noise.
The indicator features Smart Conflict Detection: if the two strategies generate opposing signals on the same candle, the system blocks the individual alerts and displays a Purple "X", warning the trader of market indecision.
Strategy 1: Stoch Pullback (Triangles)
Visual: Green/Red Triangles Logic:
Trend: Defined by the alignment of the Fast EMA (21) and Slow EMA (100).
The Setup: The indicator waits for the Stochastic RSI to enter an Overbought or Oversold zone.
Strict Filter: A signal is only valid if, while in the zone, the price physically tests the Fast EMA (closes against it). This filters out "shallow" pullbacks.
Trigger: The signal is fired when the Stochastic RSI crosses back out of the extreme zone, resuming the trend.
Strategy 2: Dave Landry Setup (Dots)
Visual: Green/Red Circles Logic:
Trend: Filtered by MACD Histogram momentum and the relation to the Fast EMA (21).
The Pattern: Looks for a correction of at least 2 candles making lower lows (for uptrends) or higher highs (for downtrends).
Trigger: Enters when the price breaks the high/low of the previous candle, provided it closes in favor of the EMA 21.
Anti-Climax Filter: Includes a "Stretched" filter to prevent buying/selling on exhausted "Elephant Bars" (huge candles that have already consumed the move).
Key Features
Dual Alert System: Receive specific alerts for "Pullback" or "Landry" setups.
Conflict Warning: If Strategy A says "Buy" and Strategy B says "Sell" simultaneously, a "Doubtful Signal" alert is triggered, and a purple Cross appears on the chart.
Smart Visibility: The indicator automatically hides or shows the Moving Averages depending on which strategies you have enabled in the settings.
Educational Tooltips: Hover over the "i" icons in the settings menu to read the rationale behind each specific filter.
How to Use
Green Triangle: Look for Long opportunities (Stoch Pullback).
Green Dot: Look for Long opportunities (Landry Breakout).
Red Triangle: Look for Short opportunities (Stoch Pullback).
Red Dot: Look for Short opportunities (Landry Breakout).
Purple X: Stay Out. The setups are conflicting (Trend vs. Momentum disagreement).
Configuration You can toggle each strategy on/off in the settings menu. You can also choose to display the Overbought/Oversold background zones to visualize where the Stoch Pullback is "arming".
Synthetic Renko Overlay + Instant Expansion Alert✔ Builds Renko bricks internally
✔ Overlays them on ANY chart (3m recommended)
✔ Detects sudden aggressive brick growth
✔ Fires alert on the FIRST push
✔ Works for NQ / ES / BTC / any market
Supply & Demand Sniper369Indicator Philosophy: The Convergence of Structure and Liquidity
The Supply & Demand Sniper369 is not just another signal generator; it is a professional-grade execution framework built on the principles of Institutional Order Flow and Liquidity Engineering. While standard indicators often lag or provide signals in "no-man's land," this script is designed to identify high-probability reversal points by combining macro-structural zones with micro-execution triggers.
What Makes This Script Original?
Most scripts treat Supply/Demand and Entry Triggers as separate entities. The originality of the Sniper369 lies in its Strict Hierarchical Logic. It employs a "Two-Factor Authentication" system for trades:
1. Structural Validation: Identifying where "Smart Money" has historically left unfilled orders.
2. Liquidity Sweep Confirmation: Using the Enigma 369 logic to detect a specific manipulation pattern (a stop-run or "sweep") that occurs exclusively within those structural zones.
By using Pine Script v6 Object-Oriented Programming, the script manages dynamic arrays of boxes and lines that auto-delete upon mitigation, ensuring your chart remains a clean, actionable workspace.
Underlying Concepts & Calculations
1. Macro: Structural Supply & Demand
The indicator calculates zones based on Pivot Strength and Volatility Scaling.
Calculations: It scans for major structural pivots ( and ). Once a pivot is confirmed, it doesn't just draw a line; it calculates a zone width based on the Average True Range (ATR).
Why it works: Institutions do not enter at a single price; they enter in "pockets" of liquidity. Using ATR-based zones ensures that on high-volatility pairs (like Gold or GBP/JPY), your zones are appropriately wide, while on lower-volatility pairs, they remain tight and precise.
2. Micro: The Enigma 369 Sniper Logic
Once price enters a zone, the "Sniper" logic activates. This is based on the Institutional Wick-Liquidity concept.
The Sweep: The script looks for a candle that breaks the high/low of the previous candle (trapping "breakout" traders) but fails to hold that level.
The Mean Threshold (50% Wick): A core calculation of the Enigma logic is the midpoint of the rejection wick.
Calculation: for Sells.
Logic: Institutions often re-test the 50% level of a long wick to fill the remaining orders before the real move starts.
How to Use the Indicator
Step 1: Wait for Structural Alignment
Observe the Teal (Demand) and Red (Supply) boxes. These are your "Points of Interest" (POI). Do not take any trades until the price is physically touching or inside these boxes.
Step 2: Monitor for the Sniper Trigger
When the price is inside a zone, look for the appearance of the Solid and Dotted lines.
The Solid Line: This is the extreme of the manipulation candle. It serves as your structural invalidation level (Stop Loss).
The Dotted Line: This is the 50% Wick level. It is your "Sniper Entry" target.
Step 3: Execution & Alerts
The script features a built-in alert system that notifies you the moment a Sniper activation occurs inside a zone.
Conservative Entry: Place a Limit Order at the Dotted Line.
Aggressive Entry: Market enter on the close of the Sniper candle if the price has already reacted strongly.
Exit: Target the opposing Supply or Demand zone for a high Risk-to-Reward ratio.
Technical Summary for Traders
Trend Detection: Uses an EMA-50 Filter to ensure Snipers only fire in the direction of the dominant trend (optional).
Scalping/Day Trading: Optimized for the 1m, 5m, and 15m timeframes, but functions perfectly on 4H/Daily for swing traders.
Dynamic Cleanup: The script automatically deletes lines if the price closes past them, signaling that the "Liquidity Grab" was actually a breakout, thus preventing you from entering a losing trade.
Breaker Blocks Finder | Gold | ProjectSyndicateProjectSyndicate Breaker Blocks Finder
📊 Overview
The ProjectSyndicate Breaker Blocks Finder (PS BB Finder) is a professional-grade Pine Script indicator designed to detect and display Bullish and Bearish Breaker Blocks based on Smart Money Concepts (SMC) methodology. This indicator is specifically optimized for XAUUSD (Gold) trading but works reliably across all symbols and timeframes.
Key Features
✅ Non-Repainting: Breaker blocks never change position after formation
✅ Multi-Timeframe Support: Optimized for M5, M10, M15, M20, M30, and H1
✅ Highly Customizable: 10+ user-configurable settings
✅ Visual Clarity: Color-coded boxes and labels for easy identification
✅ Performance Optimized: Handles 1000+ candles without lag
✅ Cross-Symbol Compatible: Works on Forex, Crypto, Stocks, Indices, and Commodities
✅ Displacement Detection: Uses ATR-based displacement to filter false signals
🎯 What are Breaker Blocks?
A Breaker Block is a failed order block that becomes a new support or resistance zone after being invalidated by price. It represents a market structure shift where institutional traders (smart money) have flipped their position.
Bullish Breaker Block
A Bullish Breaker Block forms when:
1 A bearish order block (resistance zone) exists
2 Price breaks ABOVE this zone with strong displacement
3 The former resistance zone now becomes SUPPORT
4 Price may retest this zone before continuing higher
Visual: Green box with "BB ▲" label
Bearish Breaker Block
A Bearish Breaker Block forms when:
5 A bullish order block (support zone) exists
6 Price breaks BELOW this zone with strong displacement
7 The former support zone now becomes RESISTANCE
8 Price may retest this zone before continuing lower
Visual: Red box with "BB ▼" label
⚙️ Default Settings
Setting Default Range Description
Lookback Period 1000 100-5000 Number of historical candles to analyze
Max Breaker Blocks 5 1-50 Maximum number of breaker blocks to display
Swing Detection Length 10 2-20 Bars on each side to confirm swing high/low. Higher = more significant swings
Use Displacement Filter true true/false Enable to filter breaker blocks by displacement size
Displacement Multiplier 2.0 0.5-5.0 Minimum move size as multiple of ATR. Higher = stricter detection
Invalidation Method Close Close/Wick Close = Conservative (candle must close beyond zone)Wick = Aggressive (wick touch is enough)
📈 Recommended Timeframes & Settings
This indicator is optimized for the following timeframes. Use these settings as a starting point.
Lower Timeframes (M5, M10, M15, M20)
These settings are designed to capture faster price movements and are the default settings for the indicator.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 2.0
Invalidation Method Close
Higher Timeframes (M30, H1)
For these timeframes, a less strict displacement filter is recommended to capture more significant, but less frequent, breaker blocks.
Setting Recommended Value
Lookback Period 1000
Max Breaker Blocks 5
Swing Detection Length 10
Use Displacement Filter true
Displacement Multiplier 1.0
Invalidation Method Close
🎓 How to Use
Step 1: Identify Breaker Blocks
Once the indicator is loaded, breaker blocks will automatically appear on your chart:
• Green boxes = Bullish breaker blocks (former resistance, now support)
• Red boxes = Bearish breaker blocks (former support, now resistance)
Step 2: Wait for Retest
The most reliable trading opportunities occur when price retests the breaker block zone:
• For bullish breaker blocks, wait for price to come back down to the green zone
• For bearish breaker blocks, wait for price to come back up to the red zone
Step 3: Look for Confluence
Combine breaker blocks with other SMC concepts for higher probability setups:
• Fair Value Gaps (FVG) within the breaker block zone
• Liquidity grabs before the retest
• Break of Structure (BoS) or Change of Character (ChoCH) confirmation
Step 4: Enter the Trade
Bullish Setup:
• Entry: At or near the bullish breaker block zone
• Stop Loss: Below the breaker block
• Take Profit: Previous swing high or higher
Bearish Setup:
• Entry: At or near the bearish breaker block zone
• Stop Loss: Above the breaker block
• Take Profit: Previous swing low or lower
🛡️ Non-Repainting Guarantee
This indicator is 100% non-repainting, meaning:
✅ Breaker blocks never change position after formation
✅ Historical breaker blocks remain in the exact same location indefinitely
✅ Backtesting results are reliable and consistent
🐛 Troubleshooting
Issue: No Breaker Blocks Appearing
Solutions:
• Ensure "Use Displacement Filter" is enabled.
• On M30/H1, try lowering the "Displacement Multiplier" to 1.0.
• Scroll back in history; blocks may not be present on the most recent bars.
Issue: Too Many Breaker Blocks
Solutions:
• Increase "Displacement Multiplier" to 2.5 or 3.0.
• Increase "Swing Detection Length" to 12-15.
• Decrease "Max Breaker Blocks" to 3-4.
Long + Short + Signal//@version=6
indicator("Long + Short + Signal", overlay=true)
Buy = input.bool(false, "Buy ")
Sell = input.bool(false, "Sell ")
// ================= INPUTS =================
// ---- LONG ----
periodK_Long = 50
smoothK_Long = 3
periodD_Long = 3
// ---- SHORT ----
periodK_Short = 14
smoothK_Short = 3
periodD_Short = 3
// ================= FUNCTIONS =================
f_stoch_long(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Long), smoothK_Long))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Long))
k > 50 and d > 50 ? color.green : k < 40 and d < 40 ? color.red : color.gray
f_stoch_short(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Short), smoothK_Short))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Short))
k > 60 and d > 60 ? color.green : k < 40 and d < 40 ? color.red : color.gray
// ================= TABLE =================
// 2 rows × 8 columns
var table t = table.new(position.top_right, 8, 2, border_width=3)
if barstate.islast
// ===== HEADINGS (BIGGER) =====
table.cell(
t, 0, 0, "Short",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)
table.cell(
t, 0, 1, "Long",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)
// ===== LONG ROW =====
table.cell(t, 1, 0, "1m", bgcolor=f_stoch_short("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 0, "5m", bgcolor=f_stoch_short("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 0, "15m", bgcolor=f_stoch_short("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 0, "60m", bgcolor=f_stoch_short("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 0, "D", bgcolor=f_stoch_short("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 0, "W", bgcolor=f_stoch_short("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 0, "M", bgcolor=f_stoch_short("M"), text_color=color.white, text_size=size.normal)
// ===== SHORT ROW =====
table.cell(t, 1, 1, "1m", bgcolor=f_stoch_long("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 1, "5m", bgcolor=f_stoch_long("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 1, "15m", bgcolor=f_stoch_long("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 1, "60m", bgcolor=f_stoch_long("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 1, "D", bgcolor=f_stoch_long("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 1, "W", bgcolor=f_stoch_long("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 1, "M", bgcolor=f_stoch_long("M"), text_color=color.white, text_size=size.normal)
lengthK = 14
lengthD = 3
lengthEMA = 3
emaEma(source, length) => ta.ema(ta.ema(source, length), length)
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
// ===== BUY / SELL CONDITIONS =====
buyEntry = ta.crossover(smi, 50)
buyExit = ta.crossunder(smi, 50)
sellEntry = ta.crossunder(smi, -40)
sellExit = ta.crossover(smi, -40)
// ===== PLOTS =====
plotshape( Buy and buyEntry, title="BUY", style=shape.triangleup,location=location.belowbar, color=color.green,size=size.small, text="BUY")
plotshape( Buy and buyExit, title="EXIT BUY", style=shape.triangledown, location=location.abovebar, color=color.lime,size=size.tiny, text="EXIT")
plotshape( Sell and sellEntry,title="SELL", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="SELL")
plotshape( Sell and sellExit, title="EXIT SELL", style=shape.triangleup, location=location.belowbar, color=color.orange, size=size.tiny, text="EXIT")
shortest = ta.ema(close, 9)
shortEMA = ta.ema(close, 21)
longer = ta.ema(close, 50)
longest = ta.ema(close, 200)
plot(shortest, color=color.red, title="EMA 9")
plot(shortEMA, color=color.orange, title="EMA 21")
plot(longer, color=color.aqua, title="EMA 50")
plot(longest, color=color.blue, title="EMA 200")
SMC Flow: Order Blocks & FVGDescription:
This indicator is designed to identify key liquidity zones based on Smart Money Concepts (SMC). It focuses on identifying high-probability reversal and continuation areas by tracking Order Blocks and Price Imbalances.
Key Features:
Order Blocks (OB): Automatically identifies supply and demand zones. The script filters for candles with high relative volume (above 20-period SMA) to ensure the zone represents significant market activity.
Fair Value Gaps (FVG): Detects 3-candle imbalance structures where price moved rapidly, leaving "gaps" that often act as magnets for future price action.
Structure Tracking: Includes a visual step-line based on the highest high and lowest low of the last 10 bars to help traders identify the current market bias.
How to use:
Demand/Supply Zones: Look for Price Action confirmation when the market returns to the highlighted Order Block boxes.
Efficiency: Use FVG boxes to identify where the market is "unbalanced." These areas often get filled before a trend continues.
Confluence: This tool is most effective when used in alignment with higher timeframe analysis and additional technical filters.
Range Marker by Vinay SinghThis indicator marks back and forth range on given timeframes. good indicator to test range breakout.
Multi-Filter Profit MaximizerDescription : This script is a trend-following system designed to maximize profits by capturing extended trends while filtering out market noise. It integrates four core components:
SuperTrend (Customized): Acts as a dynamic trailing stop and trend baseline.
ADX Filter: Ensures signals only occur during active volatility to avoid choppy markets.
CVD (Cumulative Volume Delta): Validates the price movement with actual volume flow.
Stochastic Momentum: Pinpoints high-probability entry entries within the trend.
--------------------------------------------------------------------------------------------------------------
How to Use This Indicator (Profit Maximization Manual)
This indicator is designed to prioritize **“win rate” and “price range”** over the number of entries.
Market Environment Recognition (Background & Lines):
Green background & green line: An uptrend. Focus solely on long positions.
Red background & red line: A downtrend. Focus solely on short positions.
EMA 200 (Orange Line): The iron rule is to go long if the candlestick is above this line, and short if it's below.
Entry (BUY / SELL Signals):
Enter when the BUY or SELL label appears.
This is the moment when the “trend direction,” “momentum via ADX,” “fund flow via CVD,” and “timing via Stochastic” all align perfectly.
Profit Maximization Exit (Most Critical):
Stop Loss (SL): Exit immediately if the candle body breaks below the green (or red) SuperTrend line right after entry. No hesitation.
Take Profit (TP):
Method A (Trend Riding): Hold until the SuperTrend line changes color. If a major trend emerges, this can yield tremendous profits.
Method B (Conservative Approach): Take half the profit at roughly a 1:2 risk-reward ratio, then hold the remainder aligned with the SuperTrend.
Why This is “The Best”
Many indicators get whipped back and forth in range-bound markets, spitting out profits. It's coded to generate absolutely no signals when ADX < 20 (weak market). Furthermore, using SuperTrend as the stop-loss line forces a structure that comes closest to the Holy Grail of trading: **“Small losses, unlimited profits as long as the trend continues.”**
Statistical Probability Entry & ExitWHAT THIS INDICATOR WILL DO
This indicator will:
✅ Identify market direction
✅ Analyze the last 2–5 candles statistically
✅ Trigger BUY / SELL signals when continuation probability is high
✅ Trigger EXIT signals when probability collapses
✅ Be fast, made for 1-minute NQ trading
✅ Avoid laggy indicators (no RSI, MACD spam)
CORE LOGIC (HOW PROBABILITY IS ESTIMATED)
We estimate probability using conditional continuation logic:
Bullish continuation is likely when:
Price is above EMA (trend bias)
Last candles show:
Higher closes
Strong bodies (not wicks)
Volume expands in direction of move
Momentum doesn’t stall (no large opposite candle)
Same logic inverted for shorts.






















