如何将时段/Killzone指标对齐至屏幕底部(仿内置成交量柱)
时段/Killzone指标底部对齐及scale.left/right失效问题的技术建议
- 剥离价格依赖逻辑:若原代码中存在任何价格相关变量(如
close、open)的引用——哪怕是用于非时段区域的计算——都会强制指标绑定主图价格刻度,导致scale.left/right的独立刻度设置失效。确保时段区域的绘制完全基于时间维度,所有坐标计算仅使用bar_index、时间戳等时间类变量,彻底排除价格关联。 - 修正overlay与刻度的冲突:当
overlay=true时,指标会强制叠加主图,此时scale.left/right的独立刻度会被主图刻度覆盖。若要使用独立侧边刻度,必须设置overlay=false,同时避免通过plot()的display参数等逻辑强制关联主图。 - 清理跨品种对标残留代码:之前添加USD/USD对标0.00价格的尝试,若残留
request.security()等跨品种请求代码,会让指标关联对标品种的价格刻度,干扰自身scale设置。彻底删除所有不必要的跨品种、跨周期价格请求逻辑。 - 检查绘图函数的属性配置:原代码中若对时段区域的
plot()、plotshape()等设置了scale=scale.price,或使用location=location.belowbar这类依赖价格的定位参数,会直接覆盖全局scale.left/right设置。确保绘图函数的scale参数明确设为scale.left/scale.right(或继承全局),且仅使用时间维度的定位逻辑。 - 定位状态污染代码:原代码中
var声明的全局变量若存储过价格值,或使用ta.barssince()等依赖价格触发的函数,会导致刻度逻辑绑定价格。通过逐段注释代码并测试scale设置的生效情况,定位并移除这类污染逻辑。
内容的提问来源于stack exchange,提问作者Adam Lambert
相关产品推荐
相关产品推荐

