通达信振幅与波动率公式里,同一个数字换一个分母就换一个含义。振幅用最高价减去最低价,这一段没有人会写错;出错的地方在后面那一步,也就是减出来的差值除以谁。分母取前一个交易日的收盘价,得到的是与涨跌幅同一口径的日内波动;分母取当根收盘价,得到的是这个差值占当根收盘的比例。两个数在跳空的位置上会明显分开。
下面按「振幅的分母、日内与区间两种口径、ATR 的取数、标准差口径、参数与平滑、三种量纲的对照」六步讲。涉及的都是取值与计算,不涉及任何方向判断;文中的函数名以通达信公式编辑器内附的函数说明为准。
一、振幅的分母决定了数值大小
通达信振幅与波动率公式的分子是固定的,都是当根最高价与最低价之差。分母有两种常见写法,写在同一段公式里会得到两条不同的曲线。
{ 两种分母的写法 }
振幅A := (HIGH - LOW) / REF(CLOSE, 1) * 100;
振幅B := (HIGH - LOW) / CLOSE * 100;
{ 前者以昨日收盘为基准,后者以当根收盘为基准 }
以昨日收盘为基准的那一条,与行情软件里显示的涨跌幅出自同一个参照点,读起来可以直接与涨幅列对照。以当根收盘为基准的那一条,衡量的是当根的波动区间占自身的比例,它不受前一根收盘的影响,跳空的位置上不会因为基准变化而突然抬高。
两者差异最大的位置在跳空处。开盘跳空高开之后当根收盘也偏高,用当根收盘作分母会把振幅压低;用昨日收盘作分母则把这部分跳空引起的整体位移一并计入。核对时先把两条曲线输出到副图,挑几个跳空的位置对照,差异是哪一个方向就清楚了。
二、日内振幅与区间波动率不是一回事
振幅描述的是单根 K 线的范围,它不看这一根之前或之后的价格。区间波动率描述的是连续若干根收盘价的离散程度,它不看单根的最高最低,只看这段时间里收盘价之间的分散情况。
两者的差别在横盘之后突然放大波动的位置上最直观。单根振幅会立刻跳上去,区间波动率因为还要等后续若干根才完成换手,抬升得慢一些。反过来,连续几根小十字线之后出现一根长影线,单根振幅变大而区间波动率变化很小。做对照时把这两条线画在一起,能看出当前的变化是「单根的事」还是「一段时间的事」。
两条线在响应速度上的差别来自窗口长度。振幅的窗口只有一根,当根即出结果;区间波动率的窗口是 N 根,每一根新数据进来都要替换掉窗口里最旧的一根。窗口越长,这条线对单根变化的响应越慢,读数也越平稳。
三、ATR 的取数口径
ATR 先把每一根的真实波幅算出来,再对这个序列做平滑。真实波幅取三项中的最大值,其中一项专门处理跳空。
{ 真实波幅与 ATR }
TR := MAX(MAX(HIGH - LOW, ABS(REF(CLOSE, 1) - HIGH)), ABS(REF(CLOSE, 1) - LOW));
ATR := MA(TR, N);
{ 第三项处理跳空:当根最高价低于前收盘时,HIGH-LOW 会低估实际移动 }
第三项存在的原因值得说明。当根最高价高于前收盘时,最高价减最低价已经把跳空算进去了;当根最高价低于前收盘时,整根 K 线在前收盘的下方,最高价减最低价只覆盖了当根的范围,漏掉了从前收盘到最高价这一段。取三项的最大值,两种情况都能覆盖。
ATR 的输出单位是价格,不是百分比。这一点决定了它的用法:同一套参数在不同价位的品种上,ATR 的数值不可直接互相比较;要让数值可比,需要再除以该品种的价格水平,换算成相对量。ATR 可以直接叠加到主图,与 K 线的量纲一致,这也是它与振幅百分比用法上的分界。
四、标准差口径与相对波动率
标准差描述的是收盘价序列围绕平均值的分散程度。它的输出单位同样是价格,要看相对水平需要除以这段时间的均价。
{ 标准差与相对波动率 }
波动 := STD(CLOSE, N);
相对波动 := STD(CLOSE, N) / MA(CLOSE, N) * 100;
{ 前者是价格单位,后者是无量纲的相对量 }
标准差与布林线的关系是直接的:布林线以均线为中轨,上下轨按若干倍的标准差向两侧张开。理解了标准差的量纲,也就理解了布林通道宽度为什么会随波动放大而变宽。通道口径的展开写法可以参考 通达信指标原理与参数 一栏里关于标准差与通道宽窄的对照说明。
三种口径放在一起看时要注意一点:振幅衡量的是当根的范围,真实波幅在振幅基础上把跳空补齐,标准差衡量的是收盘序列的离散。三个数都在描述波动,但回答的问题不同,混用会导致同一个位置的波动水平出现三套读数。
五、参数与平滑方式
参数 N 决定观察窗口长度,平滑方式决定窗口内的权重分配。两者都会改变曲线的形状,但改变的方式不同。
| 写法 | 参数变化的效果 | 读起来的特点 |
|---|---|---|
| 简单平均 | 窗口越长,曲线越平缓 | 窗口内每一根权重相同,转折点来得晚 |
| 指数平滑 | 窗口相同时,近期权重更大 | 对当根的变动反应更快,尾部更细 |
| 单根值 | 没有平滑,不涉及窗口 | 逐根读数,适合与原始 K 线逐根对照 |
参数与平滑方式的组合会影响读数的稳定程度。同一段行情上,简单平均在窗口边缘处的变化比指数平滑更慢;指数平滑在连续几根同向数据之后会把权重集中到近期。选择哪一种,取决于要看的是曲线拐点的早晚,还是近期变化所占的权重。
参数改动之后要重新核对量纲,而不是只对比数值大小。窗口从短线改成长线,标准差与 ATR 的数值都会变,但在同一段行情上不同参数之间的相对高低次序未必同步改变。核对时把两套参数分别输出,看相对次序是否稳定,比单看某一天的大小更有意义。
六、三种量纲的对照与核对
| 口径 | 量纲 | 能否叠加主图 | 读的是什么 |
|---|---|---|---|
| 振幅百分比 | 百分比 | 不能 | 当根范围相对基准的比例 |
| ATR | 价格 | 能 | 含跳空的平均真实波幅 |
| 相对波动率 | 百分比 | 不能 | 收盘序列离散程度相对均价的比例 |
通达信振幅与波动率公式的核对做法是挑一根 K 线手工复算。取该根最高价减最低价得到分子,按选定的分母算出振幅;取该根与前一根收盘的关系,按三项取最大值算出真实波幅,再对连续 N 根取平均得到 ATR。两处与公式输出对上,说明取数与窗口都对上了;对不上时先查窗口根数,再查分母用的是前收盘还是当根收盘。
把上面的内容收一下:通达信振幅与波动率公式的差别集中在两个地方——分母取哪一根收盘,以及是否把跳空补进真实波幅。这两个选择定了,数值口径就定了。相关的量纲与叠加位置的限制见 主图副图指标 一栏,读数口径在复盘环节怎么用见 复盘方法与数据工具 一栏。
同一段行情,换一个分母、换一种平滑、换一个窗口,得到的曲线形状各不相同。你要读的到底是单根的波动,还是一段区间的离散?这个问题先答上来,参数才有意义。
文中函数名与算法为通用描述;通达信不同版本与券商定制版对 STD、MA 一类统计函数的参数形式、平滑方式与除零位置的处理存在差异,具体写法请以你所用版本公式编辑器内附的函数说明为准。本文只讨论计算口径与量纲,不构成任何投资建议。
