SMC Prime Matrix🧠 SMC Prime Matrix — Multi-Concept Smart Money Indicator
The SMC Prime Matrix is an advanced Pine Script indicator that brings together multiple Smart Money Concepts (SMC) into a single, modular tool. Designed for institutional-style traders and students of market structure, this overlay visualizes key price action events, liquidity levels, and trend shifts across all timeframes.
It aims to simplify complex institutional concepts such as BOS, CHoCH, Order Blocks, Fair Value Gaps, SFPs, and premium/discount analysis into a cohesive and customizable framework.
🔍 Key Features
📆 Institutional Key Levels: Automatically plots weekly, monthly, and yearly opens (including previous sessions) to identify institutional reference levels often used for bias setting and liquidity targeting.
🧱 Order Blocks & Breaker Blocks: Detects bullish/bearish order blocks and breaker blocks using custom swing logic. Boxes are drawn with dynamic labels and styling to highlight the most relevant zones.
📉 Market Structure Detection: Identifies Break of Structure (BOS) and Change of Character (CHoCH) at both internal and major swing levels, helping determine trend continuation or reversal points.
🌀 Fair Value Gaps (FVGs): Highlights price imbalances (inefficient zones) based on swing displacement. Options include real-time filtering, styling, and visibility limits.
🧠 Swing Points & Liquidity Zones: Marks swing highs/lows and detects equal highs/lows (EQH/EQL) to expose areas prone to liquidity grabs or stop runs.
⚠️ Swing Failure Patterns (SFPs): Identifies potential liquidity sweeps or failed swing breakouts, with debounce logic and MTF integration to reduce signal noise.
🕓 Multi-Timeframe Integration: Displays key swing highs/lows and SFPs from higher timeframes (daily, weekly, monthly) directly on lower timeframe charts.
🧩 Highly Customizable: Users can toggle individual modules, adjust detection sensitivity, line/label styles, debounce filtering, and theme presets to suit different trading styles.
🧠 How It Works
The script uses a combination of:
Swing detection algorithms (including internal vs. major pivots)
Price displacement logic (for BOS/CHoCH/FVG)
Multi-timeframe request.security() calls (without lookahead bias)
Real-time plotting of levels, boxes, and labels with visual efficiency in mind
All calculations are done in real-time using a structured top-down flow that integrates structural, value-based, and liquidity-based models in one overlay.
📈 Use Cases
Trend Direction: Determine market bias using CHoCH, BOS, and swing structure shifts.
Liquidity Mapping: Visualize likely liquidity pools via EQH/EQL, FVGs, and SFPs.
Refined Entries: Use OBs or Breaker Blocks within premium/discount zones for better R/R setups.
Confluence Building: Overlay higher-timeframe levels for stronger confirmation with intraday trades.
Discretionary & Systematic Trading: Modular layout makes it suitable for both styles.
💡 Originality & Integration
This is an original implementation that combines multiple Smart Money trading ideas into a tightly integrated and performant script. Each component is coded for interoperability, rather than being a visual mashup of disconnected ideas. It is designed for those who want to study or emulate institutional trading behavior within Pine Script limitations.
📌 Limitations & Notes
This is not a signal generator. All elements are for informational and analytical use only.
Some features (FVGs, SFPs, CHoCH) rely on historical pivots and may repaint as new bars form.
Market structure is subjective — settings may need tuning depending on asset volatility.
For educational purposes only. This script does not constitute financial advice or trading recommendations.
✅ How to Use
Add the indicator to any chart or asset.
Open the settings panel to enable/disable modules or adjust sensitivity.
Use tooltips and label text to gain insights into the detected events.
Combine this tool with your own technical or fundamental analysis and proper risk management.
Candlestick analysis
MABB55 Full-CrossIndicates when the MABB55 crosses the:
MABB13
MABB21
EMA8
When a full crossover happens, where the long-term average (MABB 55) moves above or below the faster ones (EMA 8, MABB 13, and 21) it means the trend has shifted so strongly and consistently that it overcomes short-term price movement. That kind of shift usually signals a trend reversal.
Bullish reversals with the MABB55 crossing from above, indicated by a green arrowl.
Bearish reversals with the MABB55 crossing from below, indicated by a red arrow.
[DEM] Chaikin Money Flow Signal (With Backtesting) Chaikin Money Flow Signal (With Backtesting) generates buy and sell signals based on the Chaikin Money Flow (CMF) indicator, combined with a Parabolic SAR (Stop And Reverse) filter, and includes a comprehensive backtesting framework to evaluate signal performance. The indicator overlays directly on the price chart, plotting signals and displaying performance statistics in a table.
[DEM] Bollinger Bands + Rob Hoffman Signal (With Backtesting) Bollinger Bands + Rob Hoffman Signal (With Backtesting) combines Bollinger Bands with a custom price action pattern, reminiscent of Rob Hoffman's "Inventory Retracement Bar" concept, to generate buy and sell signals. It includes a robust backtesting framework to evaluate the historical performance of these signals. The indicator overlays directly on the price chart, plotting signals and displaying performance statistics in a table.
[DEM] ATR Filtered Sequential Signal (With Backtesting) ATR Filtered Sequential Signal (With Backtesting) combines a modified sequential counting methodology with an Average True Range (ATR) based filter to generate buy and sell signals. It includes a robust backtesting framework to evaluate the historical performance of these signals. The indicator overlays directly on the price chart, plotting signals and displaying performance statistics in a table.
[DEM] ATR Bars ATR Bars is designed to highlight bars on the chart that exhibit unusually high volatility in one direction (up or down) compared to the average volatility. It does this by comparing the short-term Average True Range (ATR) with a multiple of the long-term ATR. The indicator overlays directly on the price chart by coloring the bars.
Day of Week HighlighterThis Indicator Helps Indian Traders or Any Traders to see Charts Days Highlights in their Charts..
Saty ATR Levels// Saty ATR Levels
// Copyright (C) 2022 Saty Mahajan
// Author is not responsible for your trading using this script.
// Data provided in this script is not financial advice.
//
// Features:
// - Day, Multiday, Swing, Position, Long-term, Keltner trading modes
// - Range against ATR for each period
// - Put and call trigger idea levels
// - Intermediate levels
// - Full-range levels
// - Extension levels
// - Trend label based on the 8-21-34 Pivot Ribbon
//
// Special thanks to Gabriel Viana.
// Based on my own ideas and ideas from Ripster, drippy2hard,
// Adam Sliver, and others.
//@version=5
indicator('Saty ATR Levels', shorttitle='Saty ATR Levels', overlay=true)
// Options
day_trading = 'Day'
multiday_trading = 'Multiday'
swing_trading = 'Swing'
position_trading = 'Position'
longterm_trading = 'Long-term'
trading_type = input.string(day_trading, 'Trading Type', options= )
use_options_labels = input(true, 'Use Options Labels')
atr_length = input(14, 'ATR Length')
trigger_percentage = input(0.236, 'Trigger Percentage')
previous_close_level_color = input(color.white, 'Previous Close Level Color')
lower_trigger_level_color = input(color.yellow, 'Lower Trigger Level Color')
upper_trigger_level_color = input(color.aqua, 'Upper Trigger Level Color')
key_target_level_color = input(color.silver, 'Key Target Level Color')
atr_target_level_color = input(color.white, 'ATR Target Level Color')
intermediate_target_level_color = input(color.gray, 'Intermediate Target Level Color')
show_all_fibonacci_levels = input(true, 'Show All Fibonacci Levels')
show_extensions = input(false, 'Show Extensions')
level_size = input(2, 'Level Size')
show_info = input(true, 'Show Info Label')
use_current_close = input(false, 'Use Current Close')
fast_ema = input(8, 'Fast EMA')
pivot_ema = input(21, 'Pivot EMA')
slow_ema = input(34, 'Slow EMA')
// Set the appropriate timeframe based on trading mode
timeframe_func() =>
timeframe = 'D'
if trading_type == day_trading
timeframe := 'D'
else if trading_type == multiday_trading
timeframe := 'W'
else if trading_type == swing_trading
timeframe := 'M'
else if trading_type == position_trading
timeframe := '3M'
else if trading_type == longterm_trading
timeframe := '12M'
else
timeframe := 'D'
// Trend
price = close
fast_ema_value = ta.ema(price, fast_ema)
pivot_ema_value = ta.ema(price, pivot_ema)
slow_ema_value = ta.ema(price, slow_ema)
bullish = price >= fast_ema_value and fast_ema_value >= pivot_ema_value and pivot_ema_value >= slow_ema_value
bearish = price <= fast_ema_value and fast_ema_value <= pivot_ema_value and pivot_ema_value <= slow_ema_value
// Data
period_index = use_current_close ? 0 : 1
ticker = ticker.new(syminfo.prefix, syminfo.ticker, session=session.extended)
previous_close = request.security(ticker, timeframe_func(), close , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
atr = request.security(ticker, timeframe_func(), ta.atr(atr_length) , gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
period_high = request.security(ticker, timeframe_func(), high, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
period_low = request.security(ticker, timeframe_func(), low, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
range_1 = period_high - period_low
tr_percent_of_atr = range_1 / atr * 100
lower_trigger = previous_close - trigger_percentage * atr
upper_trigger = previous_close + trigger_percentage * atr
lower_0382 = previous_close - atr * 0.382
upper_0382 = previous_close + atr * 0.382
lower_0500 = previous_close - atr * 0.5
upper_0500 = previous_close + atr * 0.5
lower_0618 = previous_close - atr * 0.618
upper_0618 = previous_close + atr * 0.618
lower_0786 = previous_close - atr * 0.786
upper_0786 = previous_close + atr * 0.786
lower_1000 = previous_close - atr
upper_1000 = previous_close + atr
lower_1236 = lower_1000 - atr * 0.236
upper_1236 = upper_1000 + atr * 0.236
lower_1382 = lower_1000 - atr * 0.382
upper_1382 = upper_1000 + atr * 0.382
lower_1500 = lower_1000 - atr * 0.5
upper_1500 = upper_1000 + atr * 0.5
lower_1618 = lower_1000 - atr * 0.618
upper_1618 = upper_1000 + atr * 0.618
lower_1786 = lower_1000 - atr * 0.786
upper_1786 = upper_1000 + atr * 0.786
lower_2000 = lower_1000 - atr
upper_2000 = upper_1000 + atr
lower_2236 = lower_2000 - atr * 0.236
upper_2236 = upper_2000 + atr * 0.236
lower_2382 = lower_2000 - atr * 0.382
upper_2382 = upper_2000 + atr * 0.382
lower_2500 = lower_2000 - atr * 0.5
upper_2500 = upper_2000 + atr * 0.5
lower_2618 = lower_2000 - atr * 0.618
upper_2618 = upper_2000 + atr * 0.618
lower_2786 = lower_2000 - atr * 0.786
upper_2786 = upper_2000 + atr * 0.786
lower_3000 = lower_2000 - atr
upper_3000 = upper_2000 + atr
// Add Labels
tr_vs_atr_color = color.green
if tr_percent_of_atr <= 70
tr_vs_atr_color := color.green
else if tr_percent_of_atr >= 90
tr_vs_atr_color := color.red
else
tr_vs_atr_color := color.orange
trading_mode = 'Day'
if trading_type == day_trading
trading_mode := 'Day'
else if trading_type == multiday_trading
trading_mode := 'Multiday'
else if trading_type == swing_trading
trading_mode := 'Swing'
else if trading_type == position_trading
trading_mode := 'Position'
else if trading_type == longterm_trading
trading_mode := 'Long-term'
else
trading_mode := ''
long_label = ''
short_label = ''
if use_options_labels
long_label := 'Calls'
short_label := 'Puts'
else
long_label := 'Long'
short_label := 'Short'
trend_color = color.orange
if bullish
trend_color := color.green
else if bearish
trend_color := color.red
else
trend_color := color.orange
var tbl = table.new(position.top_right, 1, 4)
if barstate.islast and show_info
table.cell(tbl, 0, 0, 'Saty ATR Levels', bgcolor=trend_color)
table.cell(tbl, 0, 1, trading_mode + ' Range ($' + str.tostring(range_1, '#.##') + ') is ' + str.tostring(tr_percent_of_atr, '#.#') + '% of ATR ($' + str.tostring(atr, '#.##') + ')', bgcolor=tr_vs_atr_color)
table.cell(tbl, 0, 2, long_label + ' > $' + str.tostring(upper_trigger, '#.##') + ' | +1 ATR $' + str.tostring(upper_1000, '#.##'), bgcolor=upper_trigger_level_color)
table.cell(tbl, 0, 3, short_label + ' < $' + str.tostring(lower_trigger, '#.##') + ' | -1 ATR: $' + str.tostring(lower_1000, '#.##'), bgcolor=lower_trigger_level_color)
// Add levels
plot(show_extensions ? lower_3000 : na, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='-300.0%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? lower_2786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-278.6%', style=plot.style_stepline)
plot(show_extensions ? lower_2618 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='-261.8%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? lower_2500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-250.0%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? lower_2382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-238.2%', style=plot.style_stepline)
plot(show_extensions ? lower_2236 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='-223.6%', style=plot.style_stepline)
plot(show_extensions ? lower_2000 : na, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='-200.0%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? lower_1786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-178.6%', style=plot.style_stepline)
plot(show_extensions ? lower_1618 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='-161.8%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? lower_1500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-150.0%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? lower_1382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-138.2%', style=plot.style_stepline)
plot(show_extensions ? lower_1236 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='-123.6%', style=plot.style_stepline)
plot(lower_1000, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='-100%', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? lower_0786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-78.6%', style=plot.style_stepline)
plot(lower_0618, color=color.new(key_target_level_color, 40), linewidth=level_size, title='-61.8%', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? lower_0500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-50.0%', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? lower_0382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='-38.2%', style=plot.style_stepline)
plot(lower_trigger, color=color.new(lower_trigger_level_color, 40), linewidth=level_size, title='Lower Trigger', style=plot.style_stepline)
plot(previous_close, color=color.new(previous_close_level_color, 40), linewidth=level_size, title='Previous Close', style=plot.style_stepline)
plot(upper_trigger, color=color.new(upper_trigger_level_color, 40), linewidth=level_size, title='Upper Trigger', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? upper_0382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='38.2%', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? upper_0500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='50.0%', style=plot.style_stepline)
plot(upper_0618, color=color.new(key_target_level_color, 40), linewidth=level_size, title='61.8%', style=plot.style_stepline)
plot(show_all_fibonacci_levels ? upper_0786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='78.6%', style=plot.style_stepline)
plot(upper_1000, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='100%', style=plot.style_stepline)
plot(show_extensions ? upper_1236 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='123.6%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? upper_1382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='138.2%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? upper_1500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='150.0%', style=plot.style_stepline)
plot(show_extensions ? upper_1618 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='161.8%', style=plot.style_stepline)
plot(show_all_fibonacci_levels and show_extensions ? upper_1786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='178.6%', style=plot.style_stepline)
plot(show_extensions ? upper_2000 : na, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='200.0%', style=plot.style_stepline)
plot(show_extensions ? upper_2236 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='223.6%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? upper_2382 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='238.2%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? upper_2500 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='250.0%', style=plot.style_stepline)
plot(show_extensions ? upper_2618 : na, color=color.new(key_target_level_color, 40), linewidth=level_size, title='261.8%', style=plot.style_stepline)
//plot(show_all_fibonacci_levels and show_extensions ? upper_2786 : na, color=color.new(intermediate_target_level_color, 40), linewidth=level_size, title='278.6%', style=plot.style_stepline)
plot(show_extensions ? upper_3000 : na, color=color.new(atr_target_level_color, 40), linewidth=level_size, title='300%', style=plot.style_stepline)
BskLAB - Price Target 🎯 BskLAB – Price Target | Usage Guide & Description
BskLAB – Price Target is a smart structural tool that automatically identifies potential price targets and reversal zones using a proprietary Fibonacci Extension method developed by BskLAB.
Unlike standard Fibo tools, this system requires no manual drawing — everything is automated and anchored from key structure shifts such as CHoCH (Change of Character) and BoS (Break of Structure).
🧭 How It Works
After detecting a structural reversal (bullish or bearish), the system:
Locates the recent swing high and swing low
Calculates the midpoint between the two
Uses a proprietary BskLAB formula to project forward Fibonacci levels from the midpoint toward the dominant price direction
Each level represents a zone where price may:
Complete its move
Find resistance/support
Or potentially reverse
This automated process eliminates the need for manual zone-drawing, making it especially useful for fast-paced traders who need clean, reliable visual guides.
🧩 Key Features
✅ Proprietary Fibonacci Extension algorithm unique to BskLAB
🔄 Auto-detection of CHoCH/BoS with forward zone projection
🎯 Color-coded levels for easier recognition of reversal areas
🛠️ Fully automated — no manual drawing required
🧩 Adjustable sensitivity, length, and zone count
🔗 Best Used With
📈 BskLAB Signal Assistant – For precise signal entry filtering
📊 BskLAB Money Flow X – To confirm reversal zones via volume pressure and divergence
⚠️ Important Note
Zones appear only when a valid structure shift is confirmed, ensuring high relevance to current market context.
This tool is ideal for:
Setting high-probability targets
Anticipating reversal zones
Enhancing precision in trade planning
Break Previous Low AlertAlert for previous price bar low. When price creates a new low you will get an alert.
🟢 Clean BUY/SELL Signal (All Filters Hidden)fgchavsbmn,cakhscb kals dcaljks cjas ckjasclkasnd.ask dfhg asdhj askgd hjaksdmvhagsbjdkn abs dnljasd
yxung.energy ICCHighs, Lows, Market Structure - good for starters!
Works well on 1h tf, making improvements as we speak.
Trading Tools🎯 Trading Tools – Your All-in-One Market Analysis Solution
Developed by Marcelo Ulisses Sobreiro Ribeiro, Trading Tools is a powerful, multi-functional indicator that combines essential trading features into a single, streamlined tool. Perfect for traders who want clear, precise market opportunities across any asset or timeframe.
🔥 Key Features:
📊 Smart Moving Averages
Customizable setup for up to 5 MAs (EMA, SMA, WMA).
Color-coded fills between MAs to highlight trends (bullish/bearish).
Dynamic 20-period MA (color shifts with trend).
Alerts for crossovers and trend changes.
🕒 Killzones (High-Liquidity Sessions)
Visual highlights for key trading sessions: Asia, London, NY AM, NY Lunch, and NY PM.
Customizable colors and transparency.
Drawing limit to avoid chart clutter.
📅 Time-Based Markers
Day-of-week labels (option to hide weekends).
Day separators (customizable style).
🎨 Rule-Based Candle Coloring
Expanded True Range (large candles).
Inside Bars.
123 Pattern (Mark Crisp).
Bullish/Bearish Engulfing.
Price of Closing Reversal (PFR).
Market Strength.
Overbought/Oversold (RSI & Stochastic).
⚖️ Imbalance Detector (FVG, OG, VI)
Fair Value Gaps (FVG).
Opening Gaps (OG).
Volume Imbalance (VI).
🔄 Stochastic Cross & Valid Pullbacks
Stochastic crossover signals (up/down arrows).
Valid pullback alerts.
📈 Dynamic Support & Resistance
Previous day’s high/low (PDH/PDL).
Automatic pivot detection (significant highs/lows).
⚙️ Full Customization
Adjust timeframe limits, timezone, label size, and colors.
Control how many drawings are kept on the chart.
🚨 Built-in Alerts
Alerts for 20-period MA, PFR, Pullbacks, and more!
📌 Why Use Trading Tools?
All-in-one solution: No need for multiple indicators.
Intuitive visuals: Colors and markers simplify setup identification.
Adaptable: Works on any asset (forex, stocks, crypto).
🔹 Perfect for traders who want efficiency and clarity in their analysis!
SUPER3 by BAPI MONDALIts a Market Reversal indicator & I named The Indicator as Super 3
Take Extra confirmation before taking Trades
Signals with KVO, EMA, RSI by Anowar V3This is a combination of Klinger Volume Oscillator, EMA and RSI. After all terms are met, a B or S signal will appear for Buy or Sell. There is Alert functions available to use.
lucio_😎必勝StrategyThe reversal after the RCI reaches the upper and lower bounds is used as the trigger for entry and settlement.
In order to follow the trend, record the highs and lows of the last 4 hours (adjustable) and aim for long above the center line and short below the center line.
MACD divergence alerts and plots are possible.
SMA (15m.1h.4h) tilted and colored, default display.
In the case of margin trading, it is possible to display a table showing whether there is a bias toward long or short lots for margin with the above high and low as the settlement line.
Market Structure by HorizonAIThis indicator shows market structure with BOS and CHoCH, also Order block and FVG.
Market Structure by HorizonAIThis indicator shows SMC Market structure with BOS and CHoCH. Internal and external structur. Use external structure for better experience.
THEDU PHÁ VỠ Trendlinedùng trenline phá vỡ kẻ các duopngwf sọc chỉ báo, buy sell khi giá cắt qua. kết hợp tốt với adx
THEDU SMC TEST VDFGVDSVDSVDSFVDSVSACDAS DCA ASCASXC QAWSCX SDCSCSCZX ASDXADWQEDGBVDCV ÂCSCSACSCSCASDCVSFDVWSDEF
asdcasdasdasdasdawsdz x ã ascxascascxacx a xác sadasdcasd sza
Custom EMA Inputs (20, 40, 100, 200)This script plots four customizable Exponential Moving Averages (EMAs) on the chart—specifically the 20, 40, 100, and 200-period EMAs. Each EMA length and color can be adjusted by the user, allowing for greater flexibility in trend analysis and multi-timeframe confirmation. The script supports offsetting plots, enabling visual tweaks for alignment with other indicators or price action setups.
Ideal for traders seeking dynamic control over their moving average strategies, this tool provides a clean, adaptable foundation for both trend following and crossover systems.
Rejection Blocks (RJB) and Liquidity Grabs (SFPs)- Milana TradesThis indicator highlights Rejection Blocks (RJB) and Liquidity Grabs (SFPs)—two advanced price action concepts used by professional traders, especially those following ICT (Inner Circle Trader) strategies.
Rejection Block (RJB) is an advanced version of the traditional Order Block. It marks areas where price has been sharply rejected—often zones where smart money enters or exits positions. The logic is based on specific wick rejection criteria and candle structure, with mitigated RJBs marked or hidden automatically.
Liquidity Grab (SFP) detects key Swing Failure Patterns—where price takes out a previous high/low, grabs liquidity, and reverses. Optional volume validation is available for more accurate filtering, especially using LTF (lower timeframe) data.
Key Features:
Rejection Block (RJB)
1) Identifies both bullish and bearish rejection blocks.
2) Two logic types: “trapped wick” and “signal wick” configurations.
3) Auto-detection of mitigated RJBs and customizable visualization.
4)Adjustable color, transparency, box style, label text, and more.
5)Limit on max RJBs displayed to keep the chart clean.
Liquidity Grab (SFP)
1)Detects bullish and bearish SFPs (Swing Failure Patterns).
2)Optional volume validation with threshold control (based on LTF).
3)Dynamically adjusts lower timeframe resolution (auto/manual).
4)Visual confirmation lines, wick highlights, and labels.
5)SFP Dashboard table (optional) for LTF & validation display.
SFP Wick to RJB Zones
Converts confirmed SFPs into new RJB boxes.
Adds powerful confluence between rejection and liquidity.
🔔 Built-in Alerts
Alerts can be set up for both bullish and bearish Rejection Blocks, as well as confirmed SFPs.
Ideal for traders who want to be notified in real-time when price:
Forms a valid Rejection Block,
Prints a confirmed SFP (Swing Failure),
Enters or exits key liquidity zones.
Alerts are fully compatible with TradingView’s alert system.
⚙️ Settings Overview:
Rejection Blocks
Enable plotting, box limit, mitigated filtering, label customization.
Liquidity Grabs (SFPs)
Enable SFPs (bull/bear), pivot length, volume % threshold, LTF resolution.
Enable dashboard, wick display, and validation logic.
SFP-based RJB
Create RJB zones from confirmed SFP signals.
Independent box length and color settings.
Dashboard & Labels
Enable/disable visual labels and LTF info table.
Customize font size, color, and position.
Use Cases:
Identify smart money rejection zones before price reversals.
Use mitigated RJBs to anticipate failed retests or structure breaks.
Trade with confidence by combining RJB + SFP signals.
Set alerts to monitor setups without staring at charts 24/7.
Notes:
Compatible with any market (Forex, Crypto, Indices, Stocks).
Works on all timeframes.