پنل سود/زیان + چند تارگت 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
Indicadores e estratégias
Break Point Record Table — GSK-VIZAG-AP-INDIA "Break Point Record Table — GSK-VIZAG-AP-INDIA" indicator captures key break points during each trading session and presents a clear, color-coded table overlay on the chart for quick visual reference. Specifically, it logs sessions' open price and monitors subsequent price action for notable breaks in the session high or low prices. Each break event is recorded with the time, price, and percentage change from the previous break, helping traders identify significant price movements within the session at a glance.
Key Features:
Records the session start time and opening price for context.
Tracks every intraday break above the previous session high or below the previous session low.
Calculates and displays the percentage change at each break event.
Highlights breaks with descriptive text including break time and values to aid trade decision-making.
Displays a table with columns for Time, Open, High, Low, and a Description of the event.
Uses color-coded cells to differentiate between session start, highs, lows, and break descriptions for better readability.
Maintains performance and readability by limiting the table to the latest 30 break events.
Usage & Benefits:
This indicator is ideal for intraday traders who want reliable visual cues to monitor momentum shifts and breakout/breakdown points during the trading day. By capturing these break points as discrete events and organizing the data into an easily accessible, visually intuitive table, it improves situational awareness and supports timely trading decisions.
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.
CryptoThunder Odin v1.9CryptoThunder Odin v1.9
Main elements of the strategy:
Pivots (highs/lows)
Strategy use ta.pivothigh and ta.pivotlow with a specified depth. The pivot is confirmed only after depth candles to the right and left → no repaint after confirmation.
This is a typical element of swing/price action strategies, where a signal is generated when a significant high/low is broken.
Movement Strength Filter – Deviation
Strategy measure the percentage difference (dev_calc) between the last pivot and the new one. You compare it with a threshold based on the ATR (dev_threhold).
This ensures that signals only appear when the movement is significant (a stronger breakout, not every micro-pivot).
Entry/Exit Logic
After a pivot high: a short is opened by default, but you can reverse this (invertLogic). After a pivot low: a long is opened by default. You can disable only longs or only shorts (allowLong, allowShort).
Position Management
Take Profit (TP) and Stop Loss (SL) as a percentage of the entry price. Automatic closing and sending of a CLOSE alert.
Visualization and Alerts
Draws lines between pivots.
Sends JSON UP, DOWN, and CLOSE alerts at format like: XXXUSDT.P UP, XXXUSDT.P DOWN, XXXUSDT.P CLOSE,
Additionally, it marks them on the chart (plotshape).
The strategy has been tested for many months on various crypto altcoin pairs. It should not be used on the largest ones, such as BTC, ETH, XRP, etc. It works well on currency pairs with medium trading volume. The best results are achieved on M1, M5, and M15.
Test the settings on multiple currency pairs and perform backtests. By default, the strategy has default settings that allow for good results in most cases, but some currency pairs require adjustments to achieve good results – such as enabling only long or short trades. In extreme cases, some currency pairs require reversing the logic.
For futures trading, I recommend setting the SL at 10%-25% and the TP at 1%-2%.
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
SE – RSI Divergence Scanner (BOTH on 1h & 15m) – v6Screenar svenska mid/large cap bolag som har divergenser i 15 min och 1h timeframe samtidigt.
Std Smart Pivot V5.0 by SJKimStd Smart Pivot V5.0 by SJKim
Std Smart Pivot V5.0 by SJKim
Std Smart Pivot V5.0 by SJKim
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.
SMA Trade Signal with BackgroundSMA Trade Signal with Background, using 5 & 20 simple moving averages, only showing buy signals during an uptrend and sells during a down trend.
Auto Pivot Entry SL TPDescription:
The Auto Pivot Entry SL TP indicator automatically detects Pivot Highs and Pivot Lows to generate precise BUY and SELL trade setups.
When a Pivot Low forms, a BUY setup is displayed with Entry, Stop Loss, and multiple Take Profit (TP1–TP3) levels.
When a Pivot High forms, a SELL setup is displayed with Entry, Stop Loss, and multiple Take Profit (TP1–TP3) levels.
Key Features:
Automatic detection of pivots for trade entries.
Clear visualization of Entry, SL, and TP levels directly on the chart.
Flexible Risk-Reward ratio settings for customizable targets.
Works on all symbols and timeframes.
This tool is designed for traders who want a simple yet effective method to plan trades using price action pivot points combined with predefined risk management (SL & TP levels).
Pivot + Stochastic Filter Signals (Balanced)Pivot + Stochastic Filter Signals (Balanced)
This indicator combines Pivot Highs/Lows with the Stochastic Oscillator to generate accurate BUY and SELL signals.
A BUY signal appears when a Pivot Low forms and the Stochastic %K crosses above %D (optionally filtered by oversold conditions).
A SELL signal appears when a Pivot High forms and the Stochastic %K crosses below %D (optionally filtered by overbought conditions).
Key Features:
Clear BUY (green) and SELL (red) signals plotted directly on the chart.
Optional filter: only trigger signals in overbought/oversold zones.
Labels display pivot value with the corresponding signal.
Stochastic oscillator plotted for confirmation.
This tool is useful for traders who want to combine price action (pivots) with momentum confirmation (Stochastic crossovers) for higher accuracy in trend reversals and entry timing.
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.
Modern Trend Indicator_GirishThis Indicator is a Powerful Buy and Sell Indicator to catch the Trend in all time frame.
Liquidity Reversal Pro📌 Liquidity Reversal Pro
Liquidity Reversal Pro is a session-based trading tool designed to help traders identify institutional reversal zones and high-probability entry signals during major market sessions (Asia, London, New York).
🔑 Key Features:
Session Highlights:
Shades the background for Asia, London, and New York sessions, helping you visually separate the market phases.
Session High/Low Tracker:
Automatically marks session highs and lows with dotted lines, making it easy to spot liquidity pools and breakout/reversal areas.
Buy & Sell Arrows:
Plots BUY arrows (green) when bullish engulfing signals appear during the London session.
Plots SELL arrows (red) when bearish engulfing signals appear during the New York session.
Configurable Visuals:
Turn arrows on/off, adjust their size, and control visual offset for clarity.
📈 How to Use:
Asia Session (Accumulation)
The Asia range is marked with orange background + dotted lines.
This often acts as the consolidation/accumulation range before London volatility.
London Session (Expansion)
Blue shaded background.
A green BUY arrow appears if a bullish engulfing breakout forms above Asia range highs.
This suggests liquidity grab below lows, followed by upward expansion.
New York Session (Reversal/Continuation)
Green shaded background.
A red SELL arrow appears if bearish engulfing forms, often signaling NY reversals after London move.
Trading Plan (example use case):
Wait for Asia range to form (orange zone).
Look for breakouts or liquidity sweeps during London (blue).
Confirm with BUY/SELL arrows as extra confluence.
Manage trades into NY session (green), where reversals or continuations often occur.
⚠️ Notes:
This is not financial advice. Always combine with your own price action, risk management, and higher-timeframe bias.
Arrows are entry signals, not guarantees. They should be used as confirmation tools alongside liquidity concepts.
IST 4H Candle Boxes (5m)highlights forex 4h session in IST. Works for scalping with 4h bias.
highlights forex 4h session in IST. Works for scalping with 4h bias.
highlights forex 4h session in IST. Works for scalping with 4h bias.
highlights forex 4h session in IST. Works for scalping with 4h bias.
Hull Moving Average (Open-Close)Hull Moving Average (Open-Close) with Advanced Alerts
Overview
This indicator presents an enhanced version of the Hull Moving Average (HMA) that uses the average of open and close prices as its source calculation. It features multiple alert conditions and visual signals to help traders identify trend direction changes and potential entry points with precision.
Key Features
Unique Source Calculation: Uses (open + close)/2 instead of the typical close price, providing a balanced view of price action
Dynamic Coloring: Optional setting colors the HMA green when rising and red when declining for instant visual trend recognition
Multiple Alert Conditions:
HMA Direction Change: Alerts when the HMA changes direction
HMA Up/Down Specific Alerts: Separate alerts for upward and downward turns
Candle Body Cross: Alerts when a candle's body crosses above or below the HMA
Visual Signals: Triangle markers show HMA direction changes, and circles indicate candle body crosses
Input Parameters
Length: Period for HMA calculation (default: 9)
Dynamic Color: Toggles color-changing HMA based on direction (default: true)
Alert Conditions
HMA Up: Triggers when the HMA turns upward
HMA Down: Triggers when the HMA turns downward
HMA Direction Change: General alert for any direction change
Candle Body Cross HMA: Triggers when a full candle body crosses the HMA
Usage
Trend Identification: The HMA's slope and color indicate trend direction
Entry Signals: Candle body crosses above/below HMA may suggest potential entry points
Confirmation: Use in conjunction with other indicators for trade confirmation
Ideal For
Swing traders looking for trend direction changes
Day traders seeking precise entry signals
Price action traders who prefer open-close averaged calculations
This indicator provides a clean, customizable implementation of the Hull Moving Average with multiple alert options suitable for various trading styles.
Note: This is a technical analysis tool and should be used as part of a comprehensive trading strategy. Always practice risk management.
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
ICT Unicorn Strategy [RoboQuant]What it detects
Structure: uses pivots (ta.pivothigh/low) to build a mini zigzag (A–B–C–D).
“Unicorn” Pattern:
Bull: bullish direction, C below A (protected swing), with a bullish “BRB” candle at B.
Bear: mirrored version.
FVG: searches for a valid gap between candle i and i+2 inside the BRB candle range and greater than 0.05 × ATR (quality filter).
When an FVG appears, it plots boxes/lines (top/bottom of range, protected swing, FVG box).
How it enters
Bull Trigger: a candle opens inside the FVG and closes above the top of the FVG (mitigation + continuation).
SL = protected swing (firstBl.swing, pivot C).
TP = top + (top - swing) * (reward/risk).
Draws Risk and Reward boxes if showTargets=true.
Bear Trigger: mirror setup (opens inside FVG and closes below bottom).
Management & sizing
Sizing: calculates position size = riskAmount / SL distance, capped by maxPositionSize.
RR configurable with risk and reward (default 1:2).
Trailing optional: adjusts TsL using short pivots (lenS).
Trade closes at SL (break of swing) or TP (target reached).
combine: if false, a bull setup cancels a bear setup (and vice versa). If true, both can coexist.
Key parameters
len: pivot sensitivity (structure).
riskAmount and maxPositionSize: risk control.
trail, lenS: trailing logic.
Box colors/visibility (showTargets, colRisk, colReward).
ICT translation
Seeks impulse → FVG → pullback into FVG → expansion, with a protected swing (implicit BOS/MSS via zigzag) and mitigation of imbalance.
The ATR * 0.05 filter avoids micro-gaps without intent.
How I’d use it (quick checklist)
Mark HTF bias (only take bull or bear setups with the trend).
On LTF, wait for a valid FVG inside the BRB candle.
Enter only if a candle re-enters the FVG and closes breaking its edge.
SL at swing C, TP by RR (default 1:2).
Enable trailing only after 1R is reached (optional, tuned via lenS).
Multi Time Frame RSI [Horizonn Wealth]Multi-Time Frame Analysis: A key feature is the ability to choose a time frame for each of the four RSI lines from a predefined list (Chart, 1 day, 1 week, 1 month). The script uses the request.security() function with lookahead enabled to ensure the most accurate, real-time data is used for each calculation, eliminating look-ahead bias and calculation errors.
Visual Levels: The indicator plots standard RSI levels at 30, 50, and 70, with a shaded background between the oversold (30) and overbought (70) zones to provide a clear visual reference.
Momentum Alignment Signals: The script includes an optional feature that highlights the chart's background with a red or green color when all four RSIs simultaneously enter an overbought or oversold state. This serves as an immediate visual alert for a strong, multi-time frame momentum condition.
This indicator is a robust tool for technical analysis, suitable for traders who use a top-down approach to their market analysis.