冷西西韭菜50指数是一条公开、每日调仓的 A 股散户拥挤度反向理论指数。它在每个交易日收盘后,以追涨热度、换手放大、龙虎榜注意力和特大单流量拥挤度四类信号,对合格股票做横截面排名,并记录综合分最高的 50 只股票在下一交易日开盘至再下一交易日开盘的理论等权收益。
这条指数用于观察高拥挤尾部,不是买入名单、实盘净值或收益承诺。在线页面提供每日更新的数据产品;本仓库提供固定的方法定义、构建代码、数据契约、校验程序和研究结论。
- 在线指数:https://indices-toocoldcc.pages.dev/
- 完整方法:
docs/methodology.md - 安装与使用:
docs/usage.md - AI Agent 获取成分股:
docs/agent-access.md - 输入数据:
docs/data-contract.md - 常见问题:
docs/faq.md
韭菜50不是“推荐买入的 50 只股票”,也不是一个带真实成交账本的可投资组合。它是一个公开的、理论毛收益口径的等权指数:每天收盘后识别更拥挤、更容易成为散户追涨对象的股票,次一交易日开盘等权进入,下一交易日开盘退出。指数点位的意义是把这种反向信号固化成可观察、可复现的时间序列。
研究结论也没有被包装成收益承诺:散户行为信号在横截面上有统计证据,但纯多头载体的上限有限,和基本面模型叠加也没有形成可靠增益。因此,韭菜50更适合作为“避雷/拥挤度/市场情绪”研究与监控工具,而不是单独的资金配置建议。
方法版本:2026-08-12。
- 基准日:
2016-01-04,基点:1000; - 股票池:点时 ST/退市风险过滤、上市满 120 个自然日、近 20 日平均成交额至少 3000 万元、排除
.BJ,且当天有有效行情; - 信号时间:收盘数据齐备后计算;
- 调仓时间:下一交易日开盘;
- 持有区间:从进入日开盘到下一交易日开盘;
- 组合:每天综合分最高的 50 只股票,理论等权,每只目标权重 2%;
- 缺失处理:四个公开因子不能全部有效时,不生成该股票的有效分;某日不足 50 只时,构建失败(fail closed),不补位、不偷偷放宽条件;
- 指数收益:使用 Tushare
adj_factor调整后的开盘价计算开盘到开盘收益,不加入手续费、印花税、滑点、借券、融资、整手、涨跌停成交约束或现金账本。
四个冻结因子都是“越高,越需要警惕”的方向:
| 因子 | 定义 | 直观含义 |
|---|---|---|
price_chase_20 |
rev_20 与 limit_touch_20 的横截面百分位排名等权平均 |
近期涨幅和触及涨停的追涨热度 |
turn_spike |
20 日平均换手率 / 120 日平均换手率 | 换手相对自身常态的放大 |
toplist_cnt_20 |
近 20 日龙虎榜出现次数 | 极端注意力与热门交易 |
elg_net_20 |
近 20 日特大单净额 / 分类成交额之和 | 大单流量拥挤度;本项目冻结为高值更差,不把它解释成“聪明钱” |
其中,price_chase_20 由 20 日复权涨幅排名 rev_20 和近 20 日触及涨停次数排名 limit_touch_20 各占一半组成。所有原始因子先在当日合格股票池内做横截面百分位排名,再对四个排名等权平均;没有在每日结果上重新搜索权重、阈值、方向或持有期。
完整字段与文件布局见 docs/data-contract.md,机器可读的冻结规格见 config/model.json。
以下是截至 2026-07-09 的散户行为研究结论,也是韭菜50为什么采用“避雷指数”定位的依据。它们不是用来承诺未来收益的宣传数字;重新下载数据时,供应商修订、权限和样本截止日变化都可能改变点估计。
研究阶段检查了 18 个行为信号 × 3 个持有期,共 54 个信号-持有期组合。方向稳定、近三年仍有表现的信号主要集中在彩票偏好、追涨、涨停热度、反转和拥挤度:
max_ret_20、vol_20、intraday_20、rev_20、limit_touch_20、turn_spike的 20 日周频 rank-IC 均为负,且多数在 2016—2026 的逐年分段中保持负值;toplist_cnt_20也呈现稳定的负向关系;elg_net_20的历史 rank-IC 约为-0.033、Newey-West t 约为-7.1,所以“特大单净流入 = 主力聪明钱”的直觉在这套研究里被否证,它更像拥挤度代理;sm_net_20没有形成稳定的“散户小单反指”证据;log_price、consec_board等因子不够稳定,未进入公开四因子指数;- 融资余额因子在预注册的 2016—2025 OOS 消融中没有给 Top50 尾部识别带来材料增量,因此从公开四因子版本中删除。
十分位结果不是“分数越高,未来收益越高”的平滑选股曲线,而是 D9 到 D10 的断崖:最热、最拥挤的一小段股票显著更差,D1—D7 相对平坦。这决定了它更像一个避雷器或拥挤度监控器,而不是一个自然的多头选股器。
研究中预注册的七因子复合避雷分(不是本仓库公开的四因子指数配方)在 20 日持有期的 rank-IC 约为 -0.1022、Newey-West t 约为 -12.5,D10 的未来 20 日绝对收益约为 -1.31%。这说明“识别最差尾部”的信号有研究价值,但不等于可以买入一个由这些股票组成的多头产品。
在 2017—2026 的组合研究中,纸面净池版本的理论上限约为年化 10.4%、Sharpe 0.44、最大回撤约 -49.6%;加入真实的整手、涨跌停顺延、费用和滑点后,结果明显受交易载体影响。五组稳定抽样种子的净池相对全池差异均为正,均值约 +2.59 个百分点/年,但这仍是同一时间段内的抽样分布,不是五个独立时间样本。
因此研究最终把独立纯多头模型判定为 Reject:不是说行为信号不存在,而是纯多头载体装不下它的主要优势。把它叠加到 EM/BV 基本面模型的过滤层也判定为 Reject,因为基本面模型中的热度可能是业绩驱动的有效强势,不能机械地当作散户噪声删除。
- 这是一条公开、可复现、每日更新的理论指数,不是实盘净值;
- 看到指数长期走弱,首先应理解为“高拥挤尾部确实危险”的研究结果,而不是直接推出“按这 50 只股票做空可实现同样收益”;
- A 股做空可得性、借券费率、涨跌停、成交冲击和资金容量都没有被页面指数模拟;
- 任何改因子、改窗口、改阈值或改持有期,都应作为新版本单独记录,不能回写成旧版本的历史表现;
- 官网的每日值以部署产物为准;要复现某个历史快照,请同时保存数据截止日、输入文件 hash、代码版本和构建 manifest。
需要 Python 3.11 或更高版本、Git,以及具备所需接口权限的 Tushare Pro 账户。完整的 macOS、Linux、Windows PowerShell 和 Windows CMD 指引见 docs/usage.md。
先克隆仓库并创建虚拟环境:
git clone https://github.com/toocoldcc/bagholder50.git
cd bagholder50
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .Windows PowerShell 对应的激活命令是:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .将 Tushare token 只放进当前终端的环境变量。macOS/Linux:
export TUSHARE_TOKEN='your-token'Windows PowerShell:
$env:TUSHARE_TOKEN = 'your-token'下载数据、构建指数并校验输出;以下命令在激活虚拟环境后的 macOS、Linux 和 Windows 终端中相同:
python scripts/fetch_tushare.py --start 20150501 --end 20260811 --output-dir data/raw
python scripts/build_index.py --data-root data/raw --start 20160104 --end 20260811 --output-dir outputs/bagholder50
python scripts/verify_output.py --output-dir outputs/bagholder50
下载起始日早于指数基准日,是为了给 20/120 日滚动窗口和上市年龄过滤预留足够数据。已有兼容数据时可以跳过下载,直接通过 --data-root 指向本地数据根目录。
| 文件 | 用途 |
|---|---|
selection.csv |
每个 signal_date 的 Top50;rank=1 表示拥挤度综合分最高、最需警惕 |
daily_returns.csv |
信号日、进入日、退出日、理论开盘到开盘收益和换手率 |
index_ohlc.csv |
从 1000 点开始复合的理论指数序列 |
index_nav.csv |
指数点位、累计收益和回撤 |
metadata.json |
方法版本、因子、股票池和收益口径 |
manifest.json |
输出文件大小和 SHA-256;校验器会检查是否被改动 |
selection.csv 是研究和监控结果,不是建议买入或可直接执行的空头组合。若要把信号用于交易研究,必须另行处理停牌、涨跌停、整手、费用、滑点、借券、资金容量和现金账本。
仓库内置 toocoldcc-bagholder50
skill。它使用 Python 标准库从官网固定 endpoint 获取并校验最新公开成分股,
不需要 Tushare token、金融数据库或完整项目依赖;目标名单尚未发布时会返回
not_ready,不会拿旧名单冒充最新结果。
需要让 AI Agent 自动安装并立即获取成分股时,直接复制
AI Agent 接入文档中的完整提示词。
该文档同时提供手动安装、跨平台命令、验收标准和失败边界。
.env、原始数据、Parquet、数据库和生成产物默认被 Git 忽略;程序不会自动读取.env;TUSHARE_TOKEN只从环境变量读取;抓取脚本不会把 token 写入 manifest 或日志;- 如果 token 曾经误提交,必须先在 Tushare 侧撤销/轮换,再处理 Git 历史,不能只删当前文件;
- 原始数据是否允许再分发取决于数据供应商条款,本项目不把 Tushare 原始快照作为开源资产。
代码使用 MIT License:允许使用、修改、分发和商业使用;复制或分发代码时必须保留版权声明和许可证文本。研究、文章或产品参考本指数方法时,建议按 CITATION.cff 标注来源和方法版本。
项目由冷西西(toocoldcc)创建和维护。每次方法变更都应增加版本号、说明原因、更新测试并保留旧版本结论;在线页面的当日值不能替代可审计的数据快照和构建 manifest。
本项目不构成证券投资建议,也不代表任何平台、数据供应商或券商的意见。