OPEN-SOURCE SCRIPT
RSI LE Helper SL & Targets (stable v5)

//version=5
indicator("RSI LE Helper SL & Targets (stable v5)", overlay=true)
// ---- Inputs ----
lenRSI = input.int(14, "RSI Length")
rsiBuyLvl = input.int(30, "RSI Cross Above Level")
atrMultSL = input.float(1.5, "ATR SL x", step=0.1)
pivotLeft = input.int(2, "Pivot Left")
pivotRight = input.int(2, "Pivot Right")
bufPct = input.float(0.006, "SL Buffer % (0.6%)", step=0.001)
showEMATrl = input.bool(true, "Show EMA-20 Trail")
// ---- Signal (example rule: RSI crosses up from oversold) ----
rsiVal = ta.rsi(close, lenRSI)
longSig = ta.crossover(rsiVal, rsiBuyLvl)
// ---- Persistent vars to hold last computed values (optional) ----
var float entry = na
var float sl = na
var float t1 = na
var float t2 = na
var float t3 = na
if longSig
// Entry = close of signal bar
entry := close
// --- SL candidates ---
float pivLow = ta.pivotlow(low, pivotLeft, pivotRight) // may be na on the signal bar
float sl_pivot = na(pivLow) ? na : (pivLow * (1 - bufPct))
float atrVal = ta.atr(14)
float sl_atr = close - atrMultSL * atrVal
// --- choose stricter (higher) SL with NA safety (if/else only) ---
if na(sl_pivot) and na(sl_atr)
sl := na
else if na(sl_pivot)
sl := sl_atr
else if na(sl_atr)
sl := sl_pivot
else
sl := math.max(sl_pivot, sl_atr)
// --- Targets (R multiples) ---
float rRisk = (na(entry) or na(sl)) ? na : (entry - sl)
if na(rRisk)
t1 := na
t2 := na
t3 := na
else
t1 := entry + 1.0 * rRisk
t2 := entry + 1.5 * rRisk
t3 := entry + 2.0 * rRisk
// --- Labels on the signal bar ---
if not na(entry)
label.new(bar_index, entry, "ENTRY", style=label.style_label_up, textcolor=color.white)
if not na(sl)
label.new(bar_index, sl, "SL", style=label.style_label_down, textcolor=color.white)
if not na(t1)
label.new(bar_index, t1, "T1 (1R)", style=label.style_label_up, textcolor=color.white)
if not na(t2)
label.new(bar_index, t2, "T2 (1.5R)", style=label.style_label_up, textcolor=color.white)
if not na(t3)
label.new(bar_index, t3, "T3 (2R)", style=label.style_label_up, textcolor=color.white)
// ---- Optional EMA-20 trail ----
ema20 = ta.ema(close, 20)
plot(showEMATrl ? ema20 : na, title="EMA-20", linewidth=1)
indicator("RSI LE Helper SL & Targets (stable v5)", overlay=true)
// ---- Inputs ----
lenRSI = input.int(14, "RSI Length")
rsiBuyLvl = input.int(30, "RSI Cross Above Level")
atrMultSL = input.float(1.5, "ATR SL x", step=0.1)
pivotLeft = input.int(2, "Pivot Left")
pivotRight = input.int(2, "Pivot Right")
bufPct = input.float(0.006, "SL Buffer % (0.6%)", step=0.001)
showEMATrl = input.bool(true, "Show EMA-20 Trail")
// ---- Signal (example rule: RSI crosses up from oversold) ----
rsiVal = ta.rsi(close, lenRSI)
longSig = ta.crossover(rsiVal, rsiBuyLvl)
// ---- Persistent vars to hold last computed values (optional) ----
var float entry = na
var float sl = na
var float t1 = na
var float t2 = na
var float t3 = na
if longSig
// Entry = close of signal bar
entry := close
// --- SL candidates ---
float pivLow = ta.pivotlow(low, pivotLeft, pivotRight) // may be na on the signal bar
float sl_pivot = na(pivLow) ? na : (pivLow * (1 - bufPct))
float atrVal = ta.atr(14)
float sl_atr = close - atrMultSL * atrVal
// --- choose stricter (higher) SL with NA safety (if/else only) ---
if na(sl_pivot) and na(sl_atr)
sl := na
else if na(sl_pivot)
sl := sl_atr
else if na(sl_atr)
sl := sl_pivot
else
sl := math.max(sl_pivot, sl_atr)
// --- Targets (R multiples) ---
float rRisk = (na(entry) or na(sl)) ? na : (entry - sl)
if na(rRisk)
t1 := na
t2 := na
t3 := na
else
t1 := entry + 1.0 * rRisk
t2 := entry + 1.5 * rRisk
t3 := entry + 2.0 * rRisk
// --- Labels on the signal bar ---
if not na(entry)
label.new(bar_index, entry, "ENTRY", style=label.style_label_up, textcolor=color.white)
if not na(sl)
label.new(bar_index, sl, "SL", style=label.style_label_down, textcolor=color.white)
if not na(t1)
label.new(bar_index, t1, "T1 (1R)", style=label.style_label_up, textcolor=color.white)
if not na(t2)
label.new(bar_index, t2, "T2 (1.5R)", style=label.style_label_up, textcolor=color.white)
if not na(t3)
label.new(bar_index, t3, "T3 (2R)", style=label.style_label_up, textcolor=color.white)
// ---- Optional EMA-20 trail ----
ema20 = ta.ema(close, 20)
plot(showEMATrl ? ema20 : na, title="EMA-20", linewidth=1)
סקריפט קוד פתוח
ברוח TradingView אמיתית, היוצר של הסקריפט הזה הפך אותו לקוד פתוח, כך שסוחרים יכולים לבדוק ולאמת את הפונקציונליות שלו. כל הכבוד למחבר! למרות שאתה יכול להשתמש בו בחינם, זכור שפרסום מחדש של הקוד כפוף לכללי הבית שלנו.
כתב ויתור
המידע והפרסומים אינם אמורים להיות, ואינם מהווים, עצות פיננסיות, השקעות, מסחר או סוגים אחרים של עצות או המלצות שסופקו או מאושרים על ידי TradingView. קרא עוד בתנאים וההגבלות.
סקריפט קוד פתוח
ברוח TradingView אמיתית, היוצר של הסקריפט הזה הפך אותו לקוד פתוח, כך שסוחרים יכולים לבדוק ולאמת את הפונקציונליות שלו. כל הכבוד למחבר! למרות שאתה יכול להשתמש בו בחינם, זכור שפרסום מחדש של הקוד כפוף לכללי הבית שלנו.
כתב ויתור
המידע והפרסומים אינם אמורים להיות, ואינם מהווים, עצות פיננסיות, השקעות, מסחר או סוגים אחרים של עצות או המלצות שסופקו או מאושרים על ידי TradingView. קרא עוד בתנאים וההגבלות.