Indicatore

Indicatore

Indicatore

Indicatore

Gabriel Gartley O-A-B-C-D Screener w/ TargetO, A, B, C labeled (yellow) with actual retrace % on B and C; card ratios enforced: B ≈ 0.618 of O-A, C = 0.382–0.886 of A-B, D ≈ 0.786 of O-A (tunable tolerance)
D (Stop-Loss) in red with price + dashed stop line
"Buy with Support ▲" after bullish D; mirror "Sell after Resistance ▼" after bearish D
TARGET for the last leg past D (default 61.8% of O-A, tunable) — dashed orange level + dotted projection ray
Green/red legs per direction, gray dashed O-D and A-C guide lines, alerts with D, stop, and target prices Indicatore

Sniper Open - Complete SignalSniper Open — NY Open FVG + Liquidity + Momentum
This indicator detects a specific 3-part confluence at the New York market open (9:30-9:45 ET):
Fair Value Gap (FVG) — a 3-candle imbalance in price
Liquidity Zone alignment — the gap must sit near a validated equal-high/equal-low level (2+ touches within 24 hours)
Momentum confirmation — the confirming candle must close in the signal's direction
Order block alignment — a recent order block in the same direction must exist
All four conditions must align, during the 9:30-9:45 ET window specifically, for a confirmed signal to fire.
Backtested results (3 years of NQ data, train/test validated):
~66-71% win rate on filled trades
~13-16 point average expectancy per filled trade
Signals fire roughly once every 2 trading days
How to use it:
The small faded circles are "watching" markers — an unconfirmed setup possibly forming. Informational only, not a trade signal.
The solid triangle is the confirmed signal. When it appears, place a limit order at the entry price shown (not a market order).
If your limit order isn't filled within 15 minutes, cancel it. This happens on roughly 44% of signals — it's expected, not a malfunction. The strategy's edge comes from letting price return to the level, not chasing it.
Stop and target levels are drawn automatically alongside each signal.
Important disclaimers:
This is backtested historical data, not a live trading track record. Past performance does not guarantee future results.
This is not financial advice. Trade at your own risk and do your own due diligence.
Built and tested specifically for NQ futures at the NY open — performance on other instruments or timeframes is not validated.
No mechanical filter can eliminate all uncertainty — momentum can reverse, targets aren't always reached, and drawdowns happen even in genuinely validated strategies. Indicatore

Indicatore

Bo3li.trading Scalper//@version=6
indicator(
title = "Bo3li.trading Scalper",
shorttitle = "Bo3li.trading",
overlay = true,
max_lines_count = 100,
max_labels_count = 100,
max_boxes_count = 20
)
//====================================================
// إعدادات الدعم والمقاومة ومناطق العرض والطلب
//====================================================
pivotLeft = input.int(
5,
"قوة المنطقة من اليسار",
minval = 1,
group = "الدعم والمقاومة"
)
pivotRight = input.int(
5,
"قوة المنطقة من اليمين",
minval = 1,
group = "الدعم والمقاومة"
)
atrLength = input.int(
14,
"فترة ATR",
minval = 1,
group = "الدعم والمقاومة"
)
zoneSizeATR = input.float(
0.30,
"سُمك منطقة العرض والطلب",
minval = 0.05,
step = 0.05,
group = "الدعم والمقاومة"
)
showZones = input.bool(
true,
"إظهار مناطق العرض والطلب",
group = "الدعم والمقاومة"
)
showSupportResistance = input.bool(
true,
"إظهار خطوط الدعم والمقاومة",
group = "الدعم والمقاومة"
)
//====================================================
// إعدادات فلتر الدخول
//====================================================
useTrendFilter = input.bool(
true,
"استخدام فلتر الاتجاه",
group = "فلتر الدخول"
)
emaFastLength = input.int(
20,
"EMA السريع",
minval = 1,
group = "فلتر الدخول"
)
emaSlowLength = input.int(
50,
"EMA البطيء",
minval = 1,
group = "فلتر الدخول"
)
useRSIFilter = input.bool(
true,
"استخدام فلتر RSI",
group = "فلتر الدخول"
)
rsiLength = input.int(
14,
"فترة RSI",
minval = 1,
group = "فلتر الدخول"
)
buyRSILevel = input.int(
52,
"أقل RSI للشراء",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
sellRSILevel = input.int(
48,
"أعلى RSI للبيع",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
//====================================================
// إعدادات الأهداف ووقف الخسارة
//====================================================
// على الذهب:
// 1 Pip = 0.10 دولار من حركة السعر
// 50 Pip = 5 دولارات
// 100 Pip = 10 دولارات
// 150 Pip = 15 دولاراً
pipSize = input.float(
0.10,
"قيمة Pip بالسعر",
minval = 0.00001,
step = 0.01,
tooltip = "للذهب: 100 Pip تساوي حركة 10 دولارات",
group = "الأهداف ووقف الخسارة"
)
tpStepPips = input.int(
50,
"المسافة بين كل TP",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
slPips = input.int(
50,
"SL بالـ Pip",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
tp1Pips = tpStepPips
tp2Pips = tpStepPips * 2
tp3Pips = tpStepPips * 3
projectionBars = input.int(
40,
"طول خطوط الصفقة",
minval = 5,
maxval = 200,
group = "الأهداف ووقف الخسارة"
)
//====================================================
// إعدادات المظهر
//====================================================
showEMAs = input.bool(
true,
"إظهار المتوسطات",
group = "المظهر"
)
showSignals = input.bool(
true,
"إظهار إشارات الشراء والبيع",
group = "المظهر"
)
showWatermark = input.bool(
true,
"إظهار Bo3li.trading بالخلفية",
group = "المظهر"
)
//====================================================
// الحسابات
//====================================================
atrValue = ta.atr(atrLength)
zoneThickness = atrValue * zoneSizeATR
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsiValue = ta.rsi(close, rsiLength)
pivotHigh = ta.pivothigh(
high,
pivotLeft,
pivotRight
)
pivotLow = ta.pivotlow(
low,
pivotLeft,
pivotRight
)
//====================================================
// تخزين آخر دعم ومقاومة
//====================================================
var float resistancePrice = na
var float supportPrice = na
var float supplyTop = na
var float supplyBottom = na
var float demandTop = na
var float demandBottom = na
if not na(pivotHigh)
resistancePrice := pivotHigh
supplyTop := pivotHigh
supplyBottom := pivotHigh - zoneThickness
if not na(pivotLow)
supportPrice := pivotLow
demandTop := pivotLow + zoneThickness
demandBottom := pivotLow
//====================================================
// مناطق العرض والطلب
//====================================================
var box supplyBox = na
var box demandBox = na
var label supplyLabel = na
var label demandLabel = na
if not na(pivotHigh)
if not na(supplyBox)
box.delete(supplyBox)
if not na(supplyLabel)
label.delete(supplyLabel)
if showZones
supplyBox := box.new(
left = bar_index - pivotRight,
top = supplyTop,
right = bar_index,
bottom = supplyBottom,
border_color = color.new(color.red, 25),
border_width = 1,
bgcolor = color.new(color.red, 88),
extend = extend.right
)
supplyLabel := label.new(
x = bar_index - pivotRight,
y = supplyTop,
text = "منطقة عرض",
style = label.style_label_down,
color = color.new(color.red, 10),
textcolor = color.white,
size = size.small
)
if not na(pivotLow)
if not na(demandBox)
box.delete(demandBox)
if not na(demandLabel)
label.delete(demandLabel)
if showZones
demandBox := box.new(
left = bar_index - pivotRight,
top = demandTop,
right = bar_index,
bottom = demandBottom,
border_color = color.new(color.green, 25),
border_width = 1,
bgcolor = color.new(color.green, 88),
extend = extend.right
)
demandLabel := label.new(
x = bar_index - pivotRight,
y = demandBottom,
text = "منطقة طلب",
style = label.style_label_up,
color = color.new(color.green, 10),
textcolor = color.white,
size = size.small
)
if not showZones
if not na(supplyBox)
box.delete(supplyBox)
supplyBox := na
if not na(demandBox)
box.delete(demandBox)
demandBox := na
if not na(supplyLabel)
label.delete(supplyLabel)
supplyLabel := na
if not na(demandLabel)
label.delete(demandLabel)
demandLabel := na
//====================================================
// خطوط الدعم والمقاومة البرتقالية
//====================================================
plot(
showSupportResistance ? resistancePrice : na,
title = "المقاومة",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
plot(
showSupportResistance ? supportPrice : na,
title = "الدعم",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
//====================================================
// المتوسطات المتحركة
//====================================================
plot(
showEMAs ? emaFast : na,
title = "EMA السريع",
color = color.aqua,
linewidth = 1
)
plot(
showEMAs ? emaSlow : na,
title = "EMA البطيء",
color = color.purple,
linewidth = 2
)
//====================================================
// شروط الدخول
//====================================================
bullTrend = emaFast > emaSlow and close > emaFast
bearTrend = emaFast < emaSlow and close < emaFast
bullRSI = rsiValue >= buyRSILevel
bearRSI = rsiValue <= sellRSILevel
buyTrendAllowed = not useTrendFilter or bullTrend
sellTrendAllowed = not useTrendFilter or bearTrend
buyRSIAllowed = not useRSIFilter or bullRSI
sellRSIAllowed = not useRSIFilter or bearRSI
// الشراء بعد كسر المقاومة والإغلاق فوقها
rawBuySignal =
not na(resistancePrice) and
ta.crossover(close, resistancePrice)
// البيع بعد كسر الدعم والإغلاق تحته
rawSellSignal =
not na(supportPrice) and
ta.crossunder(close, supportPrice)
buySignal =
barstate.isconfirmed and
rawBuySignal and
buyTrendAllowed and
buyRSIAllowed
sellSignal =
barstate.isconfirmed and
rawSellSignal and
sellTrendAllowed and
sellRSIAllowed
//====================================================
// خطوط الصفقة
//====================================================
var line entryLine = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line slLine = na
var label entryLabel = na
var label tp1Label = na
var label tp2Label = na
var label tp3Label = na
var label slLabel = na
//====================================================
// صفقة شراء
//====================================================
if buySignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice + tp1Pips * pipSize
float tp2Price = entryPrice + tp2Pips * pipSize
float tp3Price = entryPrice + tp3Pips * pipSize
float slPrice = entryPrice - slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول شراء",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// صفقة بيع
//====================================================
if sellSignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice - tp1Pips * pipSize
float tp2Price = entryPrice - tp2Pips * pipSize
float tp3Price = entryPrice - tp3Pips * pipSize
float slPrice = entryPrice + slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول بيع",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// إشارات الدخول
//====================================================
plotshape(
showSignals and buySignal,
title = "إشارة شراء",
text = "شراء",
style = shape.labelup,
location = location.belowbar,
color = color.green,
textcolor = color.white,
size = size.small
)
plotshape(
showSignals and sellSignal,
title = "إشارة بيع",
text = "بيع",
style = shape.labeldown,
location = location.abovebar,
color = color.red,
textcolor = color.white,
size = size.small
)
//====================================================
// خلفية Bo3li.trading
//====================================================
var table watermark = table.new(
position.middle_center,
1,
1
)
if barstate.islast
table.cell(
watermark,
0,
0,
showWatermark ? "Bo3li.trading" : "",
text_color = color.new(color.gray, 82),
text_size = size.huge,
bgcolor = color.new(color.white, 100)
)
//====================================================
// التنبيهات
//====================================================
alertcondition(
buySignal,
title = "Bo3li.trading - شراء",
message = "إشارة شراء من مؤشر Bo3li.trading بعد كسر المقاومة"
)
alertcondition(
sellSignal,
title = "Bo3li.trading - بيع",
message = "إشارة بيع من مؤشر Bo3li.trading بعد كسر الدعم"
)
Indicatore

Indicatore

Indicatore

Indicatore

Indicatore

Bo3li.trading Scalper//@version=6
indicator(
title = "Bo3li.trading Scalper",
shorttitle = "Bo3li.trading",
overlay = true,
max_lines_count = 100,
max_labels_count = 100,
max_boxes_count = 20
)
//====================================================
// إعدادات الدعم والمقاومة ومناطق العرض والطلب
//====================================================
pivotLeft = input.int(
5,
"قوة المنطقة من اليسار",
minval = 1,
group = "الدعم والمقاومة"
)
pivotRight = input.int(
5,
"قوة المنطقة من اليمين",
minval = 1,
group = "الدعم والمقاومة"
)
atrLength = input.int(
14,
"فترة ATR",
minval = 1,
group = "الدعم والمقاومة"
)
zoneSizeATR = input.float(
0.30,
"سُمك منطقة العرض والطلب",
minval = 0.05,
step = 0.05,
group = "الدعم والمقاومة"
)
showZones = input.bool(
true,
"إظهار مناطق العرض والطلب",
group = "الدعم والمقاومة"
)
showSupportResistance = input.bool(
true,
"إظهار خطوط الدعم والمقاومة",
group = "الدعم والمقاومة"
)
//====================================================
// إعدادات فلتر الدخول
//====================================================
useTrendFilter = input.bool(
true,
"استخدام فلتر الاتجاه",
group = "فلتر الدخول"
)
emaFastLength = input.int(
20,
"EMA السريع",
minval = 1,
group = "فلتر الدخول"
)
emaSlowLength = input.int(
50,
"EMA البطيء",
minval = 1,
group = "فلتر الدخول"
)
useRSIFilter = input.bool(
true,
"استخدام فلتر RSI",
group = "فلتر الدخول"
)
rsiLength = input.int(
14,
"فترة RSI",
minval = 1,
group = "فلتر الدخول"
)
buyRSILevel = input.int(
52,
"أقل RSI للشراء",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
sellRSILevel = input.int(
48,
"أعلى RSI للبيع",
minval = 1,
maxval = 99,
group = "فلتر الدخول"
)
//====================================================
// إعدادات الأهداف ووقف الخسارة
//====================================================
// على الذهب:
// 1 Pip = 0.10 دولار من حركة السعر
// 50 Pip = 5 دولارات
// 100 Pip = 10 دولارات
// 150 Pip = 15 دولاراً
pipSize = input.float(
0.10,
"قيمة Pip بالسعر",
minval = 0.00001,
step = 0.01,
tooltip = "للذهب: 100 Pip تساوي حركة 10 دولارات",
group = "الأهداف ووقف الخسارة"
)
tpStepPips = input.int(
50,
"المسافة بين كل TP",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
slPips = input.int(
50,
"SL بالـ Pip",
minval = 1,
group = "الأهداف ووقف الخسارة"
)
tp1Pips = tpStepPips
tp2Pips = tpStepPips * 2
tp3Pips = tpStepPips * 3
projectionBars = input.int(
40,
"طول خطوط الصفقة",
minval = 5,
maxval = 200,
group = "الأهداف ووقف الخسارة"
)
//====================================================
// إعدادات المظهر
//====================================================
showEMAs = input.bool(
true,
"إظهار المتوسطات",
group = "المظهر"
)
showSignals = input.bool(
true,
"إظهار إشارات الشراء والبيع",
group = "المظهر"
)
showWatermark = input.bool(
true,
"إظهار Bo3li.trading بالخلفية",
group = "المظهر"
)
//====================================================
// الحسابات
//====================================================
atrValue = ta.atr(atrLength)
zoneThickness = atrValue * zoneSizeATR
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsiValue = ta.rsi(close, rsiLength)
pivotHigh = ta.pivothigh(
high,
pivotLeft,
pivotRight
)
pivotLow = ta.pivotlow(
low,
pivotLeft,
pivotRight
)
//====================================================
// تخزين آخر دعم ومقاومة
//====================================================
var float resistancePrice = na
var float supportPrice = na
var float supplyTop = na
var float supplyBottom = na
var float demandTop = na
var float demandBottom = na
if not na(pivotHigh)
resistancePrice := pivotHigh
supplyTop := pivotHigh
supplyBottom := pivotHigh - zoneThickness
if not na(pivotLow)
supportPrice := pivotLow
demandTop := pivotLow + zoneThickness
demandBottom := pivotLow
//====================================================
// مناطق العرض والطلب
//====================================================
var box supplyBox = na
var box demandBox = na
var label supplyLabel = na
var label demandLabel = na
if not na(pivotHigh)
if not na(supplyBox)
box.delete(supplyBox)
if not na(supplyLabel)
label.delete(supplyLabel)
if showZones
supplyBox := box.new(
left = bar_index - pivotRight,
top = supplyTop,
right = bar_index,
bottom = supplyBottom,
border_color = color.new(color.red, 25),
border_width = 1,
bgcolor = color.new(color.red, 88),
extend = extend.right
)
supplyLabel := label.new(
x = bar_index - pivotRight,
y = supplyTop,
text = "منطقة عرض",
style = label.style_label_down,
color = color.new(color.red, 10),
textcolor = color.white,
size = size.small
)
if not na(pivotLow)
if not na(demandBox)
box.delete(demandBox)
if not na(demandLabel)
label.delete(demandLabel)
if showZones
demandBox := box.new(
left = bar_index - pivotRight,
top = demandTop,
right = bar_index,
bottom = demandBottom,
border_color = color.new(color.green, 25),
border_width = 1,
bgcolor = color.new(color.green, 88),
extend = extend.right
)
demandLabel := label.new(
x = bar_index - pivotRight,
y = demandBottom,
text = "منطقة طلب",
style = label.style_label_up,
color = color.new(color.green, 10),
textcolor = color.white,
size = size.small
)
if not showZones
if not na(supplyBox)
box.delete(supplyBox)
supplyBox := na
if not na(demandBox)
box.delete(demandBox)
demandBox := na
if not na(supplyLabel)
label.delete(supplyLabel)
supplyLabel := na
if not na(demandLabel)
label.delete(demandLabel)
demandLabel := na
//====================================================
// خطوط الدعم والمقاومة البرتقالية
//====================================================
plot(
showSupportResistance ? resistancePrice : na,
title = "المقاومة",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
plot(
showSupportResistance ? supportPrice : na,
title = "الدعم",
color = color.orange,
linewidth = 2,
style = plot.style_stepline
)
//====================================================
// المتوسطات المتحركة
//====================================================
plot(
showEMAs ? emaFast : na,
title = "EMA السريع",
color = color.aqua,
linewidth = 1
)
plot(
showEMAs ? emaSlow : na,
title = "EMA البطيء",
color = color.purple,
linewidth = 2
)
//====================================================
// شروط الدخول
//====================================================
bullTrend = emaFast > emaSlow and close > emaFast
bearTrend = emaFast < emaSlow and close < emaFast
bullRSI = rsiValue >= buyRSILevel
bearRSI = rsiValue <= sellRSILevel
buyTrendAllowed = not useTrendFilter or bullTrend
sellTrendAllowed = not useTrendFilter or bearTrend
buyRSIAllowed = not useRSIFilter or bullRSI
sellRSIAllowed = not useRSIFilter or bearRSI
// الشراء بعد كسر المقاومة والإغلاق فوقها
rawBuySignal =
not na(resistancePrice) and
ta.crossover(close, resistancePrice)
// البيع بعد كسر الدعم والإغلاق تحته
rawSellSignal =
not na(supportPrice) and
ta.crossunder(close, supportPrice)
buySignal =
barstate.isconfirmed and
rawBuySignal and
buyTrendAllowed and
buyRSIAllowed
sellSignal =
barstate.isconfirmed and
rawSellSignal and
sellTrendAllowed and
sellRSIAllowed
//====================================================
// خطوط الصفقة
//====================================================
var line entryLine = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line slLine = na
var label entryLabel = na
var label tp1Label = na
var label tp2Label = na
var label tp3Label = na
var label slLabel = na
//====================================================
// صفقة شراء
//====================================================
if buySignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice + tp1Pips * pipSize
float tp2Price = entryPrice + tp2Pips * pipSize
float tp3Price = entryPrice + tp3Pips * pipSize
float slPrice = entryPrice - slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول شراء",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// صفقة بيع
//====================================================
if sellSignal
if not na(entryLine)
line.delete(entryLine)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
if not na(entryLabel)
label.delete(entryLabel)
if not na(tp1Label)
label.delete(tp1Label)
if not na(tp2Label)
label.delete(tp2Label)
if not na(tp3Label)
label.delete(tp3Label)
if not na(slLabel)
label.delete(slLabel)
float entryPrice = close
float tp1Price = entryPrice - tp1Pips * pipSize
float tp2Price = entryPrice - tp2Pips * pipSize
float tp3Price = entryPrice - tp3Pips * pipSize
float slPrice = entryPrice + slPips * pipSize
entryLine := line.new(
x1 = bar_index,
y1 = entryPrice,
x2 = bar_index + projectionBars,
y2 = entryPrice,
color = color.blue,
width = 3
)
tp1Line := line.new(
x1 = bar_index,
y1 = tp1Price,
x2 = bar_index + projectionBars,
y2 = tp1Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp2Line := line.new(
x1 = bar_index,
y1 = tp2Price,
x2 = bar_index + projectionBars,
y2 = tp2Price,
color = color.green,
width = 2,
style = line.style_dashed
)
tp3Line := line.new(
x1 = bar_index,
y1 = tp3Price,
x2 = bar_index + projectionBars,
y2 = tp3Price,
color = color.green,
width = 2
)
slLine := line.new(
x1 = bar_index,
y1 = slPrice,
x2 = bar_index + projectionBars,
y2 = slPrice,
color = color.red,
width = 2
)
entryLabel := label.new(
x = bar_index + projectionBars,
y = entryPrice,
text = "دخول بيع",
style = label.style_label_left,
color = color.blue,
textcolor = color.white
)
tp1Label := label.new(
x = bar_index + projectionBars,
y = tp1Price,
text = "TP1 - " + str.tostring(tp1Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp2Label := label.new(
x = bar_index + projectionBars,
y = tp2Price,
text = "TP2 - " + str.tostring(tp2Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
tp3Label := label.new(
x = bar_index + projectionBars,
y = tp3Price,
text = "TP3 - " + str.tostring(tp3Pips) + " Pip",
style = label.style_label_left,
color = color.green,
textcolor = color.white
)
slLabel := label.new(
x = bar_index + projectionBars,
y = slPrice,
text = "SL - " + str.tostring(slPips) + " Pip",
style = label.style_label_left,
color = color.red,
textcolor = color.white
)
//====================================================
// إشارات الدخول
//====================================================
plotshape(
showSignals and buySignal,
title = "إشارة شراء",
text = "شراء",
style = shape.labelup,
location = location.belowbar,
color = color.green,
textcolor = color.white,
size = size.small
)
plotshape(
showSignals and sellSignal,
title = "إشارة بيع",
text = "بيع",
style = shape.labeldown,
location = location.abovebar,
color = color.red,
textcolor = color.white,
size = size.small
)
//====================================================
// خلفية Bo3li.trading
//====================================================
var table watermark = table.new(
position.middle_center,
1,
1
)
if barstate.islast
table.cell(
watermark,
0,
0,
showWatermark ? "Bo3li.trading" : "",
text_color = color.new(color.gray, 82),
text_size = size.huge,
bgcolor = color.new(color.white, 100)
)
//====================================================
// التنبيهات
//====================================================
alertcondition(
buySignal,
title = "Bo3li.trading - شراء",
message = "إشارة شراء من مؤشر Bo3li.trading بعد كسر المقاومة"
)
alertcondition(
sellSignal,
title = "Bo3li.trading - بيع",
message = "إشارة بيع من مؤشر Bo3li.trading بعد كسر الدعم"
) Indicatore

Indicatore

Indicatore

Indicatore

Indicatore

Higher Timeframe Levels ToolkitCombines HTF EMA context, key daily/weekly levels, ADR, FVG/BPR (IFVG) zones, and structural swing/fib tracking in one indicator — terminology drawn from ICT/Smart Money Concepts, built for traders who read multiple timeframes without switching charts or stacking scripts. Every module below can be shown, hidden, and styled independently.
📈 Higher-Timeframe EMAs (5m / 10m / 15m / 1h)
Up to three EMAs per timeframe, each with its own length, color, and toggle.
Historical Path plots the true HTF-calculated EMA through every bar of history — the real value, not a lower-timeframe approximation — so it steps at each HTF close exactly as it would look on that timeframe.
Smooth HTF EMAs replaces the stepped line with a provisional EMA that glides continuously between HTF closes while still landing on the exact true value at every close — no approximation error, just a cleaner line to read.
Independent line width, style, and right-extension per timeframe group.
🗓️ Previous Day & Weekly OHLC
Previous day Open/High/Low/Close and Weekly Open/High/Low/(previous) Close, each individually toggleable with its own color. Line width, style, and extension (Right / Left / Both / None) are configurable per group.
📏 Average Daily Range (ADR)
Plots an ADR band centered on the New York session open (9:30 AM ET, configurable timezone), built from a configurable lookback of prior daily ranges — a quick reference for how much of the day's typical range is left to play with.
🔲 FVG & BPR / IFVG Engine (5m / 15m / 1h)
Independent Fair Value Gap detection on each timeframe, with:
Compact mode — boxes float at a fixed width on the chart's right edge instead of stretching back to their formation point, keeping price action clean
High-Probability filter — gates detection to FVGs above a minimum tick size where the middle candle's volume exceeds the first candle's, for a stricter signal
Balanced quotas — bullish and bearish zones each get their own max-count limit per timeframe, so a one-sided trend can't crowd out the opposite side's zones
BPR (IFVG) detection — automatically merges a new FVG into a Balanced Price Range when it overlaps an opposing FVG within a configurable candle window
Mitigation tracking — zones are removed once price fills a configurable percentage of them, on either a wick or close basis
Full color, transparency, and border control, split by timeframe and direction
🎯 Swing Structure, Equilibrium & Fib Levels (5m / 15m / 1h)
Structural swing highs and lows — not a rolling highest/lowest window — confirmed only on closed candles and held until genuinely superseded, so unswept structure doesn't quietly age out from underneath you.
50% (EQ) and 0.786 Fib levels span the current swing range, with the anchor direction flipping automatically to track the more recent extreme
Incoming HH & LL shows the next unswept liquidity level beyond the current swing on both sides at once, with a minimum-gap filter so it always points at a meaningfully distinct level rather than a near-duplicate adjacent pivot
From Candle line mode anchors each level's line at the exact chart-timeframe candle that created it and stretches it precisely to its label — full visual provenance for every level on screen
🏷️ Label System
Show Price on Labels appends the exact price to every level label
De-stacking automatically shifts overlapping labels sideways so nothing gets hidden behind another
On-Line Labels is an alternate style per group: larger text, no background, sitting directly on its line instead of floating beside it
All higher-timeframe data is pulled through non-repainting request.security calls with no lookahead, and every level updates only once its underlying candle is confirmed. This is a visual context and structure tool, not a signal generator — it doesn't predict direction or issue trade alerts. Use it alongside your own analysis and risk management. Indicatore

Sniper Open - Complete SignalSniper Open — NY Open FVG + Liquidity + Momentum
This indicator detects a specific 3-part confluence at the New York market open (9:30-9:45 ET):
Fair Value Gap (FVG) — a 3-candle imbalance in price
Liquidity Zone alignment — the gap must sit near a validated equal-high/equal-low level (2+ touches within 24 hours)
Momentum confirmation — the confirming candle must close in the signal's direction
Order block alignment — a recent order block in the same direction must exist
All four conditions must align, during the 9:30-9:45 ET window specifically, for a confirmed signal to fire.
Backtested results (3 years of NQ data, train/test validated):
~66-71% win rate on filled trades
~13-16 point average expectancy per filled trade
Signals fire roughly once every 2 trading days
How to use it:
The small faded circles are "watching" markers — an unconfirmed setup possibly forming. Informational only, not a trade signal.
The solid triangle is the confirmed signal. When it appears, place a limit order at the entry price shown (not a market order).
If your limit order isn't filled within 15 minutes, cancel it. This happens on roughly 44% of signals — it's expected, not a malfunction. The strategy's edge comes from letting price return to the level, not chasing it.
Stop and target levels are drawn automatically alongside each signal.
Important disclaimers:
This is backtested historical data, not a live trading track record. Past performance does not guarantee future results.
This is not financial advice. Trade at your own risk and do your own due diligence.
Built and tested specifically for NQ futures at the NY open — performance on other instruments or timeframes is not validated.
No mechanical filter can eliminate all uncertainty — momentum can reverse, targets aren't always reached, and drawdowns happen even in genuinely validated strategies.
Feel free to reach out with questions. Built this as a personal tool first, sharing it because a lot of people asked. Indicatore

Chris and Joe FractalsChris and Joe Fractals implements a fixed Fractal Market Structure price grid for stocks and ETFs. It is not a Bill Williams fractal indicator. Blue lines are Full Fractals (FF), orange dotted lines are Half Fractals (HF), and cyan dashed lines are Quarter Fractals (QF); the grid always extends above and below price.
The Full Fractal remains stable when the chart timeframe changes. Auto mode first uses documented symbol presets, including MET at a $10 FF, then falls back to an adaptive estimate that combines the method's 10% starting rule with four times the confirmed 20-day average daily range and snaps the result to clean price intervals. Use the manual FF override after validating the long-term 3-year/weekly structure.
Signals are market-structure gated. Confirmed pivot highs and lows classify bullish HH/HL structure, bearish LH/LL structure, or a range; local structure must agree with the higher-timeframe context before a CALL or PUT marker can appear. By default, two candle-body closes or a body-hold retest must confirm the fractal boundary. Auto mode uses 5-30 minute charts for day signals and 1-hour through daily charts for swing signals. Day exits use the next QF, active-quarter midpoint failure, structural invalidation, or session end; swing exits use the next HF, midpoint failure, or a structure change.
This tool organizes price action and does not predict outcomes. Validate the FF and market context yourself. Educational use only, not financial advice. Indicatore

Indicatore

Research-Based RSI Threshold ConfigurationResearch-Based RSI Threshold Configuration is an empirical RSI decision-support indicator based on the findings of research by Hatem Mabrouk, Federico Trigos, and Francisco Valderrey.
The underlying study systematically evaluated nine RSI threshold configurations across nine major cryptocurrencies and the S&P 500 using weekly RSI(14) data. The findings challenge the conventional assumption that the standard 30/70 configuration is universally optimal and identify asset-specific dominant threshold configurations based on win rate, geometric weekly return, and average holding period.
This indicator operationalizes those empirical findings directly within TradingView. For assets included in the study, it automatically displays the research-based RSI threshold configuration identified by the empirical analysis.
The indicator provides three display modes:
• Research-Based: Displays the empirically identified threshold configuration for the selected asset.
• Conventional 30/70: Displays the traditional RSI 30/70 configuration.
• Compare Both: Displays the research-based and conventional configurations simultaneously for direct comparison.
The indicator uses weekly RSI(14) regardless of the chart timeframe and provides visual entry and exit zones, threshold-entry markers, alerts, and an information dashboard.
Assets currently supported by the empirical research: BTC, ETH, ADA, AVAX, BNB, DOGE, SOL, TRX, XRP, and the S&P 500.
This indicator is intended for research, educational, and decision-support purposes. Historical empirical performance does not guarantee future results, and the indicator does not constitute financial or investment advice. Indicatore

MTF TREND SIGNALS**Title**
MTF TREND SIGNALS
**Short Description**
MTF TREND SIGNALS combines the classic AK MACD BB concept by Algokid with multi-timeframe trend signals, RSI breakout logic, EMA trend zones, ADX/DI confirmation, trade boxes, a high probability signal message, and a simple win-rate panel.
**Publication Description**
MTF TREND SIGNALS is a visual decision-support indicator built to help traders read trend direction, momentum strength, and trade structure in one place.
The lower pane is based on the original AK MACD BB concept by Algokid. It plots MACD as circles against Bollinger Bands, helping users see when MACD is expanding beyond its normal range.
This version adds multi-timeframe trend signals, RSI breakout signals, EMA trend zones, RSI candle highlights, ADX/DI confirmation, a trade box, a high probability message, and a simple win-rate panel.
**How The Indicator Works**
MACD BB in the lower pane
The indicator is checking how strong momentum is.
Most people know Bollinger Bands on price. They show when price is moving outside its normal range. So this indicator helps see when market momentum is becoming unusually strong.
This indicator does something different. It puts Bollinger Bands around MACD instead of price.
MACD is a momentum line. It compares a fast moving average with a slow moving average.
So the indicator asks:
Is momentum normal, or is momentum stretching strongly?
The middle line is the average MACD.(not there)
The upper band is the normal upper range of MACD.
The lower band is the normal lower range of MACD.
When MACD goes above the upper band (+1 Standard deviation of the mean), it means bullish momentum is stronger than usual.
When MACD goes below the lower band (-1 Standard deviation of the mean), it means bearish momentum is stronger than usual.
The zero line helps you understand the bigger picture:
The zero line gives extra context:
For the AK MACD BB indicator, the zero line helps you understand whether a Bollinger Band break is happening in the stronger or weaker zone.
Above Upper Band And Above Zero
This is stronger bullish momentum. MACD is stretched upward and already in bullish territory.
Above Upper Band But Below Zero
This can be an early bullish recovery. Momentum is improving, but MACD is still below zero, so the wider bias may not be fully bullish yet.
Below Lower Band And Below Zero
This is stronger bearish momentum. MACD is stretched downward and already in bearish territory.
Below Lower Band But Above Zero
This can be early bearish weakening. Momentum is dropping, but MACD is still above zero, so the wider bias may not be fully bearish yet.
MACD BB indicator, the zero line helps you understand whether a Bollinger Band break is happening in the stronger or weaker zone.
**RSI Colour Fill In The MACD Pane**
The fill between the MACD Bollinger Bands is coloured using RSI and RSI SMA.
When RSI is above its SMA, the fill shows one momentum condition.
When RSI is below its SMA, the fill shows the opposite momentum condition.
When RSI is above 55 and above its SMA, the fill shows stronger bullish pressure.
When RSI is below 45 and below its SMA, the fill shows stronger bearish pressure.
**EMA Trend Zones**
The main chart shows filled EMA zones:
- EMA 9/21 = short-term trend
- EMA 30/55 = medium-term trend
- EMA 100/200 = longer-term trend
When the faster EMA is above the slower EMA, the zone is bullish. When the faster EMA is below the slower EMA, the zone is bearish.
This gives a quick visual view of whether the market is trending, mixed, or changing direction.
**Multi-Timeframe Buy And Sell Signals**
The B/S signals check whether price and MACD agree across the current chart and a higher timeframe.
A buy signal looks for price above key EMAs and bullish MACD alignment.
A sell signal looks for price below key EMAs and bearish MACD alignment.
This helps reduce signals that are fighting the wider trend.
**RSI Breakout Signals**
RSI breakout signals begin with an RSI trigger candle.
A buy setup starts when RSI crosses above 55. That candle becomes the reference candle. A buy signal can appear when price breaks above that candle’s high.
A sell setup starts when RSI crosses below 45. That candle becomes the reference candle. A sell signal can appear when price breaks below that candle’s low.
The highlighted RSI candles make these trigger points easier to see.
**ADX And DI Confirmation**
ADX and DI are used to check trend strength and direction.
ADX measures trend strength.
+DI shows bullish directional pressure.
-DI shows bearish directional pressure.
For bullish confirmation, ADX must be above the required threshold and +DI must be above the DI threshold.
For bearish confirmation, ADX must be above the required threshold and -DI must be above the DI threshold.
The script uses shared ADX/DI values across the main chart signals, the lower MACD pane, and the high probability message.
Default ADX thresholds:
- Lower timeframe: 20
- Mid timeframe: 18
- Higher timeframe: 12
Lower timeframes use a higher ADX threshold to help filter noisy moves. Higher timeframes use a lower threshold because larger timeframe trends often develop more slowly.
**High Probability Signal**
The High Probability Signal appears when the normal buy/sell signal, ADX/DI, and RSI conditions agree.
High Probability Buy:
- Buy signal is present
- ADX is above the shared threshold
- +DI is above the DI threshold
- RSI is above 55
- RSI is above RSI SMA
High Probability Sell:
- Sell signal is present
- ADX is above the shared threshold
- -DI is above the DI threshold
- RSI is below 45
- RSI is below RSI SMA
The message flickers on the chart so stronger alignment is easy to notice.
**Trade Box**
When a buy or sell signal appears, the indicator can draw a trade box on the main chart.
The trade box shows:
- Entry
- Stop loss
- TP1
- TP2
- TP3
- TP4
Labels to the right show the exact price level and percentage distance from entry.
Stop loss can be based on ATR, swing high/low, or percentage.
Take-profit levels can be based on ATR or percentage.
**Win-Rate Panel**
The panel gives a simple visual summary of how signals are performing on the chart.
It shows:
- Long win rate
- Short win rate
- TP1 win rate
- TP2 win rate
- TP3 win rate
- TP4 win rate
- Wins and losses for each category
Long and short win rates are based on whether TP1 is reached before stop loss.
TP1 to TP4 win rates show how often each target is reached before stop loss.
This is not a full backtest engine, but it gives useful feedback on how the current settings are behaving.
**How To Use It**
Try Replay it on Small and large time frames to see how it works.
It has been made to be very simple and intuitive.
Use the EMA zones first to understand trend structure.
Use the MACD Bollinger Band circles to judge the breakout of 1 standard deviation and above or below zero line to understand the strength of 'Long' or 'short' trends.
Use the RSI fill and RSI candle highlights to read momentum pressure.
Use B/S labels as possible trade signals. 2 types 1, MTF trend based and 2. RSI based
Use ADX/DI confirmation to check whether the move has enough strength.
Use the 'High Probability Signal' notice as the strongest visual confirmation.
Use the trade box to plan risk and targets.
Use the win-rate panel to review how the current settings are performing.
**Best For**
Intraday trend following
Multi-timeframe confirmation
RSI momentum trading
Visual trade planning
Reading trend structure on fast-moving charts
**Important Notes**
This indicator is a decision-support tool only.
It is not financial advice.
No indicator can guarantee profitable trades.
Always use your own risk management.
Always test settings before using them live.
Signals should be confirmed with price action, market structure, and broader context.
**Attribution**
Original AK MACD BB concept by Algokid, created February 24, 2015.
Modified into MTF TREND SIGNALS by drsamgeorge using AI assistance.
Shared under Creative Commons Attribution 4.0 International License:
creativecommons.org
Indicatore
