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

为何Pine Script中SmoothedTrueRange先声明再立即重赋值?

关于Pine Script v4中ADX指标SmoothedTrueRange赋值方式的疑问解答
  • 核心原因:初始化逻辑的兼容性与可读性

    1. 贴合经典指标的计算流程
      传统ADX的平滑真实波幅计算逻辑里,原本就有“先初始化初始值为0,再逐步迭代更新”的步骤。拆分写法完全还原了这个经典流程,让熟悉技术指标底层逻辑的开发者能快速对应上代码和指标定义,减少理解成本。
    2. 清晰区分初始化与更新步骤
      虽然不加var的变量会在每根K线重新声明,但先赋值0.0再用:=重赋值的写法,能明确把“初始化”和“迭代更新”两个环节分开。如果后续需要针对特殊K线(比如第一根K线、跳空K线)做额外逻辑调整,这种结构会更容易修改维护。
    3. 对齐官方示例的编码风格
      TradingView官方的ADX参考代码就采用这种写法,本质是为了和官方示例的编码习惯保持一致,避免开发者在对比官方代码时产生困惑。
  • 两种写法的功能一致性
    实际测试就能发现:直接用单行SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange计算,和拆分写法的输出结果完全相同。两种写法在功能上没有区别,拆分写法更多是出于可读性、逻辑还原的考虑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:22:08