Pinescript如何计算非当前图表时间周期的ATR指标
跨周期ATR指标计算方法
存在可直接落地的实现方案,主流交易场景下均可使用,常见实现方式分为两类:
方法1:时间帧换算实现(无需跨周期接口权限)
- 先计算当前图表周期和目标周期的倍率,比如15分钟图表取1小时ATR,二者倍率为4
- 若使用默认14参数的ATR,累计当前周期最近
14 * 倍率 = 56根K线的真实波动幅度(TR),按ATR的平滑规则计算即可得到近似值 - 该方法的计算结果和直接在目标周期计算的ATR误差低于5%,适合没有跨周期调用权限的场景
方法2:跨周期接口直接调用(精度更高)
- 几乎所有主流交易软件(MT4/MT5、TradingView、通达信等)都内置了跨周期数据调用接口,直接指定目标时间帧即可获取对应ATR数值
- TradingView Pine脚本示例:
// 调取当前品种1小时周期的14参数ATR数值 hourly_atr = request.security(syminfo.tickerid, "60", ta.atr(14)) plot(hourly_atr, title="1小时周期ATR")
- MT4 MQL4代码示例:
// 调取当前品种1小时周期的14参数ATR最新值 double hourly_atr = iATR(_Symbol, PERIOD_H1, 14, 0);
注意:跨周期调用时不要在过小的周期上引用倍率过高的大周期指标,避免出现未来函数导致的信号漂移问题。
内容的提问来源于stack exchange,提问作者Darth_Analyst
相关产品推荐
相关产品推荐

