//@version=4
study("custom Session breakout", overlay=true)
my_session = input("1145-1215", type=input.session, title='Custom Session')
// Determine if we are in a session
// ----------------------------------
in_session = time(timeframe.period, my_session)
is_new_session(res, sess) =>
t = time(res, sess)
na(t[1]) and not na(t) or t[1] < t
new_session = is_new_session("1400", my_session)
// Get the High/Low of the EMA for the session
highH = float(na)
lowH = float(na)
highH := new_session ? close : in_session ? max(high , highH[1]) : high
lowH := new_session ? close : in_session ? min(low, lowH[1]) : low
plot(highH, color=color.green , style=plot.style_circles, title='High')
plot(lowH, color=color.red, style=plot.style_circles, title='Low')
над кодом, который я написал (помощь от https://www.pinecoders.com/), но он делает не рисовать линии пробоя в нашем пользовательском сеансе. Любая помощь будет оценена.
URL изображения – https://prnt.sc/tzpiff
Неправильная маркировка свечей — https://prnt.sc/tzzwdj
Обновлен код с предупреждением - код ниже
//@version=4
study("custom Session breakout", overlay=true)
my_session = input("0945-1015", type=input.session, title='Custom Session')
is_new_session(res, sess) =>
t = time(res, sess)
na(t[1]) and not na(t) or t[1] < t
f_tickFormat() =>
_s = tostring(syminfo.mintick)
_s := str.replace_all(_s, "25", "00")
_s := str.replace_all(_s, "5", "0")
_s := str.replace_all(_s, "1", "0")
new_session = is_new_session("1400", my_session)
var hiLine = line.new(bar_index, high, bar_index, high, color = color.orange, width = 2, extend = extend.both)
var loLine = line.new(bar_index, low, bar_index, low, color = color.orange, width = 2, extend = extend.both)
var hiLabel = label.new(bar_index, na, "", color = color(na), style = label.style_none, textcolor = color.silver)
var loLabel = label.new(bar_index, na, "", color = color(na), style = label.style_none, textcolor = color.silver)
var float hi = na
var float lo = na
if new_session
// Update hi and lo.
hi := high
lo := low
// Update lines.
line.set_xy1( hiLine, bar_index - 1, hi)
line.set_xy2( hiLine, bar_index, hi)
line.set_xy1( loLine, bar_index - 1, lo)
line.set_xy2( loLine, bar_index, lo)
// Update labels.
label.set_xy( hiLabel, bar_index, hi)
label.set_text(hiLabel, tostring(hi, f_tickFormat()))
label.set_xy( loLabel, bar_index, lo)
label.set_text(loLabel, tostring(lo, f_tickFormat()))
// Crosses
xUp = crossover( close, hi)
xDn = crossunder(close, lo)
//Alert
alertcondition(xUp, title='Up Breakout', message='Up Breakout')
alertcondition(xDn, title='Down Breakout', message='Down Breakout')
// Mark session beginnings for debugging.
plotchar(new_session, "new_session", "•", location.abovebar, size = size.tiny)
plotchar(xUp, "xUp", "▲", location.belowbar, color.lime, size = size.tiny)
plotchar(xDn, "xDn", "▼", location.abovebar, color.fuchsia, size = size.tiny)
Примечание. Я добавил условие оповещения в pinescript, а также установил оповещение в TradingView, но оповещение не срабатывает вовремя, т. е. при прорыве HIGH/LOW.