如何解决松脚本-自定义会话突破问题 版本1 版本2
//@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,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",title='Custom Session')
is_new_session(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,color = color.orange,width = 2,extend = extend.both)
var loLine = line.new(bar_index,low,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,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,hi)
line.set_xy1( loLine,lo)
line.set_xy2( loLine,lo)
// Update labels.
label.set_xy( hiLabel,hi)
label.set_text(hiLabel,tostring(hi,f_tickFormat()))
label.set_xy( loLabel,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","▼",color.fuchsia,size = size.tiny)
注意-我在pinescript中添加了警报条件,并在TradingView中设置了警报,但是警报未按时激活,即突破高/低。
解决方法
版本1
这将在上一个交易日的第一个柱线的高点和低点画线,并在其上显示价格。我们的想法是先绘制一条无用的线条和标签,然后在找到新的会话开始时对其进行调整。如果需要更改颜色,请在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,color = color.orange,width = 2,extend = extend.both)
var loLine = line.new(bar_index,low,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,textcolor = color.silver)
if new_session
// Update lines.
line.set_xy1( hiLine,bar_index - 1,high)
line.set_xy2( hiLine,high)
line.set_xy1( loLine,low)
line.set_xy2( loLine,low)
// Update labels.
label.set_xy( hiLabel,high)
label.set_text(hiLabel,tostring(high,f_tickFormat()))
label.set_xy( loLabel,low)
label.set_text(loLabel,tostring(low,f_tickFormat()))
// Mark session beginnings for debugging.
plotchar(new_session,"new_session","•",location.abovebar,size = size.tiny)
版本2
这将在级别的十字上显示标记。您可以使用相同的条件通过alertcondition()
定义警报:
//@version=4
study("custom Session breakout","0")
new_session = is_new_session("1400",my_session)
var hiLine = line.new(bar_index,extend = extend.both)
var loLine = line.new(bar_index,extend = extend.both)
var hiLabel = label.new(bar_index,textcolor = color.silver)
var loLabel = label.new(bar_index,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,hi)
line.set_xy2( hiLine,hi)
line.set_xy1( loLine,lo)
line.set_xy2( loLine,lo)
// Update labels.
label.set_xy( hiLabel,hi)
label.set_text(hiLabel,tostring(hi,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,size = size.tiny)
plotchar(xUp,"xUp","▲",location.belowbar,color.lime,size = size.tiny)
plotchar(xDn,"xDn","▼",color.fuchsia,size = size.tiny)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。