社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python量化策略:基于 CCI 与 STC 双指标实现量化交易

灵度智能 • 1 月前 • 94 次点击  

免责声明:本文所有内容‬仅用于交流学习‬,不构成任何投资建议!投资有风险,入市需谨慎!

策略介绍


一、CCI(商品通道指标)


CCI(Commodity Channel Index)即商品通道指标,由 Donald Lambert 于 1980 年提出,最初用于商品期货,现广泛用于股票、外汇等市场。它衡量当前价格相对于其统计均值的偏离程度,属于无界动量振荡器,无固定上下限,能有效捕捉极端行情而不易钝化。


计算上,先求典型价 TP=(高 + 低 + 收)/3,再算 TP 的 N 期(常用 20)简单移动平均与平均绝对偏差,最后归一化得到 CCI。约 70%–80% 数值落在 **±100之间:>+100 为超买 / 强多头 **,


主要用法:

①超买超卖:上穿 - 100 买入、下穿 + 100 卖出;

②趋势确认:持续 >+100 多头、持续

③背离:价格与 CCI 顶 / 底背离预示反转。


优势是趋势强时不钝化,劣势是震荡市易假信号。


二、STC(沙夫趋势周期指标)


STC(Schaff Trend Cycle)由 Doug Schaff 于 1999 年提出,融合MACD 趋势与随机指标周期特性,旨在比 MACD 更早捕捉趋势转折、减少滞后。它是有界振荡器,数值在0–100之间,便于跨品种比较动量强弱。


计算逻辑:先算 MACD 快慢线差值,再对该差值做双重随机平滑,最终归一化到 0–100。常用参数:快周期 23、慢周期 50、K 周期 10、D 周期 3。关键阈值:>75 强多头 / 超买、<25 强空头 / 超卖、50 为多空分水岭。


核心特点:

①领先性:比 MACD 快 1–3 根 K 线发出转折信号;

②抗噪性:双重平滑过滤杂讯;

③趋势 + 周期双识别:趋势市判方向、震荡市抓高低点。


适用于趋势与震荡并存市场,劣势是参数敏感、极端趋势中易高位 / 低位钝化。


三、基于 CCI 与 STC 的量化交易策略


策略核心逻辑


CCI 判趋势强度 + STC 抓周期拐点,二者互补:CCI 负责趋势过滤(避免震荡市假信号),STC 负责精准择时(提前入场 / 出场)。


策略优势与风险控制


优势:CCI 过滤趋势、STC 领先择时,双指标共振减少假信号;兼顾趋势与震荡市。


风险控制:①震荡市缩小仓位至 30% 以下;②极端趋势(CCI>200 或


策略实现


【 扫描文末二维码加入星球获取完整源码 


源码


计算 CCI 指标



计算 STC 指标



生成交易信号



运行回测



回测效果



虽然胜率只有 37.45%,但盈利因子达到 1.74,说明这是一个典型的「让利润奔跑、快速止损」的趋势跟随策略。


▌关于我们

我们致力于人工智能、量化交易领域前沿研究,分享前沿论文、模型代码、策略实现。如有相关需求,请私信与我们联系。

▌商务合作

请加微信“LingDuTech163”,或公众号后台私信“联系方式”。


关注【灵度智能】公众号,获取更多AI资讯。




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/197025