Aggressive Phase + Daily Buy Visual Screener — v6Aggressive Phase + Daily Buy Visual Screener — v6 for bullish, neutral and bearish zone identification
图表形态
REMS First Strike OverlayThe REMS First Strike indicator is a multi-factor, confluence-based system that combines momentum (RSI, Stochastic RSI), trend (EMA, MACD), and optional filters (volume, MACD histogram, session time) to identify high-probability trade setups. Signals are only triggered when all enabled conditions align, giving the trader a filtered, visually clear entry signal.
This indicator uses an optional 'cool down' feature where in it will signal an entry only after any of the specified cross events occur.
To use the indicator, select which technical indicators you wish to filter, the session you wish to apply (default is 9:30am - 4pm EST, based on your chart time settings), and if which cross events you wish to trigger a reset on the cooldown.
The default settings filter the 4 major technical indicators (RSI, EMAs, MACD, Stochastic RSI) but optional filters exist to further fine tune Stochastic Range, MACD momentum and strength, and volume, with optional visual cues for MACD position, Stochastic RSI position, and volume.
EMAs can be drawn on the chart from this indicator with optional shaded background.
This indicator is an alternative to REMS Snap Shot, which uses a recency filter instead of a cool down.
TF + Ticker (vahab)Fixed Timeframe Display with Custom Colors & Size
This indicator displays the current chart timeframe in the bottom-right corner with clear formatting. Features include:
Automatic conversion of minute-based timeframes to hours (e.g., 60 → 1H, 240 → 4H).
Distinguishes seconds, minutes, hours, and daily/weekly/monthly timeframes.
Fully customizable colors for each type of timeframe.
Adjustable font size for readability.
Simple, stable, and lightweight overlay.
Perfect for traders who want an easy-to-read timeframe display without cluttering the chart.
EMA Crossover Buy/Sell with Switchable TimeframeCreated to Set a buy and Sell SIgnal Off the 15m TF/ with the Ema's set to 1 and 7. will kick the signal 1 candle before the move or on the move itself.
ICT First Presented FVG - Multi-SessionsFirst presented fvg in all sessions, all timeframes
Haven't fixed the volume imbalance feature yet, if you know how to let me know!
🏆 AI Gold Master IndicatorsAI Gold Master Indicators - Technical Overview
Core Purpose: Advanced Pine Script indicator that analyzes 20 technical indicators simultaneously for XAUUSD (Gold) trading, generating automated buy/sell signals through a sophisticated scoring system.
Key Features
📊 Multi-Indicator Analysis
Processes 20 indicators: RSI, MACD, Bollinger Bands, EMA crossovers, Stochastic, Williams %R, CCI, ATR, Volume, ADX, Parabolic SAR, Ichimoku, MFI, ROC, Fibonacci retracements, Support/Resistance, Candlestick patterns, MA Ribbon, VWAP, Market Structure, and Cloud MA
Each indicator generates BUY (🟢), SELL (🔴), or NEUTRAL (⚪) signals
⚖️ Dual Scoring Systems
Weighted System: Each indicator has configurable weights (10-200 points, total 1000), with higher weights for critical indicators like RSI (150) and MACD (150)
Simple Count System: Basic counting of BUY vs SELL signals across all indicators
🎯 Signal Generation
Configurable thresholds for both systems (weighted score threshold: 400-600 recommended)
Dynamic risk management with ATR-based TP/SL levels
Signal strength filtering to reduce false positives
📈 Advanced Configuration
Customizable thresholds for all 20 indicators (RSI levels, Stochastic bounds, Williams %R zones, etc.)
Dynamic weight bonuses that adapt to dominant market trends
Risk management with configurable TP1/TP2 multipliers and stop losses
🎛️ Visual Interface
Real-time master table displaying all indicators, their values, weights, and current signals
Visual trading signals (triangles) with detailed labels
Optional TP/SL lines and performance statistics
💡 Optimization Features
Gold-specific parameter tuning
Trend analysis with configurable lookback periods
Volume spike detection and volatility analysis
Multi-timeframe compatibility (15m, 1H, 4H recommended)
The system combines traditional technical analysis with modern weighting algorithms to provide comprehensive market analysis specifically optimized for gold trading.
Ragazzi è una meraviglia, pronto all uso, già configurato provatelo divertitevi e fate tanti soldoni poi magari una piccola donazione spontanea sarebbe molto gradita visto il tempo, risorse e gli insulti della moglie che mi diceva che perdevo tempo, fatemi sapere se vi piace.
nel codice troverete una descrizione del funzionamento se vi vengono in mente delle idee per migliorarlo contattatemi troverete i mie contatti in tabella un saluto.
Indicador – Market In + TP +0.52% / SL -0.84% (USD) NEWindicator that is very comprehensive and detailed, working in real time for 1-, 2-, and 5-minute charts, marking on the chart and writing (Buy here) when it’s time to enter and (Sell here) when it’s time to exit the trade, always considering $0.02 above the entry price.
indicador no trading view de forma bem ampla e detalhada em tempo real para graficos de 1 / 2 e 5 mins apontando no grafico e escrevendo (Comprar aqui) quando for o momento de entrada e (Vender aqui) quando for o momento de sair da operação, sempre considerando 0,02 centavos acima do preço de entrada
Thiru TimeCyclesThiru TimeCycles Indicator: Overview and Features
Based on the provided Pine Script code (version 6), the "Thiru TimeCycles" indicator is a comprehensive, customizable tool designed for intraday traders, particularly those following Smart Money Concepts (SMC), ICT (Inner Circle Trader) methodologies, and time-based cycle analysis. It overlays session-based boxes, lines, and labels on charts to highlight key trading windows, ranges, and structural levels. The indicator is timezone-aware (default GMT-4, e.g., New York time) and focuses on killzones (high-volatility sessions), Zeussy-inspired 90-minute macro cycles, and 30-minute sub-cycles. It's optimized for timeframes below 4H, with automatic hiding on higher timeframes like 1D, 1W, 1M, or 1Y.
This indicator is ideal for forex, indices (e.g., Nasdaq futures like MNQ1!), stocks, and commodities, helping traders identify order flow, liquidity zones, and potential reversals within structured time cycles. It's built by Thiru Trades and includes educational elements like range tables and watermarks for a professional setup.
Core Purpose
Time Cycle Visualization: Breaks the trading day into repeatable cycles (e.g., 30-min, 90-min, and larger sessions) to anticipate market behavior, such as accumulation, manipulation, and distribution (AMD) phases.
Session Highlighting: Draws boxes and lines for major sessions (Asia, London, NY AM/PM, Lunch, Power Hour) to focus on high-probability "killzones."
Range and Pivot Analysis: Tracks highs/lows, midpoints, and ranges for each cycle/session, with optional alerts for breaks.
Customization Focus: Extensive inputs for colors, transparency, labels, and limits, making it adaptable for scalping, day trading, or swing setups.
Performance: Limits drawings to prevent chart clutter (e.g., max 500 boxes/lines/labels), with cutoff times to stop extensions (e.g., at 15:00).
Key Features
Here's a breakdown of the indicator's main components and functionalities, grouped by category:
Killzone Sessions (Standard Trading Windows):
Sessions Included: Asia (18:00-02:31), London (02:30-07:01), NY AM (07:00-11:31), Lunch (12:00-13:01), NY PM (11:30-16:01), Power Hour (15:00-16:01).
Visualization: Semi-transparent boxes (95% transparency default) with optional text labels (e.g., "London", "NY AM").
Pivots and Midpoints: Optional high/low pivot lines (solid style, extend until mitigated or cutoff), midpoints (dotted), and labels (e.g., "LO.H" for London High).
Alerts: Break alerts for pivots (e.g., "Broke London High").
Range Table: Optional table showing current and average ranges (over 5 sessions) for each killzone, positioned at top-right (customizable size/position).
Zeussy 90-Minute Macro Time Cycles:
Inspired By: Zeussy's time cycle theory (from X/Twitter), dividing sessions into 90-min phases starting at 02:30 NY time.
Cycles Included:
London: A (02:30-04:01, blue), M (04:00-05:31, red), D (05:30-07:01, green).
NY AM: A (07:00-08:31, blue), M (08:30-10:01, red), D (10:00-11:31, green).
NY PM/Lunch: A (11:30-13:01, blue), M (13:00-14:31, red), D (14:30-16:01, green).
Visualization: Boxes (90% transparency) with optional small labels ("London A", etc.) at the top of each box.
Extensions: High/low lines extend until broken or cutoff; optional equilibrium (EQ) levels.
Benefits: Helps identify AMD phases within larger sessions; focus on NY AM/PM for best results (Asia/London for global traders).
Zeussy 30-Minute Sub-Cycles:
Sub-Division: Further breaks 90-min cycles into 30-min segments (e.g., London A: A1 02:30-03:01, A2 03:00-03:31, A3 03:30-04:01).
All Sub-Cycles: 18 total (3 per macro cycle across London A/M/D, NY AM A/M/D, NY PM A/M/D).
Visualization: Optional boxes (90% transparency, hidden text by default) with small labels (e.g., "A1", "M1") at the bottom.
Customization: Separate show/hide toggle and label size (default "Small"); can divide further into 10-min if needed via presets.
Use Case: For finer granularity in scalping; shows order flow within macros (e.g., support at previous low after break).
Day Range Divider:
Vertical Separators: Dotted lines (custom color/width/style) at midnight (00:00) for each trading day (Mon-Fri only).
Day Labels: Monday-Friday labels (e.g., "Monday" with letter-spacing) positioned at the top of the chart (0.1% above high, updated dynamically).
Limits: Up to 5 days (customizable); hides on timeframes >=4H (1D, 1W, 1M, 1Y) to avoid clutter.
Offset: Labels above day-high by ticks (default 20); no weekend labels.
Fix Applied: Labels now consistently at top (using high * 1.001 for y-position); removed middle adjustments.
Day/Week/Month (DWM) Levels:
Opens, Highs/Lows, Separators: Lines for daily/weekly/monthly opens (dotted), previous highs/lows (solid), and vertical separators.
Unlimited Mode: Optional to show all history (otherwise limited by max_days).
Alerts: For high/low breaks (e.g., "Hit PDH").
Labels: Optional "D.O", "PWH" (previous week high), etc., with right-side extension.
Opening Prices and Vertical Timestamps:
Custom Opens: Up to 8 user-defined session opens (e.g., DC Open 18:00, 00:00, 09:30) with horizontal lines (dotted).
Vertical Lines: Up to 4 timestamps (e.g., 17:00, 08:00) with extend-both.
Unlimited: Optional to ignore drawing limits.
Range and Statistics Table:
Display: Top-right table (custom position/size) showing current range, average range (over 5 sessions), and min days stored for all enabled killzones/cycles.
Color-Coded: Rows highlight active sessions (e.g., Asia row in purple if active).
Toggle: Show/hide averages; updates on last bar.
Watermark and UI Enhancements:
Custom Watermark: Title ("ㄒ卄丨尺ㄩ"), subtitle ("PATIENCE | COURAGE | WISDOM"), symbol info (ticker + timeframe + date), positioned top-center/bottom-left.
Customization: Colors, sizes (tiny to huge), alignment (left/center/right), transparency.
Settings Groups: Organized into Settings, Killzones, Zeussy 90Min, Zeussy 30Min, Day Range Divider, Watermark, Pivots, Range, DWM, Opens, Vertical.
Performance and Limits:
Timeframe Limit: Hides drawings on >=240min (4H); Day Range hides on >=4H.
Drawing Limits: Max 1-5 days per type (boxes, lines, labels); auto-deletes old ones.
Cutoff: Optional stop at 15:00-15:01 for pivots/opens.
Alerts: Pivot breaks, high/low hits; freq once per bar.
Transparency: Separate for boxes (90-95%) and text (20-75%).
FVG TrackerThis indicator automatically detects and tracks Fair Value Gaps (FVGs) on your chart, helping you quickly spot imbalances in price action.
Key Features:
📍 Identifies FVGs larger than 3 contracts
📐 Draws each valid FVG as a rectangle directly on the chart
⏳ Removes FVGs once they are fully filled
🔟 Keeps track of only the 10 most recent FVGs for clarity
⚡ Lightweight and optimized for real-time charting
This tool is ideal for traders who use FVGs as part of Smart Money Concepts (SMC) or imbalance-based strategies. By visually highlighting only meaningful gaps and clearing them once filled, it ensures a clean and actionable charting experience.
Snapfront Clarity PulseThe Clarity Pulse is a lightweight Snapfront oscillator that highlights when markets move from noisy and chaotic into clean, tradable clarity zones. It combines simple return, drift, and volume dynamics, then maps them through a φ²-based sigmoid for smooth, intuitive signals.
Features:
📊 Clean 0–100 clarity scale
🌈 Color-coded line + background shading (green = high clarity, red = noise)
📈 Alert conditions when crossing into high or low clarity regimes
⚡ Minimalist design, optimized for speed and simplicity
How to Use:
✅ When the Pulse enters the high clarity zone, trends are stronger and signals are more reliable.
❌ When it drops into the low clarity zone, conditions are noisy and prone to chop.
Use as a filter alongside your existing strategy or as a quick market condition gauge.
Live price distance from low of the dayThis simple indicator state the distance of the actual price from the low of the day - Simple tool to help position sizing :)
TWS - ATR, VWAP, PDHLC, EMAThis indicator is combination of many indicator. Like ATR, VWAP, Previous day low, high, close & EMA.
پنل سود/زیان + چند تارگت R:R//@version=6
indicator("پنل سود/زیان + چند تارگت (۴ ورود مستقل) - پنل چپ نزدیک قیمت + میانگین R:R", overlay=true, max_lines_count=500, max_labels_count=500)
// ====== تنظیمات عمومی ======
side = input.string("لانگ", "نوع پوزیشن", options= )
usd_dp = input.int(2, "تعداد اعشار نمایش دلار", minval=0, maxval=6)
// ====== تنظیمات پنل ======
hud_font = input.string("large", "اندازۀ فونت پنل", options= )
hud_bg = input.color(color.new(color.black, 0), "رنگ پسزمینه پنل")
hud_txtc = input.color(color.white, "رنگ متن پنل")
// محل پنل: کمی «چپِ» آخرین کندل + کمی فاصله عمودی از قیمت
hud_off_bars = input.int(3, "فاصلۀ افقی از قیمت به سمت چپ (تعداد کندل، فقط روی آخرین کندل)", minval=0, maxval=50)
hud_off_atr = input.float(0.2, "فاصلۀ عمودی از قیمت (ATR)", step=0.1)
atr_len = input.int(14, "طول ATR برای فاصله عمودی", minval=1)
// نمایش اجباری پنل حتی بدون ورود
force_show_hud = input.bool(true, "🔍 نمایش اجباری پنل حتی بدون ورود")
// ====== حد ضرر و تارگتهای مشترک ======
stop_inp = input.float(0.0, "حد ضرر (مشترک، اختیاری)", step=0.0001)
use_tp1 = input.bool(false, "فعالسازی تارگت ۱")
tp1 = input.float(0.0, "قیمت تارگت ۱", step=0.0001)
use_tp2 = input.bool(false, "فعالسازی تارگت ۲")
tp2 = input.float(0.0, "قیمت تارگت ۲", step=0.0001)
use_tp3 = input.bool(false, "فعالسازی تارگت ۳")
tp3 = input.float(0.0, "قیمت تارگت ۳", step=0.0001)
use_tp4 = input.bool(false, "فعالسازی تارگت ۴")
tp4 = input.float(0.0, "قیمت تارگت ۴", step=0.0001)
use_tp5 = input.bool(false, "فعالسازی تارگت ۵")
tp5 = input.float(0.0, "قیمت تارگت ۵", step=0.0001)
// ====== ورودیهای ۴ ورود مستقل ======
group1 = "ورود ۱"
en1 = input.bool(true, "فعالسازی ورود ۱", inline=group1)
lev1 = input.int(10, "لوریج", minval=1, maxval=200, inline=group1)
entry1 = input.float(0.0, "قیمت ورود ۱", step=0.0001)
set_now1 = input.bool(false, "⚡ ثبت ورود۱ = قیمت فعلی")
mode1 = input.string("دلاری (USDT)", "واحد اندازه ۱", options= )
sem1 = input.string("مارجین (اعمال لوریج)", "تعبیر اندازه ۱", options= )
size1 = input.float(0.0, "اندازه پوزیشن ۱", step=0.0001)
baseLev1 = input.bool(false, "اعمال لوریج روی حالت «تعداد کوین» (۱)")
group2 = "ورود ۲"
en2 = input.bool(false, "فعالسازی ورود ۲", inline=group2)
lev2 = input.int(10, "لوریج", minval=1, maxval=200, inline=group2)
entry2 = input.float(0.0, "قیمت ورود ۲", step=0.0001)
set_now2 = input.bool(false, "⚡ ثبت ورود۲ = قیمت فعلی")
mode2 = input.string("دلاری (USDT)", "واحد اندازه ۲", options= )
sem2 = input.string("مارجین (اعمال لوریج)", "تعبیر اندازه ۲", options= )
size2 = input.float(0.0, "اندازه پوزیشن ۲", step=0.0001)
baseLev2 = input.bool(false, "اعمال لوریج روی حالت «تعداد کوین» (۲)")
group3 = "ورود ۳"
en3 = input.bool(false, "فعالسازی ورود ۳", inline=group3)
lev3 = input.int(10, "لوریج", minval=1, maxval=200, inline=group3)
entry3 = input.float(0.0, "قیمت ورود ۳", step=0.0001)
set_now3 = input.bool(false, "⚡ ثبت ورود۳ = قیمت فعلی")
mode3 = input.string("دلاری (USDT)", "واحد اندازه ۳", options= )
sem3 = input.string("مارجین (اعمال لوریج)", "تعبیر اندازه ۳", options= )
size3 = input.float(0.0, "اندازه پوزیشن ۳", step=0.0001)
baseLev3 = input.bool(false, "اعمال لوریج روی حالت «تعداد کوین» (۳)")
group4 = "ورود ۴"
en4 = input.bool(false, "فعالسازی ورود ۴", inline=group4)
lev4 = input.int(10, "لوریج", minval=1, maxval=200, inline=group4)
entry4 = input.float(0.0, "قیمت ورود ۴", step=0.0001)
set_now4 = input.bool(false, "⚡ ثبت ورود۴ = قیمت فعلی")
mode4 = input.string("دلاری (USDT)", "واحد اندازه ۴", options= )
sem4 = input.string("مارجین (اعمال لوریج)", "تعبیر اندازه ۴", options= )
size4 = input.float(0.0, "اندازه پوزیشن ۴", step=0.0001)
baseLev4 = input.bool(false, "اعمال لوریج روی حالت «تعداد کوین» (۴)")
// ثبت سریع ورود = قیمت فعلی
entry1 := (en1 and set_now1) ? close : entry1
entry2 := (en2 and set_now2) ? close : entry2
entry3 := (en3 and set_now3) ? close : entry3
entry4 := (en4 and set_now4) ? close : entry4
// ====== کمکتابعها ======
to_size(s) =>
s == "tiny" ? size.tiny : s == "small" ? size.small : s == "normal" ? size.normal : s == "large" ? size.large : size.huge
f_usd_str(_val, _decimals) =>
na(_val) ? "—" : str.tostring(math.round(_val * math.pow(10, _decimals)) / math.pow(10, _decimals))
f_qty_base(mode, sem, size, entry, baseLev, lev) =>
float _qty = na
if mode == "دلاری (USDT)"
_qty := (size > 0 and entry > 0) ? ((sem == "مارجین (اعمال لوریج)" ? size * lev : size) / entry) : na
else
_qty := size > 0 ? (baseLev ? size * lev : size) : na
_qty
f_notional_quote(mode, sem, size, entry, lev, baseLev) =>
if mode == "دلاری (USDT)"
sem == "مارجین (اعمال لوریج)" ? size * lev : size
else
(baseLev ? size * lev : size) * entry
f_pnl_quote(side, entry, qty) =>
na(qty) or na(entry) ? na : (side=="لانگ" ? (close - entry) : (entry - close)) * qty
f_pct(side, entry) =>
na(entry) ? na : ((close - entry) / entry * 100.0) * (side=="لانگ" ? 1 : -1)
f_roi_pct(side, entry, lev) =>
na(entry) ? na : f_pct(side, entry) * lev
f_stickyHLine(_price, _lineIn, _color, _width) =>
var line _out = na
_out := _lineIn
if na(_out)
_out := line.new(bar_index-1, _price, bar_index+1, _price, xloc=xloc.bar_index, extend=extend.both, width=_width, style=line.style_dashed, color=_color)
else
line.set_xy1(_out, bar_index-1, _price)
line.set_xy2(_out, bar_index+1, _price)
line.set_color(_out, _color)
line.set_width(_out, _width)
_out
// ====== محاسبات ۴ ورود ======
var color entryCols = array.from(color.new(color.yellow, 0), color.new(color.orange, 0), color.new(color.teal, 0), color.new(color.fuchsia, 0))
bool ens = array.from(en1, en2, en3, en4)
float entries = array.from(entry1, entry2, entry3, entry4)
int levs = array.from(lev1, lev2, lev3, lev4)
string modes = array.from(mode1, mode2, mode3, mode4)
string sems = array.from(sem1, sem2, sem3, sem4)
float sizes = array.from(size1, size2, size3, size4)
bool baseLevs = array.from(baseLev1, baseLev2, baseLev3, baseLev4)
float qtys = array.new_float(4, na)
float pnls = array.new_float(4, na)
float pcts = array.new_float(4, na)
float rois = array.new_float(4, na)
float notionals = array.new_float(4, na)
for i = 0 to 3
if array.get(ens, i) and array.get(entries, i) > 0
ent = array.get(entries, i)
levX = array.get(levs, i)
modeX= array.get(modes, i)
semX = array.get(sems, i)
sizeX= array.get(sizes, i)
bLev = array.get(baseLevs, i)
qty = f_qty_base(modeX, semX, sizeX, ent, bLev, levX)
array.set(qtys, i, qty)
pnlq = f_pnl_quote(side, ent, qty)
array.set(pnls, i, pnlq)
pct = f_pct(side, ent)
array.set(pcts, i, pct)
roi = f_roi_pct(side, ent, levX)
array.set(rois, i, roi)
notq = f_notional_quote(modeX, semX, sizeX, ent, levX, bLev)
array.set(notionals, i, notq)
// ====== مجموع و میانگین ورود وزنی ======
float totalPnlUSD = 0.0
float totalNotional = 0.0
float totalQty = 0.0
float wAvgEntry = na
for i = 0 to 3
if not na(array.get(pnls, i))
totalPnlUSD += array.get(pnls, i)
if not na(array.get(notionals, i))
totalNotional += array.get(notionals, i)
if not na(array.get(qtys, i)) and array.get(entries, i) > 0
totalQty += array.get(qtys, i)
if totalQty > 0
num = 0.0
for i = 0 to 3
qi = array.get(qtys, i)
ei = array.get(entries, i)
if not na(qi) and ei > 0
num += qi * ei
wAvgEntry := num / totalQty
totalROIweighted = totalNotional > 0 ? (totalPnlUSD / totalNotional) * 100.0 : na
// ====== نزدیکترین تارگت و R:R ======
float nearestTP = na
float nearestDistPrice = na
float nearestDistPct = na
float risk_pct = na
float reward_pct = na
float rr = na
var float tps = array.new_float()
array.clear(tps)
if use_tp1 and tp1 > 0
array.push(tps, tp1)
if use_tp2 and tp2 > 0
array.push(tps, tp2)
if use_tp3 and tp3 > 0
array.push(tps, tp3)
if use_tp4 and tp4 > 0
array.push(tps, tp4)
if use_tp5 and tp5 > 0
array.push(tps, tp5)
// نزدیکترین تارگت همسو با جهت
if array.size(tps) > 0
for i = 0 to array.size(tps) - 1
_tp = array.get(tps, i)
cond = side=="لانگ" ? (_tp > close) : (_tp < close)
if cond
distP = math.abs(_tp - close)
if na(nearestDistPrice) or distP < nearestDistPrice
nearestDistPrice := distP
nearestTP := _tp
if not na(nearestDistPrice) and close != 0
nearestDistPct := (nearestDistPrice / close) * 100.0
float stop = stop_inp > 0 ? stop_inp : na
if not na(wAvgEntry) and not na(stop)
rawRisk = (side=="لانگ" ? (stop - wAvgEntry) : (wAvgEntry - stop)) / wAvgEntry * 100.0
risk_pct := math.abs(rawRisk)
if not na(wAvgEntry) and not na(nearestTP)
reward_pct := math.abs((side=="لانگ" ? (nearestTP - wAvgEntry) : (wAvgEntry - nearestTP)) / wAvgEntry * 100.0)
rr := (not na(risk_pct) and not na(reward_pct) and risk_pct != 0) ? reward_pct / risk_pct : na
// ====== «میانگین R:R» روی همه تارگتهای معتبر ======
float rr_avg = na
if not na(wAvgEntry) and not na(stop) and array.size(tps) > 0 and not na(risk_pct) and risk_pct != 0
float sum_rr = 0.0
int cnt_rr = 0
for i = 0 to array.size(tps) - 1
_tp = array.get(tps, i)
bool validDir = side=="لانگ" ? (_tp > wAvgEntry) : (_tp < wAvgEntry)
if validDir
_reward = math.abs((side=="لانگ" ? (_tp - wAvgEntry) : (wAvgEntry - _tp)) / wAvgEntry * 100.0)
_rr = _reward / risk_pct
sum_rr += _rr
cnt_rr += 1
rr_avg := cnt_rr > 0 ? (sum_rr / cnt_rr) : na
// ====== خطوط ورود/SL/TP ======
var line entryLines = array.new_line(4, na)
for i = 0 to 3
ln = array.get(entryLines, i)
if array.get(ens, i) and array.get(entries, i) > 0
col = array.get(entryCols, i)
ent = array.get(entries, i)
ln := f_stickyHLine(ent, ln, col, 2)
array.set(entryLines, i, ln)
else
if not na(ln)
line.delete(ln)
array.set(entryLines, i, na)
var line slLine = na
if not na(stop)
slLine := f_stickyHLine(stop, slLine, color.new(color.red, 0), 1)
else
if not na(slLine)
line.delete(slLine)
slLine := na
var line tpLine1 = na
var line tpLine2 = na
var line tpLine3 = na
var line tpLine4 = na
var line tpLine5 = na
if use_tp1 and tp1 > 0
tpLine1 := f_stickyHLine(tp1, tpLine1, color.new(color.teal, 0), 1)
else
if not na(tpLine1)
line.delete(tpLine1)
tpLine1 := na
if use_tp2 and tp2 > 0
tpLine2 := f_stickyHLine(tp2, tpLine2, color.new(color.teal, 0), 1)
else
if not na(tpLine2)
line.delete(tpLine2)
tpLine2 := na
if use_tp3 and tp3 > 0
tpLine3 := f_stickyHLine(tp3, tpLine3, color.new(color.teal, 0), 1)
else
if not na(tpLine3)
line.delete(tpLine3)
tpLine3 := na
if use_tp4 and tp4 > 0
tpLine4 := f_stickyHLine(tp4, tpLine4, color.new(color.teal, 0), 1)
else
if not na(tpLine4)
line.delete(tpLine4)
tpLine4 := na
if use_tp5 and tp5 > 0
tpLine5 := f_stickyHLine(tp5, tpLine5, color.new(color.teal, 0), 1)
else
if not na(tpLine5)
line.delete(tpLine5)
tpLine5 := na
// ====== ساخت متن پنل ======
string txt = ""
// ردیفهای هر ورود
for i = 0 to 3
if array.get(ens, i) and array.get(entries, i) > 0
idx = i + 1
ent = array.get(entries, i)
pct = array.get(pcts, i)
pnlq = array.get(pnls, i)
roi = array.get(rois, i)
levX = array.get(levs, i)
txt += (txt=="" ? "" : " ") + "📌 ورود " + str.tostring(idx) + ": " + str.tostring(ent, format.mintick)
txt += " 📊 لحظهای: " + (na(pct) ? "—" : str.tostring(pct, format.mintick) + "%") + " | 💵 " + (na(pnlq) ? "—" : "$" + f_usd_str(pnlq, usd_dp))
txt += " 🧮 ROI(x" + str.tostring(levX) + "): " + (na(roi) ? "—" : str.tostring(roi, format.mintick) + "%")
// خلاصه پایانی یا پنل تست
if txt != ""
if totalQty > 0
txt += " — — —"
txt += " ⚖️ میانگین ورود وزنی: " + str.tostring(wAvgEntry, format.mintick)
if not na(stop)
txt += " ❌ SL: " + str.tostring(stop, format.mintick)
// نزدیکترین تارگت
string tpInfo = "—"
if not na(nearestTP)
tpInfo := str.tostring(nearestTP, format.mintick) + (na(nearestDistPct) ? "" : " (Δ " + str.tostring(nearestDistPct, format.mintick) + "%)")
txt += " 🎯 نزدیکترین: " + tpInfo
// R:R نزدیکترین
if not na(rr)
txt += " 📐 R:R نزدیکترین: " + str.tostring(rr, format.mintick)
// میانگین R:R روی همه تارگتهای معتبر
if not na(rr_avg)
txt += " 📐 میانگین R:R (همۀ تارگتهای معتبر): " + str.tostring(rr_avg, format.mintick)
// مجموعها
txt += " 🧾 مجموع سود/زیان: " + "$" + f_usd_str(totalPnlUSD, usd_dp)
txt += " 🧮 ROĪ وزنی (بر اساس ناتیونال): " + (na(totalROIweighted) ? "—" : str.tostring(totalROIweighted, format.mintick) + "%")
else if force_show_hud
txt := "🧪 پنل فعال است. از فیلدهای «قیمت ورود» استفاده کن یا تیکهای ⚡ را بزن. برای دیدن TP/SL خطوط، تیکهای مربوطه را فعال کن."
// ====== HUD (پنل سمت چپ، نوک اشاره نزدیک قیمت لحظهای) ======
// ====== HUD (پنل سمت راست، نوک اشاره نزدیک قیمت لحظهای) ======
var label hud = na
atr_val = ta.atr(atr_len)
// لنگر عمودی روی قیمت لحظهای با کمی فاصله عمودی
anchor_price = close
y_pos = na(anchor_price) ? na : anchor_price + (atr_val * hud_off_atr)
// فقط روی آخرین کندل، چند بار به «راست» میبریم تا نوک پنل نزدیک کندل باشد
x_pos_base = bar_index
x_pos = barstate.islast ? (x_pos_base + hud_off_bars) : x_pos_base
if not na(y_pos) and txt != ""
if na(hud)
// ⚠️ style_label_left = نوک پنل سمت چپ است ⇒ متن به راست باز میشود ⇒ کل پنل در «راستِ» قیمت قرار میگیرد
hud := label.new(x_pos, y_pos, txt,xloc=xloc.bar_index,style=label.style_label_left, textcolor=hud_txtc, color=hud_bg, size=to_size(hud_font))
else
label.set_x(hud, x_pos)
label.set_y(hud, y_pos)
label.set_text(hud, txt)
label.set_textcolor(hud, hud_txtc)
label.set_color(hud, hud_bg)
label.set_style(hud, label.style_label_left)
label.set_size(hud, to_size(hud_font))
else
if not na(hud)
label.delete(hud)
hud := na
Entry + TP + SL Box (dynamic )The purpose of creating this indicator is to quickly draw the entry price range box, price target box, and price loss box.
Dual Channel System [Alpha Extract]A sophisticated trend-following and reversal detection system that constructs dynamic support and resistance channels using volatility-adjusted ATR calculations and EMA smoothing for optimal market structure analysis. Utilizing advanced dual-zone methodology with step-like boundary evolution, this indicator delivers institutional-grade channel analysis that adapts to varying volatility conditions while providing high-probability entry and exit signals through breakthrough and rejection detection with comprehensive visual mapping and alert integration.
🔶 Advanced Channel Construction
Implements dual-zone architecture using recent price extremes as foundation points, applying EMA smoothing to reduce noise and ATR multipliers for volatility-responsive channel widths. The system creates resistance channels from highest highs and support channels from lowest lows with asymmetric multiplier ratios for optimal market reaction zones.
// Core Channel Calculation Framework
ATR = ta.atr(14)
// Resistance Channel Construction
Resistance_Basis = ta.ema(ta.highest(high, lookback), lookback)
Resistance_Upper = Resistance_Basis + (ATR * resistance_mult)
Resistance_Lower = Resistance_Basis - (ATR * resistance_mult * 0.3)
// Support Channel Construction
Support_Basis = ta.ema(ta.lowest(low, lookback), lookback)
Support_Upper = Support_Basis + (ATR * support_mult * 0.4)
Support_Lower = Support_Basis - (ATR * support_mult)
// Smoothing Application
Smoothed_Resistance_Upper = ta.ema(Resistance_Upper, smooth_periods)
Smoothed_Support_Lower = ta.ema(Support_Lower, smooth_periods)
🔶 Volatility-Adaptive Zone Framework
Features dynamic ATR-based width adjustment that expands channels during high-volatility periods and contracts during consolidation phases, preventing false signals while maintaining sensitivity to genuine breakouts. The asymmetric multiplier system optimizes zone boundaries for realistic market behavior patterns.
// Dynamic Volatility Adjustment
Channel_Width_Resistance = ATR * resistance_mult
Channel_Width_Support = ATR * support_mult
// Asymmetric Zone Optimization
Resistance_Zone = Resistance_Basis ± (ATR_Multiplied * )
Support_Zone = Support_Basis ± (ATR_Multiplied * )
🔶 Step-Like Boundary Evolution
Creates horizontal step boundaries that update on smoothed bound changes, providing visual history of evolving support and resistance levels with performance-optimized array management limited to 50 historical levels for clean chart presentation and efficient processing.
🔶 Comprehensive Signal Detection
Generates break and bounce signals through sophisticated crossover analysis, monitoring price interaction with smoothed channel boundaries for high-probability entry and exit identification. The system distinguishes between breakthrough continuation and rejection reversal patterns with precision timing.
🔶 Enhanced Visual Architecture
Provides translucent zone fills with gradient intensity scaling, step-like historical boundaries, and dynamic background highlighting that activates upon zone entry. The visual system uses institutional color coding with red resistance zones and green support zones for intuitive
market structure interpretation.
🔶 Intelligent Zone Management
Implements automatic zone relevance filtering, displaying channels only when price proximity warrants analysis attention. The system maintains optimal performance through smart array management and historical level tracking with configurable lookback periods for various market conditions.
🔶 Multi-Dimensional Analysis Framework
Combines trend continuation analysis through breakthrough patterns with reversal detection via rejection signals, providing comprehensive market structure assessment suitable for both trending and ranging market conditions with volatility-normalized accuracy.
🔶 Advanced Alert Integration
Features comprehensive notification system covering breakouts, breakdowns, rejections, and bounces with customizable alert conditions. The system enables precise position management through real-time notifications of critical channel interaction events and zone boundary violations.
🔶 Performance Optimization
Utilizes efficient EMA smoothing algorithms with configurable periods for noise reduction while maintaining responsiveness to genuine market structure changes. The system includes automatic historical level cleanup and performance-optimized visual rendering for smooth operation across all timeframes.
Why Choose Dual Channel System ?
This indicator delivers sophisticated channel-based market analysis through volatility-adaptive ATR calculations and intelligent zone construction methodology. By combining dynamic support and resistance detection with advanced signal generation and comprehensive visual mapping, it provides institutional-grade channel analysis suitable for cryptocurrency, forex, and equity markets. The system's ability to adapt to varying volatility conditions while maintaining signal accuracy makes it essential for traders seeking systematic approaches to breakout trading, zone reversals, and trend continuation analysis with clearly defined risk parameters and comprehensive alert integration. Also to note, this indicator is best suited for the 1D timeframe.
PDT AI✅ Features
Multi-indicator fusion: RSI + MACD + EMA + higher timeframe RSI
Signal strength (%): Each signal gets a confidence score (0–100)
Dynamic ATR-based targets and stops
Alerts: Buy/Sell triggers for real-time notifications
Fully customizable inputs
PumpC PAC & MAsPumpC – PAC & MAs (Open Source)
A complete Price Action Candles (PAC) toolkit combining classical price action patterns (Fair Value Gaps, Inside Bars, Hammers, Inverted Hammers, and Volume Imbalances) with a flexible Moving Averages (MAs) module and an advanced bar-coloring system.
This script highlights supply/demand inefficiencies and micro-patterns with forward-extending boxes, recolors zones when mitigated, qualifies patterns with a global High-Volume filter, and ships with ready-to-use alerts. It works across intraday through swing trading on any market (e.g., NASDAQ:QQQ , $CME:ES1!, FX:EURUSD , BITSTAMP:BTCUSD ).
This is an open-source script. The description is detailed so users understand what the script does, how it works, and how to use it. It makes no performance claims and does not provide trade advice.
Acknowledgment & Credits
This script originates from the structural and box-handling logic found in the Super OrderBlock / FVG / BoS Tools by makuchaku & eFe. Their pioneering framework provided the base methods for managing arrays of boxes, extending zones forward, and recoloring once mitigated.
Building on that foundation, I have substantially expanded and adapted the code to create a unified Price Action Candles toolkit . This includes Al Brooks–inspired PAC logic, additional patterns like Inside Bars, Hammers, Inverted Hammers, and the new Volume Imbalance module, along with strong-bar coloring, close-threshold detection, a flexible global High-Volume filter, and a multi-timeframe Moving Averages system.
What it does
Fair Value Gaps (FVG) : Detects 3-bar displacement gaps, plots forward-extending boxes, and optionally recolors them once mitigated.
Inside Bars (IB) : Highlights bars fully contained within the prior candle’s range, with optional high-volume filter.
Hammers (H) & Inverted Hammers (IH) : Identifies rejection candles using configurable body/upper/lower wick thresholds. High-volume qualification optional.
Volume Imbalances (VI) : Detects inter-body gaps where one candle’s body does not overlap the prior candle’s body. Boxes extend forward until wick-based mitigation occurs (only after the two-bar formation completes). Alerts available for creation and mitigation.
Mitigation Recolor : Each pattern can flip to a mitigated color once price trades back through its vertical zone.
Moving Averages (MAs) : Four configurable EMAs/SMAs, with per-MA timeframe, length, color, and clutter-free plotting rules.
Strong Bar Coloring : Highlights bullish/bearish engulfing reversals with different colors for high-volume vs low-volume cases.
Close Threshold Bars : Marks candles that close in the top or bottom portion of their range, even if the body is small. Helps spot continuation pressure before a full trend bar forms.
Alerts : Notifications available for FVG+, FVG−, IB, H, IH, VI creation, and VI mitigation.
Connection to Al Brooks’ PAC teachings
This script reflects Al Brooks’ Price Action Candle methodology. PAC patterns like Inside Bars, Hammers, and Inverted Hammers are not trade signals on their own—they gain meaning in context of trend, failed breakouts, and effort vs. result.
By layering in volume imbalances, strong-bar reversals, and volume filters, this script focuses attention on the PACs that show true participation and conviction, aligning with Brooks’ emphasis on reading crowd psychology through price action.
Why the High-Volume filter matters
Volume is a key proxy for conviction. A PAC or VI formed on light volume can be misleading noise; one formed on above-average volume carries more weight.
Elevates Inside Bars that show absorption/compression with heavy activity.
Distinguishes Hammers that reject price aggressively vs. weak drifts.
Filters Inverted Hammers to emphasize true supply pressure.
Highlights VI zones where institutional order flow left inefficiencies.
Differentiates strong engulfing reversals from weaker, low-participation moves.
Inputs & Customization
Inputs are grouped logically for fast configuration:
High-Volume Filter : Global lookback & multiple, per-pattern toggles.
FVG : Visibility, mitigated recolor, box style/transparency, label controls.
IB : Visibility, require high volume, mitigated recolor, colors, label settings.
Hammer / IH : Visibility, require high volume, mitigated recolor, wick/body thresholds.
VI : Visibility, require high volume, mitigated recolor, box style, labels, mitigation alerts.
Strong Bars : Enable/disable, separate colors for high-volume and low-volume outcomes.
Close Threshold Bars : Customizable close thresholds, labels, optional count markers.
MAs : EMA/SMA type, per-MA toggle, length, timeframe, color.
Alerts
New Bullish FVG (+)
New Bearish FVG (−)
New Inside Bar (IB)
New Hammer (H)
New Inverted Hammer (IH)
New Volume Imbalance (VI)
VI Mitigated
Strong Bullish Engulfing / Bearish Engulfing (high- and low-volume variants)
Suggested workflow
Choose your market & timeframe (script works across equities, futures, FX, crypto).
Toggle only the PACs you actually trade. Assign distinct colors for clarity.
Use MAs for directional bias and higher timeframe structure.
Enable High-Volume filters when you want to emphasize conviction.
Watch mitigation recolors to see which levels/zones have been interacted with.
Use alerts selectively for setups aligned with your plan.
Originality
Builds upon Super OrderBlock / FVG / BoS Tools (makuchaku & eFe) for FVG/box framework.
Expanded into a unified PAC toolkit including IB, H, IH, and VI patterns.
Brooks-inspired design: Patterns contextualized with volume and trend, not isolated.
Flexible high-volume gating with per-pattern toggles.
New VI integration with wick-based mitigation.
Strong Bar Coloring differentiates conviction vs weak reversals.
MTF-aware MAs prevent clutter while providing structure.
Open-source: Transparent for learning, editing, and extension.
Disclaimer
For educational and informational purposes only. This script is not financial advice. Trading carries risk—always test thoroughly before live use.
Elliott Wave [BigBeluga]🔵 OVERVIEW
Elliott Wave automatically finds and draws an Elliott-style 5-wave impulse and a dashed projection for a potential -(a)→(b)→(c) correction. It detects six sequential reversal points from rolling highs/lows — 1, 2, 3, 4, 5, (a) — validates their relative placement, and then renders the wave with labels and horizontal reference lines. If price invalidates the structure by closing back through the Wave-5 level inside a 100-bar window, the pattern is cleared (optionally kept as “broken”) while key dotted levels remain for context.
🔵 CONCEPTS
Reversal harvesting from extremes : The script scans highest/lowest values over a user-set Length and stores swing points with their bar indices.
Six-point validation : A pattern requires six pivots (1…5 and (a)). Their vertical/temporal order must satisfy Elliott-style constraints before drawing.
Impulse + projection : After confirming 1→5, the tool plots a curved polyline through the pivots and a dashed forward path from (a) toward (b) (midpoint of 5 and (a)) and back to (c).
Risk line (invalidator) : The Wave-5 price is tracked; a close back through it within 100 bars marks the structure as broken.
Minimal persistence : When broken, the wave drawing is removed to avoid noise, while dotted horizontals for waves 5 and 4 remain as reference.
🔵 FEATURES
Automatic pivot collection from rolling highs/lows (user-controlled Length ).
Wave labeling : Points 1–5 are printed; the last collected swing is marked b
. Projected i
& i
are shown with a dashed polyline.
Breaker line & cleanup : If price closes above Wave-5 (opposite for bears) within 100 bars, the pattern is removed; only dotted levels of 5 and 4 stay.
Styling controls :
Length (pivot sensitivity)
Text Size for labels (tiny/small/normal/large)
Wave color input
Show Broken toggle to keep invalidated patterns visible
Lightweight memory : Keeps a compact buffer of recent pivots/draws to stay responsive.
🔵 HOW TO USE
Set sensitivity : Increase Length on noisy charts for cleaner pivots; decrease to catch earlier/shorter structures.
Wait for confirmation : Once 1→5 is printed and (a) appears, use the Wave-5 line as your invalidation. A close back through it within ~100 bars removes the active wave (unless Show Broken is on).
Plan with the dashed path : The (a)→(b)→(c) projection offers a scenario for potential corrective movement and risk placement.
Work MTF : Identify cleaner waves on higher TFs; refine execution on lower TFs near the breaker or during the move toward (b).
Seek confluence : Align with structure (S/R), volume/Delta, or your trend filter to avoid counter-context trades.
🔵 CONCLUSION
Elliott Wave systematizes discretionary wave analysis: it detects and labels the 5-wave impulse, projects a plausible (a)-(b)-(c) path, and self-cleans on invalidation. With clear labels, dotted reference levels, and a practical breaker rule, it gives traders an objective framework for scenario planning, invalidation, and timing.
Wick Box: Hammer + Engulfing |Thaowick boxes and hammer box drawings for engulfing and hammer candles bullish and bearish
the best indicator for spotting reversal s
Emre AOI Zonen Daily & Weekly (mit Alerts, max 60 Pips)This TradingView indicator automatically highlights Areas of Interest (AOI) for Forex or other markets on Daily and Weekly timeframes. It identifies zones based on the high and low of the previous period, but only includes zones with a width of 60 pips or less.
Features:
Daily AOI Zones in blue, Weekly AOI Zones in yellow with 20% opacity, so candlesticks remain visible.
Persistent zones: AOI boxes stay on the chart until the price breaks the zone.
Multiple zones: Supports storing multiple Daily and Weekly AOIs simultaneously.
Break Alerts: Sends alerts whenever a Daily or Weekly AOI is broken, helping traders spot key levels in real-time.
Fully automated: No manual drawing needed; zones are updated and extended automatically.
Use Case:
Ideal for traders using a top-down approach, combining Weekly trend analysis with Daily entry signals. Helps identify support/resistance, supply/demand zones, and critical price levels efficiently.
Session Based Liquidity# Session Based Liquidity Indicator - Educational Open Source
## 📊 Overview
The Session Based Liquidity indicator is a comprehensive educational tool designed to help traders understand and visualize liquidity concepts across major trading sessions. This indicator identifies Buy-Side Liquidity (BSL) and Sell-Side Liquidity (SSL) levels created during Asia, London, and New York trading sessions, providing insights into institutional order flow and potential market reversal zones.
## 🎯 Key Features
### 📈 Multi-Session Tracking
- **Asia Session**: Tokyo/Sydney overlap (20:00-02:00 EST)
- **London Session**: European markets (03:00-07:30 EST)
- **New York Session**: US markets (09:30-16:00 EST)
- Individual session toggle controls for focused analysis
### 💧 Liquidity Level Detection
- **Buy-Side Liquidity (BSL)**: Identifies stop losses above swing highs where short positions get stopped out
- **Sell-Side Liquidity (SSL)**: Identifies stop losses below swing lows where long positions get stopped out
- Advanced filtering algorithm to identify only significant liquidity zones
- Configurable pivot strength for sensitivity adjustment
### 🎨 Visual Management System
- **Unclaimed Levels**: Active liquidity zones that haven't been hit (default: black lines)
- **Claimed Levels**: Swept liquidity zones showing historical interaction (default: red lines)
- Customizable line styles, colors, and widths for both states
- Dynamic label system showing session origin and level significance
- Real-time line extension and label positioning
### ⚙️ Advanced Configuration
- **Pivot Strength**: Adjust sensitivity (1-20) for liquidity detection
- **Max Levels Per Side**: Control number of tracked levels (1-10) per session
- **Label Offset**: Customize label positioning
- **Style Customization**: Full control over visual appearance
## 📚 Educational Value
### Core Concepts Explained
- **Liquidity Pools**: Areas where stop losses and pending orders cluster
- **Liquidity Sweeps**: When price moves through levels to trigger stops, then reverses
- **Session-Based Analysis**: How different market sessions create distinct liquidity characteristics
- **Institutional Order Flow**: Understanding how large players interact with retail liquidity
### Trading Applications
- Identify high-probability reversal zones after liquidity sweeps
- Understand where stop losses are likely clustered
- Avoid trading into obvious liquidity traps
- Use session context for timing entries and exits
- Recognize institutional accumulation and distribution patterns
### Code Learning Opportunities
- **Pine Script v6 Best Practices**: Modern syntax and efficient coding patterns
- **Object-Oriented Design**: Custom types and methods for clean code organization
- **Array Management**: Dynamic data structure handling for performance
- **Visual Programming**: Line, label, and styling management
- **Session Detection**: Time-based filtering and timezone handling
## 🔧 Technical Implementation
### Performance Optimized
- Efficient memory management with automatic cleanup
- Limited historical level tracking to maintain responsiveness
- Optimized array operations for smooth real-time updates
- Smart filtering to reduce noise and focus on significant levels
### Code Architecture
- **Modular Design**: Clean separation of concerns with dedicated methods
- **Type Safety**: Custom SessionLiquidity type for organized data management
- **Extensible Structure**: Easy to modify and enhance for specific needs
- **Educational Comments**: Comprehensive documentation throughout
## 💡 Usage Guide
### Basic Setup
1. Add indicator to chart
2. Configure session times for your timezone
3. Adjust pivot strength based on timeframe (higher for lower timeframes)
4. Enable/disable sessions based on your trading focus
### Interpretation
- **Unclaimed levels**: Watch for price interaction and potential reversals
- **Claimed levels**: Use as potential support/resistance after sweep
- **External levels**: Beyond session range, higher significance
- **Internal levels**: Within session range, may indicate ranging conditions
### Best Practices
- Use higher timeframes (15m+) for cleaner signals
- Combine with price action analysis for confirmation
- Consider session overlap periods for increased significance
- Monitor multiple sessions for comprehensive market view
## 🎓 Educational Goals
This open-source project aims to:
- Demystify liquidity concepts for retail traders
- Provide practical coding examples in Pine Script v6
- Encourage understanding of institutional trading behavior
- Foster community learning and collaboration
- Bridge the gap between theory and practical application
## 📄 License & Usage
Released under Mozilla Public License 2.0 - free for educational and commercial use with proper attribution.
## 🤝 Contributing
As an open-source educational tool, contributions are welcome! Whether it's bug fixes, feature enhancements, or educational improvements, your input helps the trading community learn and grow.
## ⚠️ Disclaimer
This indicator is for educational purposes only. All trading involves risk, and past performance does not guarantee future results. Always practice proper risk management and never risk more than you can afford to lose.
---
*By studying and using this indicator, traders can develop a deeper understanding of market microstructure and improve their ability to read institutional order flow patterns.*