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

ThinkOrSwim脚本转MQL4指标 ATR计算逻辑正确性核验问询

转换逻辑核验结果

1. input ATRs=1理解核验

你的理解完全正确:

  • 该参数是ATR计算结果的乘数,MQL4中定义为double类型可以支持1.2、2.5这类小数系数,灵活性更高,符合需求。

2. AverageType.WILDERS对应关系核验

你的理解完全正确:

  • Wilders发明的平滑平均算法和MQL4中的SMMA(平滑移动平均线)计算逻辑完全一致,参数对应没有问题。

3. 核心计算逻辑思路核验

整体思路正确,只有一处需要补充:

  • iATR(_Symbol, 周期, 1, i)取周期为1的ATR值,确实就是单根K线的真实波幅TR(True Range),这个处理是对的
  • 以TR数组为数据源,传入原代码的length参数作为均线周期计算对应类型的均线,完全匹配原ThinkOrSwim的MovingAverage(trueRangeAverageType, TrueRange(...), length)逻辑
  • 注意补充缺失逻辑:你当前贴出的MQL4代码只计算了ATR值,最后还要乘以ATRs系数才是shift1的最终结果,不要漏了这一步。

关于shift1命名的说明

这个命名是ThinkScript开发者的通用习惯:

  • 该值的本质是计算出来的价格偏移量,通常用来和前面计算的EMA相加/相减,构建布林带、肯特纳通道这类通道类指标的上下轨
  • 命名为shift1一般意味着这是第一个偏移参数,如果后续有不同ATR乘数的偏移量,会依次命名为shift2、shift3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:57:05