OPEN-SOURCE SCRIPT

Custom Horizontal Ray Indicator

//version=5
indicator("Custom Horizontal Ray Indicator", overlay=true)

// تنظیم تعداد کندل‌های بررسی‌شده
length = 7200

// متغیرهای ذخیره خطوط
var greenLines = array.new_line()
var redLines = array.new_line()

// تابعی برای رسم خط و افزودن به آرایه
draw_line(array, price, color) =>
var l = line.new(x1=bar_index, y1=price, x2=bar_index + 1000, y2=price, color=color, width=2)
array.push(array, l)

// بررسی کندل‌های صعودی (A) و رسم خطوط سبز
if (close > open) and (high[1] < (low + high) / 2)
draw_line(greenLines, high[1], color.green)

// بررسی کندل‌های نزولی (B) و رسم خطوط قرمز
if (close < open) and (low[1] > (low + high) / 2)
draw_line(redLines, low[1], color.red)

// تابعی برای حذف خطوط هنگام برخورد قیمت
remove_lines(array, is_green) =>
for i = array.size(array) - 1 to 0
var l = array.get(array, i)
var line_price = line.get_y1(l)
if (is_green and high >= line_price) or (not is_green and low <= line_price)
line.delete(l)
array.remove(array, i)

// حذف خطوط سبز هنگام برخورد قیمت
remove_lines(greenLines, true)

// حذف خطوط قرمز هنگام برخورد قیمت
remove_lines(redLines, false)

// تعریف شرایط اعلان‌ها در بخش سراسری
greenLineCondition = array.size(greenLines) > 0 and high >= line.get_y1(array.get(greenLines, array.size(greenLines) - 1))
redLineCondition = array.size(redLines) > 0 and low <= line.get_y1(array.get(redLines, array.size(redLines) - 1))

// ایجاد اعلان‌ها برای خطوط سبز
alertcondition(greenLineCondition, title="برخورد با خط سبز", message="قیمت به خط سبز برخورد کرد")

// ایجاد اعلان‌ها برای خطوط قرمز
alertcondition(redLineCondition, title="برخورد با خط قرمز", message="قیمت به خط قرمز برخورد کرد")

Wyłączenie odpowiedzialności