如何获取可见K线数量计算其最高价并赋值给常量用于指标开发
Pine Script 实现可见K线最高价计算方案
核心逻辑
当前图表可见K线总数量可以通过Pine Script v5内置的chart命名空间变量直接计算,无需手动统计:
chart.left_visible_bar:可视区域最左侧K线的索引值chart.right_visible_bar:可视区域最右侧K线的索引值- 两者差值加1就是当前可见K线的总数量
代码实现
你原来的代码可以直接替换参数实现需求:
//@version=5 indicator("自定义可见K线最高价指标", overlay=true) // 动态计算当前可见K线总数量,会随图表缩放/拖拽实时更新 visible_bar_total = chart.right_visible_bar - chart.left_visible_bar + 1 // 计算可见范围内最高价 myvar = ta.highest(visible_bar_total) // 可按需添加绘图逻辑 plot(myvar, color=color.new(color.red, 0), linewidth=2)
特殊场景说明
如果你需要将首次加载图表时的可见K线数量赋值为常量(后续调整图表视图不会更新该数值),可以用const关键字声明:
// 仅在脚本初始化时计算一次可见K线数量,后续不会变更 const fixed_visible_count = chart.right_visible_bar - chart.left_visible_bar + 1 myvar = ta.highest(fixed_visible_count)
注意事项
- 上述方法仅适用于Pine Script v5版本,v4及更早版本没有
chart相关内置变量,无法直接获取可视区域K线数量,建议升级脚本版本使用该功能 ta.highest默认使用最高价high计算,如果你需要计算其他价格的最高值,可以显式传入价格参数,例如ta.highest(close, visible_bar_total)计算可见范围内收盘价的最大值
内容的提问来源于stack exchange,提问作者Tim Y
相关产品推荐
相关产品推荐

