学习如何设计基于 CCI 的交易系统(基础篇)
📘

学习如何设计基于 CCI 的交易系统(基础篇)

第 1/3 篇

用 CCI 搭一套可跑的交易系统

CCI(商品通道指数)在 MT5 里常被当成超买超卖的报警器,但真要拿它管单,得先想清楚信号怎么生成、怎么过滤噪音。原文基于 2022 年 6 月发布的设计思路,在 2700 次左右的社区浏览中,核心落点是把 CCI 穿越 ±100 当成趋势确认,而不是单纯反转赌点。 外汇与贵金属杠杆高、滑点狠,CCI 在 EURUSD 这类品种上单独用,假突破概率偏大;更稳的做法是让它和均线方向叠一层过滤。下面这段是 MQL5 里取 CCI 值的基础调用,能直接塞进 EA 的 OnTick 里跑。 [CODE] int cci_handle = iCCI(_Symbol, PERIOD_H1, 14, PRICE_TYPICAL); double cci_buffer[1]; CopyBuffer(cci_handle, 0, 0, 1, cci_buffer); double cci_value = cci_buffer[0]; [/CODE] 第一行用 iCCI 拿到当前品种 H1 周期、长度 14、典型价的句柄;第二行开一个长度为 1 的数组接数据;第三行从缓冲区拷最新一根 K 的 CCI 值;第四行取出数值给后续判断用。把这四行接上 if(cci_value > 100) 就能写第一版开仓条件,实盘前建议在策略测试器里用 2021—2023 的 Tick 数据回一遍。

MQL5 / C++
class="type">int cci_handle = iCCI(_Symbol, PERIOD_H1, class="num">14, PRICE_TYPICAL);
class="type">class="kw">double cci_buffer[class="num">1];
CopyBuffer(cci_handle, class="num">0, class="num">0, class="num">1, cci_buffer);
class="type">class="kw">double cci_value = cci_buffer[class="num">0];

「用 CCI 搭系统的前置准备」

这一节先把后续要干的事说清楚:我们要拿商品通道指数(CCI)配合一套简单规则,在 MT5 里做成可自动跑的交易系统。系列会依次拆 CCI 定义、策略思路、系统蓝图和实际代码四块,理解原理后再让程序替你严守纪律,比手动扛情绪靠谱。 MT5 和 MQL5 编辑器是硬门槛。装好终端后直接按 F4,或点工具栏里的 IDE 按钮,就能进 MetaQuotes 语言编辑器。后面所有代码都在这里写、这里编译。 外汇和贵金属杠杆高、回撤快,程序只帮你执行计划、不替你保本。本文仅作教学拆解,任何实盘动作的风险都由你自己扛,别把示例当稳赚模板。

◍ CCI 到底在量什么

商品通道指数(CCI)由唐纳德·兰伯特设计,本质是一款动量指标,用来衡量当前价格相对一段周期内平均价格的偏离程度。它最早服务于大宗商品周期识别,但外汇与贵金属行情里同样能反映趋势强度和潜在反转倾向。 当 CCI 读数偏高,说明价格显著甩在均值上方;读数偏低则代表价格深陷均值下方。这种结构让它天然带振荡属性,常规区间在 +100 到 -100 之间摇摆,突破边界往往对应行情加速或背离概率上升。

计算上先取典型价格 TP = (高+低+收)/3,再求其 n 周期简单移动平均 SMA,接着算平均偏差 = ΣTP-SMA/n,最后 CCI = (TP-SMA)/(0.015×平均偏差)。用 14 天样例数据跑一遍:第 14 天 TP=196.67、SMA=141.19、平均偏差=22.86,代入得 CCI=(196.67-141.19)/(0.015×22.86)=161.80,已明显超出 +100 上轨。

实操不必手算,MT5 内置 CCI 直接加载即可。参数里周期默认 14、价格类型选典型价格、线型样式可调;外汇与贵金属波动剧烈,指标假突破频繁,使用时需结合其他信号并自担高风险。

CCI 两种实战信号框架

CCI 本身只是摆动指标,能不能赚钱取决于你把它放在哪种行情结构里用。趋势、横盘、零轴三类交叉各有适用逻辑,先理清再上实盘。 顺着趋势做:上涨段价格连出更高低点和更高高点,买家控盘,等 CCI 上穿 +100 才视为做多触发,公式就是 CCI > 100 = 做多;下跌段反之,CCI < -100 = 做空。平仓不要死盯 CCI,用价格行为更实用——多单看价格跌破前低离场,空单看价格突破前高离场。 横盘段买卖双方拉扯、视觉上无主导,此时 CCI 仍可反用:下穿 -100 做多、上穿 +100 平仓;或上穿 +100 做空、下穿 -100 平仓。这相当于在通道内低买高卖,但外汇和贵金属在高杠杆下假突破频繁,横盘策略止损要卡紧。 另一种更简单的零轴法:不看 ±100 入场,只看 CCI 破 0。上破 0 做多、到了 +100 平仓;下破 0 做空、到了 -100 平仓。CCI > 0 = 做多 / CCI > 100 = 平仓,CCI < 0 = 做空 / CCI < -100 = 平仓。 以上任一玩法都先在 MT5 demo 账户跑一遍,确认你的品种周期里信号频率和可接受回撤后再考虑实盘。外汇与贵金属属高风险品种,CCI 信号只代表概率倾向,不预示必涨必跌。

常见问题

默认周期多为 14。短线折腾用 14 更灵敏,做日线波段可试 20,关键是在你常看的周期上回测后再定。
先确定交易周期、点差与滑点成本、以及 CCI 穿越阈值(如 +100/-100)。没有成本假设的系统上线必亏。
小布可自动标注 CCI 穿越 +100/-100 的时点并汇总胜率,你只需打开品种页看信号分布,不必手动翻图。
CCI 量的是价格偏离典型均线的统计距离,非涨跌动能。强势趋势中偏离会持续,别把超买当反转铁律。
零轴穿越框架噪音少,适合黄金日内;极值反转框架在震荡市更灵,但需配合止损,外汇贵金属高风险。