PROTECTED SOURCE SCRIPT
Golden Pattern – Head & Shoulders v2.2

//version=5
indicator("Golden Pattern – Head & Shoulders v2.2", overlay=true)
enable_HS = input.bool(true, "Enable Head & Shoulders Detection")
show_targets = input.bool(true, "Show TP1/TP2/TP3 Levels")
min_dist = input.int(5, "Min Distance Between Points", minval=3)
sensitivity = input.float(1.5, "Deviation %", minval=0.1)
sl_buffer = input.float(0.5, "SL Buffer %")
// نقاط محورية
ph = ta.pivothigh(high, min_dist, min_dist)
pl = ta.pivotlow(low, min_dist, min_dist)
// تخزين الرأس والكتفين
var float sh1 = na
var float head = na
var float sh2 = na
var int sh1_bar = na
var int head_bar = na
var int sh2_bar = na
var float ish1 = na
var float ihead = na
var float ish2 = na
var int ish1_bar = na
var int ihead_bar = na
var int ish2_bar = na
// رأس وكتفين (بيع)
if not na(ph)
if na(sh1)
sh1 := ph
sh1_bar := bar_index
else if na(head) and ph > sh1 and bar_index - sh1_bar > min_dist
head := ph
head_bar := bar_index
else if na(sh2) and ph < head and math.abs(ph - sh1)/sh1 < sensitivity/100 and bar_index - head_bar > min_dist
sh2 := ph
sh2_bar := bar_index
else
sh1 := ph
sh1_bar := bar_index
head := na
sh2 := na
// رأس وكتفين معكوس (شراء)
if not na(pl)
if na(ish1)
ish1 := pl
ish1_bar := bar_index
else if na(ihead) and pl < ish1 and bar_index - ish1_bar > min_dist
ihead := pl
ihead_bar := bar_index
else if na(ish2) and pl > ihead and math.abs(pl - ish1)/ish1 < sensitivity/100 and bar_index - ihead_bar > min_dist
ish2 := pl
ish2_bar := bar_index
else
ish1 := pl
ish1_bar := bar_index
ihead := na
ish2 := na
// خطوط الرقبة
neckline_sell = (sh1 + sh2) / 2
neckline_buy = (ish1 + ish2) / 2
sell_break = enable_HS and not na(sh2) and close < neckline_sell and bar_index > sh2_bar
buy_break = enable_HS and not na(ish2) and close > neckline_buy and bar_index > ish2_bar
// TP / SL
depth_sell = head - neckline_sell
depth_buy = neckline_buy - ihead
tp1_sell = sell_break ? close - depth_sell : na
tp2_sell = sell_break ? close - depth_sell * 1.5 : na
tp3_sell = sell_break ? close - depth_sell * 2.0 : na
sl_sell = sell_break ? head + head * sl_buffer / 100 : na
tp1_buy = buy_break ? close + depth_buy : na
tp2_buy = buy_break ? close + depth_buy * 1.5 : na
tp3_buy = buy_break ? close + depth_buy * 2.0 : na
sl_buy = buy_break ? ihead - ihead * sl_buffer / 100 : na
// منع التكرار
var bool lastBuyPlotted = false
var bool lastSellPlotted = false
var bool plotBuySignal = false
var bool plotSellSignal = false
plotBuySignal := false
plotSellSignal := false
if buy_break and not lastBuyPlotted
plotBuySignal := true
lastBuyPlotted := true
lastSellPlotted := false
if sell_break and not lastSellPlotted
plotSellSignal := true
lastSellPlotted := true
lastBuyPlotted := false
// إشارات الدخول
plotshape(plotBuySignal, location=location.belowbar, style=shape.labelup, color=color.green, text="BUY")
plotshape(plotSellSignal, location=location.abovebar, style=shape.labeldown, color=color.red, text="SELL")
// رسم الأهداف (مع زر تحكم)
if plotBuySignal and show_targets
line.new(bar_index, tp1_buy, bar_index + 20, tp1_buy, color=color.green)
line.new(bar_index, tp2_buy, bar_index + 20, tp2_buy, color=color.teal)
line.new(bar_index, tp3_buy, bar_index + 20, tp3_buy, color=color.blue)
line.new(bar_index, sl_buy, bar_index + 20, sl_buy, color=color.red)
if plotSellSignal and show_targets
line.new(bar_index, tp1_sell, bar_index + 20, tp1_sell, color=color.green)
line.new(bar_index, tp2_sell, bar_index + 20, tp2_sell, color=color.teal)
line.new(bar_index, tp3_sell, bar_index + 20, tp3_sell, color=color.blue)
line.new(bar_index, sl_sell, bar_index + 20, sl_sell, color=color.red)
indicator("Golden Pattern – Head & Shoulders v2.2", overlay=true)
enable_HS = input.bool(true, "Enable Head & Shoulders Detection")
show_targets = input.bool(true, "Show TP1/TP2/TP3 Levels")
min_dist = input.int(5, "Min Distance Between Points", minval=3)
sensitivity = input.float(1.5, "Deviation %", minval=0.1)
sl_buffer = input.float(0.5, "SL Buffer %")
// نقاط محورية
ph = ta.pivothigh(high, min_dist, min_dist)
pl = ta.pivotlow(low, min_dist, min_dist)
// تخزين الرأس والكتفين
var float sh1 = na
var float head = na
var float sh2 = na
var int sh1_bar = na
var int head_bar = na
var int sh2_bar = na
var float ish1 = na
var float ihead = na
var float ish2 = na
var int ish1_bar = na
var int ihead_bar = na
var int ish2_bar = na
// رأس وكتفين (بيع)
if not na(ph)
if na(sh1)
sh1 := ph
sh1_bar := bar_index
else if na(head) and ph > sh1 and bar_index - sh1_bar > min_dist
head := ph
head_bar := bar_index
else if na(sh2) and ph < head and math.abs(ph - sh1)/sh1 < sensitivity/100 and bar_index - head_bar > min_dist
sh2 := ph
sh2_bar := bar_index
else
sh1 := ph
sh1_bar := bar_index
head := na
sh2 := na
// رأس وكتفين معكوس (شراء)
if not na(pl)
if na(ish1)
ish1 := pl
ish1_bar := bar_index
else if na(ihead) and pl < ish1 and bar_index - ish1_bar > min_dist
ihead := pl
ihead_bar := bar_index
else if na(ish2) and pl > ihead and math.abs(pl - ish1)/ish1 < sensitivity/100 and bar_index - ihead_bar > min_dist
ish2 := pl
ish2_bar := bar_index
else
ish1 := pl
ish1_bar := bar_index
ihead := na
ish2 := na
// خطوط الرقبة
neckline_sell = (sh1 + sh2) / 2
neckline_buy = (ish1 + ish2) / 2
sell_break = enable_HS and not na(sh2) and close < neckline_sell and bar_index > sh2_bar
buy_break = enable_HS and not na(ish2) and close > neckline_buy and bar_index > ish2_bar
// TP / SL
depth_sell = head - neckline_sell
depth_buy = neckline_buy - ihead
tp1_sell = sell_break ? close - depth_sell : na
tp2_sell = sell_break ? close - depth_sell * 1.5 : na
tp3_sell = sell_break ? close - depth_sell * 2.0 : na
sl_sell = sell_break ? head + head * sl_buffer / 100 : na
tp1_buy = buy_break ? close + depth_buy : na
tp2_buy = buy_break ? close + depth_buy * 1.5 : na
tp3_buy = buy_break ? close + depth_buy * 2.0 : na
sl_buy = buy_break ? ihead - ihead * sl_buffer / 100 : na
// منع التكرار
var bool lastBuyPlotted = false
var bool lastSellPlotted = false
var bool plotBuySignal = false
var bool plotSellSignal = false
plotBuySignal := false
plotSellSignal := false
if buy_break and not lastBuyPlotted
plotBuySignal := true
lastBuyPlotted := true
lastSellPlotted := false
if sell_break and not lastSellPlotted
plotSellSignal := true
lastSellPlotted := true
lastBuyPlotted := false
// إشارات الدخول
plotshape(plotBuySignal, location=location.belowbar, style=shape.labelup, color=color.green, text="BUY")
plotshape(plotSellSignal, location=location.abovebar, style=shape.labeldown, color=color.red, text="SELL")
// رسم الأهداف (مع زر تحكم)
if plotBuySignal and show_targets
line.new(bar_index, tp1_buy, bar_index + 20, tp1_buy, color=color.green)
line.new(bar_index, tp2_buy, bar_index + 20, tp2_buy, color=color.teal)
line.new(bar_index, tp3_buy, bar_index + 20, tp3_buy, color=color.blue)
line.new(bar_index, sl_buy, bar_index + 20, sl_buy, color=color.red)
if plotSellSignal and show_targets
line.new(bar_index, tp1_sell, bar_index + 20, tp1_sell, color=color.green)
line.new(bar_index, tp2_sell, bar_index + 20, tp2_sell, color=color.teal)
line.new(bar_index, tp3_sell, bar_index + 20, tp3_sell, color=color.blue)
line.new(bar_index, sl_sell, bar_index + 20, sl_sell, color=color.red)
Skrip dilindungi
Skrip ini diterbitkan sebagai sumber tertutup. Akan tetapi, anda boleh menggunakannya dengan percuma dan tanpa had – ketahui lebih lanjut di sini.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.
Skrip dilindungi
Skrip ini diterbitkan sebagai sumber tertutup. Akan tetapi, anda boleh menggunakannya dengan percuma dan tanpa had – ketahui lebih lanjut di sini.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.