基于PineScript使用ATR指标计算遇数值不符问题求助
ATR指标计算结果不符的排查与修正
以下是可能导致计算数值与预期不符的原因及对应解决方法:
ATR数值获取错误
确保你正确调用了ATR指标。在Pine Script中,标准的ATR获取方式是使用ta.atr()函数,需指定周期参数(常用14周期)。如果你的ATR_Handle是通过其他方式(如跨周期调用)获取的,要确认周期匹配、数据同步:// 正确获取当前周期ATR atrValue = ta.atr(14) // 跨周期获取ATR示例(日线) atrDaily = request.security(syminfo.tickerid, "D", ta.atr(14))实体中点计算错误
止盈线的基础值realBodyMidpoint需确保是正确的K线实体中点,标准计算逻辑为(open + close) / 2。如果误用了high或low参与计算,会导致基础数值偏差。偏移量(offset)的视觉误导
代码中设置了offset = 1,这会让绘制的止盈线偏移1根K线,可能导致你视觉上认为数值不符。可暂时去掉该参数验证,确认是否是偏移导致的误解。
修正后的完整示例代码:
//@version=5 indicator("ATR止盈线", overlay=true) // 计算K线实体中点 realBodyMidpoint = (open + close) / 2 // 获取14周期ATR数值 atrValue = ta.atr(14) // 计算上下止盈线 tpUp = realBodyMidpoint + atrValue tpLow = realBodyMidpoint - atrValue // 绘制止盈线(可根据需求调整offset) plot(tpUp, title="TP Up", color=#0bf86e7e, offset=1) plot(tpLow, title="TP Low", color=#0bf86e7e, offset=1)
内容的提问来源于stack exchange,提问作者Foenkelito
相关产品推荐
相关产品推荐

