同一行情ADX数值不同:Wilder平滑与EMA逐步复算
同一段行情的ADX不相同,先核对平滑系数与种子。本实验周期均写三期,但Wilder更新权重为三分之一,EMA权重为二分之一;在相同输入和相同第一层初始均值下,末行ADX分别约二十八点七零与四十点四六。周期标签相同,并不代表递推公式相同。本文比较算法,不根据指标数值给出买卖含义。
什么条件被固定,什么条件被改变?
全部开高低收是合成价格,单位统一为元。第一根作为前一日比较基准,开十、高十一、低九、收十。后十根列在下表,开盘价只保留作完整行情说明,不进入方向变动和真实波幅公式。两组共同采用前三个有效原始值的算术均值作为第一层平滑种子;各自前三个有效DX的均值作为ADX种子;这一层种子会因前面DX已经不同而不同。只改变两层递推采用的更新权重。
这个初始化专门服务于受控比较,不宣称与任何商业软件或开源库默认完全一致。对照真实实现时,还需检查首个有效输出位置、是否使用求和种子、预热长度与相等方向的处理。本文的两组都从同一个起点出发,才能将后续差异定位到权重变化,而非起点不同。
原始TR和方向变动怎样产生?
每根TR取当日高减低、当日高与前收之差的绝对值、当日低与前收之差的绝对值三者最大。向上变动为当高减前高,向下变动为前低减当低;仅保留较大且为正的一侧,另一侧为零,相等时两侧都零。不能把同一根内的上下波动同时全部计入方向变动。
| 序号 | 开 | 高 | 低 | 收 | TR | 正DM | 负DM |
|---|---|---|---|---|---|---|---|
| 2 | 10 | 12 | 10 | 11 | 2 | 1 | 0 |
| 3 | 11 | 13 | 10 | 12 | 3 | 1 | 0 |
| 4 | 12 | 12.5 | 9.5 | 10 | 3.0 | 0 | 0.5 |
| 5 | 10 | 11 | 8 | 9 | 3 | 0 | 1.5 |
| 6 | 9 | 12 | 8.5 | 11 | 3.5 | 1 | 0 |
| 7 | 11 | 14 | 10 | 13 | 4 | 2 | 0 |
| 8 | 13 | 13.5 | 11 | 12 | 2.5 | 0 | 0 |
| 9 | 12 | 12.5 | 9 | 10 | 3.5 | 0 | 2 |
| 10 | 10 | 13 | 9.5 | 12 | 3.5 | 0.5 | 0 |
| 11 | 12 | 14 | 11 | 13 | 3 | 1 | 0 |
二到四根的原始TR为二、三、三,种子均值为二点六六六七;正方向种子为三分之二,负方向种子为六分之一。两个算法在种子处完全相同,随后面对第五根较大的负向变动,EMA给新值更高权重,于是从这里开始出现不同的中间序列。
从平滑量到ADX的完整链条是什么?
先把平滑正负DM分别除以平滑TR,再乘一百得到两个方向比值;DX为两者差的绝对值除以两者和,再乘一百。两边公用的TR因子可在这个比值里约去,程序仍保留TR列,便于检查第一层计算。第一层不足三项时输出缺失,不拿零补齐;DX形成三项后才建立ADX种子。
| 序号 | W平滑TR | W正DM | W负DM | W的DX | EMA的DX | W的ADX | EMA的ADX | 后者减前者 |
|---|---|---|---|---|---|---|---|---|
| 2 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 |
| 3 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 | 未形成 |
| 4 | 2.666667 | 0.666667 | 0.166667 | 60.000000 | 60.000000 | 未形成 | 未形成 | 未形成 |
| 5 | 2.777778 | 0.444444 | 0.611111 | 15.789474 | 42.857143 | 未形成 | 未形成 | 未形成 |
| 6 | 3.018519 | 0.629630 | 0.407407 | 21.428571 | 23.076923 | 32.406015 | 41.978022 | 9.572007 |
| 7 | 3.345679 | 1.086420 | 0.271605 | 60.000000 | 72.972973 | 41.604010 | 57.475497 | 15.871487 |
| 8 | 3.063786 | 0.724280 | 0.181070 | 60.000000 | 72.972973 | 47.736007 | 65.224235 | 17.488229 |
| 9 | 3.209191 | 0.482853 | 0.787380 | 23.974082 | 51.879699 | 39.815365 | 58.551967 | 18.736602 |
| 10 | 3.306127 | 0.488569 | 0.524920 | 3.586736 | 11.602210 | 27.739155 | 35.077089 | 7.337933 |
| 11 | 3.204085 | 0.659046 | 0.349947 | 30.634441 | 45.844504 | 28.704251 | 40.460796 | 11.756546 |
W列表示本文Wilder权重方案。首个ADX出现在第六根,已经不是第一根价格的时点。表格给出两组DX及最终差额,内部保留完整小数,不在每一步先舍入。最后一行的差距不是图表缩放问题,因为中间DX已经发生变化;只把某条线乘常数,无法让每一行重新对齐。
更快的平滑是不是一定更准确?
不是。它只是对新数据赋予不同权重,回答了不同的平滑问题。EMA在变化后更快移动,也可能对短暂变化更敏感;不能用一次构造样本的高低认定哪种算法预测更准。本文没有检验预测能力,也没有交易收益、成本或风险统计。
把所有价格整体平移相同常数,高低差及与前收差应保持,方向变动和TR不变;将价格整体乘一个正数,这些价格量同比例放大,方向比值和ADX则应保持。这样的单位条件变化是独立排错方法:如果把元换成分后ADX也扩大一百倍,问题在单位处理,不是行情突然增强。
两个平台对不上时,从哪一行开始查?
按原始高低收、前收、原始TR与DM、平滑种子、有效输出位置、递推权重依次比较。最早不同的一层往往比末行差多少更有诊断意义。若原始数据已经不同,就不应继续把差额全归因于Wilder和EMA;复权、缺失行、时区与未收盘价格都可能先改变输入。
还要区分「显示为零」与「尚未形成」。未形成的窗口没有足够数据,若被软件用零填充,下一层平滑种子也会被改变。保存缺失状态,等有效序列满足数量后再初始化,才能复现本表。若真实软件另有约定,应记录那一约定,而不是拿本文条件去强迫它匹配。
TA-Lib固定版本源码可用于阅读相关实现,本文没有调用该库运行本例,复算来自公开列明的自定算法。相关夏普工具只涉及它界面提供的基础统计,不能用于计算本文ADX或代替逐层核对。数值一致性检验也不代表指标能预测未来。
比较过程中怎样避免把求和种子与均值种子混起来?
方向比值的分子分母若始终采用同一倍率,部分比例计算可以约去这个倍率,但后续更新必须与种子形式配套。用均值种子却套求和更新,会让新原始量权重不一致;用求和种子却套均值更新也同样会改变路径。对照时先写出递推式,而不是只记住一个平滑名称。
本文两方案都采用均值状态,更新明确是旧状态乘一减权重,加新原始值乘权重。若对方采用求和状态,应先转换为相同状态量再比较,不要在数值相差周期倍数时立即判错。这个区别只涉及表示形式,是否等价要逐行检查更新关系。
另一个检查是方向量都为零时如何处理DX。本文约定分母为零则返回零,再按已说明规则平滑,不把它当成足够数据之前的缺失。缺失与真实零的区分会影响第一次ADX种子,因此也应写进实验配置。
在哪里继续核对基础概念?
概念背景见本站已有文章;相关基础核算工具提供其界面列明的计算。本文扩展实验依靠上面的独立输入和表格复现,不把全部情景视为工具已有功能。
道积君编辑组|AI辅助起草,构造算例经程序复算。本文数据、价格及规则假设均为教学构造,不是实盘或历史记录;仅用于投资教育,不推荐具体产品,不提供交易信号,不预测或保证收益。
来源核对:TA-Lib v0.6.4 ADX源码。核对日:2026-10-23。来源用于公式和概念比对,本文自定实验不冒称第三方软件运行结果;真实产品适用条件需查相应有效文件。
复算资料
本篇编号为DJ051。可下载Python核算脚本(文本)与完整输入输出JSON,对照文中表格复算。脚本文件改存为.py后可用Python运行;数据均为构造教学样本。