You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Pine Script中不同时间周期显示一致的ADR数值?

问题解决思路及修正代码

问题根源

原代码的核心问题是SMA计算的周期上下文错误:你先把日线的high和low拉取到当前脚本运行的周期(比如周线),再在这个大周期上计算SMA。这导致周线周期下计算的是20个周K线对应的日线比值的平均值,而非20个日线K线的比值平均值,最终不同周期的ADR结果自然不一致。

修正代码

把ADR的完整计算逻辑放在request.security的第三个参数中,让所有计算都在日线周期上下文内完成:

Length = 20
ADR = request.security(syminfo.tickerid, "1D", 100 * (ta.sma(high/low, Length) - 1))

代码说明

  • request.security(syminfo.tickerid, "1D", ...)会临时切换到日线周期执行括号内的计算逻辑
  • 在日线周期内,ta.sma(high/low, Length)直接计算20个日线K线的high/low比值的简单移动平均
  • 计算完成后,该结果会被返回给当前脚本运行的任何周期(日线、周线、小时线等),因此所有周期显示的ADR值完全一致

内容的提问来源于stack exchange,提问作者geleone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:35:26