تحلیل و سیگنال رایگان تمامی بازارهای مالی با هوش مصنوعی بایتیکل
میمو
anis86

مشخصات معامله
قیمت در زمان انتشار:
۰.۱۷۷۷
توضیحات
//@version=5
indicator("DTT - Digital Time Theory (نظرية الزمن الرقمي)", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=50)
//-----------------------------
// ⚙️ تنظیمات عمومی
//-----------------------------
string dtt_grpA = "تنظیمات عمومی"
string dtt_grpB = "نمایش خطوط"
string dtt_grpC = "رنگها و ضخامتها"
string dtt_grpD = "تسلسل 3-6-9"
string dtt_grpE = "لیبلها و عناصر بصری"
string dtt_tzNy = input.string("America/New_York", "منطقه زمانی برای زمان شروع", group=dtt_grpA)
int dtt_startH = input.int(18, "ساعت شروع (به وقت نیویورک)", minval=0, maxval=23, group=dtt_grpA)
int dtt_startM = input.int(0, "دقیقه شروع", minval=0, maxval=59, group=dtt_grpA)
bool dtt_extendFuture = input.bool(true, "گسترش خطوط بالا/پایین (عمودی کامل)", group=dtt_grpA)
// نمایش/پنهان کردن هر لایه
bool dtt_showQuarter = input.bool(true, "نمایش ربعهای روز (هر 6 ساعت)", group=dtt_grpB)
bool dtt_show90m = input.bool(true, "نمایش خطوط 90 دقیقهای", group=dtt_grpB)
bool dtt_show22m5 = input.bool(true, "نمایش نبضهای 22.5 دقیقهای", group=dtt_grpB)
// رنگها و ضخامتها
color dtt_clQuarter = input.color(color.new(color.teal, 0), "رنگ ربع 6 ساعت", group=dtt_grpC)
int dtt_wQuarter = input.int(2, "ضخامت خط 6 ساعت", minval=1, maxval=5, group=dtt_grpC)
color dtt_cl90 = input.color(color.new(color.orange, 0), "رنگ 90 دقیقهای", group=dtt_grpC)
int dtt_w90 = input.int(2, "ضخامت خط 90 دقیقهای", minval=1, maxval=5, group=dtt_grpC)
color dtt_clBeat = input.color(color.new(color.gray, 0), "رنگ 22.5 دقیقه (پیشفرض)", group=dtt_grpC)
int dtt_wBeat = input.int(1, "ضخامت 22.5 دقیقه", minval=1, maxval=4, group=dtt_grpC)
// تمایز 3-6-9
bool dtt_mark369 = input.bool(true, "تمایز تسلسل 3-6-9 بر روی نبضهای 22.5 دقیقهای", group=dtt_grpD)
color dtt_cl3 = input.color(color.new(color.lime, 0), "رنگ هر 3 نبض", group=dtt_grpD)
color dtt_cl6 = input.color(color.new(color.fuchsia, 0), "رنگ هر 6 نبض", group=dtt_grpD)
color dtt_cl9 = input.color(color.new(color.red, 0), "رنگ هر 9 نبض (تغییر بنیادی)", group=dtt_grpD)
int dtt_w369 = input.int(2, "ضخامت خطوط 3-6-9", minval=1, maxval=5, group=dtt_grpD)
// لیبلها
bool dtt_showLabels = input.bool(true, "نمایش لیبلها برای خطوط", group=dtt_grpE)
int dtt_lblSizeSel = input.int(10, "حجم خط لیبل", minval=8, maxval=16, group=dtt_grpE)
int dtt_lblOffsetPx = input.int(20, "جابجایی عمودی لیبل (پیکسل)", minval=0, maxval=100, group=dtt_grpE)
bool dtt_showQuarterBg= input.bool(false, "رنگآمیزی ملایم برای پسزمینه ربعها", group=dtt_grpE)
color dtt_quarterBgCol = input.color(color.new(color.teal, 90), "رنگ پسزمینه ربع", group=dtt_grpE)
//-----------------------------
// ⏱️ ثوابت زمانی (به میلیثانیه)
//-----------------------------
int dtt_msMinute = 60 * 1000
int dtt_msBeat = int(math.round(22.5 * dtt_msMinute)) // 22.5 دقیقه
int dtt_ms90 = 90 * dtt_msMinute // 90 دقیقه
int dtt_ms6h = 6 * 60 * dtt_msMinute // 6 ساعت
//-----------------------------
// 🧠 توابع کمکی
//-----------------------------
var string dtt__tzTmp = dtt_tzNy
// ✅ نسخه صحیح تابع (بدون {} )
dtt_getAnchorForBar(_barTime) =>
nyY = year(_barTime, dtt__tzTmp)
nyMo = month(_barTime, dtt__tzTmp)
nyD = dayofmonth(_barTime, dtt__tzTmp)
anchorToday = timestamp(dtt__tzTmp, nyY, nyMo, nyD, dtt_startH, dtt_startM)
anchorPrev = anchorToday - 24 * 60 * 60 * 1000
_barTime >= anchorToday ? anchorToday : anchorPrev
// آیا ما یک مضاعف جدید برای فاصل زمانی عبور کردهایم؟
dtt_crossedStep(_anchor, _intervalMs) =>
prevK = math.floor((nz(time ) - _anchor) / _intervalMs)
nowK = math.floor((time - _anchor) / _intervalMs)
nowK > prevK
// یک خط عمودی کامل در لحظه t رسم میکند
dtt_makeVLine(t, col, w) =>
line.new(x1=t, y1= 10e10, x2=t, y2=-10e10, xloc=xloc.bar_time, extend=dtt_extendFuture ? extend.both : extend.none, color=col, width=w)
// لیبل
dtt_makeLabel(t, txt, col) =>
label.new(x=t, y=high + ta.atr(14), xloc=xloc.bar_time, style=label.style_label_down, text=txt, textcolor=color.white, color=col, size=size.tiny, tooltip=txt)
// پسزمینه ربع (اختیاری)
dtt_drawQuarterBox(t0, t1, c) =>
yLow = ta.lowest(low, 300)
yHigh = ta.highest(high, 300)
box.new(left=t0, top=yHigh, right=t1, bottom=yLow, xloc=xloc.bar_time, bgcolor=c, border_color=color.new(c, 100))
//-----------------------------
// 🧩 منطق اصلی
//-----------------------------
dtt_anchor = dtt_getAnchorForBar(time)
dtt_delta = time - dtt_anchor
//--------------- خطوط 22.5 دقیقه ---------------
if dtt_show22m5 and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_msBeat)
k = math.floor((time - dtt_anchor) / dtt_msBeat)
tK = dtt_anchor + k * dtt_msBeat
colBeat = dtt_clBeat
wBeat = dtt_wBeat
if dtt_mark369
step = (k + 1)
is9 = step % 9 == 0
is6 = not is9 and step % 6 == 0
is3 = not is9 and not is6 and step % 3 == 0
colBeat := is9 ? dtt_cl9 : is6 ? dtt_cl6 : is3 ? dtt_cl3 : dtt_clBeat
wBeat := is9 or is6 or is3 ? dtt_w369 : dtt_wBeat
dtt_makeVLine(tK, colBeat, wBeat)
if dtt_showLabels
tag = dtt_mark369 ? "نبض " + str.tostring(k + 1) : "22.5m"
dtt_makeLabel(tK, tag, color.new(colBeat, 0))
//--------------- خطوط 90 دقیقه ---------------
if dtt_show90m and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_ms90)
m = math.floor((time - dtt_anchor) / dtt_ms90)
tM = dtt_anchor + m * dtt_ms90
dtt_makeVLine(tM, dtt_cl90, dtt_w90)
if dtt_showLabels
tag90 = "90m #" + str.tostring(m)
dtt_makeLabel(tM, tag90, color.new(dtt_cl90, 0))
//--------------- خطوط 6 ساعت (ربعها) + پسزمینهها ---------------
var int dtt_lastQuarterStart = na
if dtt_showQuarter and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_ms6h)
q = math.floor((time - dtt_anchor) / dtt_ms6h)
tQ = dtt_anchor + q * dtt_ms6h
dtt_makeVLine(tQ, dtt_clQuarter, dtt_wQuarter)
if dtt_showLabels
qInDay = q % 4
qName = qInDay == 0 ? "Q1" : qInDay == 1 ? "Q2" : qInDay == 2 ? "Q3" : "Q4"
dtt_makeLabel(tQ, "ربع " + qName, color.new(dtt_clQuarter, 0))
if dtt_showQuarterBg
if not na(dtt_lastQuarterStart)
dtt_drawQuarterBox(dtt_lastQuarterStart, tQ, dtt_quarterBgCol)
dtt_lastQuarterStart := tQ
if barstate.isfirst and dtt_showQuarterBg and dtt_delta >= 0
q0 = math.floor((time - dtt_anchor) / dtt_ms6h)
dtt_lastQuarterStart := dtt_anchor + q0 * dtt_ms6h
if dtt_showQuarterBg and not na(dtt_lastQuarterStart)
dtt_drawQuarterBox(dtt_lastQuarterStart, time, dtt_quarterBgCol)
//-----------------------------
// ℹ️ تذکر بصری بالای چارت
//-----------------------------
var label dtt_hdr = na
if barstate.islast
string hdrTxt = "DTT • شروع: " + str.tostring(dtt_startH, "00") + ":" + str.tostring(dtt_startM, "00") + " • TZ: " + dtt_tzNy + "\n" +"ربع: 6 ساعت | موج: 90 دقیقه | نبض: 22.5 دقیقه"
if na(dtt_hdr)
dtt_hdr := label.new(bar_index, na, hdrTxt, xloc=xloc.bar_index, yloc=yloc.abovebar, textcolor=color.white, color=color.new(color.black, 85), size=size.small, style=label.style_label_left)
else
label.set_x(dtt_hdr, bar_index)
label.set_text(dtt_hdr, hdrTxt)
indicator("DTT - Digital Time Theory (نظرية الزمن الرقمي)", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=50)
//-----------------------------
// ⚙️ تنظیمات عمومی
//-----------------------------
string dtt_grpA = "تنظیمات عمومی"
string dtt_grpB = "نمایش خطوط"
string dtt_grpC = "رنگها و ضخامتها"
string dtt_grpD = "تسلسل 3-6-9"
string dtt_grpE = "لیبلها و عناصر بصری"
string dtt_tzNy = input.string("America/New_York", "منطقه زمانی برای زمان شروع", group=dtt_grpA)
int dtt_startH = input.int(18, "ساعت شروع (به وقت نیویورک)", minval=0, maxval=23, group=dtt_grpA)
int dtt_startM = input.int(0, "دقیقه شروع", minval=0, maxval=59, group=dtt_grpA)
bool dtt_extendFuture = input.bool(true, "گسترش خطوط بالا/پایین (عمودی کامل)", group=dtt_grpA)
// نمایش/پنهان کردن هر لایه
bool dtt_showQuarter = input.bool(true, "نمایش ربعهای روز (هر 6 ساعت)", group=dtt_grpB)
bool dtt_show90m = input.bool(true, "نمایش خطوط 90 دقیقهای", group=dtt_grpB)
bool dtt_show22m5 = input.bool(true, "نمایش نبضهای 22.5 دقیقهای", group=dtt_grpB)
// رنگها و ضخامتها
color dtt_clQuarter = input.color(color.new(color.teal, 0), "رنگ ربع 6 ساعت", group=dtt_grpC)
int dtt_wQuarter = input.int(2, "ضخامت خط 6 ساعت", minval=1, maxval=5, group=dtt_grpC)
color dtt_cl90 = input.color(color.new(color.orange, 0), "رنگ 90 دقیقهای", group=dtt_grpC)
int dtt_w90 = input.int(2, "ضخامت خط 90 دقیقهای", minval=1, maxval=5, group=dtt_grpC)
color dtt_clBeat = input.color(color.new(color.gray, 0), "رنگ 22.5 دقیقه (پیشفرض)", group=dtt_grpC)
int dtt_wBeat = input.int(1, "ضخامت 22.5 دقیقه", minval=1, maxval=4, group=dtt_grpC)
// تمایز 3-6-9
bool dtt_mark369 = input.bool(true, "تمایز تسلسل 3-6-9 بر روی نبضهای 22.5 دقیقهای", group=dtt_grpD)
color dtt_cl3 = input.color(color.new(color.lime, 0), "رنگ هر 3 نبض", group=dtt_grpD)
color dtt_cl6 = input.color(color.new(color.fuchsia, 0), "رنگ هر 6 نبض", group=dtt_grpD)
color dtt_cl9 = input.color(color.new(color.red, 0), "رنگ هر 9 نبض (تغییر بنیادی)", group=dtt_grpD)
int dtt_w369 = input.int(2, "ضخامت خطوط 3-6-9", minval=1, maxval=5, group=dtt_grpD)
// لیبلها
bool dtt_showLabels = input.bool(true, "نمایش لیبلها برای خطوط", group=dtt_grpE)
int dtt_lblSizeSel = input.int(10, "حجم خط لیبل", minval=8, maxval=16, group=dtt_grpE)
int dtt_lblOffsetPx = input.int(20, "جابجایی عمودی لیبل (پیکسل)", minval=0, maxval=100, group=dtt_grpE)
bool dtt_showQuarterBg= input.bool(false, "رنگآمیزی ملایم برای پسزمینه ربعها", group=dtt_grpE)
color dtt_quarterBgCol = input.color(color.new(color.teal, 90), "رنگ پسزمینه ربع", group=dtt_grpE)
//-----------------------------
// ⏱️ ثوابت زمانی (به میلیثانیه)
//-----------------------------
int dtt_msMinute = 60 * 1000
int dtt_msBeat = int(math.round(22.5 * dtt_msMinute)) // 22.5 دقیقه
int dtt_ms90 = 90 * dtt_msMinute // 90 دقیقه
int dtt_ms6h = 6 * 60 * dtt_msMinute // 6 ساعت
//-----------------------------
// 🧠 توابع کمکی
//-----------------------------
var string dtt__tzTmp = dtt_tzNy
// ✅ نسخه صحیح تابع (بدون {} )
dtt_getAnchorForBar(_barTime) =>
nyY = year(_barTime, dtt__tzTmp)
nyMo = month(_barTime, dtt__tzTmp)
nyD = dayofmonth(_barTime, dtt__tzTmp)
anchorToday = timestamp(dtt__tzTmp, nyY, nyMo, nyD, dtt_startH, dtt_startM)
anchorPrev = anchorToday - 24 * 60 * 60 * 1000
_barTime >= anchorToday ? anchorToday : anchorPrev
// آیا ما یک مضاعف جدید برای فاصل زمانی عبور کردهایم؟
dtt_crossedStep(_anchor, _intervalMs) =>
prevK = math.floor((nz(time ) - _anchor) / _intervalMs)
nowK = math.floor((time - _anchor) / _intervalMs)
nowK > prevK
// یک خط عمودی کامل در لحظه t رسم میکند
dtt_makeVLine(t, col, w) =>
line.new(x1=t, y1= 10e10, x2=t, y2=-10e10, xloc=xloc.bar_time, extend=dtt_extendFuture ? extend.both : extend.none, color=col, width=w)
// لیبل
dtt_makeLabel(t, txt, col) =>
label.new(x=t, y=high + ta.atr(14), xloc=xloc.bar_time, style=label.style_label_down, text=txt, textcolor=color.white, color=col, size=size.tiny, tooltip=txt)
// پسزمینه ربع (اختیاری)
dtt_drawQuarterBox(t0, t1, c) =>
yLow = ta.lowest(low, 300)
yHigh = ta.highest(high, 300)
box.new(left=t0, top=yHigh, right=t1, bottom=yLow, xloc=xloc.bar_time, bgcolor=c, border_color=color.new(c, 100))
//-----------------------------
// 🧩 منطق اصلی
//-----------------------------
dtt_anchor = dtt_getAnchorForBar(time)
dtt_delta = time - dtt_anchor
//--------------- خطوط 22.5 دقیقه ---------------
if dtt_show22m5 and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_msBeat)
k = math.floor((time - dtt_anchor) / dtt_msBeat)
tK = dtt_anchor + k * dtt_msBeat
colBeat = dtt_clBeat
wBeat = dtt_wBeat
if dtt_mark369
step = (k + 1)
is9 = step % 9 == 0
is6 = not is9 and step % 6 == 0
is3 = not is9 and not is6 and step % 3 == 0
colBeat := is9 ? dtt_cl9 : is6 ? dtt_cl6 : is3 ? dtt_cl3 : dtt_clBeat
wBeat := is9 or is6 or is3 ? dtt_w369 : dtt_wBeat
dtt_makeVLine(tK, colBeat, wBeat)
if dtt_showLabels
tag = dtt_mark369 ? "نبض " + str.tostring(k + 1) : "22.5m"
dtt_makeLabel(tK, tag, color.new(colBeat, 0))
//--------------- خطوط 90 دقیقه ---------------
if dtt_show90m and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_ms90)
m = math.floor((time - dtt_anchor) / dtt_ms90)
tM = dtt_anchor + m * dtt_ms90
dtt_makeVLine(tM, dtt_cl90, dtt_w90)
if dtt_showLabels
tag90 = "90m #" + str.tostring(m)
dtt_makeLabel(tM, tag90, color.new(dtt_cl90, 0))
//--------------- خطوط 6 ساعت (ربعها) + پسزمینهها ---------------
var int dtt_lastQuarterStart = na
if dtt_showQuarter and dtt_delta >= 0 and dtt_crossedStep(dtt_anchor, dtt_ms6h)
q = math.floor((time - dtt_anchor) / dtt_ms6h)
tQ = dtt_anchor + q * dtt_ms6h
dtt_makeVLine(tQ, dtt_clQuarter, dtt_wQuarter)
if dtt_showLabels
qInDay = q % 4
qName = qInDay == 0 ? "Q1" : qInDay == 1 ? "Q2" : qInDay == 2 ? "Q3" : "Q4"
dtt_makeLabel(tQ, "ربع " + qName, color.new(dtt_clQuarter, 0))
if dtt_showQuarterBg
if not na(dtt_lastQuarterStart)
dtt_drawQuarterBox(dtt_lastQuarterStart, tQ, dtt_quarterBgCol)
dtt_lastQuarterStart := tQ
if barstate.isfirst and dtt_showQuarterBg and dtt_delta >= 0
q0 = math.floor((time - dtt_anchor) / dtt_ms6h)
dtt_lastQuarterStart := dtt_anchor + q0 * dtt_ms6h
if dtt_showQuarterBg and not na(dtt_lastQuarterStart)
dtt_drawQuarterBox(dtt_lastQuarterStart, time, dtt_quarterBgCol)
//-----------------------------
// ℹ️ تذکر بصری بالای چارت
//-----------------------------
var label dtt_hdr = na
if barstate.islast
string hdrTxt = "DTT • شروع: " + str.tostring(dtt_startH, "00") + ":" + str.tostring(dtt_startM, "00") + " • TZ: " + dtt_tzNy + "\n" +"ربع: 6 ساعت | موج: 90 دقیقه | نبض: 22.5 دقیقه"
if na(dtt_hdr)
dtt_hdr := label.new(bar_index, na, hdrTxt, xloc=xloc.bar_index, yloc=yloc.abovebar, textcolor=color.white, color=color.new(color.black, 85), size=size.small, style=label.style_label_left)
else
label.set_x(dtt_hdr, bar_index)
label.set_text(dtt_hdr, hdrTxt)
مقالات undefined
مشاهده بیشترمنتخب سردبیر
مشاهده بیشتردستیار هوشمند ارز دیجیتال
ترمینال ترید بایتیکل نرمافزار جامع ترید و سرمایهگذاری در بازار ارز دیجیتال است و امکاناتی مانند دورههای آموزشی ترید و سرمایهگذاری، تریدینگ ویو بدون محدودیت، هوش مصنوعی استراتژی ساز ترید، کلیه دادههای بازارهای مالی شامل دادههای اقتصاد کلان، تحلیل احساسات بازار، تکنیکال و آنچین، اتصال و مدیریت حساب صرافیها و تحلیلهای لحظهای را برای کاربران فراهم میکند.

