OPEN-SOURCE SCRIPT
Macros Kill Zones Fusionadas (:20 - :40) / :50 - :10)

//version=6
indicator("Macros Kill Zones Fusionadas (:20 - :40) / :50 - :10)", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// =======================
// === CONFIGURACIÓN ===
showLines = input.bool(true, "Mostrar líneas verticales")
showShading = input.bool(false, "Sombreado opcional")
shadeColor = input.color(color.new(color.gray, 85), "Color sombreado")
lineColor = color.new(color.gray, 50)
lineWidth = input.int(1, "Grosor líneas", 1, 3)
lookbackBars = input.int(200, "Lookback", 20, 2000)
// Calcular extremos del gráfico
ht = ta.highest(high, lookbackBars)
lt = ta.lowest(low, lookbackBars)
yTop = ht * 1.02
yBot = lt * 0.98
// Hora local en minutos
local_min = hour * 60 + minute
// =======================
// === MACROS ACTIVAS POR DEFECTO ===
m0 = input.bool(false,"12:20am a 12:40am")
m1 = input.bool(false,"1:20am a 1:40am")
m2 = input.bool(true, "2:20am a 2:40am")
m3 = input.bool(true, "3:20am a 3:40am")
m4 = input.bool(true, "4:20am a 4:40am")
m5 = input.bool(false,"5:20am a 5:40am")
m6 = input.bool(false,"6:20am a 6:40am")
m7 = input.bool(true, "7:20am a 7:40am")
m8 = input.bool(true, "8:20am a 8:40am")
m9 = input.bool(true, "9:20am a 9:40am")
m10 = input.bool(true, "10:20am a 10:40am")
m11 = input.bool(false,"11:20am a 11:40am")
m12 = input.bool(false,"12:20pm a 12:40pm")
m13 = input.bool(false,"1:20pm a 1:40pm")
m14 = input.bool(false,"2:20pm a 2:40pm")
m15 = input.bool(false,"3:20pm a 3:40pm")
m16 = input.bool(false,"4:20pm a 4:40pm")
m17 = input.bool(false,"5:20pm a 5:40pm")
m18 = input.bool(false,"6:20pm a 6:40pm")
m19 = input.bool(false,"7:20pm a 7:40pm")
m20 = input.bool(false,"8:20pm a 8:40pm")
m21 = input.bool(false,"9:20pm a 9:40pm")
m22 = input.bool(false,"10:20pm a 10:40pm")
m23 = input.bool(false,"11:20pm a 11:40pm")
// =======================
// === FUNCIÓN DE DIBUJO AJUSTADA ===
f_drawLines(on, startHour) =>
startMin = startHour * 60 + 20
endMin = startHour * 60 + 40
inRange = local_min >= startMin and local_min <= endMin // incluir minuto :40
if on and showLines
if local_min == startMin or local_min == endMin // dibujar línea exacta inicio y fin
line.new(bar_index, yTop, bar_index, yBot, xloc=xloc.bar_index, color=lineColor, width=lineWidth)
inRange
// =======================
// === CHEQUEO DE MACROS ACTIVAS ===
in_any_macro = f_drawLines(m0,0) or f_drawLines(m1,1) or f_drawLines(m2,2) or f_drawLines(m3,3) or
f_drawLines(m4,4) or f_drawLines(m5,5) or f_drawLines(m6,6) or f_drawLines(m7,7) or
f_drawLines(m8,8) or f_drawLines(m9,9) or f_drawLines(m10,10) or f_drawLines(m11,11) or
f_drawLines(m12,12) or f_drawLines(m13,13) or f_drawLines(m14,14) or f_drawLines(m15,15) or
f_drawLines(m16,16) or f_drawLines(m17,17) or f_drawLines(m18,18) or f_drawLines(m19,19) or
f_drawLines(m20,20) or f_drawLines(m21,21) or f_drawLines(m22,22) or f_drawLines(m23,23)
// =======================
// === SOMBREADO OPCIONAL ===
bgcolor(showShading and in_any_macro ? shadeColor : na)
// =======================
// === INDICADOR 2: Macro :50 - :10 ===
// =======================
//#region[GLOBAL]
var line[] EXT = array.new_line()
var label[] LBL = array.new_label()
oneDayMS = 86400000
oneBarMS = time_close - time
noColor = color.new(#ffffff, 100)
// Ajuste de línea sobre vela
one = ta.highest(timeframe.in_seconds("15") / timeframe.in_seconds(timeframe.period)) + syminfo.mintick * 10
y_btm_Line1 = one
y_top_Line1 = one + syminfo.mintick * 5
//#region[INPUTS]
_macroC = input.color(color.new(color.gray, 60), title="Macro Color", inline='main')
_mode = input.string("On Chart", title="", inline='main', options=["On Chart", "New Pane"])
_showL = input.bool(true, title="Macro Label?", inline='sh')
_mTxt = input.bool(true, title="Show Time?", inline='sh')
_extt = input.bool(false, title="Macro Projections?", inline='sh')
_bgm = input.color(color.new(#4caf50, 70), title="Macro Color", inline='bc')
//#endregion
//#region[FUNCTIONS]
time_isMacro(int H_start, int M_start, int H_end, int M_end) =>
h = hour(time, "America/New_York")
m = minute(time, "America/New_York")
h == H_start ? (H_start != H_end ? m >= M_start : m >= M_start and m < M_end) : (h > H_start ? (h == H_end ? m < M_end : h < H_end) : false)
_controlMacroLine(line[] _lines, label[] _lbl, bool _time) =>
if _time
_lbl.last().set_x(math.round(math.avg(_lines.get(_lines.size() - 2).get_x1(), time)))
if high > _lines.last().get_y2() - syminfo.mintick * 10
_lines.get(_lines.size() - 2).set_y2(high + (syminfo.mintick * 10))
_lines.last().set_y1(high + (syminfo.mintick * 10))
_lines.last().set_y2(high + (syminfo.mintick * 10))
LBL.last().set_y(high + (syminfo.mintick * 10))
if na(_lines.last().get_x2()) or _lines.last().get_x2() == time
_lines.last().set_x2(time + oneBarMS)
method memoryCleanLine(line[] A) =>
if A.size() > 300
for i = 0 to 3
A.shift().delete()
method memoryCleanLabel(label[] A) =>
if A.size() > 100
A.shift().delete()
macroOC(line[] LINES, bool _time, string _kzTime, bool _friday) =>
dly = _friday ? oneDayMS * 3 : oneDayMS
_txt = _mTxt ? _kzTime : ""
if not _time[1] and _time
_vline1 = line.new(time, y_btm_Line1, time, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LINES.push(_vline1)
_hline = line.new(time, y_top_Line1, time + oneBarMS, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LINES.push(_hline)
if _extt
EXT.push(line.new(time, high, time, _vline1.get_y2(), xloc=xloc.bar_time, color=_macroC, style=line.style_dotted))
if _mode == "On Chart"
LBL.push(label.new(time,
LINES.get(LINES.size() - 2).get_y2(),
_showL ? _txt : "",
xloc=xloc.bar_time,
style=label.style_label_down,
color=noColor,
textcolor=_macroC,
size=size.small))
if _time[1] and not _time and LINES.size() > 0
_vline2 = line.new(time, y_btm_Line1, time, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LBL.last().set_x(math.round(math.avg(LINES.get(LINES.size() - 2).get_x1(), time)))
if y_top_Line1 > LINES.get(LINES.size() - 2).get_y2()
LINES.get(LINES.size() - 2).set_y2(y_top_Line1)
LINES.last().set_y1(y_top_Line1)
LINES.last().set_y2(y_top_Line1)
LBL.last().set_y(y_top_Line1)
else if y_top_Line1 < LINES.get(LINES.size() - 2).get_y2()
_vline2.set_y2(LINES.get(LINES.size() - 2).get_y2())
if _extt
EXT.push(line.new(time, high, time, _vline2.get_y2(), xloc=xloc.bar_time, color=_macroC, style=line.style_dotted))
LINES.push(_vline2)
if LINES.size() > 0 and LBL.size() > 0
_controlMacroLine(LINES, LBL, _time)
//#endregion
//#region[MACRO LOGIC]
// Declaración de los 24 intervalos cronológicos
var line[] _LINES1 = array.new_line()
var line[] _LINES2 = array.new_line()
var line[] _LINES3 = array.new_line()
var line[] _LINES4 = array.new_line()
var line[] _LINES5 = array.new_line()
var line[] _LINES6 = array.new_line()
var line[] _LINES7 = array.new_line()
var line[] _LINES8 = array.new_line()
var line[] _LINES9 = array.new_line()
var line[] _LINES10 = array.new_line()
var line[] _LINES11 = array.new_line()
var line[] _LINES12 = array.new_line()
var line[] _LINES13 = array.new_line()
var line[] _LINES14 = array.new_line()
var line[] _LINES15 = array.new_line()
var line[] _LINES16 = array.new_line()
var line[] _LINES17 = array.new_line()
var line[] _LINES18 = array.new_line()
var line[] _LINES19 = array.new_line()
var line[] _LINES20 = array.new_line()
var line[] _LINES21 = array.new_line()
var line[] _LINES22 = array.new_line()
var line[] _LINES23 = array.new_line()
var line[] _LINES24 = array.new_line()
// Inputs de activación
show1 = input.bool(false, title="00:50 - 01:10")
show2 = input.bool(false, title="01:50 - 02:10")
show3 = input.bool(true, title="02:50 - 03:10")
show4 = input.bool(true, title="03:50 - 04:10")
show5 = input.bool(false, title="04:50 - 05:10")
show6 = input.bool(false, title="05:50 - 06:10")
show7 = input.bool(false, title="06:50 - 07:10")
show8 = input.bool(true, title="07:50 - 08:10")
show9 = input.bool(true, title="08:50 - 09:10")
show10 = input.bool(true, title="09:50 - 10:10")
show11 = input.bool(false, title="10:50 - 11:10")
show12 = input.bool(false, title="11:50 - 12:10")
show13 = input.bool(false, title="12:50 - 13:10")
show14 = input.bool(false, title="13:50 - 14:10")
show15 = input.bool(false, title="14:50 - 15:10")
show16 = input.bool(false, title="15:50 - 16:10")
show17 = input.bool(false, title="16:50 - 17:10")
show18 = input.bool(false, title="17:50 - 18:10")
show19 = input.bool(false, title="18:50 - 19:10")
show20 = input.bool(false, title="19:50 - 20:10")
show21 = input.bool(false, title="20:50 - 21:10")
show22 = input.bool(false, title="21:50 - 22:10")
show23 = input.bool(false, title="22:50 - 23:10")
show24 = input.bool(false, title="23:50 - 00:10")
// Tiempos
time1 = time_isMacro(0,50,1,10)
time2 = time_isMacro(1,50,2,10)
time3 = time_isMacro(2,50,3,10)
time4 = time_isMacro(3,50,4,10)
time5 = time_isMacro(4,50,5,10)
time6 = time_isMacro(5,50,6,10)
time7 = time_isMacro(6,50,7,10)
time8 = time_isMacro(7,50,8,10)
time9 = time_isMacro(8,50,9,10)
time10 = time_isMacro(9,50,10,10)
time11 = time_isMacro(10,50,11,10)
time12 = time_isMacro(11,50,12,10)
time13 = time_isMacro(12,50,13,10)
time14 = time_isMacro(13,50,14,10)
time15 = time_isMacro(14,50,15,10)
time16 = time_isMacro(15,50,16,10)
time17 = time_isMacro(16,50,17,10)
time18 = time_isMacro(17,50,18,10)
time19 = time_isMacro(18,50,19,10)
time20 = time_isMacro(19,50,20,10)
time21 = time_isMacro(20,50,21,10)
time22 = time_isMacro(21,50,22,10)
time23 = time_isMacro(22,50,23,10)
time24 = time_isMacro(23,50,0,10)
//#region[PLOT MACROS]
plotMacro(_show, _LINES, _time, _lbl) =>
if _show
macroOC(_LINES, _time, _lbl, dayofweek(time) == dayofweek.friday and syminfo.type != 'crypto')
plotMacro(show1, _LINES1, time1, "00:50 - 01:10")
plotMacro(show2, _LINES2, time2, "01:50 - 02:10")
plotMacro(show3, _LINES3, time3, "02:50 - 03:10")
plotMacro(show4, _LINES4, time4, "03:50 - 04:10")
plotMacro(show5, _LINES5, time5, "04:50 - 05:10")
plotMacro(show6, _LINES6, time6, "05:50 - 06:10")
plotMacro(show7, _LINES7, time7, "06:50 - 07:10")
plotMacro(show8, _LINES8, time8, "07:50 - 08:10")
plotMacro(show9, _LINES9, time9, "08:50 - 09:10")
plotMacro(show10, _LINES10, time10, "09:50 - 10:10")
plotMacro(show11, _LINES11, time11, "10:50 - 11:10")
plotMacro(show12, _LINES12, time12, "11:50 - 12:10")
plotMacro(show13, _LINES13, time13, "12:50 - 13:10")
plotMacro(show14, _LINES14, time14, "13:50 - 14:10")
plotMacro(show15, _LINES15, time15, "14:50 - 15:10")
plotMacro(show16, _LINES16, time16, "15:50 - 16:10")
plotMacro(show17, _LINES17, time17, "16:50 - 17:10")
plotMacro(show18, _LINES18, time18, "17:50 - 18:10")
plotMacro(show19, _LINES19, time19, "18:50 - 19:10")
plotMacro(show20, _LINES20, time20, "19:50 - 20:10")
plotMacro(show21, _LINES21, time21, "20:50 - 21:10")
plotMacro(show22, _LINES22, time22, "21:50 - 22:10")
plotMacro(show23, _LINES23, time23, "22:50 - 23:10")
plotMacro(show24, _LINES24, time24, "23:50 - 00:10")
//#endregion
//#region[MEMORY CLEAN UP]
_LINES1.memoryCleanLine()
_LINES2.memoryCleanLine()
_LINES3.memoryCleanLine()
_LINES4.memoryCleanLine()
_LINES5.memoryCleanLine()
_LINES6.memoryCleanLine()
_LINES7.memoryCleanLine()
_LINES8.memoryCleanLine()
_LINES9.memoryCleanLine()
_LINES10.memoryCleanLine()
_LINES11.memoryCleanLine()
_LINES12.memoryCleanLine()
_LINES13.memoryCleanLine()
_LINES14.memoryCleanLine()
_LINES15.memoryCleanLine()
_LINES16.memoryCleanLine()
_LINES17.memoryCleanLine()
_LINES18.memoryCleanLine()
_LINES19.memoryCleanLine()
_LINES20.memoryCleanLine()
_LINES21.memoryCleanLine()
_LINES22.memoryCleanLine()
_LINES23.memoryCleanLine()
_LINES24.memoryCleanLine()
EXT.memoryCleanLine()
LBL.memoryCleanLabel()
//#endregion
indicator("Macros Kill Zones Fusionadas (:20 - :40) / :50 - :10)", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// =======================
// === CONFIGURACIÓN ===
showLines = input.bool(true, "Mostrar líneas verticales")
showShading = input.bool(false, "Sombreado opcional")
shadeColor = input.color(color.new(color.gray, 85), "Color sombreado")
lineColor = color.new(color.gray, 50)
lineWidth = input.int(1, "Grosor líneas", 1, 3)
lookbackBars = input.int(200, "Lookback", 20, 2000)
// Calcular extremos del gráfico
ht = ta.highest(high, lookbackBars)
lt = ta.lowest(low, lookbackBars)
yTop = ht * 1.02
yBot = lt * 0.98
// Hora local en minutos
local_min = hour * 60 + minute
// =======================
// === MACROS ACTIVAS POR DEFECTO ===
m0 = input.bool(false,"12:20am a 12:40am")
m1 = input.bool(false,"1:20am a 1:40am")
m2 = input.bool(true, "2:20am a 2:40am")
m3 = input.bool(true, "3:20am a 3:40am")
m4 = input.bool(true, "4:20am a 4:40am")
m5 = input.bool(false,"5:20am a 5:40am")
m6 = input.bool(false,"6:20am a 6:40am")
m7 = input.bool(true, "7:20am a 7:40am")
m8 = input.bool(true, "8:20am a 8:40am")
m9 = input.bool(true, "9:20am a 9:40am")
m10 = input.bool(true, "10:20am a 10:40am")
m11 = input.bool(false,"11:20am a 11:40am")
m12 = input.bool(false,"12:20pm a 12:40pm")
m13 = input.bool(false,"1:20pm a 1:40pm")
m14 = input.bool(false,"2:20pm a 2:40pm")
m15 = input.bool(false,"3:20pm a 3:40pm")
m16 = input.bool(false,"4:20pm a 4:40pm")
m17 = input.bool(false,"5:20pm a 5:40pm")
m18 = input.bool(false,"6:20pm a 6:40pm")
m19 = input.bool(false,"7:20pm a 7:40pm")
m20 = input.bool(false,"8:20pm a 8:40pm")
m21 = input.bool(false,"9:20pm a 9:40pm")
m22 = input.bool(false,"10:20pm a 10:40pm")
m23 = input.bool(false,"11:20pm a 11:40pm")
// =======================
// === FUNCIÓN DE DIBUJO AJUSTADA ===
f_drawLines(on, startHour) =>
startMin = startHour * 60 + 20
endMin = startHour * 60 + 40
inRange = local_min >= startMin and local_min <= endMin // incluir minuto :40
if on and showLines
if local_min == startMin or local_min == endMin // dibujar línea exacta inicio y fin
line.new(bar_index, yTop, bar_index, yBot, xloc=xloc.bar_index, color=lineColor, width=lineWidth)
inRange
// =======================
// === CHEQUEO DE MACROS ACTIVAS ===
in_any_macro = f_drawLines(m0,0) or f_drawLines(m1,1) or f_drawLines(m2,2) or f_drawLines(m3,3) or
f_drawLines(m4,4) or f_drawLines(m5,5) or f_drawLines(m6,6) or f_drawLines(m7,7) or
f_drawLines(m8,8) or f_drawLines(m9,9) or f_drawLines(m10,10) or f_drawLines(m11,11) or
f_drawLines(m12,12) or f_drawLines(m13,13) or f_drawLines(m14,14) or f_drawLines(m15,15) or
f_drawLines(m16,16) or f_drawLines(m17,17) or f_drawLines(m18,18) or f_drawLines(m19,19) or
f_drawLines(m20,20) or f_drawLines(m21,21) or f_drawLines(m22,22) or f_drawLines(m23,23)
// =======================
// === SOMBREADO OPCIONAL ===
bgcolor(showShading and in_any_macro ? shadeColor : na)
// =======================
// === INDICADOR 2: Macro :50 - :10 ===
// =======================
//#region[GLOBAL]
var line[] EXT = array.new_line()
var label[] LBL = array.new_label()
oneDayMS = 86400000
oneBarMS = time_close - time
noColor = color.new(#ffffff, 100)
// Ajuste de línea sobre vela
one = ta.highest(timeframe.in_seconds("15") / timeframe.in_seconds(timeframe.period)) + syminfo.mintick * 10
y_btm_Line1 = one
y_top_Line1 = one + syminfo.mintick * 5
//#region[INPUTS]
_macroC = input.color(color.new(color.gray, 60), title="Macro Color", inline='main')
_mode = input.string("On Chart", title="", inline='main', options=["On Chart", "New Pane"])
_showL = input.bool(true, title="Macro Label?", inline='sh')
_mTxt = input.bool(true, title="Show Time?", inline='sh')
_extt = input.bool(false, title="Macro Projections?", inline='sh')
_bgm = input.color(color.new(#4caf50, 70), title="Macro Color", inline='bc')
//#endregion
//#region[FUNCTIONS]
time_isMacro(int H_start, int M_start, int H_end, int M_end) =>
h = hour(time, "America/New_York")
m = minute(time, "America/New_York")
h == H_start ? (H_start != H_end ? m >= M_start : m >= M_start and m < M_end) : (h > H_start ? (h == H_end ? m < M_end : h < H_end) : false)
_controlMacroLine(line[] _lines, label[] _lbl, bool _time) =>
if _time
_lbl.last().set_x(math.round(math.avg(_lines.get(_lines.size() - 2).get_x1(), time)))
if high > _lines.last().get_y2() - syminfo.mintick * 10
_lines.get(_lines.size() - 2).set_y2(high + (syminfo.mintick * 10))
_lines.last().set_y1(high + (syminfo.mintick * 10))
_lines.last().set_y2(high + (syminfo.mintick * 10))
LBL.last().set_y(high + (syminfo.mintick * 10))
if na(_lines.last().get_x2()) or _lines.last().get_x2() == time
_lines.last().set_x2(time + oneBarMS)
method memoryCleanLine(line[] A) =>
if A.size() > 300
for i = 0 to 3
A.shift().delete()
method memoryCleanLabel(label[] A) =>
if A.size() > 100
A.shift().delete()
macroOC(line[] LINES, bool _time, string _kzTime, bool _friday) =>
dly = _friday ? oneDayMS * 3 : oneDayMS
_txt = _mTxt ? _kzTime : ""
if not _time[1] and _time
_vline1 = line.new(time, y_btm_Line1, time, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LINES.push(_vline1)
_hline = line.new(time, y_top_Line1, time + oneBarMS, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LINES.push(_hline)
if _extt
EXT.push(line.new(time, high, time, _vline1.get_y2(), xloc=xloc.bar_time, color=_macroC, style=line.style_dotted))
if _mode == "On Chart"
LBL.push(label.new(time,
LINES.get(LINES.size() - 2).get_y2(),
_showL ? _txt : "",
xloc=xloc.bar_time,
style=label.style_label_down,
color=noColor,
textcolor=_macroC,
size=size.small))
if _time[1] and not _time and LINES.size() > 0
_vline2 = line.new(time, y_btm_Line1, time, y_top_Line1, xloc=xloc.bar_time, color=_macroC, width=1)
LBL.last().set_x(math.round(math.avg(LINES.get(LINES.size() - 2).get_x1(), time)))
if y_top_Line1 > LINES.get(LINES.size() - 2).get_y2()
LINES.get(LINES.size() - 2).set_y2(y_top_Line1)
LINES.last().set_y1(y_top_Line1)
LINES.last().set_y2(y_top_Line1)
LBL.last().set_y(y_top_Line1)
else if y_top_Line1 < LINES.get(LINES.size() - 2).get_y2()
_vline2.set_y2(LINES.get(LINES.size() - 2).get_y2())
if _extt
EXT.push(line.new(time, high, time, _vline2.get_y2(), xloc=xloc.bar_time, color=_macroC, style=line.style_dotted))
LINES.push(_vline2)
if LINES.size() > 0 and LBL.size() > 0
_controlMacroLine(LINES, LBL, _time)
//#endregion
//#region[MACRO LOGIC]
// Declaración de los 24 intervalos cronológicos
var line[] _LINES1 = array.new_line()
var line[] _LINES2 = array.new_line()
var line[] _LINES3 = array.new_line()
var line[] _LINES4 = array.new_line()
var line[] _LINES5 = array.new_line()
var line[] _LINES6 = array.new_line()
var line[] _LINES7 = array.new_line()
var line[] _LINES8 = array.new_line()
var line[] _LINES9 = array.new_line()
var line[] _LINES10 = array.new_line()
var line[] _LINES11 = array.new_line()
var line[] _LINES12 = array.new_line()
var line[] _LINES13 = array.new_line()
var line[] _LINES14 = array.new_line()
var line[] _LINES15 = array.new_line()
var line[] _LINES16 = array.new_line()
var line[] _LINES17 = array.new_line()
var line[] _LINES18 = array.new_line()
var line[] _LINES19 = array.new_line()
var line[] _LINES20 = array.new_line()
var line[] _LINES21 = array.new_line()
var line[] _LINES22 = array.new_line()
var line[] _LINES23 = array.new_line()
var line[] _LINES24 = array.new_line()
// Inputs de activación
show1 = input.bool(false, title="00:50 - 01:10")
show2 = input.bool(false, title="01:50 - 02:10")
show3 = input.bool(true, title="02:50 - 03:10")
show4 = input.bool(true, title="03:50 - 04:10")
show5 = input.bool(false, title="04:50 - 05:10")
show6 = input.bool(false, title="05:50 - 06:10")
show7 = input.bool(false, title="06:50 - 07:10")
show8 = input.bool(true, title="07:50 - 08:10")
show9 = input.bool(true, title="08:50 - 09:10")
show10 = input.bool(true, title="09:50 - 10:10")
show11 = input.bool(false, title="10:50 - 11:10")
show12 = input.bool(false, title="11:50 - 12:10")
show13 = input.bool(false, title="12:50 - 13:10")
show14 = input.bool(false, title="13:50 - 14:10")
show15 = input.bool(false, title="14:50 - 15:10")
show16 = input.bool(false, title="15:50 - 16:10")
show17 = input.bool(false, title="16:50 - 17:10")
show18 = input.bool(false, title="17:50 - 18:10")
show19 = input.bool(false, title="18:50 - 19:10")
show20 = input.bool(false, title="19:50 - 20:10")
show21 = input.bool(false, title="20:50 - 21:10")
show22 = input.bool(false, title="21:50 - 22:10")
show23 = input.bool(false, title="22:50 - 23:10")
show24 = input.bool(false, title="23:50 - 00:10")
// Tiempos
time1 = time_isMacro(0,50,1,10)
time2 = time_isMacro(1,50,2,10)
time3 = time_isMacro(2,50,3,10)
time4 = time_isMacro(3,50,4,10)
time5 = time_isMacro(4,50,5,10)
time6 = time_isMacro(5,50,6,10)
time7 = time_isMacro(6,50,7,10)
time8 = time_isMacro(7,50,8,10)
time9 = time_isMacro(8,50,9,10)
time10 = time_isMacro(9,50,10,10)
time11 = time_isMacro(10,50,11,10)
time12 = time_isMacro(11,50,12,10)
time13 = time_isMacro(12,50,13,10)
time14 = time_isMacro(13,50,14,10)
time15 = time_isMacro(14,50,15,10)
time16 = time_isMacro(15,50,16,10)
time17 = time_isMacro(16,50,17,10)
time18 = time_isMacro(17,50,18,10)
time19 = time_isMacro(18,50,19,10)
time20 = time_isMacro(19,50,20,10)
time21 = time_isMacro(20,50,21,10)
time22 = time_isMacro(21,50,22,10)
time23 = time_isMacro(22,50,23,10)
time24 = time_isMacro(23,50,0,10)
//#region[PLOT MACROS]
plotMacro(_show, _LINES, _time, _lbl) =>
if _show
macroOC(_LINES, _time, _lbl, dayofweek(time) == dayofweek.friday and syminfo.type != 'crypto')
plotMacro(show1, _LINES1, time1, "00:50 - 01:10")
plotMacro(show2, _LINES2, time2, "01:50 - 02:10")
plotMacro(show3, _LINES3, time3, "02:50 - 03:10")
plotMacro(show4, _LINES4, time4, "03:50 - 04:10")
plotMacro(show5, _LINES5, time5, "04:50 - 05:10")
plotMacro(show6, _LINES6, time6, "05:50 - 06:10")
plotMacro(show7, _LINES7, time7, "06:50 - 07:10")
plotMacro(show8, _LINES8, time8, "07:50 - 08:10")
plotMacro(show9, _LINES9, time9, "08:50 - 09:10")
plotMacro(show10, _LINES10, time10, "09:50 - 10:10")
plotMacro(show11, _LINES11, time11, "10:50 - 11:10")
plotMacro(show12, _LINES12, time12, "11:50 - 12:10")
plotMacro(show13, _LINES13, time13, "12:50 - 13:10")
plotMacro(show14, _LINES14, time14, "13:50 - 14:10")
plotMacro(show15, _LINES15, time15, "14:50 - 15:10")
plotMacro(show16, _LINES16, time16, "15:50 - 16:10")
plotMacro(show17, _LINES17, time17, "16:50 - 17:10")
plotMacro(show18, _LINES18, time18, "17:50 - 18:10")
plotMacro(show19, _LINES19, time19, "18:50 - 19:10")
plotMacro(show20, _LINES20, time20, "19:50 - 20:10")
plotMacro(show21, _LINES21, time21, "20:50 - 21:10")
plotMacro(show22, _LINES22, time22, "21:50 - 22:10")
plotMacro(show23, _LINES23, time23, "22:50 - 23:10")
plotMacro(show24, _LINES24, time24, "23:50 - 00:10")
//#endregion
//#region[MEMORY CLEAN UP]
_LINES1.memoryCleanLine()
_LINES2.memoryCleanLine()
_LINES3.memoryCleanLine()
_LINES4.memoryCleanLine()
_LINES5.memoryCleanLine()
_LINES6.memoryCleanLine()
_LINES7.memoryCleanLine()
_LINES8.memoryCleanLine()
_LINES9.memoryCleanLine()
_LINES10.memoryCleanLine()
_LINES11.memoryCleanLine()
_LINES12.memoryCleanLine()
_LINES13.memoryCleanLine()
_LINES14.memoryCleanLine()
_LINES15.memoryCleanLine()
_LINES16.memoryCleanLine()
_LINES17.memoryCleanLine()
_LINES18.memoryCleanLine()
_LINES19.memoryCleanLine()
_LINES20.memoryCleanLine()
_LINES21.memoryCleanLine()
_LINES22.memoryCleanLine()
_LINES23.memoryCleanLine()
_LINES24.memoryCleanLine()
EXT.memoryCleanLine()
LBL.memoryCleanLabel()
//#endregion
Mã nguồn mở
Theo đúng tinh thần TradingView, người tạo ra tập lệnh này đã biến tập lệnh thành mã nguồn mở để các nhà giao dịch có thể xem xét và xác minh công năng. Xin dành lời khen tặng cho tác giả! Mặc dù bạn có thể sử dụng miễn phí, nhưng lưu ý nếu đăng lại mã, bạn phải tuân theo Quy tắc nội bộ của chúng tôi.
Thông báo miễn trừ trách nhiệm
Thông tin và ấn phẩm không có nghĩa là và không cấu thành, tài chính, đầu tư, kinh doanh, hoặc các loại lời khuyên hoặc khuyến nghị khác được cung cấp hoặc xác nhận bởi TradingView. Đọc thêm trong Điều khoản sử dụng.
Mã nguồn mở
Theo đúng tinh thần TradingView, người tạo ra tập lệnh này đã biến tập lệnh thành mã nguồn mở để các nhà giao dịch có thể xem xét và xác minh công năng. Xin dành lời khen tặng cho tác giả! Mặc dù bạn có thể sử dụng miễn phí, nhưng lưu ý nếu đăng lại mã, bạn phải tuân theo Quy tắc nội bộ của chúng tôi.
Thông báo miễn trừ trách nhiệm
Thông tin và ấn phẩm không có nghĩa là và không cấu thành, tài chính, đầu tư, kinh doanh, hoặc các loại lời khuyên hoặc khuyến nghị khác được cung cấp hoặc xác nhận bởi TradingView. Đọc thêm trong Điều khoản sử dụng.