GTJA191 vs Alpha101 因子库横评:跑横截面选股到底选谁?快速选型指南
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
gtja191 和 alpha101 都听说过,但 A 股研报公式和美股论文公式到底差在哪?谁在你的目标市场上更稳?本文用 Vibe-Trading 内置的Alpha Zoo 因子动物园和alpha bench 因子横评工具当统一尺子,从公式风格、适用市场到验证成本逐项对比这两套经典因子库,最后给出一张按场景落地的选型对照表。
一个 alpha_001:用同名文件读懂两套因子库的风格
这一节回答:两套库的因子长什么样,差别直观吗?
有个有意思的细节:两套库的第一个因子文件都叫 alpha_001.py,这对"同名双胞胎"恰好最能说明风格差异。
agent/src/factors/zoo/gtja191/alpha_001.py:
- 数据需求:只要 OHLCV 里的 volume、close、open 三列,不碰基本面;
- 公式:
(-1 * CORR(RANK(DELTA(LOG(VOLUME),1)), RANK((CLOSE-OPEN)/OPEN), 6)),即成交量变化与日内收益的 6 日负相关,专挑"放量不涨"的量价背离; - 定位用途:A 股横截面选股信号,元数据把适用市场声明为
equity_cn。
agent/src/factors/zoo/alpha101/alpha_001.py:
- 数据需求:只用到 close 一列;
- 公式:
rank(ts_argmax(SignedPower(...), 5)) - 0.5,SignedPower、ts_argmax、rank 多操作符串在一起; - 定位用途:美股/印度/韩国横截面选股,元数据声明
equity_us / equity_in / equity_kr。
gtja191 更像本地向导,熟门熟路地摸 A 股量价脾气;alpha101 更像通用公式手册,手法普适,但落地前得先试试合不合身。
差异盘点:一张七行对照表
这一节回答:两库的全部差异能不能压成一页看?
| 维度 | gtja191 | alpha101 |
|---|---|---|
| 出处文档 | 国泰君安 2014 年 alpha 研报 | Kakushadze 2015 年论文(arXiv:1601.00991) |
| 因子数量 | 191 个 | 101 个 |
| 声明适用市场 | A 股(equity_cn) | 美股/印度/韩国(equity_us / equity_in / equity_kr) |
| 数据输入 | 仅 OHLCV,无基本面 | 仅 OHLCV,无基本面 |
| 代表操作符 | RANK、DELTA、CORR、取负 | ts_rank、decay_linear、SignedPower、ts_argmax |
| 公式复杂度 | 中,两三层嵌套统计 | 高,多操作符深嵌套 |
| 主要主题 | 量价、反转、微观结构 | 动量、反转、波动率、微观结构 |
机制上两库住在"同一栋楼"里:每个文件都带统一的compute(panel)入口和__alpha_meta__元数据(主题标签、公式、预热 bar 数、适用市场),由 registry.py 做 AST 扫描并按严格 pydantic 校验;数值正确性由 test_gtja191_part1_samples.py、test_gtja191_part2_samples.py、test_alpha101_samples.py 锁死,操作符层面还禁止前视(delta只接受正向窗口,不存在负移算子)。
验证方法:一条命令跑横评,看 alive/reversed/dead 分布
这一节回答:怎么把"哪个好用"从口头判断变成数字?
在终端里分别跑两条 bench(报告默认落在~/.vibe-trading/reports/):
vibe-trading alpha bench --zoo gtja191 --universe csi300 --period 2020-2025 --top 20 vibe-trading alpha bench --zoo alpha101 --universe sp500 --period 2020-2025 --top 20每个因子会算出 IC 均值(因子值与未来收益横截面相关性的平均)、IR(IC 均值除以 IC 标准差)、IC 为正比例,再按阈值分级,逻辑在 bench_runner.py:
- 🟢alive:ic_mean > 0.02,IC 为正比例 ≥ 55%,且 |t| > 2;
- 🔴reversed:ic_mean < -0.02 且 |t| > 2——方向是反的,取反之后照样能用;
- ⚪dead:其余全部。
报告除按 IR 列出 Top 因子并附公式外,还自动做多重检验校正:把"你从上百个因子里搜出的最佳 IR"和纯运气下能搜出的最大值相减,给出 deflated 概率——这一步专门防"搜出来的幸存者"。
进阶玩法:
- 点名对决:
vibe-trading alpha compare gtja191_001 alpha101_001 --sort ir,只评估你点名的因子并标出与榜首的差距;CLI 与 Web 端共用同一套 compare_runner.py 核心; - 严格闸门:
alpha bench加--strict,追加同股票池随机对照与训练/测试切分(--oos-split指定切分日),分级细化为 confirmed_alive / train_only / reversed_strict / noise,专筛只跟市场 beta 的伪因子,实现见 bench_runner_strict.py; - 问 Agent:聊天里直接说"帮我横评 gtja191 和 alpha101",alpha-zoo 技能会自动调度
alpha_zoo(查库)与alpha_bench(跑评)两个工具。
新手选型对照表:什么市场跑什么库
这一节回答:看完之后,到底该挑哪个?
| 你的场景 | 推荐 |
|---|---|
| A 股横截面选股,因子直接落到多空组合 | gtja191:整库声明 equity_cn,主题贴合 A 股微观结构 |
| 美股横截面选股,或想要更通用的公式模板 | alpha101:声明覆盖美/印/韩,操作符风格普适 |
| 边学边选,想读懂 rank/decay_linear 这类算子 | 先精读 alpha101 样本,再对照 gtja191 同名公式 |
| 专门挖量价背离、短期反转主题 | gtja191:volume/reversal 标签密度更高 |
| 最关心稳健性、怕过拟合 | 两库都过一遍--strict,只留 OOS 闸门的幸存者 |
同一批因子换到另一个股票池,名次可能整个翻掉——上表的推荐都建立在"声明市场 + 你自己实测"的前提上,不能跨市场照搬。
收束:动手前三条带走
这一节回答:一分钟能记住什么?
- gtja191:191 个 A 股因子,复杂度中等,主打量价与微观结构;
- alpha101:101 个论文因子,嵌套更深,是美股系市场的信号模板;
- 两库共用同一接口、同一注册表、同一套样本测试,横评比较的是"同尺子下的真实衰减";
- 看第一眼的应该是 alive/reversed/dead 分布,而不是漂亮的回测曲线。
动手三步:克隆仓库git clone https://gitcode.com/GitHub_Trending/vi/Vibe-Trading、安装依赖、跑一条vibe-trading alpha bench——真正的结论,藏在你的第一次实测里 📊
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考