Pine Script中barstate.isrealtime在回放模式下失效的问题咨询及解决方案请求
我最近碰到了Pine Script里barstate.isrealtime不符合预期的问题,想请教下正确的用法,或者有没有办法判断当前是否处于回放模式?
具体情况是这样的:我原本以为barstate.isrealtime == false会在非实时场景下生效,但在回放模式里完全不管用。没点击回放的时候它是正常的,但一点击回放,因为系统会模拟实时K线生成,这个判断立刻就变成true了。
我的脚本是用request.security从不同时间框架取数据,然后整理成表格展示,实时状态下一切正常,但切换到回放模式播放K线时,表格里的数据就变得不一致了。所以我想要么在回放模式下直接删掉表格,要么让表格显示占位内容(比如用-代替),但不知道怎么实现。
我试过用barstate.ishistory来判断,结果和barstate.isrealtime一样,都没达到预期效果。我之前写的判断逻辑是这样的:
if barstate.isrealtime == false table.delete(tabledatas)
后来我@Mario提供了我的表格示例代码,尝试按照建议用barstate.islast等状态来区分显示内容,但还是有问题:
var table tabl1 = table.new('middle' + '_' + 'center', 2, 2, border_color = auto_bg, border_width = 1, frame_color = auto_bg, frame_width = 1) if barstate.isfirst table.cell(tabl1, 0, 0, 'currentvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0)) table.cell(tabl1, 1, 0, 'currentvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0)) else if barstate.islast table.cell_set_text(tabl1, 0, 0, 'replayvalue') table.cell_set_text(tabl1, 1, 0, 'replayvalue')
这里的replayvalue我打算换成-,就是想在回放模式下显示这个占位内容,实时模式显示真实的currentvalue。
之后我又更新了代码,尝试用barstate.ishistory和barstate.isrealtime来区分:
if barstate.islast var table tabl1 = table.new('middle' + '_' + 'center', 2, 2, border_color = auto_bg, border_width = 1, frame_color = auto_bg, frame_width = 1) if barstate.ishistory table.cell(tabl1, 0, 0, 'replayvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0)) table.cell(tabl1, 1, 0, 'replayvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0)) else if barstate.isrealtime table.cell(tabl1, 0, 0, 'currentvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0)) table.cell(tabl1, 1, 0, 'currentvalue' , 0, 0, #ffffff, 'center', text_size=size.huge, bgcolor=color.new(#000000, 0))
但结果还是和第一次一样:实时状态下正常显示currentvalue,切换到回放模式时一开始显示replayvalue,但一旦开始播放K线,就又变回currentvalue了,完全达不到预期效果。
有没有大佬能指点下怎么解决这个问题呀?万分感谢!
备注:内容来源于stack exchange,提问作者trashasf

