通达信TR和ATR怎么核对?真实波幅、跳空与均值窗口排错

适用范围:通达信公式学习与历史日K线数值核对。TR是真实波幅,官方定义取当日最高价减最低价、当日最高价减昨收、当日最低价减昨收三者绝对值中的最大值。官方示例用MA(TR,10)构造10周期均值,因此跳空会让TR大于单根K线的高低价区间。

TR与ATR真实波幅核对流程示意,非软件截图
原创数值流程示意,非通达信客户端截图。

一、TR不是只有最高价减最低价

如果当天没有跳空,最高价减最低价往往已经是三项中的最大值。但当日开盘或价格区间相对昨收发生跳空时,最高价与昨收、最低价与昨收的绝对差可能更大。只写HIGH-LOW,会漏掉跨日价格变化。

H L 昨收 H-L |H-昨收| |L-昨收| TR
12 10 11 2 1 1 2
14 13 10 1 4 3 4
11 9 13 2 2 4 4

第二行和第三行说明跳空影响。这里的数字只为手算示范,未加入复权、涨跌停和品种特殊规则。核对真实数据时,要把当前根的HIGH、LOW和前一根CLOSE放在同一张记录表中。

二、官方示例中的ATR写法

TR0:TR;
ATR10:MA(TR,10);

上面的第一行直接观察真实波幅,第二行用10周期简单移动平均得到一个平滑序列。这里的ATR10是学习命名,不是客户端内置的唯一“ATR”标准。若改成MA(TR,N),N不同,窗口覆盖的历史长度不同;若换成EMA,结果也会不同,不能只看名称比较。

已有EMA与SMA区别文章说明不同均线权重会改变输出。TR专题只负责输入波幅,均线专题负责平滑口径,两个问题应分开检查。

三、怎样定位结果偏小或偏大的原因

先检查是否把昨收引用错成当前收盘。再检查周期:日线的昨收和五分钟线上一根收盘不是同一个时间口径。最后核对复权状态,因为复权会改变历史价格之间的比较关系。若只在某些日期出现明显跳变,要优先看是否存在跳空、除权或数据缺口。

不要用TR值直接推断后续方向。TR描述当前输入窗口中的价格幅度,不能单独证明上涨或下跌,也不能证明某个参数适合交易。对异常根保留原始字段,不要用0替换缺失值后继续计算。

四、最小诊断公式

RANGE0:=HIGH-LOW;
GAPUP:=ABS(HIGH-REF(CLOSE,1));
GAPDOWN:=ABS(LOW-REF(CLOSE,1));
TRCHECK:MAX(RANGE0,MAX(GAPUP,GAPDOWN));
TROFFICIAL:TR;

这是把官方文字定义拆开后的原创诊断示例。若TRCHECK与TROFFICIAL不一致,应记录品种、周期、复权、历史加载范围和当前根是否完整;不要在未确认数据口径前把差异归为函数错误。MAX的嵌套只为了表达三者取最大值,未声称所有客户端内部实现都按该文本展开。

五、窗口不足与显示精度

MA(TR,10)在历史数据少于10根时,客户端可能有自己的初始化和显示处理;官方函数条目没有在TR说明中展开全部初始化细节。应该在本机固定窗口,记录实际可见根数,再比较原始输出。图上显示到两位小数时,导出值和标签值也可能不同。

若需要同时检查有效数据范围,可参考BARSCOUNT;若需要区分当前根与前一根字段,可参考REF历史引用。这些链接用于补充排错,不把旧文改写成本文内容。

来源与限制

原始依据:通达信用户红宝书中的TR、MA、REF和MAX条目。表格、诊断公式和数值均为原创学习示例,未做不同客户端版本的实测,不承诺任何周期、品种和复权设置下的结果完全相同。

真实波幅是数据核对工具,不是个股买卖建议,也不提供收益、胜率或未来价格承诺。