//@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/的帮助),但没有在我们的自定义会话上绘制突破行。任何帮助将不胜感激。
图片网址- https://prnt.sc/tzpiff
错误的蜡烛标记问题-https://prnt.sc/tzzwdj
使用Alertcondition更新了代码-下面的代码
//@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中设置了警报,但是警报未按时激活,即突破高/低。
答案 0 :(得分:0)
这将在上一个交易日的第一个柱线的高点和低点画线,并在其上显示价格。我们的想法是先绘制一条无用的线条和标签,然后在找到新的会话开始时对其进行调整。如果需要更改颜色,请在if
语句之前的变量声明中更改颜色。
f_tickformat()
一词用图表符号的刻度精度格式化价格的小数。
//@version=4
study("custom Session breakout", overlay=true)
my_session = input("1145-1215", 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)
if new_session
// Update lines.
line.set_xy1( hiLine, bar_index - 1, high)
line.set_xy2( hiLine, bar_index, high)
line.set_xy1( loLine, bar_index - 1, low)
line.set_xy2( loLine, bar_index, low)
// Update labels.
label.set_xy( hiLabel, bar_index, high)
label.set_text(hiLabel, tostring(high, f_tickFormat()))
label.set_xy( loLabel, bar_index, low)
label.set_text(loLabel, tostring(low, f_tickFormat()))
// Mark session beginnings for debugging.
plotchar(new_session, "new_session", "•", location.abovebar, size = size.tiny)
这将在级别的十字上显示标记。您可以使用相同的条件通过alertcondition()
定义警报:
//@version=4
study("custom Session breakout", overlay=true)
my_session = input("1145-1215", 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)
// 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)