一句话回答: CCI(顺势指标)衡量价格偏离其统计均值的程度,公式是 CCI = (TP − MA(TP)) / (0.015 × MD),其中 TP 是典型价、MD 是平均绝对偏差。用 AlphaFeed 取复权日线,几行就能算出 CCI,并用 +100/−100 判断超买超卖——不依赖 TA-Lib。
CCI 常用来判断超买超卖和趋势拐点,但自己算容易踩坑:
数据用 AlphaFeed 复权日线,公式照经典口径写,即可对齐软件。
from alphafeed import AlphaFeed
import numpy as np
import pandas as pd
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
df = af.klines.get("600519.SH", period="1d", count=120,
adjust="forward", to_dataframe=True)
df = df.sort_values("trade_date").reset_index(drop=True)def cci(df, n=14):
tp = (df["high"] + df["low"] + df["close"]) / 3.0 # 典型价 TP
ma = tp.rolling(n).mean() # TP 的移动平均
md = tp.rolling(n).apply(lambda x: np.abs(x - x.mean()).mean(), raw=True) # 平均绝对偏差
return (tp - ma) / (0.015 * md)
df["cci"] = cci(df, 14)
print(df[["trade_date", "close", "cci"]].tail(3).to_string(index=False))CCI 参数与含义:
项 | 公式 / 取值 | 含义 |
|---|---|---|
TP(典型价) | (最高+最低+收盘)/3 | 代表当日价格中枢 |
MA(TP) | TP 的 N 日均值 | 价格中枢基准 |
MD | TP 与其均值差的绝对值的均值 | 平均绝对偏差(非标准差) |
0.015 | 缩放常数 | 使多数值落在 ±100 内 |
| 周期 | 14(也用 20) |
def cci_state(symbol, count=120, n=14):
df = af.klines.get(symbol, period="1d", count=count,
adjust="forward", to_dataframe=True).sort_values("trade_date").reset_index(drop=True)
c = float(cci(df, n).iloc[-1])
zone = "超买(>100)" if c > 100 else ("超卖(<-100)" if c < -100 else "中性")
return {"cci": round(c, 1), "zone": zone}
print(cci_state("600519.SH")) # 例如 {'cci': -140.6, 'zone': '超卖(<-100)'}
print(cci_state("000001.SZ")) # 例如 {'cci': 41.6, 'zone': '中性'}上例实测:茅台 CCI≈−140.6 处于超卖区,平安银行 CCI≈41.6 属中性。CCI 常见用法是"CCI 上穿 +100 视为强势启动、下穿 −100 视为弱势/超卖"。
mean(|TP − mean(TP)|),不是标准差 std(),否则数值和软件差一截。adjust="forward",避免除权跳空污染 TP。Q:CCI 的 0.015 是怎么来的?
A:它是经验缩放常数,目的是让大约 70~80% 的 CCI 值落在 −100~+100 之间,方便用 ±100 判定。漏掉它结果会差两个数量级。
Q:CCI 超卖(<−100)能直接买吗?
A:不能。CCI 无界且在下跌趋势会长期低于 −100。它是辅助工具,需结合趋势(如均线、ADX)与止损,别单独抄底。
Q:CCI 和 RSI 有何区别?
A:RSI 基于涨跌幅、固定 0~100;CCI 基于价格对均值的偏离、无界。CCI 对突破更敏感,RSI 更平滑。
Q:需要付费吗?
A:单只标的的日线在免费额度内即可试算;批量/全市场需 Starter 及以上,详见 AlphaFeed 定价页。
CCI 的本质是"价格偏离其近期中枢多少个平均绝对偏差"。写对的关键是用平均绝对偏差(不是标准差)和 0.015 常数,数据要前复权。AlphaFeed 提供口径一致的复权日线,让你几行算出 CCI——但记住它无界、会钝化、在震荡市噪声大,需配合趋势与止损使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。