如何在Pine Script中仅显示当前活跃K线的每日开盘线并隐藏历史开盘线?
解决方法
要只显示当前活跃交易日的开盘线,核心思路是让历史交易日的开盘价返回na(Pine Script的plot函数会自动忽略na值,不绘制对应图形)。你可以通过判断当前K线是否属于当前活跃交易日来实现,修改后的脚本如下:
//@version=5 indicator('Daily Open', overlay=true) daily_open(x) => trigger = na(time('D')) or ta.change(time('D')) ta.valuewhen(trigger, open, x) // 仅在当前活跃交易日的K线上绘制开盘线,历史交易日返回na plot(time('D') == time('D', barmerge.gaps_on, barmerge.lookahead_on) ? daily_open(0) : na, 'Daily Open', color.new(color.blue, 0), 1, plot.style_cross)
代码说明
time('D') == time('D', barmerge.gaps_on, barmerge.lookahead_on):这个条件用于判断当前K线所属的交易日是否为最新的活跃交易日。- 当条件成立时,返回当日开盘价;否则返回
na,plot函数会自动跳过这些na值,不再绘制历史交易日的开盘线。
如果想进一步简化代码,也可以直接计算当前交易日的开盘价并添加判断,写法如下:
//@version=5 indicator('Daily Open', overlay=true) // 获取当前交易日开盘价,仅在当日K线显示 current_day_open = ta.valuewhen(ta.change(time('D')), open, 0) show_open = time('D') == time('D', barmerge.gaps_on, barmerge.lookahead_on) ? current_day_open : na plot(show_open, 'Daily Open', color.new(color.blue, 0), 1, plot.style_cross)
内容的提问来源于stack exchange,提问作者aiman
相关产品推荐
相关产品推荐

