通达信CCI指标公式算的不是价格涨了多少,而是当前价格偏离近期平均价格多少个「平均偏离幅度」。这个分母的设计让它与 RSI、KDJ 走上不同的路子:后两者看涨跌方向,CCI 看离均值有多远。

下面按它的度量对象、公式的四段结构、0.015 这个常数、正负一百的读法、分母归零的处理,以及与另外两个常用指标的机制差别来写。文中参数与算式按通达信公式体系的通用写法描述,不同版本对函数名的支持情况请以你所用客户端的帮助文档为准。

一、CCI 衡量的是偏离平均价的幅度

CCI 的全称是顺势指标,它要回答的问题是:当前价格相对于最近一段时间的平均价格,偏出去了多少。直接算一个差值不够用,因为不同品种的价格量级差得远,同样偏出两块钱,对高价品种与低价品种的意义完全不同。解决办法是把差值除以一个衡量「这段行情自身波动幅度」的量,得到一个与价格量级无关的相对值。

这个除数就是 CCI 与多数指标的分水岭。RSI 与 KDJ 的分母里出现的是涨跌幅的相对比例,衡量的是方向与力度;CCI 的分母里出现的是价格偏离平均值的平均幅度,衡量的是位置有多偏。同一个价格序列喂给两组公式,得到的曲线形态完全不同。

理解这一层之后,CCI 在什么情况下读数会大幅摆动就清楚了:当近期的平均偏离幅度本身变小,也就是行情进入窄幅整理时,分母变小,同样大小的偏离被放大,曲线随之上下跳动。

二、公式的四段结构与参数

通达信CCI指标公式的常见写法由四段组成,逐段都有明确的取数对象。

{ 顺势指标 CCI 的四段结构 }
TP:=(HIGH+LOW+CLOSE)/3;
MA1:=MA(TP,14);
MD:=MA(ABS(MA1-TP),14);
CCI:(TP-MA1)/(0.015*MD);

第一段算典型价格 TP,把最高价、最低价、收盘价三者取平均。用三者平均而不是只用收盘价,是为了让当根的最高与最低也参与进来。

第二段算 TP 的 N 周期简单均线 MA1。这一段决定「平均价」取多长的一段,N 缺省取 14,改大改小的影响在下一节说。

第三段算 MD,即 TP 与 MA1 每一根差值的平均数。通达信CCI指标公式的分母由这一段提供,它描述的是「这段行情里,价格一般离均线多远」。

第四段才是 CCI 本体:当前偏离量除以 0.015 与 MD 的乘积。注意第四段的输出用了冒号,说明它是这条公式对外输出的那一条曲线。

三、0.015 这个常数在做什么

0.015 是一个固定系数,作用是把计算结果缩放成一条常见的刻度。没有它,曲线也能算出来,形态与缩放前完全一致,只是竖轴的数值范围会落在另一套量级上,与大家习惯的 -100 到 +100 区间对不上。

这一点解释了为什么改这个常数没有意义。它不是参数,不是需要按品种或周期调整的设定值。把 0.015 改成别的数,曲线只是被整体放大或缩小,穿越各条参考线的位置不会改变。真正需要决定的是 N 的取值。

N 的取值 MA1 与 MD 的时间跨度 曲线的表现
调小,例如 6 到 8 平均价与平均偏离幅度都基于更短的一段 跟随价格更紧,穿越参考线的次数增多
缺省 14 两周左右的交易根数 摆动幅度与噪声之间的常见折中
调大,例如 20 以上 平均价被拉平,平均偏离幅度变大 曲线更平缓,短周期的偏离不容易体现

改参数之前建议先做一件事:把同一条公式用两组参数分别挂到同一张图上对比,看穿越参考线的位置差了多少根。参数的影响落在哪几段行情上,比记一个「敏感或不敏感」的结论有用。

四、正负一百是刻度不是判定线

CCI 的曲线以 0 为中心上下摆动。习惯上把 ±100 当作一条参考线,把 ±200 当作更远的一条。这两组数值在原始设计里对应的是刻度划分,用来把曲线分成几个区间,不是一个自动给出结论的开关。

把参考线当开关用会遇到两种不吻合。第一种是曲线在参考线附近来回穿越,几次穿越之间价格的实际变化很小,此时穿越动作本身不携带额外信息。第二种是曲线停在参考线外侧的时间很长,行情并未按曲线的方向延续。两种情况的成因都在分母:MD 变小时曲线被放大,MD 变大时曲线被压缩。

读 CCI 时可以把 MD 单独输出一条观察。当 MD 明显变小时,对曲线的摆动幅度要打折看待;当 MD 明显变大时,曲线靠近 0 轴并不代表行情没有变化。

五、MD 归零时的除零处理

分母里出现 MD,就存在 MD 等于 0 的可能。当一根都不低于 0 的区间里 TP 完全没有变化时,MD 算出来是 0,第四段的除法会得到一个无意义的结果,客户端可能在图上画出断点,也可能输出一个极端值。

TP 完全不变的情形可以枚举:一段连续的一字走势、长时间停牌后补数据、或者只有一根 K 线的新品种。这些情形在实盘中都会出现,所以除零不是理论问题。

处理办法是给分母加一个下限,让除法在任何情况下都有意义。

{ 给分母加下限,避免 MD 归零 }
TP:=(HIGH+LOW+CLOSE)/3;
MA1:=MA(TP,14);
MD:=MA(ABS(MA1-TP),14);
MD0:=MAX(MD,0.0001);
CCI:(TP-MA1)/(0.015*MD0);

加了下限之后,MD 为 0 的位置算出来的偏离量是 0,曲线落回 0 轴,形态上表现为一段走平的线。这比断点或极端值更容易识别,也不会把后续的统计结果带偏。下限取多少不影响正常行情下的计算,只要它小于正常行情中 MD 的量级即可。

六、与 RSI、KDJ 的机制差别

三条指标放在一起看,差别集中在分母与输入上。

RSI 的输入是收盘价的变动,分母是统计窗口内上涨与下跌幅度之和,输出落在 0 到 100 之间,没有负值。KDJ 的输入是收盘价在近期高低区间里的相对位置,输出同样落在 0 到 100 之间,并带一条平滑后的 K 线与 D 线。CCI 的输入是典型价格,输出没有上下限,可以明显越过 ±100。

输出有无上下限,决定了两类指标在极端行情下的表现。RSI 与 KDJ 在极端行情里会停在边界附近,读数之间挤在一起,需要另想办法区分强弱;CCI 没有边界,极端行情下会给出很大的数值,区分度保留,代价是数值的量级在不同品种之间不可直接比较。

由此得到一条使用上的分界:需要横向比较多个品种时,CCI 的读数要先做归一化;只需要看单一品种自身的位置变化时,CCI 的大数值反而更好读。技术指标之间的分工与参数取舍,见 指标原理与参数 一栏。

把这条公式用起来之后,建议做一次自检:找一段行情,把 CCI 与 MD 两条曲线同时输出,人工核对一两根的具体数值与算式代入后的结果是否一致。核对通过说明参数与写法都对上了;不一致就先确认 TP、MA1、MD 三段里哪一段的取数与预期不同。用历史数据检查信号稳定性的方法,见 指标回测与风险验证 一栏。

通达信CCI指标公式需要记住的只有三点:分母是平均偏离幅度而不是涨跌幅,0.015 是缩放系数不是可调参数,正负一百是刻度不是开关。这三点定下来,剩下的都是参数与场景的匹配问题。

文中算式按通达信公式体系的通用写法描述;不同版本与券商定制版对函数的支持情况、平均偏离的分母口径以及除零时的输出行为存在差异,具体请以你所用客户端的实际界面与帮助文档为准。本文只讨论计算机制与参数口径,不构成任何投资建议。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。