把三根线画在同一张主图上,看起来是一件事,拆开是三件事:中间那根怎么来、上面那根怎么来、下面那根怎么来。一段通达信通道指标公式的骨架就是这三个输出,差别只在波动量这一项取什么。中轨取移动平均,上下轨在中轨上加减同一个波动量,波动量取标准差和取真实波幅,算出来的轨道宽度不一样。下面把三个输出各自的算法拆开,再把参数改动后的轨道变化、通道被突破时的读数、以及通道公式与 BOLL 的关系逐一写清,口径以官方函数说明为准。
一、通道类指标的三根线分别是什么
通道指标的输出固定是三条:一条中轨、一条上轨、一条下轨。中轨是轨道的位置基准,上下轨是中轨平移之后得到的两条边界。三条线的画法与其他以「轨道」命名的通达信通道指标公式同属一个家族,区别落在中轨取什么、波动量取什么。
这一结构决定了通道指标的两个自由度:中枢的位置由中轨的计算式决定,常见取法有简单移动平均、指数移动平均、加权移动平均;轨道张开多少由波动量的计算式与倍数决定。任何一个通道公式都能被读成「中枢在哪 + 张开多少」这两句话。
{通道公式的通用骨架,三个输出各自独立}
MID : 中轨,取某一种移动平均
UP : 上轨 = MID + P 乘以 波动量
LOW : 下轨 = MID - P 乘以 波动量
上下轨的对称性来自同一个波动量。只改上轨或只改下轨的写法语法上可行,算出来的轨道会偏向一侧,读图时也就不再是等宽通道。
二、两种波动量的取法:标准差与真实波幅
标准差口径
标准差口径统计的是收盘价在 N 个周期内相对均线的离散程度。公式函数是 STD,写 STD(CLOSE,N),返回最近 N 根 K 线收盘价的标准差。收盘价离均线越远、离散越大,标准差越大,轨道越宽;价格贴着均线走,标准差收敛,轨道收窄。
这一口径对被统计的样本本身有要求。N 个周期内出现一次跳空,收盘价的分布被拉长,标准差会跟着放大,轨道在这一段张开。反过来,价格在一个窄区间内往返,收盘价集中,标准差偏小,轨道被压到很窄。
真实波幅口径
真实波幅口径统计的是每个周期内的价格波动幅度,函数是 ATR,写 ATR(N)。它取当日最高最低之差、前收与当日最高之差、前收与当日最低之差三项中的较大值,再对这批值做 N 周期平滑。取这三项是为了把跳空包含进去:前收与当日最高、前收与当日最低这两项在出现跳空时大于当日最高最低之差。
{两种波动量各自的算式,写成公式便于对照}
标准差口径:
MID : MA(CLOSE,N);
UPPER : MID + P * STD(CLOSE,N);
LOWER : MID - P * STD(CLOSE,N);
真实波幅口径:
MID : MA(CLOSE,N);
TRV : MAX(MAX(HIGH-LOW,ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
UPPER : MID + P * MA(TRV,N);
LOWER : MID - P * MA(TRV,N);
两段公式的中轨完全一致,差别落在波动量那一行。标准差口径的波动量由收盘价单点序列算出,真实波幅口径的波动量由每根 K 线的最高、最低、前收三个字段算出。同一条参数 N 与同一个倍数 P 下,两段公式画出的轨道宽度不同。
三、两种口径算出来的轨道宽窄差在哪
差别的来源可以从参与统计的字段看。标准差口径只用到收盘价这一个字段,一根 K 线内部的最高最低振幅不进入统计;真实波幅口径把最高最低都算进来,并用 REF(CLOSE,1) 把跳空口径补上,统计的波动幅度比收盘价序列的离散度更大。
| 对比项 | 标准差口径 | 真实波幅口径 |
|---|---|---|
| 参与统计的字段 | 收盘价 CLOSE | 最高 HIGH、最低 LOW、前收 REF(CLOSE,1) |
| 跳空是否计入 | 仅通过收盘价间接反映 | 由前收与当日高低之差直接计入 |
| 平滑方式 | STD 按 N 周期统计离散度 | TRV 再取 MA(TRV,N) 平滑 |
| 轨道宽窄 | 随收盘价离散度变化 | 随全振幅变化,数值上更大 |
| 收窄条件 | 收盘价向均线集中 | 单根 K 线振幅整体变小 |
把两段公式同时挂到副图或主图比较,能看到的差异点有两处。一处是轨道的宽度数值,同参数下真实波幅口径的上轨更高、下轨更低;另一处是轨道变化的时点,标准差口径对收盘价的集中与分散更敏感,真实波幅口径对盘中振幅的变化更敏感。振幅放大而收盘价变化不大的一段走势里,两段的轨道宽度会分开。
四、参数 N 与 P 各自管什么
参数 N 出现在中轨与波动量两处,它管的是统计窗口的长度,也就是取最近多少根 K 线参与计算。N 调大,中轨平滑度提高,轨道的位置中枢移动得更慢;同时波动量的统计样本变长,单个异常周期对波动量的影响被摊薄,轨道宽度的起伏趋于平缓。N 调小,中轨跟价格更近,轨道随价格起伏摆动得更快,宽度变化的幅度也更大。
参数 P 只乘在波动量上,它管的是轨道的张开倍数。P 调大,上下轨同时远离中轨,通道变宽;P 调小,上下轨同时向中轨靠拢,通道变窄。P 不参与中轨计算,所以改 P 不会挪动中轨的位置,只改变两条边界的距离。
| 参数 | 出现位置 | 数值调大后的结果 | 数值调小后的结果 |
|---|---|---|---|
| N | 中轨的均线周期、波动量的统计周期 | 中枢移动变慢,波动量样本变长,轨道宽度起伏趋缓 | 中枢贴近价格,轨道随价格摆动加快 |
| P | 波动量的倍数 | 上下轨同步外扩,通道变宽 | 上下轨同步内收,通道变窄 |
参数默认值写入公式时以冒号后面的写法给出。常数写死在公式里的版本改起来要回到编辑器,两种写法的差别在调试效率上。
五、通道被突破时的计算含义
价格走到上轨之上,含义是当前的收盘价高于「中轨 + P 倍波动量」这个值。轨道边界由已实现的价格与波动数据算出,价格触到边界时波动量的统计样本里已经包含这段价格;继续推进时波动量被抬高,轨道随之张开,穿越边界不是一个静止的信号。
突破的读数可以按三处分解。第一处是穿越的字段:收盘价穿过还是最高价穿过,两者的判定式不同,公式里写作 C > UPPER 与写作 H > UPPER 两种,算出来的结果不一样。第二处是穿越发生的时点相对 N 周期的位置,穿越出现在 N 周期的前段还是后段,波动量样本里包含这段价格的比例不同。第三处是穿越之后中轨的走向,它反映的是均线在统计窗口内的位置变化。
{边界穿越的判定写法,按穿越字段区分}
收盘价穿越上轨:CROSS(CLOSE,UPPER);
最高价穿越上轨:CROSS(HIGH,UPPER);
收盘价穿越下轨:CROSS(CLOSE,LOWER);
把通道公式改成条件选股公式时,这几行就是条件输出。公式类型从「技术指标」改成「条件选股」之后,输出不再画线,而是返回成立与否的判断结果;公式管理器里对条件选股公式的测试口径与画线公式不同,测试通过只说明语法与函数可用。选股器里能不能筛出结果,还取决于本地数据是否下载完整。
六、通道公式与 BOLL 的关系与差异
BOLL 是通道类公式的一个具体实现,中轨取 MA(CLOSE,N),波动量取 STD(CLOSE,N),上下轨按 2 倍标准差外扩。用前面第二、第三节的写法,BOLL 就是标准差口径那一版的固定参数形式。这一段公式与 BOLL 的骨架重合,差别只在参数是否开放可调。
差异有两处值得单独拎出来。第一处是波动量的口径:BOLL 固定走标准差,把波动量换成 ATR 之后,公式不再叫 BOLL,但结构仍是通道。第二处是中轨的取法:BOLL 的中轨是简单移动平均,把它换成指数移动平均或加权移动平均,轨道的中枢就换了,边界也跟着移动。这两处改动都属于改写口径,不属于参数调整。
BOLL 公式在客户端里带一个 BOLL 函数,直接调用即可;对默认参数有改动需求时,按上面的写法展开成显式公式,中轨、波动量、倍数三段都可见,改哪一段就动哪一段。
七、参数改动对轨道的影响对照
把参数改动的影响按现象整理成一张对照表,便于改动后回看输出是否与预期一致。改动只在公式管理器里做,改完点「测试公式」确认语法通过,再挂图看输出。
| 改动 | 轨道上的现象 |
|---|---|
| N 调大 | 中轨更平缓,上下轨之间的距离变化更慢 |
| N 调小 | 中轨贴近价格,轨道随价格起伏摆动加快 |
| P 调大 | 中轨不动,上下轨等距外扩 |
| P 调小 | 中轨不动,上下轨等距内收 |
| 波动量由 STD 换成 ATR 口径 | 同参数下轨道整体更宽,跳空段张开更明显 |
把这条顺序固定下来,改动后的输出与预期不一致时就有落点。
轨道宽度的变化先看波动量那一行的口径,再看参数 P,最后看参数 N;中轨位置的偏移只看中轨那一行的均线类型与周期。
这段通达信通道指标公式的算法已经拆完。三个输出各自独立,中轨定中枢位置,波动量定张开多少,倍数 P 只做等距缩放;波动量取标准差还是取真实波幅,决定轨道在跳空与窄幅整理两类走势里的张缩表现。公式代码可以直接贴进公式管理器,先测试语法,再挂图核对输出。
本文只作技术研究口径,不涉及也不构成对任何标的的判断。
