通达信CCI主图指标公式详解:从原理到源码实战改造
2026/9/7 1:20:38 网站建设 项目流程

简介:面向股票与期货投资者、技术分析爱好者及指标公式初学者,这份DOC文档内含通达信CCI主图指标公式完整源码,可直接复制到通达信软件中使用,帮助快速搭建以CCI为核心的主图交易体系。资源共1个doc文件,压缩包仅87KB,轻量便携;已有325人学习浏览。源码精心设计了CCI1至CCI5多周期指标,并结合VAR1-VAR6均线体系、RSI、EMA等辅助判断,多维度刻画价格波动;同时利用STICKLINE、DRAWTEXT等函数在图中明确标注“看涨”“看跌”“底背离”“顶背离”“∠45”等信号,降低看图门槛。立桩量过滤与CCI差值条件则进一步辅助识别关键异动点,适合希望从源码层面理解技术指标编写逻辑、以及需要快速获得操盘提示的实战投资者。 前几天收到一份老股民发来的文档:《通达信指标公式源码非常不错的操盘利器CCI主图.doc》。单看文件名就知道是那种老派的指标分享,但这类文档往往比论坛里包装精美的帖子有料得多。我把里面的公式源码落到通达信里实测了一周,又结合CCI原本的计算逻辑做了重新梳理,把信号映射到了主图K线上,整个过程挺有收获。这篇博文就把完整思路和源码全部摊开讲清楚,适合刚接触通达信公式、想自己写主图指标的朋友,也适合已经在用CCI但没试过主图化改造的老手。

1. CCI指标到底在算什么

1.1 从公式看CCI的数学本质

CCI的全称是Commodity Channel Index,商品通道指数。很多人习惯拿它当超买超卖指标用,但实际上它衡量的是"当前价格相对历史平均位置的偏离程度"。原版公式拆开来看就三行核心计算:

TP:=(HIGH+LOW+CLOSE)/3; MA1:=MA(TP,N); MD:=MA(ABS(TP-MA1),N); CCI:=(TP-MA1)/(0.015*MD);

TP是典型价格,把最高价、最低价、收盘价取平均,等于给这根K线定了一个"代表性价格"。MA1是N个周期内典型价格的均值,代表这一段时间的市场重心。MD是平均绝对偏差,也就是每个周期典型价格偏离重心幅度的平均值,可以理解为市场的正常波动噪音水平。

CCI的分子是当前价格偏离市场重心多少,分母是正常波动幅度。所以CCI的数值本质上回答了一个问题:当前价格相对于过往N个周期,偏离到了正常波动范围的几倍。

1.2 100和-100为什么是分界线

原版公式里的0.015这个常数是有讲究的。当年发明者为了让CCI在大部分时间里落在-100到+100之间,试了很多系数,最后定在0.015。0.015这个值约等于2/3再除以100的某种经验折算,它假设价格服从近似正态分布,那么大约75%到80%的CCI数值会落在±100区间内。

所以CCI超过100,意味着价格偏离程度已经进入了历史样本中的小概率区间,动能很强;跌破-100则是弱势到了小概率区间。这就是为什么大家习惯把100和-100当作强势区和弱势区的分界线,而不是随意拍脑袋定的。

1.3 主图显示和副图显示的本质差异

副图显示CCI时,你看到的是一条围绕零轴上下波动的线,看背离、看穿越都很方便,但每一次都要在心里把副图信号和主图K线位置对照一遍,这个"脑内换算"看似不起眼,实盘盯盘时却非常消耗注意力。

主图显示则把信号直接映射到价格图上。K线本身就是价格行为,CCI信号直接做出颜色区分和买卖点标记,眼睛扫过去就能判断"现在处于什么状态"。我自己实测下来,主图化的最大优势不是多了什么新信息,而是减少了信息切换的认知负担。

2. 主图源码设计与逐行拆解

2.1 为什么要做信号映射式主图

如果直接把CCI数值画在主图上,会产生一个尴尬的问题:CCI的取值区间是-200到+200,而股价可能是5元也可能是50元,两者量级完全不同。股价50元时,0到100这个在副图里很关键的区域,在主图上只会缩在K线最底部一小条,几乎看不清。

所以我这份主图源码的核心思路不是把CCI数值硬叠到K线上,而是把CCI的研判结果映射成三种主图元素:K线颜色、买卖图标、文字提示。这样既不干扰价格坐标,又能让信号一目了然。下面这份是我优化后的主图叠加版源码,可以直接用。

2.2 主图叠加版完整源码

{CCI主图操盘-信号版} N:=14; TP:=(HIGH+LOW+CLOSE)/3; MA1:=MA(TP,N); MD:=MA(ABS(TP-MA1),N); CCI:=(TP-MA1)/(0.015*MD); 强:=CCI>=100; 弱:=CCI<=-100; 买:=CROSS(CCI,-100) AND REF(CCI,1)<-100; 卖:=CROSS(100,CCI) AND REF(CCI,1)>100; STICKLINE(强 AND CLOSE>=OPEN,HIGH,LOW,0,0),COLORMAGENTA; STICKLINE(强 AND CLOSE>=OPEN,OPEN,CLOSE,4,0),COLORMAGENTA; STICKLINE(强 AND CLOSE<OPEN,HIGH,LOW,0,0),COLORMAGENTA; STICKLINE(强 AND CLOSE<OPEN,CLOSE,OPEN,4,0),COLORMAGENTA; STICKLINE(弱 AND CLOSE>=OPEN,HIGH,LOW,0,0),COLORCYAN; STICKLINE(弱 AND CLOSE>=OPEN,OPEN,CLOSE,4,0),COLORCYAN; STICKLINE(弱 AND CLOSE<OPEN,HIGH,LOW,0,0),COLORCYAN; STICKLINE(弱 AND CLOSE<OPEN,CLOSE,OPEN,4,0),COLORCYAN; DRAWICON(买,LOW*0.98,1); DRAWTEXT(买,LOW*0.97,'低吸'),COLORRED; DRAWICON(卖,HIGH*1.02,2); DRAWTEXT(卖,HIGH*1.03,'高抛'),COLORGREEN;

再补充一个经典数值叠加版源码,适合放到副图或者想直接看CCI数值曲线的人:

{CCI主图叠加-数值版} N:=14; TP:=(HIGH+LOW+CLOSE)/3; MA1:=MA(TP,N); MD:=MA(ABS(TP-MA1),N); CCI:=(TP-MA1)/(0.015*MD); 零轴:0,COLORYELLOW,LINETHICK1; 上轨:100,COLORGRAY; 下轨:-100,COLORGRAY; STICKLINE(CCI>100,100,CCI,1,0),COLORRED; STICKLINE(CCI<-100,-100,CCI,1,0),COLORGREEN; DRAWICON(CROSS(CCI,100),CCI,1); DRAWICON(CROSS(100,CCI),CCI,2); DRAWKLINE(HIGH,OPEN,LOW,CLOSE);

2.3 逐段解析:每个参数是干什么的

先看前三行。TP:=(HIGH+LOW+CLOSE)/3定义了典型价格;MA1:=MA(TP,N)算出过去14个周期的平均典型价格;MD:=MA(ABS(TP-MA1),N)算出平均绝对偏差。这三行是CCI的骨架,任何改动都会直接影响后续信号质量。

接下来强:=CCI>=100弱:=CCI<=-100定义了两个状态变量。这里用:=赋值而不是用:输出,目的是只参与逻辑计算,不在主图上画出0和1的数值线。赋值号和输出号的区别,新手经常搞混,写错之后画面上会多出两条奇怪的直线,注意检查。

STICKLINE那一组是核心显示逻辑。STICKLINE的语法是STICKLINE(条件,价格1,价格2,宽度,空心)。我在这里用条件强 AND CLOSE>=OPEN限定为"CCI大于100且收阳线",然后把最高到最低、开盘到收盘分别用紫色柱画出来,等于把处于强势区的K线整体重绘成了紫色。后面四行把弱势区的K线重绘成青色。不满足条件的K线保留默认红绿色,视觉上强弱立现。

买卖点信号部分用的是CROSS交叉函数。买:=CROSS(CCI,-100) AND REF(CCI,1)<-100,意思是CCI从-100下方上穿-100,且前一根K线的CCI确实在-100下方,避免在连续穿越时重复发信号。DRAWICON(买,LOW*0.98,1)在最低价下方约2%的位置画一个图标,DRAWTEXT再补一个"低吸"文字。卖点逻辑完全对称,用下穿100识别。

2.4 通达信导入与部署步骤

拿到源码后的落地步骤其实很简单,但很多人第一步就卡住。在通达信里按Ctrl+F打开公式管理器,左侧选择"技术指标公式",点击"新建",公式类型必须选"主图叠加",否则指标会默认跑到副图里去。然后把上面任一段源码完整粘贴进去,公式名称填CCI主图操盘,点"测试公式",通过之后保存。

回到K线界面,直接键盘输入CCI主图操盘回车,或者右键选择"主图指标",找到刚建好的公式即可。如果粘贴后提示错误,优先检查括号是不是全角、引号是不是Word排版里的弯引号、中间有没有混入空格,这类格式问题占了报错原因的九成以上。

3. 实战应用:信号怎么用才能不吃亏

3.1 三套经典应用场景

第一套是趋势股的洗盘结束信号。股价处于上升趋势中,某天CCI跌到-100以下,K线变成青色,说明短线杀跌动能很猛,这时候不要急着接。等到CCI重新向上穿越-100,K线颜色从青色恢复成常规色,同时出现"低吸"图标,才代表洗盘可能结束,这时候介入的性价比远高于在下跌过程中猜底。

第二套是强势股回踩低吸。强势股CCI经常会冲到100以上,股价一路紫色K线上攻。出现第一次紫色K线后,股价回踩但不跌破关键均线,CCI短暂回落但不破零轴,之后再次抬头,这是一个典型的强势中继买点。这种形态的信号比单纯的CCI穿越更有价值,因为它结合了趋势位置。

第三套是超跌反弹。CCI在-100下方连续运行多日,突然出现"低吸"信号,配合成交量放大,往往意味着超跌反弹启动。这种机会的持有周期通常比较短,有3%到5%的反弹利润就可以考虑分批兑现,不要恋战。

3.2 参数调整别盲目

默认N=14是原版参数,绝大多数情况下够用。但不同品种波动特性不一样,我自己试下来,短线交易者可以把N改成8到10,信号更灵敏,缺点就是假信号变多;中线交易者用21甚至34,信号平滑,但滞后也会更明显。

阈值也不是死板的100和-100。想过滤弱势反弹,可以把买入阈值从-100改成-80,意思是CCI还没有完全跌进弱势区就开始关注;想抓更极端的超跌反弹,可以把阈值放到-120甚至-150。调整之后一定要用历史数据回看,看看信号发生的位置是不是真的符合你的交易计划,而不是只盯着最近几天的漂亮信号。

3.3 加一层过滤,信号质量明显提升

CCI主图最大的短板是震荡行情里会连续发出买卖信号,来回打脸。我的做法是叠加均线过滤:只在大周期均线多头排列时考虑低吸信号,空头排列时忽略买入信号。代码片段也很简单,在原有源码后面追加:

MA20:=MA(CLOSE,20); MA60:=MA(CLOSE,60); 趋势多:=MA20>MA60; 买2:=买 AND 趋势多; DRAWICON(买2,LOW*0.96,1);

再加一条成交量过滤,VOL>MA(VOL,5)代表当天放量,只有放量配合的CCI拐点才更可信。三层条件都满足的信号,实盘价值明显高于单一CCI穿越。

3.4 做成一键选股公式

主图信号看盘用,选股公式则可以每天收盘后跑一遍。把主图源码精简成条件选股公式:

N:=14; TP:=(HIGH+LOW+CLOSE)/3; MA1:=MA(TP,N); MD:=MA(ABS(TP-MA1),N); CCI:=(TP-MA1)/(0.015*MD); 买:=CROSS(CCI,-100) AND REF(CCI,1)<-100; FILTER(买,5);

在公式管理器里新建"条件选股公式",粘贴这段,保存后就可以用通达信的"条件选股"功能批量筛选。最后一行FILTER(买,5)的意思是信号出现后5个交易日内不再重复选入,减少重复标的。

4. 常见问题与排查技巧实录

4.1 公式导入后不显示

这个问题十有八九是公式类型选错了。如果建公式时选的是"副图"而不是"主图叠加",那切到主图界面后右键选择主图指标列表里根本找不到它。另一种可能是公式编译通过了但参数区有异常,比如N被设成了0或者负数,通达信会直接放弃绘制,检查一下参数设置就好。

4.2 画线错乱、数值跑到价格区域

如果你用的是数值叠加版,看到CCI的0轴、100线、-100线全都挤在K线底部,这是正常的,因为价格量级和CCI量级差太多。想改善有两个办法:一是改用信号映射版源码,这是我从根本上推荐的做法;二是只把它放在副图使用,不强行叠加主图。

4.3 信号频繁出现、来回止损

震荡市里CCI会反复穿越-100和+100,信号必然变多。这是CCI的固有特点,不是公式写错了。解决思路是前面说的两层过滤:均线方向过滤加成交量过滤。此外,把N调大也能减少信号频率,比如14改21,信号数量会下降约三分之一,但单个信号的质量会提高。

4.4 源码粘贴后报错或显示乱码

从Word或PDF文档里复制的源码最容易出问题。Word会把英文双引号自动替换成中文弯引号,会把连续空格压缩,甚至会把减号替换成看起来很接近的全角字符。通达信识别不了这些字符,于是报错。处理办法是把源码先粘贴到记事本里,再用记事本替换掉可疑字符,最后从记事本复制到通达信。这是我处理所有指标文档的固定流程,基本能解决九成粘贴问题。

4.5 识别并远离带未来函数的指标

网上很多"神级指标"其实偷偷用了未来函数,比如BACKSETZIGPEAKTROUGH这类函数。它们的特点是信号会根据后续K线数据发生变化,历史信号看起来完美,实盘中却像幽灵一样漂移。识别方法很简单:加载指标后,等一根新K线出现,看之前的信号位置会不会改变;或者用通达信的公式检测功能,一般会提示是否包含未来函数。我上面给的主图和选股源码都没有用未来函数,可以放心使用。

5. 一点个人心得

我自己用的过程中最大的感受是,CCI主图化这件事,本质上不是发明新指标,而是把经典指标换了一种更符合人眼直觉的呈现方式。K线变紫变青,买卖点直接标在价格图上,盘中扫一眼自选股,哪些票进入强势区、哪些票出现低吸信号,几秒钟就能筛完,确实比来回切副图效率高很多。

但也要泼一盆冷水。CCI衡量的是价格偏离程度,它告诉你的是"现在的位置很极端",而不是"接下来一定要反转"。任何单一指标都只是交易系统的一环,止损和仓位管理永远排在信号前面。我见过太多人拿到好指标就满仓梭哈,结果反而亏得更快。先用小仓测试,跑顺了再逐步加大投入,这个节奏比找什么"完美指标"都重要。

后续想深入的话,可以把这个主图信号接进通达信条件预警,也可以结合不同周期的CCI共振来做更严格的过滤,甚至用DLL插件扩展复杂计算。不过这些都是后话,先把这套主图指标用透,建立自己的交易纪律,才是第一步。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询