如何修改Tradingview整数水平线指标避免自动价格缩放
解决TradingView整数水平线指标缩放异常问题
核心修复方案
保留
scale=scale.none并修正线条绘制逻辑:
设scale.none后线条位置异常,本质是指标原逻辑基于全局价格范围生成水平线,而非当前图表可见区间。修改代码让水平线仅基于当前视图的价格极值生成整数位,既避免触发全局缩放,又保证线条位置正常:indicator("Round Numbers", shorttitle="Round Num", overlay=true, scale=scale.none) // 获取当前视图的价格极值 visible_high = ta.highest(high, barssince(ta.change(timeframe.isintraday ? session.isfirstbar : false))) visible_low = ta.lowest(low, barssince(ta.change(timeframe.isintraday ? session.isfirstbar : false))) // 计算整数水平线的上下限(步长可根据品种调整,如外汇用0.0010,股票用1/10) step = 10 upper_level = math.ceil(visible_high / step) * step lower_level = math.floor(visible_low / step) * step // 生成区间内的整数水平线 for i = 0 to (upper_level - lower_level)/step level = lower_level + i*step plot(level, color=color.gray, style=plot.style_linebr)通过指标设置关闭缩放权限(无需改代码):
右键点击指标名称 → 选择「指标设置」→ 在「缩放」选项中选「无」,这样指标不会影响图表自动缩放逻辑,线条位置也能保持正常。
关键说明
- 仅设置
scale.none不调整水平线生成逻辑的话,线条会基于全局价格范围生成,移动图表时这些线条可能不在当前视图内,造成位置异常的视觉效果。 - 代码中的
step(步长)可根据交易品种调整,比如美股用1或10,外汇直盘用0.0010,适配不同品种的整数位规则。
内容的提问来源于stack exchange,提问作者Reza Zeraati
相关产品推荐
相关产品推荐

