Pine Script中ATR参数修改无响应问题求助
问题排查与解决
问题根源
你的代码中,最终用于判断K线颜色和绘制均线的核心计算((D+E)/2),实际上把ATR相关变量C完全抵消了,导致修改ATRPeriod和ATRFactor不会产生任何影响:
D = A - C,E = B + C- 两者相加后:
D + E = (A - C) + (B + C) = A + B - 除以2后结果为
(A+B)/2,完全和C(ATR计算值)无关
修正方案
如果你的初衷是让ATR数值影响上下轨(比如生成基于ATR的通道),需要调整D和E的计算逻辑,避免C被抵消。例如,将上轨设为A + C、下轨设为B - C,修正后的代码如下:
indicator("Wave", overlay=true) Highest = input(high, title="Higher") Lowest = input(close, title="Lower") Lookback = input(5, title="Lookback") ATRPeriod = input(25, title='Length ATR') ATRFactor = input.float(9.5,title = "ATR Factor", minval = 0.5, step = 0.5) A=ta.highest(Highest,Lookback) B=ta.lowest(Lowest,Lookback) C=ta.atr(ATRPeriod)*ATRFactor // 调整D和E的计算逻辑,让ATR值生效 D=A+C // 上轨用A加ATR偏移 E=B-C // 下轨用B减ATR偏移 barcolor(close>=((D+E)/2)?color.white:color.yellow) plot(((D+E)/2), color=color.white) // 可选:绘制上下轨,直观查看ATR的影响 plot(D, color=color.green) plot(E, color=color.red)
补充说明
如果你的原始需求不是生成通道,而是其他逻辑,需要重新设计D和E的计算方式,确保C(ATR相关值)能参与到最终的判断或绘图计算中,这样修改ATRPeriod和ATRFactor才会产生预期变化。
内容的提问来源于stack exchange,提问作者Avi Singh
相关产品推荐
相关产品推荐

